除了S7-200系列PLC之间可以进行自由口通信,S7-200系列PLC还可以与其他品牌的PLC、变频器、仪表和打印机等进行通信。要完成通信,这些设备应有RS-232C或者RS-485等形式的串口。西门子S7-200与三菱的FX系列PLC通信时,采用自由口通信,但三菱公司称这种通信为“无协议通信”,内涵实际上是一样的。
以CPU 226CN与三菱FX2N-32MR自由口通信为例,讲解S7-200系列PLC与其他品牌PLC或者之间的自由口通信。
【例6-6】有两台设备,设备1的控制器是CPU 226CN,设备2的控制器是FX2N-32MR,两者之间为自由口通信,实现设备1的I0.0起动设备2的电动机,设备1的I0.1停止设备2的电动机的转动,请设计解决方案。
【解】
1.主要软硬件配置
①1套STEP 7-Micro/WIN V4.0 SP9和GX Developer 8.6。
②1台CPU 226CN和1台FX2N-32MR。
③1根屏蔽双绞电缆(含1个网络总线连接器)。
④1台FX2N-485-BD。
⑤1根PC/PPI电缆。
两台CPU的接线如图6-47所示。
【关键点】网络的正确接线至关重要,具体如下:
①CPU 226CN的PORT0口可以进行自由口通信,其9针的接头中,1号引脚接地,3号引脚为RXD+/TXD+(发送+/接收+)公用,8号引脚为RXD-/TXD-(发送-/接收-)公用。
②FX2N-32MR的编程口不能进行自由口通信,因此本例配置了一块FX2N-485-BD模块,此模块可以进行双向RS-485通信(可以与两对双绞线相连),但由于CPU 226CN只能与一对双绞线相连,因此FX2N-485-BD模块的RDA(接收+)和SDA(发送+)短接,SDB(接收-)和RDB(发送-)短接。
图6-47 接线图
③由于本例采用的是RS-485通信,所以两端需要接终端电阻,均为110Ω,CPU 226CN端未画出(由于和PORT0相连的网络连接器自带终端电阻,有关内容在后面会详细讲解),若传输距离较近时,终端电阻可不接入。
2.编写CPU 226CN的程序
CPU 226CN中的主程序如图6-48所示,子程序如图6-49所示,中断程序如图6-50所示。
图6-48 主程序
【关键点】自由口通信每次发送的消息最少是一个字节,本例中将起停消息存储在VB101的V101.0位发送出去。VB100存放的是发送有效数据的字节数。
(www.xing528.com)
图6-49 子程序
图6-50 中断程序
3.编写FX2N-32MR的程序
(1)无协议通信简介
1)RS指令格式。RS指令格式如图6-51所示。
图6-51 RS指令格式
2)无协议通信中用到的软元件。无协议通信中用到的软元件见表6-15。
表6-15 无协议通信中用到的软元件
3)D8120字的通信格式。D8120的通信格式见表6-16。
表6-16 D8120的通信格式
(续)
(2)编写程序
FX2N-32MR中的程序如图6-52所示。
图6-52 程序
实现不同品牌的PLC的通信,确实比较麻烦,要求读者对两种品牌的PLC的通信都比较熟悉。其中有两个关键点:一是读者一定要把通信线接对;二是与自由口(无协议)通信的相关指令必须要弄清楚,否则通信是很难建立的。
【关键点】以上的程序是单向传递数据,即数据只从CPU226CN传向FX2N-32MR,因此程序相对而言比较简单,若要数据双向传递,则必须注意RS-485通信是半双工的,编写程序时要保证在同一时刻同一个站点只能接收或者发送数据。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。