手头上有个PLC是AB 的micrologix系列1400,想用modbus协议与计算机进行通讯,此1400有3个接口,chanel0,chanel1,chanel2。
1、先用chanel 1 以太网通讯,把1400的chanel 2 (D型九针口)设置为 MODBUS RTU SLAVE 。
2、通过串口线连接计算机和chanel2
3、用RSlinx组态驱动,这时候不知道该组态哪种了,于是试验了 RS232 DF1 devices \ DF1 slave driver \ DH 485 UIC devices 这几种,可是都失败了。
请教一下达人,我该怎么样让计算机与1400 PLC 通过modbus RTU协议的方式进行通讯?
我的联系方式QQ 13093233 ,欢迎大家加我一起学习AB 的相关知识
引用 pzw5566 的回复内容:首先,chanel2 为 9 针、非隔离的 RS-232 串口,支持所有的串行通讯协议,要检查九针头是否是按说明接线正确。用rslink组态用RS232 DF1 devices ,设置波特率 奇偶校验 停止位都要与程序里面的模块所设置的一致,modbus通讯无外于硬件接线跟modbus设置一致问题,检查无误 找个组态软件或者串口调试工具试一下,希望你能成功! 很多国产的plc在走modbus通讯方面做得非常好,我所用过的麦科plc就非常简单易操作
我做了两种通讯试验:DF1 FULL DUPLEX 和 MODBUS RTU SLAVE
第一种DF1 FULL DUPLEX :
1、我通过以太网通讯的方式,在logix500中的channel 组态那里,把channel 2设置为DF1 FULL DUPLEX
2、用串口线连接计算机和PLC channel2
3、通过RSLINX组态 RS232 DF1 devices ,点击自动组态按钮,之后通讯成功
以上,可以通过DF1 FULL DUPLEX 的方式进行通讯。
第二种 MODBUS RTU SLAVE:
1、我通过以太网通讯的方式,在logix500中的channel 组态那里,把channel 2设置为MODBUS RTU SLAVE
2、用串口线连接计算机和PLC channel2
3、通过RSLINX组态 RS232 DF1 devices ,点击自动组态按钮,提示通讯失败,之后我用RSLINX组态 DF1 slave driver \ DH 485 UIC devices 这两种,都是失败。
确认波特率,校验方式,停止位等,都设置一致,找不到具体原因,十分无奈,请达人再帮忙分析一下,非常感谢您的帮助!
引用 玻璃的心 的回复内容:我不晓得楼主是要自己编写串口通信协议还是怎么,如果只是要串口通信的话,那就只要找到你所用PLC的串口。如你课文中的罗克韦尔的Micrologix系列的的RS-232 串口,然后打开罗克韦尔的万能通信服务器rslink,用rslink组态用RS232 DF1 devices ,设置波特率 奇偶校验 停止位都要与程序里面的模块所设置的一致,就可以了!
用logix500做PLC程序;用C#开发做操作画面,串口通信协议是写在C#程序中。。
如上贴回复中所述,我的rslinx中组态RS232 DF1 devices,波特率,奇偶校验 停止位等,都与channel 2设置一样,在RSlinx中只能扫到节点00为DF1-COM1,扫不到PLC的节点。。请指教啊
RSLinx中无支持modbus的driver,在linxclassic中建立modbus通讯是不可能的。你在linxclassic端一直建立的是DF1通讯。当在PLC端设置为DF1时,在linx端建立DF1 Driver当然就能通讯成功;而在PLC 端设置为Modbus通讯时,这时在linx端建立DF1driver,怎么可能成功呢???!!!
正确做法应该是这样:
1.你把PLC 一端设成modbus RTU SLAVe,设好通讯参数。
2.在PC端就应该安装支持modbus的软件,比如modscan32,选择与PLC端一致的通讯参数。