S7-1200 CPU 与 S7-300 CP ISO on TCP 通信(S7-1200 作为客户端,S7-300 使用 Step7)

7-1200 CPU 与S7-300 CP ISO on TCP通信(S7-1200作为客户端,S7-300使用Step7)

S7-1200 CPU 与S7-300之间通过ISO on TCP 通信,需要在双方都建立连接,连接对象选择"Unspecified"。

所完成的通信任务为:

① S7-1200将DB3里的100个字节发送到S7-300的DB2中

② S7-300将输入数据IB0发送给S7-1200的输出数据区QB0。

S7-1200 CPU 的组态编程

1. 使用STEP 7 Basic V10.5 软件新建一个项目

在STEP 7 Basic 的"Portal View"中选择 "Create new project" 创建一个新项目

2. 添加新设备

然后进入 "Project view",在 "Project tree" 下双击"Add new device" ,在对话框中选择所使用的S7-1200 CPU添加到机架上,命名为 PLC_1。

3. 为 PROFINET 通信口分配以太网地址

在 "Device View" 中点击 CPU 上代表PROFINET 通信口的绿色小方块,在下方会出现PROFINET 接口的属性,在 "Ethernet addresses" 下分配IP 地址为 192.168.0.1 ,子网掩码为255.255.255.0。

4. 在 S7-1200 CPU 中调用"TSEND_C"通信指令并配置连接参数和块参数

① 在主程序中调用发送通信指令,进入"Project tree" > "PLC_1" > "Program blocks" > "Main" (OB1)主程序中,从右侧窗口 "Instructions" > "Extended Instructions" > "Communications" 下调用 "TSEND_C" 指令,并选择 "Single Instance" 生成背景 DB块。然后单击指令块下方的 "下箭头" ,使指令展开显示所有接口参数。

② 然后,创建并定义发送数据区 DB 块。通过 "Project tree" > " PLC_1" > "Program blocks" > "Add new block" ,选择 "Data block" 创建 DB 块,选择绝对寻址,点击"OK"键,定义发送数据区为 100个字节的数组。

③ 根据所使用的参数创建符号表,如图1所示。

