Advertisement
Advertisement Advertisement
当前位置:
AB PLC用modbus通讯
回复 | 人气 | 打印
saint86 个人主页 给TA发消息 加TA为好友 发表于:2011-12-20 10:14:03 楼主

手头上有个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 的相关知识

分享到: 收藏 回复 举报
Advertisement
Advertisement
pzw5566 个人主页 给TA发消息 加TA为好友 发表于:2011-12-20 10:40:47 1楼
 

首先,chanel2 为 9 针、非隔离的 RS-232 串口,支持所有的串行通讯协议,要检查九针头是否是按说明接线正确。用rslink组态用RS232 DF1 devices ,设置波特率 奇偶校验 停止位都要与程序里面的模块所设置的一致,modbus通讯无外于硬件接线跟modbus设置一致问题,检查无误 找个组态软件或者串口调试工具试一下,希望你能成功!

 

 

 

很多国产的plc在走modbus通讯方面做得非常好,我所用过的麦科plc就非常简单易操作

  回复 引用 举报
玻璃的心 个人主页 给TA发消息 加TA为好友 发表于:2011-12-20 11:19:08 2楼
 

我不晓得楼主是要自己编写串口通信协议还是怎么,如果只是要串口通信的话,那就只要找到你所用PLC的串口。如你课文中的罗克韦尔的Micrologix系列的的RS-232 串口,然后打开罗克韦尔的万能通信服务器rslink,用rslink组态用RS232 DF1 devices ,设置波特率 奇偶校验 停止位都要与程序里面的模块所设置的一致,就可以了!

  回复 引用 举报
saint86 个人主页 给TA发消息 加TA为好友 发表于:2011-12-20 12:16:58 3楼
 

引用 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 这两种,都是失败。

 

确认波特率,校验方式,停止位等,都设置一致,找不到具体原因,十分无奈,请达人再帮忙分析一下,非常感谢您的帮助!

 

 

 


 

  回复 引用 举报
saint86 个人主页 给TA发消息 加TA为好友 发表于:2011-12-20 12:23:01 4楼
 

引用 玻璃的心 的回复内容:我不晓得楼主是要自己编写串口通信协议还是怎么,如果只是要串口通信的话,那就只要找到你所用PLC的串口。如你课文中的罗克韦尔的Micrologix系列的的RS-232 串口,然后打开罗克韦尔的万能通信服务器rslink,用rslink组态用RS232 DF1 devices ,设置波特率 奇偶校验 停止位都要与程序里面的模块所设置的一致,就可以了!



用logix500做PLC程序;用C#开发做操作画面,串口通信协议是写在C#程序中。。

如上贴回复中所述,我的rslinx中组态RS232 DF1 devices,波特率,奇偶校验 停止位等,都与channel 2设置一样,在RSlinx中只能扫到节点00为DF1-COM1,扫不到PLC的节点。。请指教啊

  回复 引用 举报
saintpluto87 个人主页 给TA发消息 加TA为好友 发表于:2015-09-14 11:46:08 5楼
 

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端一致的通讯参数。





  回复 引用 举报
saintpluto87 个人主页 给TA发消息 加TA为好友 发表于:2015-09-14 11:52:08 6楼
 


补充一下,modbus通讯与DF1通讯,其数据格式完全不同。PLC若按DF1发来的数据包,上位机linxclassic若设置DF1driver,则linx回按照DF1的规则解包;若PLC 按modbus协议发来数据包,上位机这边必须也要按modbus的格式解包。而linxclassic不知道怎么解包。。因为他没有这个driver.


BTW,奇偶校验,波特率啊,停止位啊,,DF1 与modbus都有,但他两不是一回事。


  回复 引用 举报
saintpluto87 个人主页 给TA发消息 加TA为好友 发表于:2015-09-15 09:18:33 7楼
 

大连思攀科技有限公司

tel:0411-82289131

www.spantech.com.cn

地址:大连市高新园区科海园3层


  回复 引用 举报
疯子风云 个人主页 给TA发消息 加TA为好友 发表于:2016-04-09 20:58:32 8楼
 

1400通道0貌似是支持485通讯的

  回复 引用 举报
无锡小李 个人主页 给TA发消息 加TA为好友 发表于:2016-08-03 16:18:39 9楼
 

是的,0通道支持485通讯。电脑通讯软件用的串口软件,modbus通讯的那种软件。PLC0口用modbus rtu啊,必须的。

  回复 引用 举报
lin5979 个人主页 给TA发消息 加TA为好友 发表于:2018-01-04 16:32:01 10楼
 

0通道支持485通讯。电脑通讯软件用的串口软件,modbus通讯的那种软件。PLC0口用modbus rtu啊,必须的。

  回复 引用 举报
萧萧米 个人主页 给TA发消息 加TA为好友 发表于:2018-07-06 09:52:05 11楼
 

谢谢分享,谢谢分享!!

  回复 引用 举报
背对天下 个人主页 给TA发消息 加TA为好友 发表于:2018-07-06 11:15:36 12楼
 

积分到手天下我有

  回复 引用 举报
fuwanchao 个人主页 给TA发消息 加TA为好友 发表于:2018-07-11 15:10:14 13楼
 

积分到手 天下我有

  回复 引用 举报

相关主题
周点击排行
周回复排行
    最新求助
      Advertisement Advertisement