为什么在CPU停止再启动后,S7-300 通信进程会发生偶发错误?

n

描述
S7 通信(PUT/GET、 USEND/URECV、BSEND/BRECV) 是需要实例(背景 DB 块)的功能块(FB)。n

CPU 经过运行-停止-运行状态变换后将可能发生以下情况。n

在 CPU S7 执行运行-停止 模式转换之前,已经开始的通信进程在此转换过程发生时并未完成。块的当前值/数据存储在背景 DB 中。执行完 停止-运行 模式转换后,背景 DB 保持当前值。虽然 DONE 位不是1(意味着上一个激活的进程并未完成),但 S7 通信会再次触发。然而,在背景 DB 中会仍然保存进程正在执行的信号。由于这种不正确的进程状态,块会终止一次进程,并且错误状态位为1(通信错误)。由于该次进程终止,通信任务的状态被重 置,因此进程的循环会成功继续。n

补救方法n

  • 在应用程序中,参数 DONE, ERROR 和 STATUS 是由块的描述决定的(见在线帮助)。对于 BSEND 块也可以通过块现有的输入来执行重启。n
  • 从 CPU 315-2 PN/DP, CPU 317 起 (包括工艺模块)和许多现在的 CPU 都可以生成非保持的 DB 块。想实现这种效果需要 CPU 支持设置 DB 块的“保持”属性。具有“非保持”属性的 DB 块是不存储在这种 CPU (例如 CPU 317 V2.1)的保持存储区的,因此每次网络重启或者每次 CPU 从停止切换到运行 DB 块都会被重置为装载值。

为什么在CPU停止再启动后,S7-300 通信进程会发生偶发错误?
图. 01n

具有“非保持”属性的 DB 块仍然会被分配占用主存储区,但是不再占用保持存储区。n

另外一种可行的方式是根据每次的情况在重启 OB 中用初始值覆盖背景 DB。n

注意

涉及到的模块包含以下 S7-300 CP:
n

总线系统
名称 订货号
工业以太网 CP343-1 6GK7343-1EX11-0XE0
工业以太网 CP343-1 6GK7343-1EX20-0XE0
工业以太网 CP343-1 6GK7343-1EX21-0XE0
工业以太网 CP343-1 6GK7343-1EX30-0XE0
工业以太网 CP343-1 IT 6GK7343-1GX11-0XE0
工业以太网 CP343-1 IT 6GK7343-1GX20-0XE0
工业以太网 CP343-1 Advanced 6GK7343-1GX21-0XE0
工业以太网 CP343-1 Advanced 6GK7343-1GX30-0XE0
工业以太网 CP343-1 Advanced (Security) 6GK7343-1GX31-0XE0
PROFIBUS CP342-5 6GK7342-5DA02-0XE0
PROFIBUS CP343-5 6GK7342-5DA03-0XE0
PROFIBUS CP342-5 FO 6GK7342-5DF00-0XE0

原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc326539.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年11月5日 下午12:03
下一篇 2021年4月12日 上午12:00

相关推荐

发表回复

登录后才能评论