- {{item.name}}
S7-1200 G2 和 S7-1500之间 TCP 通信—S7-1200 G2 主动方
- 0
- 55
TCP 通信示例
CPU 1 为 CPU 1212C,其IP 地址为 192.168.0.212;
CPU 2 为 CPU 1514SP-2PN,其 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. 下载组态和程序
CPU 1 的组态配置与编程已经完成,选择 CPU 下载组态和程序,如图1-3所示。

图1-3 下载界面
CPU 2 编程组态和编程
1. 设备组态
使用 TIA 博途软件创建新项目,并将 CPU 1514SP-2PN 作为新设备添加到项目中。在设备视图的巡视窗口中,将 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. 下载组态和程序
CPU 2 的组态配置与编程已经完成,选择 CPU 下载组态和程序,过程与 CPU 1 一致。
4. 通信状态测试
将两个 CPU 站点组态配置和程序分别下载到 CPU 1 和 CPU 2 后,即可开始对通信状态进行测试。先后上升沿信号触发服务器和客户端的“TCON”指令的输入参数 REQ,用于建立 TCP 连接。
连接建立后,就可以通过 “TSEND” 发送数据,调用 “TRCV” 接收数据,就可以将 CPU 1 实时时钟数据传送到 CPU 2,如图1-6所示。

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



西门子官方商城


{{item.nickName}}