S7-400H系统信息及诊断-软件 下载本文

第5章S7-400H系统信息及诊断

在生产控制中,通常需要对S7-400H系统的信息和状态进行监控,例如监控CPU的主从状态、操作状态、DP从站与主站的通信状态等信息。在程序中可以通过对状态的判断进行必要的操作,也可以将系统信息上传到HMI,便于操作及维护人员监控。通过功能块可以将系统信息读出,下面介绍读取不同系统信息调用功能块的方法。 5.1利用SFC51(SSL-ID W#16#xy71)读出H系统信息

SSL-ID (SYSTEM STATUS LIST)系统状态目录,利用SFC51可以读出在SSL-ID指定的PLC系统信息,当SSL-ID 等于W#16#0071时,表示需要读出S7-400H系统当前的状态,可以在OB1或循环中断组织块OB3X中调用,调用SFC51的例子如图5-1所示:

图5-1 调用SFC51(SSL-ID W#16#0071)例子程序

SFC51的参数解释如下,

REQ :为1是读取SZL_ID指定的系统信息,本例中M1.1为1时启动读请求。 SZL_ID :指定需要读取的系统信息,本例为W#16#71,H系统当前状态。 INDEX :本例中没有意义。

RET_VAL :调用SFC51的状态字。

BUSY : 为1时表示读进程没有完成。

SZL_HEADER:输出系统信息存储的数据记录区号及长度,结构数据类型。 DR :指定输出系统信息存储在CPU的地址区。

参数SZL_HEADER与DR的地址区在DB1中建立,如5-2所示: 图5-2 参数SZL_HEADER与DR的地址区

参数SZL_HEADER为一个结构数据,包括两个字,第一个字输出系统信息长度,例如

W#16#10表示输出16个字节,第二个字输出存储系统信息的数据记录区,例如W#16#1表

示数据记录区为1。参数DR为存储系统信息的地址区,数据类型为指针,长度必须大于参数SZL_HEADER第一个字输出的信息长度。本例中当M1.1为时,读取的系统信息存储在DB1.DBB4~DB1.DBB20 16个字节中。用户可以对16个字节长度的系统信息进行分析和处理,系统信息内容如下:

内容 长度 含义

Redinf 2 bytes 冗余信息

W#16#0011:单机 H CPU运行 W#16#0012:H系统2备1运行

Mwstat1 1 byte 状态字节1

Mwstat2 1 byte

Hsfcinfo 2 bytes SFC 90 \Bit 0:保留 Bit 1:保留 Bit 2:保留 Bit 3:保留

Bit 4:机架0中CPU的状态

=0:从 CPU =1:主 CPU

Bit 5:机架1中CPU的状态

=0:从 CPU =1:主 CPU Bit 6:保留 Bit 7:保留

状态字节2

Bit 0:同步连接状态 01:

CPU 0 和CPU 1同步 =0:不可能 =1:可能 Bit 1: 0 Bit 2::0 Bit 3:保留

Bit 4:=0:CPU没有在机架0

=1:CPU在机架0上 (冗余模式: bit 4 = 0) Bit 5:=0:CPU没有在机架1

=1:CPU在机架1上 (冗余模式: bit 5 = 0)

Bit 6:保留

Bit 7:主从切换是否从新使能

=0:否 =1:是

状态字

Bit 0:=0:从新使能没有激活

=1:从新使能激活 Bit 1:=0:从站Updating使能

=1:从站Updating没有使能 Bit 2:=0: Link-up 模式没有使能

=1: Link-up 模式使能

Bit 3:保留 Bit 4:保留

Bit 5:保留 Bit 6:保留 Bit 7:保留 Bit 8:保留

Samfehl 2 bytes 保留

Bz_cpu_0 2 bytes CPU在机架0的模式

W#16#0001:停止 (update)

W#16#0002:停止 (reset memory) W#16#0003:停止(self-initialization) W#16#0004:停止(internal) W#16#0005:启动(cold restart) W#16#0006:启动(warm restart) W#16#0007:启动(hot restart) W#16#0008:运行(solo mode)

W#16#0009:运行(redundant mode) W#16#000A:HOLD模式 W#16#000B:LINK-UP模式 W#16#000C:UPDATE模式 W#16#000D:故障 W#16#000E:自检测 W#16#000F:没有开机

Bz_cpu_1 2 bytes CPU在机架1的模式

(与 bz_cpu_0相同)

Bz_cpu_2 2 bytes 保留

Cpu_valid 1 byte 信息变量 bz_cpu_0 和 bz_cpu_1有效性

B#16#01: bz_cpu_0 有效 B#16#02:bz_cpu_1 有效

B#16#03: bz_cpu_0 和 bz_cpu_1 有效

hsync_f 1 byte 连接质量的状态 (只有mwstat2 bit 0为1时有效)

? Bit 0:上部插孔的同步模块光纤连接质量被限制 ? Bit 1:下部插孔的同步模块光纤连接质量被限制 Bit 2 到 7: 0

5.2利用SFC51(SSL-ID W#16#xy75)读出H系统可切换DP从站的信息

当SSL-ID 等于W#16#0C75时,表示需要读出S7-400H系统可切换DP从站(ET200M)的状态,SFC51可以在OB1或循环中断组织块OB3X中调用,调用SFC51的例子如图5-3所示:

图5-3 调用SFC51(SSL-ID W#16#0C75)例子程序

与读取SSL-ID W#16#xy71的方法相同,参数SZL_ID变成W#16#C75,参数INDEX为从站的诊断地址,例如从站诊断地址为8181,转换十六进制为W#16#1FF5。参数SZL_HEADER和DR结构与上例相同,读出的信息长度同样是16个字节,本例中当M1.1为时,读取的系统信息存储在DB1.DBB4~DB1.DBB20 16个字节中。用户可以对16个字节长度的DP从站信息进行分析和处理,信息内容如下: 内容 长度 含义

adr1_bgt0 1 word DP从站接口模块第一个地址区,它的主站接口模块插在机架0上:

DP主站的PROFIBUS系统ID号和从站站号。

adr2_bgt0 1 word DP从站接口模块第二个地址区,它的主站接口模块插在机架0上:

DP主站的槽号和子槽号(集成在CPU的主站模块的接口号)

adr1_bgt1 1 word DP从站接口模块第一个地址区,它的主站接口模块插在机架1上:

DP主站的PROFIBUS系统ID号和从站站号。

adr2_bgt1 1 word DP从站接口模块第二个地址区,它的主站接口模块插在机架1上:

DP主站的槽号和子槽号(集成在CPU的主站模块的接口号)

Res 2 words 保留

Logadr 1 word DP从站的诊断地址:

? Bits 0 到 14:诊断地址

? Bit 15: I/O标识符 (0 = 输入,1 = 输出)

Slavestatus 1 word 通信状态:

? Bit 0 = 1:机架0的DP主站模块不能访问从站接口模块 ? Bit 1 = 1:机架1的DP主站模块不能访问从站接口模块 ? Bits 2 到 7:保留(每一个位为0)

5.3利用SFC87读出冗余连接状态信息

S7-400H之间可以建立冗余的连接,在单一网络上,两个站建立的连接可能为4个,如图5-4所示: 图5-4 单一网络建立连接

如果网卡分别为A、B、C、D,可能的连接为A-C、 A-D 、B-C 、B-D。如果在冗余的网络上四个网卡的连接数只能为两个,以图5-4为例,如果D网卡有故障,数据可以通过A-C、B-C的连接进行通信,A-D、B-D通信故障,故障信息可以通过调用SFC87读出,连接建立之后,可以查看到建立的四个S7连接,如图5-5所示: