[西门子] 不同项目下的S7-1200之间的开放式以太网通信实现数据交换

[复制链接]
查看258 | 回复0 | 2024-6-6 10:22:05 | 显示全部楼层 |阅读模式
>
一、

要完成的功能任务



1.S7-1200 CPU Clinet 将发送数据区 DB4 块中的 10 个字节的数据发送到 S7-1200 CPU server 的接收数据区 DB4 块中;
2.S7-1200 CPU Clinet 将S7-1200 CPU server 发送数据区 DB5 块中的 10 个字节的数据读到 S7-1200 CPU Clinet 的接收数据区 DB5 块中。



二、

硬件设备



1.CPU 1214C DC/DC/DC,V4.4
2.CPU 1214C DC/DC/DC,V4.4



三、

软件



西门子plc编程软件:TIA 博途V16



四、

实现方法


01
使用 STEP7 V16 创建一个新项目,并通过“添加新设备”组态 S7-1200 站 client V4.4,选择 CPU1214C DC/DC/DC V4.4(client IP:192.168.0.102),建立新子网;再打开博图V16创建一个新项目,组态另一个S7-1200站 server v4.4,选择 CPU1214C DC/DC/DC V4.4(server IP:192.168.0.105),建立新子网,如图1所示:


图1


02
首先编写客户端程序:打开OB1编程界面,选择指令集下的通信-开放式用户通信-其它下的TCON建立连接通信指令,将其拖拽到程序段一;点击指令框内的组态图标,组态与服务器的通信参数,如图2所示:

图2


03
组态完成后,正确填写TCON指令的输入输出管脚。REQ管脚为沿指令触发,ID号是唯一的,如果还建立了其它的开放式以太网通信或MODBUS-TCP通信,ID号不能重复。CONNECT管脚的实参在组态界面连接数据的新建来指定,如上图2中的PLC_1_Connection_DB。


当新建好后,该DB会自动添加到CONNECT管脚。指令管脚的详细说明可用鼠标点住指令框,按键盘上的F1键查看帮助。接下来新建两个DB块,分别是发送DB块和接收DB块,再将发送指令和接收指令放置到程序编辑区,填好相应管脚。TSEND指令用沿指令触发,TRCV指令当连接成功建立后,可一直处于接收状态,因此EN_R管脚也可填TRUE,如图3所示:

图3


04
编写服务器程序:与客户端程序类似,需调用连接、发送以及接收指令,只是组态不同,如图4所示:

图4


05
将客户端、服务器程序分别下载到对应的1214PLC,分别接通两边程序中的M10.0,如无错误,通信即可正常建立。有无正常建立可通过点击TCON指令框内的查看通信图标查看,如图5上图中的红色箭头所指,通信状态如图5下图所示:

图5


06
在客户端建立新的监控表,输入发送数据块DB4的地址,并输入数据,点在线监控,服务器端打开接受数据块DB4,点在线监控,看是否能收到数据。如图6所示:

图6


07
由图6可以看到,客户端发送的数据服务器已收到,由服务器发送给客户端操作是一样的,在此不再赘述。为了能给大家一个直观的认识,服务器在收到数据后,将DB4.DBB0传给QB0,观察QB0指示灯是否点亮,如图7所示:

图7



五、

总结



以上为实现在不同项目下两台S7-1200的开放式以太网通信的方法,开放式以太网通信的优点是可以和支持开放式以太网协议的第三方PLC或其它设备通信,编程相对简单,可实现大数据量交换,缺点是因基于数据流通信,没有包头和包尾,可能会接收到无用的数据。







免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则