西门子S7连接与S7-300/400/1200/1500的单边通信
发布日期:
2023-07-20

S7 通信按组态方式可分为单边通信和双边通信,单边通信通常应用于以下情况:

通信伙伴无法组态 S7 连接

通信伙伴不允许停机

不希望在通讯伙伴侧增加通信组态和程序

西门子S7连接与S7-300/400/1200/1500的单边通信

前面硬件配置不详述,配置完成后,点击快捷菜单中的Configure Network按钮进入Netpro视图。

在Netpro视图的CPU上点右键选择Insert New Connection添加新连接。

西门子S7连接与S7-300/400/1200/1500的单边通信

添加新连接

通讯伙伴选择非指定(Unspecified),通讯类型选择S7 connection。

西门子S7连接与S7-300/400/1200/1500的单边通信

选择通信伙伴和通信类型

点击OK后在弹出的属性窗口中勾选单端组态(Establish an active connection),并填写通信伙伴的IP地址,注意Local ID编号,本例保持默认值1。点击详细按钮。

西门子S7连接与S7-300/400/1200/1500的单边通信

S7连接属性

在地址详细信息对话框中填写通信伙伴CPU的机架号和槽号,如通信伙伴是S7-300/400 CPU则槽号为2,如通信伙伴是S7-1200/1500 CPU则槽号为1。点击OK。

西门子S7连接与S7-300/400/1200/1500的单边通信

S7地址详细

选中CPU,先编译再下载

西门子S7连接与S7-300/400/1200/1500的单边通信

编译下载

下载完成后,可点击“激活连接状态”按钮,查看连接状态,如下图所示,则表示组态的连接已经成功建立。

西门子S7连接与S7-300/400/1200/1500的单边通信

连接已建立

如果出现如下图所示的情况,则说明连接没有建立,请检查网线的连接、IP地址等。

西门子S7连接与S7-300/400/1200/1500的单边通信

连接未建立

编写PLC程序,调用通讯块

组态连接建立成功后,需要调用通讯功能块PUT和GET进行数据交换。S7-300用于通讯连接的功能块位于标准库中,如下图所示:

西门子S7连接与S7-300/400/1200/1500的单边通信

PUT GET指令位置

调用PUT指令,本例中本地S7-300 CPU将DB10.DBB0开始的10个字节写入通信伙伴CPU 的DB11.DBB0开始的10个字节中。

西门子S7连接与S7-300/400/1200/1500的单边通信

PUT指令

参数说明REQ上升沿触发,一次上升沿发送一次数据ID连接ID(参看图8)ADDR_1指向伙伴CPU接收地址区域SD_1指向本地CPU发送地址区域DONE发送完成(上升沿)ERROR有故障发生(上升沿)STATUS故障代码

PUT管脚说明

调用GET指令,本例中将通信伙伴CPU的DB20.DBB0开始的10个字节读入到本地S7-300 CPU的DB21.DBB0开始的10个字节中。

西门子S7连接与S7-300/400/1200/1500的单边通信

GET指令

参数说明REQ上升沿触发,一次上升沿读取一次数据ID连接ID(参看图8ADDR_1指向伙伴CPU发送地址区域RD_1指向本地CPU接收地址区域DONE接收完成(上升沿)ERROR有故障发生(上升沿)STATUS故障代码

GET管脚说明

S7-300 CPU做S7通讯的客户端时,伙伴CPU无需组态编程,准备好相应的数据区即可,如本例中的DB10和DB20。如果伙伴方是S7-1200(固件版本V4.0以上)或是S7-1500 CPU,需要在CPU属性的连接机制中勾选'允许来自远程对象的PUT/GET通信访问',如下图所示:

西门子S7连接与S7-300/400/1200/1500的单边通信

声明:部分内容来源于网络,如侵权请后台留言联系删除。