时间:2024-07-06
文 方, 欧阳嵩
(江西现代职业技术学院,江西南昌 330095)
变频器作为节能应用与速度工艺控制中越来越重要的自动化设备,变频调速已成为现代电机控制技术的重要发展方向。如果把总线通信与变频控制技术统一起来,将推动交流电机群控技术以及设备远程监控技术的发展。Modbus作为一种通用的现场总线,已经得到了广泛应用,很多厂商的工控器、可编程逻辑控制器(Programmable Logic Controller,PLC)、变频器、智能 I/O 与 A/D模块都具备Modbus通信接口。通过Modbus总线,可以很方便地将不同厂商生产的控制设备连成工业网络,进行集中监控。
Modbus协议是MODICON公司开发的一种开放式现场总线通信协议,由于其功能完善而且使用简单,数据易于处理,因此在各种智能设备中被广泛采用。尤其适用于小型控制系统或单机控制系统,可实现低成本、高性能的主从式计算机网络监控。Modbus只定义了通信消息的结构。一个Modbus信息帧包括从机地址、功能码、数据区、数据校验码,对端口没有具体规定。Modbus的数据通信采用主/从方式,主设备可以单独和从设备通信,也可以通过广播方式和所有从设备通信。单独通信时,从设备需要返回一消息作为回应;以广播方式查询的,则不作任何回应。由于Modbus协议所具有的良好的适用性,已经得到了诸如GE、SIMENS等大公司的应用,并把它作为一种标准的通信接口提供给用户。
Modbus协议定义了两种传输模式,即RTU和ASCII。在RTU模式中,1字节的信息作为一个8位字符被发送,而在ASCII模式中则作为两个ASCII字符被发送。发送同样的数据时,RTU模式的效率约为ASCII模式的2倍。一般来说,数据量少且主要是文本时采用ASCII;数据量大且是二进制数值时,多采用RTU模式。主站一次可向一个或所有从站发送通信请求(或指令),主设备通过消息帧的地址域来选通从设备。主站发送的消息帧的内容和顺序为从站地址、功能码、数据域(数据起始地址、数据量、数据内容)、CRC校验码;从站应答的信息内容和顺序与主站信息帧基本相同。Modbus除了定义通信功能秒之外,同时还定义了出错码,标志出错信息。主站接收到错误码后,根据错误的原因采取相应的措施,从站应答的数据内容依据功能码进行响应。
Modbus通信的RTU模式中,规定信息帧的最后两个字节用于传递CRC(循环冗余校验)码。发送方将信息帧中地址域、功能码、数据域的所有字节按规定的方式进行位移并进行异或计算,得到2字节的CRC码,把包含CRC校验码的信息帧作为一连续的流进行传输。接收方在收到该信息帧时按同样的方式进行计算,并将结果与收到的CRC码的双字节比较,如果一致就认为通信正确,否则认为通信有误,从站将发送CRC错误应答。
RTU模式一般采用CRC-16冗余校验方法,CRC-16的校验码为16位(2字节)。实现CRC校验有两种方法:根据CRC校验的定义公式进行计算,或者在程序中建立CRC校验值表。在程序中使用前者更容易实现,这里需要使用CRC生成多项式X16+X15+X2+1。该多项式对应的码组系数为18005H(16进制),去除最高位,对应的16位余数为8005H,即为CRC-16常数。
CRC-16校验过程如下:将CRC寄存器的每一位预置为1;把该寄存器值与8 bit的信息帧数据进行异或,结果存于该寄存器;对CRC寄存器从高到低进行移位,在最高位(MSB)的位置补零,而最低位(LSB)如果为1,则把寄存器与CRC-16常数进行异或,否则如果LSB为零,则无需进行异或。重复上述的由高至低的移位8次,第一个8 bit数据处理完毕,用此时寄存器的值与下一个8 bit数据异或并进行如前一样的8次移位。所有的字符处理完成后CRC寄存器内的值即为最终的CRC值。CRC添加到消息中时,先加入低字节,然后高字节。
Modbus标准的物理层可以采用RS-232串行通信方式,但在长距离通信中常采用RS-422或RS-485代替。在多点通信情况下只采用RS-485方式,所以RTU模式下的Modbus系统采用屏蔽双绞线,通信距离可达1 000 m。一条总线上最多可配置31个从站设备。传输线上的信息交换是半双工的,避免了线路的冲突。
RTU模式的传输格式是1个数据位,2个停止位,没有奇偶校验位。通信数据安全由控制参数CRC-16码保证。RTU接收设备依靠接收字符间经过的时间判断一帧的开始,如果经过3个半的字符时间后仍然没有新的字符或者没有完成帧,接收设备就会放弃该帧,并设下一个字符为新一帧的开始。
在采用Modbus总线构建的数据采集与监控系统中,主站和从站中的控制设备上都要实现Modbus通信协议。主站控制器的通信协议实现过程流程图如图1所示。
图1 通信协议实现过程流程图
选用自带Modbus总线接口的变频器,整合PLC、单片机或者PC机作为主站的控制器,可以组建生产线自动控制系统,发挥Modbus总线控制和变频调速的优良性能,实现设备的集中式控制,系统的组成原理图如图2所示。一般变频器除电压、电流、脉冲输入和旋钮控制外,均支持点到点的Modbus协议通信,硬件接口采用RS-422/485串行方式;软件接口协议采用Modbus RTU模式,消息帧中的每个8 bit字节包含2个4 bit的十六进制数字字符。
图2 Modbus控制系统组成原理图
图2中的微控制器AT89C51扩展了2个通信口,一个是RS-232串口预留备用,另外通过芯片MAX485扩展RS-485接口。AT89C51作为主站微控制器,它通过RS-485总线方式,将多台变频器和具备Modbus RTU接口的智能型从站组成一个数字通信控制网络。AT89C51可以向从站变频器发送参数设置、起停、数据查询等指令,而变频器则根据指令要求控制电机系统运行,并返回信息。该系统不仅可以实现对交流电机的远程控制,还可以通过单片机与人机界面连接,完成整个生产线的起动、升速、降速停车等操作和监控。通过主站控制器的设置按钮,可以对系统操作参数进行设计,对于一些重要的参数直接存储在32 K字节的EEPROM芯片AT24C32中。通过设置变频器参数,可自由切换系统运行在手动或自动控制模式下。该系统的优点在于:(1)AT89C51直接利用Modbus协议对交流变频器读写,无需使用其他附件进行组态,简化了硬件,并可实时获取各变频器的工作状态,包括运行状态、运行参数、故障报警等;(2)主站控制器与从站变频器之间的连接只有两根通信线,极大地减少了线路连接的复杂性,提高了系统可靠性;(3)延长了系统的控制距离;(4)采集电机各运行参数并通过LCD显示,不需要各种现场智能仪表,极大地减少了线路连接的复杂性;(5)能与高精度网络方便地进行交换信息,从而实现工厂高度自动化。
单片机程序使用C语言编写,采用自上而下的模块化设计方法,整个程序包括系统初始化、串口发送、串口中断接收、485通信、LCD显示、键盘接收、报警等功能子模块。应用程序中,Modbus协议通信由通信子模块实现,包含CRC-16计算与验证、信息帧的编制和分解。每一条指令可以对指定地址的变频器进行操作;信息帧中包括数据的字节数、起始地址等。一般变频器只使用3个功能码,例:03H、08H、10H,分别实现数据读出、回路反馈测试和数据写入的功能。为了实现Modbus总线控制,需要预先设置变频器的操作参数:n003=2(设备起停通过总线方式控制),n004=6(输出频率由总线通信方式控制),n151~n157中完成通信参数的设置。设计中,可将变频器设置为无超时检测、频率指令单位为0.01 Hz、通信波特率为 9 600 bps、无奇偶校验、8位数据位、1位停止位、RS控制,而变频器地址可设为0~32。设置好变频器参数后,控制器可以通过RS-485总线发送通信指令,通信流程如图3所示,单片机的主站指令与变频器/智能设备的响应信号之间具有一定的时间间隔,在程序中可通过循环延时语句实现[2]。
图3 Modbus总线通信流程图
开发的Modbus总线控制变频调速系统应用于水泥配料生产中。在该生产线上,以单片机为核心的控制器通过Modbus总线控制4台调速秤配料机的变频器,这4台变频器通过变速机构和电机分别控制各变频器的频率。实践表明,Modbus总线通信、变频调速和液晶显示技术的应用,减少了控制系统的布线数量,提高了系统集成度和可靠性,水泥配料成分可在大范围内随意调控,其良好的用户界面大大改善了设备的操作性能,降低了成本,提升了产品的市场竞争力。
[1]徐涛,闫科,赵景林.基于MODBUS协议的串行接口实现与DCS通讯[J].工业控制计算机,2002,15(3):56-57.
[2]潘洪跃.基于MODBUS协议通信的设计与实现[J].计量技术,2002(4):35-36.
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!