西门子200 smart 与富士温控仪的modbus rtu通讯案例
今天在整理年底备件库时,发现在备件箱角落中还静静的躺着一块之前用余的工程预料,一块带modbus通讯功能的富士温控仪。该温控仪是之前在300系统工程中应用过,采用的是cp341 modbus通讯的,温控仪订货号:PXR9NEY1-GWM00-C。于是,有了再次拿来做一个200 smart modbus rtu通讯验证的念头。
通讯架构:
一块经济型西门子200 smart PLC,订货号:6ES7 288-1CR60-0AA0,作为modbus rtu主站;温控仪,订货号:PXR9NEY1-GWM00-C作为modbus rtu从站。参考资料:西门子 S7-200 SMART 技术参考 V2.1版本、富士温控仪 MICRO CONTROLLER X COMMUNICATION FUNCTIONS(RS-485 MODBUS)手册英文版。
根据西门子modbus rtu通讯硬件连接要求,集成在plc侧的 RS-485通讯口,其中,3# RS-485信号B,8# RS-485信号A,富士温控仪端子1# RS485信号+,2# RS485信号-,由于是验证,用双绞导线替代屏蔽双绞电缆,相对通讯距离短,未连接终端电阻器。如果实际应用,需要在首站(主站)和末站分别安装100欧姆1/2W电阻器或按具体连接手册安装其它阻值的终端电阻器,目的是消除回波,提高通讯质量。
程序:硬件设置;连接。
1) 利用集成的RS-485作为modbus rtu通讯的主站口,调用modbus rtu主站初始化指令;调用modbus rtu读、写的MSG指令编写主站程序;
2) 将富士温控仪设置为modbus rtu通讯的从站,从站地址设置为1。将温控仪参数:STno设置为1(从站地址);CoM设置为2(无校验);PCoL设置为1(modbus通讯),这些需要与PLC侧通讯参数设置保持一致。
3) 创建一个新项目,编辑modbus rtu通讯程序:参考官方例子或F1帮助。
初始化:通讯频率9600kpbs;无校验;prot0口;超时1000mS,初始化完成标志位M0.0;错误信息MB1。
先试着给富士温控仪写入(SV值),功能码:41003的温度数据设置值:
Slave(从站地址):1#地址;
RW(读、写):1写数据;
Addr:写功能码41003;
Count:(写一个字长度的数据)一个word数据(设置SV温度值);
DataPtr:(写入数据预先存放地址)VW100中;
Done:MSG指令完成标志位;
Error:错误信息存放地址字节。
完成后,利用Done位或其它指令关闭MSG指令。
将富士温控仪按通讯要求设置,将用户程序下载到PLC,监控运行状态结果:
一个简单的modbus rtu通讯就这样做好了,有一点意思吧?创建modbus rtu通讯几个需要注意的问题:
1) 硬件连接,西门子200 smart PLC侧集成的RS-485口必须按3+;8-的信号极性连接到从站的通讯端子上,这个必须先看手册的连接图示后确认后再连接,对于有一些从站可能还需要重新断电后,设置参数才能够有效,这点对于刚刚开始做项目的同行可能会疏漏这步。
2) 从站参数的设置,对于有一些从站(第三方从站),必须理解了功能号的具体含义,是读取还是写入参数还是读取、写入共用参数,参数(功能)号是什么及作用,功能号调用是否正确并理解。
3) 编辑程序后下载测试,先看Error错误报警字节的值是否为0,通讯正常时,该错误报警字节应该是0值。“状态图表”中MB2的值为0值,说明通讯正常。
4) 通讯程序中调用的地址及库指令存储V区,注意地址的调用情况,不要重复调用,到时程序出错还是需要自己找出来麻烦的。
一个完整的modbus rtu通讯一般总不至于仅仅只有一条MSG指令吧,那么,modbus rtu的轮询机制是做工程项目的一种“标配”了。Modbus通讯以及优异的经济性,应用于对实时相应要求不高的工程项目中,能够充分体现它的经济性及便利性。
假设,还需要读取P / I的参数呢?刚刚在前不久论坛上讨论比较有热度的轮询话题,modbus rtu通讯的MSG指令错误报警值中的讨论,有网友给出了一个仅仅只调用一个MSG指令,该指令的管脚用变址方式进行,有兴趣的同行可以去看看。链接:http://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=1533543&b_id=64&s_id=83&num=36#anch。这里列举一个简单的轮询程序吧,轮询机制就是利用上一个MSG的Done(指令完成标志位)触发下一个MSG指令,引成的闭环轮询进行的。
程序:
注意:实际在温控仪上设置的参数,如P = 5.0 ,而PLC实际读取到的是P = 50,如果这个值需要更新或计算,需要根据双方通讯协议内容进行适当的算术运算或用指令转换,以获取真实的实际值,其它富士温度仪参数的读、写仍然可以按类似的步骤进行。
在实际应用中,对于一些常用的仪表参数,需要用SM0.1特殊标志位事先初始化一个相对“标准”的数据,方便用户通过人机界面等工具修改少量的工作参数。
注:富士温控仪modbus 参数手册可以到富士中国官网上注册下载应用。