微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > Modbus通讯调试坎坷路

Modbus通讯调试坎坷路

时间:12-19 来源:互联网 点击:
记得第一次接触的PLC是西门子的226,当时看到老师通过这么一个灰色的大方块就能使电机/气缸/指示灯等东西执行不同的动作,感觉很神奇。

参加工作后,因西门子的变频器价格高,要使用通讯的方式与第三方的变频器进行通信,查看设备手册后,发现都支持MODBUS-RTU协议,既节约了成本又可以实现需要的功能,就它了。可是接下来问题不断,解决了PID问题,通信的问题一大堆,要么3号错误,要么6号错误,看了帮助,看了例程,才发现轮询机制没有做好,好吧,最简单的使用上个指令的完成位激活下个指令的起始位,不报错了,心中窃喜,这下可以搞定了吧,结果读不到数据,这又是为什么?一个头比两个大!看了老半天资料,灵光一闪,是不是地址不对啊,结果最终发现读取的变频器的参数的地址没有与PLC中的地址对应上,终于搞定了这个问题。成功通信,可以实现对变频器的控制,可以读写参数,使用效果良好啊,当然项目做成,得到老板嘉奖,来个自驾游,放松下心情,老板还是不错滴!

还有一次调试西门子PCS7系统,使用的是S7-400FH,需要MODBUS通信,采购了CP341和硬狗,写好CFC程序,当然轮询机制必须没问题啊,结果调试的时候不能和第三方仪表通信,奇怪啊,检查接线和程序,没问题,检查第三方仪表,可以用MODSCAN读到数据,百思不得其解啊!

后来实在没办法,拆了,换一个,结果拆下来的时候,突然瞄到CP341后面缺了点什么,晕菜,硬狗呢?装好,搞定,看到了让人兴奋的指示灯的交替闪烁。窃喜后,在DB块中修改个地址参数,继续联机通信,傻眼了,不能通信了,一个指示灯常亮,这又是为什么?好吧,同事说是不是程序有问题?重新写,建好两个DB块,通信,结果没有问题,修改了一个DB块中的地址参数,问题又来了,无奈只能求助于西门子工程师,原来是没有在更改DB块后进行数据块更新。

所以总结了下:

1:进行MODBUS通讯时要做好软件及硬件的准备工作。首先软件MODSCAN,MODSIM软件,也有用VSPD的;硬件部分:我们一般都使用笔记本那就需要准备USB-RS232的串口线,我一般用Z-TEK的,然后就是RS232-RS485的模块,我一般会用MOXA的,有人问买那么贵的干什么,我有惨痛教训啊,在实验室环境下用一般的模块没有问题,可以通讯,但是有时在现场就出问题了。

2:第三方设备通讯参数,特别是地址要搞清楚,然后就是西门子的通讯程序必须做好,注意不管是200还是300、400PLC都要做好轮询机制,300、400PLC需要配置硬件狗。接线问题就带过吧,注意屏蔽等问题,防止电磁干扰等。

3:关于冗余PLC,使用CP341进行驱动下载时,特别要注意:RACK1的CPU需要断电,RACK0 的CPU要处于STOP位置,才能下载。

4:关于300、400PLC中对通讯程序的DB块进行参数修改后必须进行数据更新,方法:“视图”--切换为“数据视图”---“编辑”---“初始化数据块”,然后将修改后的程序下载。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top