近期有客户咨询了山武温控器SDC35进行通信读写温度值,客户原先的程序是跟欧姆龙E5CC通信,由于期货原因更换山武SDC35,采用MODBUS RTU通信方式进行,既然客户有需求,那我们得对客户负责,因此进行这个通信的测试,设置从站编号为1。
一、硬件
1、硬件配置
FX3GA-24MT (PLC)FX3G-485-BD (通讯板)SDC35 (山武温控器)2、接线:
二、报文分析
1、SDC35读写功能码只有两种:03H与10H读取功能码03H(03H可读多个)读取报文
报文响应
写入功能码10H(10H可写入多个)
报文响应
2、查SDC35温控器MODBUS寄存器地址
从上图可以查到,读取温度地址是238Dh,写入设定温度为238Eh,所以我们可以得出报文为读取温度:01 03 23 8D 00 01 1F 5A设定温度:01 10 23 8E 00 01 02 0B BB ED 3F(设定温度值为0B BB)
三、程序设计
1、设置温控器通信参数(9600,E,8,1)
2、应用程序1)通信参数设置
2)报文指令
3)写入报文
4)读取报文
5)发送及读取
注:由于FX3GA PLC不支持CRC指令,所以CRC校验程序需要自己做,鉴于篇幅关系,校验程序不在这里说明,如有需要请联系海亿技术,可以发测试样例。
总结:
1、山武温控器SDC35功能码中没有06H(单个写入),以前用06H功能码的程序对应不了SDC35温控器,需要更换成10H,程序必须调整才可现实通信。
2、做通信程序时一定先了解对象设备的通信协议,通信报文格式,按对象设备通信要求编写程序。 |