技术论坛

 西门子200smart与三菱FX3U plc之间的自由口通讯

返回主题列表
作者 主题
WWCWWC
至圣

经验值:71965
发帖数:8035
精华帖:145
楼主    2022-05-08 16:10:16
主题:西门子200smart与三菱FX3U plc之间的自由口通讯 精华帖 

西门子200smart与三菱FX3U plc之间的自由口通讯

  手头上正好有西门子200smart PLC及三菱FX3U PLC,趁目前稍有空闲时间,一直想着做做它们之间的自由口通讯测试,之前曾经试过几次,均失败而告终(主要问题是方法及有效检测手段不足)。趁没有做成功,心里总是有一块石头没有落地似的,再做一下测试,来感受一下失败原因,是否在这次能够找到根本原因。

测试项目:

   测试项目的内容,把西门子200 smart 的IB0的状态值,通讯自由口方式传送到三菱FX3U的Y0 ~ Y7,同样三菱FX3U的X0 ~ X7通过自由口通讯方式把状态信息传送到西门子200 smart的QB0中,实现2种不同类型的plc之间的数据交换。

数据传送方式:

 西门子 200 smart              三菱FX3U

      IB0           →          Y0 - Y7

      QB0          ←           X0 – X7

得到:I0.0 = Y0,.....I0.7 = Y7;  X0 = Q0.0,..... X7 = Q0.7。

西门子200smart侧与串口调试软件的编程测试思路:

  首先在西门子200smart侧,定义好自由口通讯的必要参数,定义发送完成中断,连接中断,在发送完成中断所连接的中断子程序中,编辑接收完成中断,在接收完成中断所连接的子程序中,继续编辑发送指令XMT,如此引成一个“闭环”的通讯循环。

  其次在三菱FX2N侧,完成对西门子200 smart侧是通讯参数设置及数据交换程序段。

程序:

定义通讯初始化:接收中断子程序;发送中断子程;在主程序调用:

将200smart的输入IB0状态值传送到VB1,通过XMT指令发送给三菱FX3U的Y0 `- Y7中表示,同样,三菱FX2N的X0 – X7状态值通过通讯传送到200 smart的RCV接收,由VB11传送到QB0的通讯过程。

先验证西门子200 smart侧的通讯状态,老方法串口调试软件伺候它非常方便,除了外部的硬件外的通讯程序部分测试非常合适,将待测试的用户程序编译、保存、下载到测试的plc中。打开串口调试软件,在方式区写入16#A 16#A,2个“A”字符,点击发送,图示:

 为测试方便,我把200smart侧的IB0修改为MB0,创建状态图表,监控通讯数据:

 

串口调试软件发送的16#A 16#A,相当于在200smart 侧的VB11 = 2#1010 1010,,同样原理,我写在200smart侧的MB0中写一个任意的数据,看串口调试软件是否也能够正确接收,假设写16#B 16#B这样的数据:

 


200smart侧的数据同样也能够传送到串口调试软件的接收区,说明通讯程序基本是正常了的,能够自动触发转换发送中断和接收中断。

三菱FX3U plc侧与串口调试软件的测试编程思路:

1)同样,定义三菱FX2N的串口通讯格式,将16#0C81写入通讯口控制的D8120中,M8161 = 1,8位数据模式;

三菱的RS指令容易理解,D100存放的是发送的数据,K1是数据长度,就是发送一个D100的数据到西门子200smart,同样道理,D200是接收数据寄存器,存放的是接收到来自西门子200smart侧IB0(测试方便起见用MB0替代)的数据。特殊继电器M8122为数据发送标志位,因为是半双工,M8122与M8123进行必要的互锁。

2)三菱的发送数据寄存器存放在D100,接收数据寄存器存放在D200(16位数据),打开串口调试软件,检测三菱FX3U侧的通讯程序:

 3)修改双方的数据看各自的窗口数据双方能够随之改变:

 

在双方窗口中改变数据,各自窗口上的数据能够随之改变,说明三菱侧的通讯也基本正常。

4)连接西门子200smart与三菱FX3Uplc的通讯口,看2个plc之间的数据交换情况:

 硬件正确连接后,能够建立起对等的数据交换,本次测试完成。

我测试拔掉通讯线,再次连接通讯线,通讯能够自动连接上。

总结:

1)之前几次的通讯验证失败的原因主要有,通讯测试手段不足,尤其是三菱FX3U测试没有正确使用串口调试软件,当出现无法通讯问题时感觉无从下手。

2)对各plc的通讯端口极性,没有得到有效的确认,数据无法通讯上时一直在看通讯程序是否出错,实际上本次测试同样也遇到了这个问题。我是在与串口调试软件测试时发现并及时处理好的。实际上,西门子200smart侧是3+  对应三菱FX3U-485-DB通讯板的SDB/RDB,西门子200smart侧的8-  对应三菱FX3U-485-DB通讯板的SDA/RDA端子。这个发现关键,我在实际测试时,出现过数据错误,或者通讯无法连接均是通讯极性没有一致引起的。

3)为匹配双方PLC之间的数据交换,我初次在西门子200smart侧的通讯数据长度没有充分考虑到,在后期建立通讯测试时,想到匹配数据长度,最后将西门子200smart侧的数据长度修改为2个字节,与三菱的数据寄存器D地址保持长度一致,当然这个并不是是否建立通讯的关键问题。

4)了解必要的双方通讯指令含义,并及时验证求证,缩小在初次调试的不确定因数。

5)为加快双方通讯数据交换,三菱侧触发M8122我修改为M8012(100mS)脉冲后数据交换明显加快。


您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。