Modbus 通信协议在分布式控制系统中的应用
串口终端设备进行文本文件的传输及显示。编程时,将PC机串口与ASCII模块的RS232串口连接,运行该软件,就能在其界面上对ASCII模块进行程序编写、上传、下载和调试等工作。也可先通过WINDOWS系统的写字板编写程序,并保存为文本格式,然后再通过Hyperterminal将程序下载到ASCII模块。通信程序的主工作流程见图五。 OPTION BASE 0 //定义数组 DIM R(128),FC(128) R(48)=0:R(49)=1:R(50)=2:R(51)=3:R(52)=4:R(53)=5:R(54)=6:R(55)=7:R(56)=8 R(57)=9:R(65)=h0a:R(66)=h0b:R(67)=h0c:R(68)=h0d:R(69)=h0e:R(70)=h0f R(97)=h0a:R(98)=h0b:R(99)=h0c:R(100)=h0d:R(101)=h0e:R(102)=h0f OPEN #2,"COMU:19200,8,E,1" //设定串口参数 A%=LOC(2) //判断接收缓冲区字符 IF A%=8 THEN REX$=INPUT$(A%,#2) ………. ENDIF GOSUB *ZFCL //对信息进行分解处理 IF ST=1 THEN *JAOY ELSE *BACK //判断是否本站信息 *JAOY GOSUB *CRC //CRC循环冗余校验子程序 IF R=CRC THEN *WORK ELSE *BACK //信息校验正确判断 *WORK IF (FU=3) THEN GOTO *DJS //读功能码判断,调写操作子程序 IF (FU=6) THEN GOTO *XJS ELSE GOTO *BACK //写功能码判断,调读操作子程序 *DJS //读子程序 ……… *XJS //写子程序 ……… *CRC //CRC 校验子程序 ………. *ZFCL //字符处理子程序 ……… 由于ASCII模块支持ASCII码,而RTU则是基于二进制码的16进制字符通信方式,所以在程序编程中增加了码制转换程序。 CH5$=MID$(REX$,5,1) :CH6$=MID$(REX$,6,1) //提取字符段 VOL=ASC(CH5$)×256+ASC(CH6$) //将ASCII码字符转换十进制数 VOL$=HEX$(VOL) //将十进制数转换成十六进制字符 3、程序优化及安全措施 在ASCII模块与CPU单元数据交换程序部分,采取由ASCII模块向CPU 单元主动发送读写请求信号,CPU单元在收到请求时才执行数据交换程序的方法。这样,就缩短了PLC的扫描周期,提高了通信实时性。 在信息差错控制部分,采用了CRC-16循环冗余校验算法,该算法能使信息的差错率低于10-14以下。如果信息校验错误,程序将清除缓冲区,等待DCS信息重发。 根据生产需要,可在HMI上将现场按钮等手控设备设为无效状态,所有手、自动操作均在DCS上进行。考虑到如通信网络遭到瘫痪等严重故障时,需保证现场电气设备正常启停,又增加了通信状态定时侦测程序,在规定时间(10秒)内网络上如无信号,PLC自动将现场按钮等手控设备设为有效,同时DCS故障报警,直到网络恢复正常为止。 四、结束语 当前分布式控制系统通信网络的设备、软件及整体架构,大部分是由专业厂商生产提供的,其总体性能较好。但如前所述,它们也有系统配置可选性小、网络架构适应面窄、价格较高等缺点。笔者采用Modbus协议这一成熟通信技术,选用PLC的可编程模块,进行基于Modbus通信协议的自主程序设计,架构起本自控系统的通信网络。该网络易扩展、易维护,具有结构简单、应用灵活、编程方便、造价低廉等特点。这套系统在某化纤生产线一次投运成功,实际运行状态良好,证明其稳定可靠,能完全满足系统设计要求。到目前为止,该系统已在多个工程项目上投入使用,全部运行正常,取得了良好的经济效益。 本文创新点:采用工业领域通用的Modbus通信协议标准,利用可编程的PLC特殊功能模块,并进行通信程序设计,低成本的解决了本系统的通信架构问题,可为分布式控制系统通信网络兼容性设计的一个思路。 参考文献: 1. Modicon. Modbus Protocol Reference Guide. 1996 2. Omron. C200H-ASCII UNITS Operation Manual. 1998 3. Omron. SYSMAC CS1 Series Programmable Controllers Operation Manual. 1999 4. 横河CS3000 Reference Manual. 2001 5. 其其格 利用VC实现Modbus的两种检测方法 《微计算机信息》 2004.1 6. 刘东 循环冗余校验CRC算法分析及程序实现. 《计算机与信息技术》2002.9
部分程序代码如下:
Modbus协议 通信网络 串口通讯 可编程控制器 相关文章:
- 基于DSP和触摸屏的串行通信系统研究(07-05)
- 基于Modbus协议的智能压力传感器研发(12-20)
- Modbus协议概述(12-19)
- Modbus协议使用常见问题分析(12-19)
- MODBUS协议实现PLC“主或从通讯”的自我理解(12-19)
- Modbus协议的传输方式(12-19)