西门子(SIEMENS)S7-400H系统信息及诊断图示

点击数:7727 发布时间:2012年7月5日 来源:

 

简介:在生产控制中,通常需要对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的例子如图51所示:
 
 51 调用SFC51(SSL-ID W#16#0071)例子程序
 
SFC51的参数解释如下,
REQ                 :为1是读取SZL_ID指定的系统信息,本例中M1.11时启动读请求。
SZL_ID            :指定需要读取的系统信息,本例为W#16#71H系统当前状态。
INDEX             :本例中没有意义。
RET_VAL        :调用SFC51的状态字。
BUSY              1时表示读进程没有完成。
SZL_HEADER:输出系统信息存储的数据记录区号及长度,结构数据类型。
DR                   :指定输出系统信息存储在CPU的地址区。
 
参数SZL_HEADERDR的地址区在DB1中建立,如52所示:
52 参数SZL_HEADERDR的地址区
 
参数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#0012H系统21运行
Mwstat1      1 byte                状态字节1
Bit 0:保留
Bit 1:保留
Bit 2:保留
Bit 3:保留
Bit 4:机架0CPU的状态
=0:从 CPU
=1:主 CPU
Bit 5:机架1CPU的状态
=0:从 CPU
=1:主 CPU
Bit 6:保留
Bit 7:保留
Mwstat2      1 byte               状态字节2  
Bit 0:同步连接状态 01
 CPU 0 CPU 1同步
=0:不可能
=1:可能
Bit 1 0
Bit 2:0
Bit 3:保留
Bit 4=0CPU没有在机架0
=1CPU在机架0
(冗余模式: bit 4 = 0)
Bit 5=0CPU没有在机架1
=1CPU在机架1
(冗余模式: bit 5 = 0)
 
Bit 6:保留
Bit 7:主从切换是否从新使能
=0:否
=1:是
 
Hsfcinfo      2 bytes              SFC 90 "H_CTRL"状态字
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#000AHOLD模式
W#16#000BLINK-UP模式
W#16#000CUPDATE模式
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#02bz_cpu_1 有效
B#16#03: bz_cpu_0 bz_cpu_1 有效
hsync_f     1 byte                 连接质量的状态 (只有mwstat2 bit 01时有效)
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的例子如图53所示:
 53 调用SFC51(SSL-ID W#16#0C75)例子程序
 
与读取SSL-ID W#16#xy71的方法相同,参数SZL_ID变成W#16#C75,参数INDEX为从站的诊断地址,例如从站诊断地址为8181,转换十六进制为W#16#1FF5。参数SZL_HEADERDR结构与上例相同,读出的信息长度同样是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:机架0DP主站模块不能访问从站接口模块
Bit 1 = 1:机架1DP主站模块不能访问从站接口模块
Bits 2 7:保留(每一个位为0)
 
 
5.3利用SFC87读出冗余连接状态信息
S7-400H之间可以建立冗余的连接,在单一网络上,两个站建立的连接可能为4个,如图54所示:
54 单一网络建立连接
 
如果网卡分别为ABCD,可能的连接为A-C A-D B-C B-D。如果在冗余的网络上四个网卡的连接数只能为两个,以图54为例,如果D网卡有故障,数据可以通过A-CB-C的连接进行通信,A-DB-D通信故障,故障信息可以通过调用SFC87读出,连接建立之后,可以查看到建立的四个S7连接,如图55所示:
 55 冗余的网络连接
 
从上到下的连接数定义为0123,通过SFC87的调用同时可以监控主连接和备有的连接数。SFC87可以在OB1或循环中断组织块OB3X中调用,调用的例子如图56所示:
 56 调用SFC87例子程序
 
SFC87的参数解释如下,
REQ         :为1时,诊断任务激活。
MODE      :操作模式。操作模式有四种:
                    W#16#0  不传送连接状态到数据接收区,只传送确认信息到操作系统。
                     W#16#1 传送连接状态到数据接收区,传送确认信息到操作系统。
W#16#2  只在连接状态改变时传送连接状态到数据接收区,传送确认信息到操作系统。
W#16#3 只传送连接状态到数据接收区,不传送确认信息到操作系统。
 
RET_VAL :调用SFC87状态返回值。
BUSY       :任务没有完成。
N-CON     :指示上一次连接状态(DIS_PCON)变化的连接数。冗余连接可以建立多个,这里指其中一个连接。
CON_ARR:连接状态接收区。以CPU最大的连接数计算,每一个连接占用八个字节。本例以CPU417-4H为例,CPU的连接数为64个,每一个连接需要占用八个字节,总共512个字节。如果连接状态输出区小,在RET_VAL值中将有错误信息。
参数CON_ARR其实是一个数组变量,每一个数组单元对应CPU的一个连接,数组的单元由一个八个字节的结构变量组成,表示每一个连接的状态。输出八个字节的连接状态含义如下:
 
内容                长度                  含义
CON_ID          WORD             NETPRO中组态的连接号,输出W#16#FFFF表示连接没有配置,CON_ARR[i].DIS_PCON被置位表示连接被从新配置或被删除。
STAT_CON BYTE               S7连接或S7冗余连接当前状态,可能的输出值:
                                          B#16#00S7连接没有建立。
B#16#10S7冗余连接没有建立。      
B#16#01S7连接正在被建立。                                       B#16#11S7冗余连接正在被建立。
B#16#02S7连接被建立。
 B#16#12S7冗余连接被建立,但是连接没有冗余(例如D
信处理器故障,只能建立A-CB-C连接)。      
B#16#13S7冗余连接被建立
PROD_CON BYTE             当前正在运行连接的子连接,可能的值为0123
STBY_CON    BYTE             备用连接的子连接,可能的值为0123B#16#FF表示没
有备份连接,只有S7冗余连接有备用连接。
DIS_PCON BOOL                CON_ARR[i].STAT_CON输出值由 W#16#12 -> W#16#13
W#16#13 -> W#16#12转变后被置1。其他状态的变化不作考虑。当 MODE=B#16#01 02时,状态输出到接收区CON_ARR后该位被复位;当 MODE=B#16#03时,该位不变化。
RES0               BYTE                 保留(B#16#00)
RES1               BYTE                 保留(B#16#00)
 
5.4利用SFC90控制H系统的连接状态和检测
当冗余CPU其中一个出现故障,这时只有一个CPU工作,更换故障的CPU上电后,需要向主CPU发送link-up请求,主CPU检测到link-up请求,UpdateCPU,从CPU进入工作状态。link-upUpdate过程将影响主CPU对快速过程的处理,例如在Update过程中信号状态的变化不能被识别(执行link-upUpdate的时间参考H手册),在这种情况下,通过SFC90可以终止link-upUpdate过程,快速过程执行完成后再使能link-upUpdate过程,通过调用SFC90还可以使H-CPU执行对数据存储区的检查,SFC90OB1或循环中断组织块OB3X中调用,调用的例子如图57所示:
 57 调用SFC90例子程序
SFC90的参数解释如下:
REQ            :为1时,控制任务激活。
MODE         :操作模式。操作模式有七种:
   B#16#3   取消Link-up过程。
                        B#16#4 使能Link-up过程。
B#16#1   取消Updating过程。
B#16#2   使能Updating过程。
B#16#20 取消在SUBMODE中指定的循环自检测部分。一个自检测部分只能取消一次。
B#16#21 添加在SUBMODE中指定的循环自检测部分。一个自检测部分在取消后才能添加。
B#16#22 立即执行在SUBMODE中指定的自检测部分。
 
SUBMODE :操作子模式。操作子模式有六种:
0 SP7 – ASIC – 检测
1 Code 存储器检测
2 Data存储器检测
操作系统代码校验和检测
4 Code 块校验和检测
冗余操作中对数据块、M区、计数器、计数器的比较
 
RET_VAL :调用SFC90状态返回值。
BUSY       BUSY=1指示任务没有完成。
 
5.5利用FC125监控DP从站工作状态
在程序中调用FC125可以判断系统中DP从站和模块的错误。它可以检测到丢失和故障的从站,S7-400H具有冗余的PROFIBUS总线,所以必须在CPU中调用2次,分别监控两条PROFIBUS(通过参数DP_MASTERSYSTEM识别)总线上的从站。FC125需要在OB1中调用,在OB1中调用的程序如图58所示:
 58调用FC 125例子程序
 
下面对每个参数进行说明。
CHECK_ACTIVE           :为1时开始检测从站。
EXTERNAL_DP_INTERFACE :选择DP主站的接口,0表示集成在CPU上的DP主站,1表示外部DP主站接口,如CP443-5等。
DP_MASTERSYSTEM        :PROFIBUS的ID号,在硬件组态中可以查看到PROFIBUS的ID号。 H站有两条PROFIBUS网络,需要调用FC125两次,分别赋值两个PROFIBUS的ID号,数据类型为INT。
DATA_FIELD             :50个字节的数据区,仅供FC125内部使用,数据类型为POINTER。
SUM_SLAVES_DIAG        :从站诊断的总数,数据类型为INT。
LIST_SLAVES_NOT_PRESENT:检查到丢失的从站(软件已经组态但是现场没有连接硬件),16个字节的数据区,每一个数据位对应一个从站,置1表示一个从站丢失,如果丢失的从站返回或维修好,相对应的位复位。数据类型为POINTER。
LIST_SLAVES_ERROR      : 故障的从站(部分模块有故障,其他模块可以连续运行),16个字节的数据区,每一个数据位对应一个从站,置1表示一个从站故障,如果故障的从站返回或维修好,相对应的位复位。数据类型为POINTER。
RETVAL                 :调用FC125时的状态返回值,数据类型为INT。
BUSY                   :为1表示当前正在执行。
 
例如,本例中检查到丢失的从站地址区为DBB52~DBB67 16个字节,每一字节8个位,每一个位表示一个从站,如果位被置1,表示从站丢失。图5-9为从站编号的分配表,注意字节与站号排列次序:
 
59从站编号的分配表
 
在编程界面下选择菜单栏中PLC->Monitor/Modify Variables,如图5-10所示:
510打开变量监控表
 
 
点击工具栏中的 ,观察在线诊断结果,如图5-11所示:
 511监控变量
 
在第1栏中,显示ID1的PROFIBUS没有检测到的从站为3,4号从站。
在第3栏中,显示ID2的PROFIBUS 没有检测到的从站为3,4号从站。
通过FC125可以获得故障的从站,从而排除故障。同时数据存储区可以作为接口被其它程序读取和调用(如WINCC),更直观地在界面中显示故障从站和错误信息。
调用版本不同的FB125块可能会检测不到故障的从站
 
5.6利用OB块诊断S7-400H系统
通过组织块OB70OB72OB73中的临时变量可以对S7-400H系统进行诊断,以OB70为例介绍诊断信息的读取方法。OB70I/O冗余错误,当DP主站错误、从站接口模块错误以及主站连接从站I/O的更改都会调用OB70。在程序中建立OB70,打开OB70可以看到接口参数,如图512所示:
 512  OB70接口参数
 
接口参数解释如下:
变量             类型    描述
OB70_EV_CLASS    BYTE    事件等级和ID:
·B#16#72: 离开事件(故障清除)
·B#16#73: 进来事件(出现故障)
OB70_FLT_ID      BYTE     故障代码(可能的值:B#16#A2, B#16#A3)
OB70_PRIORITY   BYTE     优先级;在STEP7硬件组态中可以分配
OB70_OB_NUMBR    BYTE     OB (70)
OB70_RESERVED_1 WORD     保留
OB70_INFO_1      WORD     与错误代码有关
OB70_INFO_2      WORD     与错误代码有关
OB70_INFO_3      WORD     与错误代码有关
OB70_DATE_TIME DATE_AND_TIME OB块调用的时间
 
下列事件触发OB70的调用:
OB70_EV_CLASS    OB70_FLT_ID   OB70开始事件
B#16#72                   B#16#A2            DP主站故障
B#16#73/B#16#72     B#16#A3         冗余的DP从站故障/清除
 
故障代码B#16#A2, B#16#A3的描述如下:
 
故障代码                         描述
·B#16#A2-                   
OB70_INFO_1                            有故障DP主站的逻辑地址
OB70_INFO_2                            保留
OB70_INFO_3     0 to 7               保留
8 to 15             有故障DP主站的系统ID
·B#16#A3
OB70_INFO_1                            DP主站的逻辑地址
OB70_INFO_2                            有故障DP从站:
0 to 14              S7从站的逻辑地址或其他DP从站的诊断地址
                               15                     I/O识别,从站的数据类型
OB70_INFO_3                              有故障DP从站:
 0 to 7                站号
8 to 15               主站的系统ID
 
如果触发OB70调用的事件出现,可以将事件信息传送到全局变量(例如M数据区)中进行分析,OB70程序例子如图513所示:
513 OB70程序示例
 
通过程序将触发OB70调用的事件信息记录到MB20~MB27中,可以为后续的判断及显示使用。利用相同的方法,通过OB72OB73可以读取S7-400H系统其他的诊断信息,这里不作描述。

相关新闻

    暂无相关新闻