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

发布时间 2023-08-08 10:26:23作者: 一杯清酒邀明月

一、要完成的功能任务

  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所示:

02

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

04

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

05

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

06

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

07

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

五、总结

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