Modbus 通信协议在分布式控制系统中的应用
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
加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW
或用微信扫描左侧二维码