西门子PLC1200怎么设计PtP通信?

2019年1月7日16:14:02 发表评论 379 阅读

STEP 7提供了一些扩展指令,使得用户程序能够使用程序中设计和实现的协议来执行点对点通信。 这些指令分为两类:

  • 组态指令
  • 通信指令

组态指令

必须先组态通信接口端口以及用于发送数据和接收数据的参数,然后才能通过用户程序执 行 PtP 通信。

可以通过设备配置或用户程序中的如下指令,对各个 CM 或 CB执行端口组态和消息组态:

通信指令

PtP 通信指令使用户程序能够与通信接口交换消息。

所有 PtP 功能都是异步运行的。 用户程序可以使用轮询架构来确定传送和接收的状态。 Send_P2P 和 Receive_P2P 可以同时执行。 通信模块和通信板根据需要对传送和接收消息进行缓冲,最大缓冲区大小为 1024 字节。

CM 和 CB 与实际的点对点设备交换消息。 消息协议位于一个缓冲区中,该缓冲区与特定通信端口交换信息。 缓冲区和端口是发送和接收指令的参数:

以下指令可用于复位接收缓冲区,以及获取和设置特定的 RS232 信号:

轮询架构

STEP 7 用户程序必须循环/周期性调用 S7-1200 点对点指令以检查收到的消息。 发送轮训可在发送结束时刻即告知用户程序。

轮询架构: 主站

主站的典型轮询顺序如下:

  1. Send_P2P指令启动到 CM 或 CB 的传送。
  2. 后续扫描期间会执行 Send_P2P指令以轮询传送完成状态。
  3. 当 Send_P2P指令指示传送完成时,用户代码可以准备接收响应。
  4. Receive_P2P 指令反复执行以检查响应。 在 CM 或 CB

收到响应消息后,Receive_P2P 指令将响应复制到 CPU 并指示已接收到新数据。

  1. 用户程序随即可处理响应。
  2. 转到第 1步并重复该循环。

轮询架构: 从站

从站的典型轮询顺序如下:

  1. 每次扫描用户程序都会执行 Receive_P2P指令。
  2. CM 或 CB 收到请求后,Receive_P2P指令将指示新数据准备就绪并将请求复制到

CPU 中。

  1. 用户程序随即处理请求并生成响应。
  2. 使用 Send_P2P指令将该响应往回发送给主站。
  3. 反复执行 Send_P2P以确保执行传送。
  4. 转到第 1步并重复该循环。 从站在等待响应期间,必须尽量频繁地调用Receive_P2P,以便能够在主站超时之前接到来自主站的传送。 要完成该任务,用户程序可以从循环 OB 调用 RCV_PTP,且循环时间应足够大,以便能在超时时间用完之前接到来自主站的传送。 如果将 OB 循环时间设置为可在主站的超时时间内执行该指令两次,则用户程序便可接到主站的传送,而不会错过任何传送。

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

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: