QQ登录

只需一步,快速开始

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

[ 复制链接 ]
为什么在CPU停止再启动后,S7-300 通信进程会发生偶发错误

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

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

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

补救方法

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

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

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

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

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

注意

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

总线系统
名称
订货号
工业以太网
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



回复

使用道具 举报

快速回复 返回列表 客服中心 搜索