- {{item.name}}
使用 S7-PLCSIM 实现两个 S7-1200 G2 之间的 TCP 通信
- 0
- 72
本示例中使用了 2 个 S7-1200 G2 CPU,CPU 之间采用 TCP 通信。
CPU 1 为 CPU 1212C,其IP 地址为 192.168.0.212;
CPU 2 为 CPU 1214C,其 IP 地址为 192.168.0.214。
通信任务
CPU 1 作为 TCP 通信客户端,调用“TCON”、“TSEND”指令将 CPU 1实时时钟传送到 CPU 2。
CPU 2 作为 TCP 通信服务器,调用“TCON”、“TRCV”指令接收 CPU 1发送过来的数据。
同一项目中两个 CPU 之间 TCP 通信与不同项目中两个 CPU 之间通信相比组态步骤更为简单,故本文只介绍不同项目中两个 CPU 之间 TCP 通信。
CPU 1 编程组态
1. 设备组态
使用 TIA 博途软件创建新项目,并将 CPU 1212C 作为新设备添加到项目中。在设备视图的巡视窗口中,将 CPU 属性作如下修改:
- “PROFINET 接口”属性中为 CPU“添加新子网”,并设置 IP 地址(192.168.0.212)和子网掩码(255.255.255.0)。
- “系统和时钟存储器”属性中激活“启用时钟存储器字节”,并设置“时钟存储器字节的地址 ( MB0 )”。
- “时间”属性中“本地时间”设置为“(UTC + 08:00)北京,重庆,中国香港特别行政区,乌鲁木齐”。
2. 编程
(1)在程序块添加一个数据块 “MyTcp”,并在数据块中定义一个数据类型为 DTL 变量 “localTime” ,该变量用于存储本地 CPU 的实时时钟,建议数据块“MyTcp”为标准访问的数据块。在主程序 OB 1 中调用 “RD_LOC_T” 指令,读取 CPU 本地时间并存储在 “MyTcp”.localTime 变量中。
(2)主程序 OB 1 中调用 “TCON” 指令,建立 TCP 连接。点击 “TCON” 指令右上角“开始组态”按钮,在巡视窗口中选择“TCON”指令的“属性 ﹥ 组态 ﹥ 连接参数”,并配置 TCP 连接属性,如图 1-1 所示。
图1-1 组态 TCP 连接
①如果通信伙伴并非在同一项目,则选择“未指定”;
②“连接数据”选择“新建”时,系统将自动创建一个连接数据块“TcpConnection”;
③“连接类型”选择为“TCP”;
④设置伙伴方 IP 地址;
⑤选择本地“主动建立连接”,此时CPU 1 是客户端;
⑥本地 CPU 为客户端时,则需要设置服务器侧端口。
本例中,“连接参数”的组态窗口中通信“伙伴”处选择“未指定”,如果通信双方是同一项目中同一子网下的两个设备,则通信“伙伴”处可以选择指定的通信伙伴。
注意:
TCP 通信时,如果本地 CPU 为客户端则需要指定服务器侧通信端口,本地端口无需指定,此时通信时会自动为客户端分配一个随机端口;
如果本地 CPU 为服务器则需要指定本地通信端口,无需指定伙伴端口和 IP 地址,如果不指定伙伴端口和 IP 地址,则不限定连接客户端的 IP 地址和端口号。
(3)主程序 OB 1 中调用 “TSEND” 指令,将 CPU 本地时钟发送出去,如图 1-2 所示。

图1-2 调用 TSEND 指令
①如果“LEN”=0,则将发送参数 DATA 指定的所有数据
3. 打开 PLC SIM 并下载组态和程序
CPU 1 的组态配置与编程已经完成,打开 PLC SIM 并下载组态和程序,如图1-3所示。

图1-3 PLC_1 SIM 界面
CPU 2 编程组态
1. 设备组态
使用 TIA 博途软件创建新项目,并将 CPU 1214C 作为新设备添加到项目中。在设备视图的巡视窗口中,将 CPU 属性作如下修改:
- “PROFINET 接口”属性中为 CPU“添加新子网”,并设置 IP 地址(192.168.0.214)和子网掩码(255.255.255.0)。
- “时间”属性中“本地时间”设置为“(UTC + 08:00)北京,重庆,中国香港特别行政区,乌鲁木齐”。
2. 程序编程
(1)在程序块添加一个数据块“MyTcp”,并在数据块中定义一个数据类型为 DTL 变量 “RemoteTime”,该变量用于接收 CPU 1 发送过来的实时时钟。
(2)主程序 OB 1 中调用 “TCON” 指令,建立 TCP 连接。点击 TCON 指令右上角“开始组态”按钮,在巡视窗口中选择“TCON”指令的“属性 ﹥ 组态 ﹥ 连接参数”,并配置 TCP 连接属性,如图 1-4 所示。
图1-4 组态 TCP 连接
①如果通信伙伴并非在同一项目,则选择“未指定”;
②“连接数据”选择“新建”时,系统将自动创建一个连接数据块“TcpConnection”;
③“连接类型”选择为“TCP”;
④设置伙伴方 IP 地址;
⑤选择伙伴 “主动建立连接”,本地 CPU 为服务器;
⑥本地 CPU 为服务器时,则需要指定本地端口。
(3)主程序 OB 1 中调用 “TRCV” 指令用于接收 CPU 1 发送过来的实时时钟,如图 1-5 所示。
图1-5 调用 TRCV 指令
3. 下载组态和程序
打开当前博途的 PLC SIM 并下载组态和程序,同一电脑上的两个 TIA 博途项目会打开同一个仿真软件,并生成新的 PLC SIM 如图1-6所示。

图1-6 PLC_2 SIM 界面
4. 通信状态测试
将两个 CPU 站点组态配置和程序分别下载到 CPU 1 和 CPU 2 后,即可开始对通信状态进行测试。先后上升沿信号触发服务器和客户端的“TCON”指令的输入参数 REQ,用于建立 TCP 连接。
连接建立后,就可以通过 “TSEND” 发送数据,调用 “TRCV” 接收数据,就可以将 CPU 1 实时时钟数据传送到 CPU 2,如图1-7所示。

图1-7 时钟传送
- 评论
-
分享
扫码分享
- 收藏 收藏
- 点赞 点赞
- 纠错 纠错



西门子官方商城


{{item.nickName}}