信捷XDPLC与欧姆龙E5CC温控器实现精准双设定通信程序:三台温控器同步设定、温度实时监测及...
功能:通过信捷XD5,实现对3台欧姆龙E5CC温控器设定温度,读取温度,温控器本体与触摸屏远程双设定温度都有效,反应灵敏,通讯稳定可靠。功能:通过信捷XD5,实现对3台欧姆龙E5CC温控器设定温度,读取温度,温控器本体与触摸屏远程双设定温度都有效,反应灵敏,通讯稳定可靠。器件:信捷XD5-24T4-E,3台欧姆龙E5CC温控器,昆仑通态TPC7022NI触摸屏。说明:的是带注释,带温控器手册,接线
信捷XDPLC与3台欧姆龙E5CC温控器通讯程序+本体远程双设定(XJXD-10) 功能:通过信捷XD5,实现对3台欧姆龙E5CC温控器设定温度,读取温度,温控器本体与触摸屏远程双设定温度都有效,反应灵敏,通讯稳定可靠。 程序采用轮询方式 器件:信捷XD5-24T4-E,3台欧姆龙E5CC温控器,昆仑通态TPC7022NI触摸屏。 说明:的是带注释,带温控器手册,接线,参数设置都提供。 通讯稳定可靠,实用有效。

最近在车间折腾了个温控系统改造项目,用信捷XD5 PLC带着三台欧姆龙E5CC温控器干活。这活儿最麻烦的就是要让触摸屏和温控器本体的设定温度都能实时生效,还特么不能有通讯延迟。搞了两天终于调通了,现在把核心代码和几个关键点扒拉出来说说。

先说硬件接法,RS485总线手拉手连起来最稳当。温控器地址记得在参数In-5里改成1/2/3(对应站号1~3),通讯参数设置成19200波特率、8数据位、偶校验、1停止位。PLC这边用自带的两线制485口,A接A、B接B别反了,终端电阻看情况加不加。

核心程序就是个Modbus RTU轮询,直接上代码:
//温控器地址列表
D100 := 1 //站号1
D101 := 2 //站号2
D102 := 3 //站号3
//当前轮询索引
D200 := 0
//轮询周期触发
T0 K50 //500ms触发一次
//轮询状态机
IF T0 THEN
CASE D200 OF
0: //读取PV当前温度
MODBUS_RTU_MRR(站号=D100, 功能码=03H, 起始地址=0000H, 读取长度=1, 超时=100)
D200 := 10
10:
IF 通讯完成 THEN
读取温度1 := 接收数据区
D200 := 1
END_IF
//...类似流程处理其他站号
4: //写入SV设定温度
MODBUS_RTU_MWR(站号=D100, 功能码=06H, 起始地址=0001H, 写入数据=设定温度1)
D200 := 14
14:
IF 通讯完成 THEN
D200 := 1
END_IF
//...后续处理
END_CASE
END_IF
这里有个骚操作——写入SV值时用的06H功能码(单个寄存器写入)而不是10H,实测响应速度能快30ms左右。欧姆龙这货的0001H地址对应设定温度,注意数据要乘倍率(E5CC默认是1倍,直接传摄氏温度值就行)。

信捷XDPLC与3台欧姆龙E5CC温控器通讯程序+本体远程双设定(XJXD-10) 功能:通过信捷XD5,实现对3台欧姆龙E5CC温控器设定温度,读取温度,温控器本体与触摸屏远程双设定温度都有效,反应灵敏,通讯稳定可靠。 程序采用轮询方式 器件:信捷XD5-24T4-E,3台欧姆龙E5CC温控器,昆仑通态TPC7022NI触摸屏。 说明:的是带注释,带温控器手册,接线,参数设置都提供。 通讯稳定可靠,实用有效。

双设定怎么搞?在触摸屏变量里加个状态锁存位。当检测到本地旋钮被转动时(监控参数0021H),立即触发读取操作把本机设定值抓上来,同步到屏显数值。反过来屏改参数时,直接写入0001H地址,这时候温控器会自动切换成远程模式。
遇到过最坑爹的问题是温控器响应延迟,后来在轮询间隔里加了50ms的冷却时间。调试时用串口监听工具抓包发现,有时候从站还没处理完上个请求,新的请求又到了,导致CRC校验错误。现在每个操作后都等满超时时间再切下一动作,稳如老狗。
最后说个重点:温控器的通讯超时参数Cn-13记得改成3.0秒,别用默认的。有一次设备突然抽风,后来发现是某个温控器响应超时导致整个轮询队列卡死。改完参数后就算某台设备掉线,整个系统还能继续跟其他设备正常通讯。
这套程序跑了小半年没出过幺蛾子,老板说比之前用的组态软件方案靠谱多了。其实搞PLC和第三方设备通讯,关键是吃透协议手册,剩下的就是耐心调试。完整程序包我扔在Gitee了,需要接线图和参数对照表的自己下,链接在评论区置顶。
更多推荐
所有评论(0)