STEP 7提供了一些扩展指令,使得用户程序能够使用程序中设计和实现的协议来执行点对点通信。 这些指令分为两类:
- 组态指令
- 通信指令
组态指令
必须先组态通信接口端口以及用于发送数据和接收数据的参数,然后才能通过用户程序执 行 PtP 通信。
可以通过设备配置或用户程序中的如下指令,对各个 CM 或 CB执行端口组态和消息组态:
通信指令
PtP 通信指令使用户程序能够与通信接口交换消息。
所有 PtP 功能都是异步运行的。 用户程序可以使用轮询架构来确定传送和接收的状态。 Send_P2P 和 Receive_P2P 可以同时执行。 通信模块和通信板根据需要对传送和接收消息进行缓冲,大缓冲区大小为 1024 字节。
CM 和 CB 与实际的点对点设备交换消息。 消息协议位于一个缓冲区中,该缓冲区与特定通信端口交换信息。 缓冲区和端口是发送和接收指令的参数:
以下指令可用于复位接收缓冲区,以及获取和设置特定的 RS232 信号:
轮询架构
STEP 7 用户程序必须循环/周期性调用 S7-1200 点对点指令以检查收到的消息。 发送轮训可在发送结束时刻即告知用户程序。
轮询架构: 主站
主站的典型轮询顺序如下:
- Send_P2P指令启动到 CM 或 CB 的传送。
- 后续扫描期间会执行 Send_P2P指令以轮询传送完成状态。
- 当 Send_P2P指令指示传送完成时,用户代码可以准备接收响应。
- Receive_P2P 指令反复执行以检查响应。 在 CM 或 CB
收到响应消息后,Receive_P2P 指令将响应复制到 CPU 并指示已接收到新数据。
- 用户程序随即可处理响应。
- 转到第 1步并重复该循环。
轮询架构: 从站
从站的典型轮询顺序如下:
- 每次扫描用户程序都会执行 Receive_P2P指令。
- CM 或 CB 收到请求后,Receive_P2P指令将指示新数据准备就绪并将请求复制到
CPU 中。
- 用户程序随即处理请求并生成响应。
- 使用 Send_P2P指令将该响应往回发送给主站。
- 反复执行 Send_P2P以确保执行传送。
- 转到第 1步并重复该循环。 从站在等待响应期间,必须尽量频繁地调用Receive_P2P,以便能够在主站超时之前接到来自主站的传送。 要完成该任务,用户程序可以从循环 OB 调用 RCV_PTP,且循环时间应足够大,以便能在超时时间用完之前接到来自主站的传送。 如果将 OB 循环时间设置为可在主站的超时时间内执行该指令两次,则用户程序便可接到主站的传送,而不会错过任何传送。
继续阅读

plc入门知识问答
所有PLC工程师都会关注的微信公众账号,只需输入您的问题,就会有答案
评论