![A screenshot of a computer

Description automatically generated](https://i-blog.csdnimg.cn/img_convert/bdbdec1b47d5f32d0a612b02bc194542.png)

图1. 创建所使用参数的符号表

④ 配置连接参数,如图2所示。

![A screenshot of a computer

Description automatically generated](https://i-blog.csdnimg.cn/img_convert/66f1375bb49dfa782509fd7bc7a6acdb.png)

图2. 配置连接参数TSEND_C connection

⑤ 配置块接口参数,如图3所示。

![A screenshot of a computer

Description automatically generated](https://i-blog.csdnimg.cn/img_convert/5caffd6953f67458cb25ac600ce6fb9b.png)

图3. 配置 TSEND_C 块参数 TSEND_C block parameter

5. 调用"TRCV"通信指令并配置块参数。

因为与发送使用的是同一连接,所以使用的是不带连接的发送指令"TRCV",连接"ID"使用的也是"TSEND_C"中的"Connection ID"号,如图4所示。

![A screenshot of a computer

Description automatically generated](https://i-blog.csdnimg.cn/img_convert/9b62d70ac4b65295b007dfcc3dbdf223.png)

图4. 配置 T_RCV 块参数 TRCV block parameter

S7-300 CPU 的 ISO on TCP 通信的组态编程

1. 使用STEP 7 软件新建一个项目并进行硬件组态

创建完新项目,在项目的窗口下,右键菜单里,选择"Insert New Object">"SIMATIC 300 Station" ,插入一个S7-300 站。

为了编程方便,我们使用时钟脉冲激活通信任务,在CPU的"Properties">"Cycle/Clock Memory"中设置,如图5所示。

![A screenshot of a computer

Description automatically generated](https://i-blog.csdnimg.cn/img_convert/18592a2a68aeb26ca79e8bdfe6131283.png)

图5. 设置时钟脉冲

每一个时钟位都按照不同的周期/频率在0和1之间切换变化,见表1。

表1. 时钟位频率

|------------|-----|-------|---|------|-----|-----|-----|-----|
| | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| 周期(S) | 2 | 1.6 | 1 | 0.8 | 0.5 | 0.4 | 0.2 | 0.1 |
| 频率(Hz) | 0.5 | 0.625 | 1 | 1.25 | 2 | 2.5 | 5 | 10 |

2. 配置以太网模块

进入"HW Config"中,组态所使用的 CPU 及"CP343-1"模板。并新建以态网 Ethernet (1) ,配置"CP343-1"模板IP 地址为:192.168.0.2,子网掩码为: 255.255.255.0 。如图6所示。配置完硬件组态及属性,编译存盘并下载所有硬件组态。

![A computer screen shot of a computer

Description automatically generated](https://i-blog.csdnimg.cn/img_convert/770c6a1aeb529335a46b7b023f9733f8.png)

图6. S7-300 硬件配置

3. 网络组态

打开 "NetPro" 配置网络,选中 CPU,在连接列表里建立新的连接并选择连接对象和通信协议,如图7所示。

![A screenshot of a computer

Description automatically generated](https://i-blog.csdnimg.cn/img_convert/ae466e2f51e1dfc28d6ffb19bbcbf610.png)

图7. 创建新的连接并选择 ISO-on-TCP 协议

这时会跳出通用信息,如图8所示。

![A screenshot of a computer

Description automatically generated](https://i-blog.csdnimg.cn/img_convert/9b1f51c4458abf69de8194ae79b0b10e.png)

图8. 通用信息

然后,进入"Addresses"配置通信双方的IP 地址及TSAP 地址,如图9所示。

![A screenshot of a computer

Description automatically generated](https://i-blog.csdnimg.cn/img_convert/022b9eb8f852c0c99b6706df7a24d7b1.png)

图9. 配置通信的IP 地址及TSAP 地址

配置完连接并编译存盘后,将网络组态下载到S7-300 CPU中。

4. 软件编程

在OB1中,从"Libraries">"SIMATIC_NET_CP">"CP300"下,调用FC5(AG_SEND)、FC6(AG_RECV)通信指令。创建接收数据区为 DB2,定义成100个字节的数组。

|--------|--------------------------|--------------------------|
| CALL " AG_RECV" || //调用FC6 |
| ID | :=1 | //连接号,要与连接配置列表中一致,见图1-51 |
| LADDR | :=W#16#100 | //CP的地址,要与配置中一致,见图1-51 |
| RECV | :=P#DB2.DBX 0.0 BYTE 100 | //接收数据区 |
| NDR | :=M10.0 | //为1时,接收到新数据 |
| ERROR | :=M10.1 | //为1时,有故障发生 |
| STATUS | :=MW12 | //状态代码 |
| LEN | :=MW14 | //接收到的实际数据长度 |

|--------|------------|-----------------|
| CALL "AG_SEND" || //调用FC5 |
| ACT | :=M0.2 | //为1时,激活发送任务 |
| ID | :=1 | //连接号,要与连接配置中一致 |
| LADDR | :=W#16#100 | //CP的地址,要与配置中一致 |
| SEND | :=IB0 | //发送数据区 |
| LEN | :=1 | //发送数据的长度 |
| DONE | :=M10.2 | //为1时,发送完成 |
| ERROR | :=M10.3 | //为1时,有故障发生 |
| STATUS | :=MW16 | //状态代码 |

监控通信结果

下载S7-1200和S7-300中的所有组态及程序,监控通信结果,如图10图11所示。

在S7-1200 CPU中向DB3中写入数据:"11"、"22"、"33",则在S7-300中的DB2块收到数据也为"11"、"22"、"33"。

在S7-300 CPU中,将"2#1111_1111"写入IB0,则在S7-1200 CPU中QB0中收到的数据也为"2#1111_1111"。

![A screenshot of a computer

Description automatically generated](https://i-blog.csdnimg.cn/img_convert/e45fbea3919e33d70c9a3883d82bba91.png)

图10. S7-1200监控表

![A screenshot of a computer

Description automatically generated](https://i-blog.csdnimg.cn/img_convert/a76c2d6538dee35aac15db9d2f03240a.png)

图11. S7-300 变量表

相关推荐
2501_916008891 小时前
iOS App抓包工具排查后台唤醒引发请求异常
websocket·网络协议·tcp/ip·http·网络安全·https·udp
JeffersonZU2 小时前
Linux/Unix 套接字Socket编程(socket基本概念,流程,流式/数据报socket,Unix domain socket示例)
linux·c语言·tcp/ip·udp·unix·gnu
2501_915918414 小时前
iPhone 抓包工具有哪些?多工具对比分析优缺点
websocket·网络协议·tcp/ip·http·网络安全·https·udp
工控小楠5 小时前
Modbus TCP转Profinet网关实现视觉相机与西门子PLC配置实例研究
modbustcp·网络协议·tcp/ip·profinet
半路_出家ren5 小时前
传输层协议TCP、UDP
网络协议·tcp/ip·udp·tcp
ZeroNews内网穿透5 小时前
服装零售企业跨区域运营难题破解方案
java·大数据·运维·服务器·数据库·tcp/ip·零售
游戏开发爱好者88 小时前
iOS 出海 App 安全加固指南:无源码环境下的 IPA 加固与防破解方法
websocket·网络协议·tcp/ip·http·网络安全·https·udp
2501_915921439 小时前
苹果App上架流程:不用Mac也可以上架的方法
websocket·网络协议·tcp/ip·http·网络安全·https·udp
珹洺13 小时前
计算机网络:(八)网络层(中)IP层转发分组的过程与网际控制报文协议 ICMP
tcp/ip·计算机网络·智能路由器