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

图5-5 冗余的网络连接

从上到下的连接数定义为0、1、2、3,通过SFC87的调用同时可以监控主连接和备有的连接数。SFC87可以在OB1或循环中断组织块OB3X中调用,调用的例子如图5-6所示:

图5-6 调用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#00:S7连接没有建立。

B#16#10:S7冗余连接没有建立。 B#16#01:S7连接正在被建立。 B#16#11:S7冗余连接正在被建立。 B#16#02:S7连接被建立。

B#16#12:S7冗余连接被建立,但是连接没有冗余(例如D通

信处理器故障,只能建立A-C、B-C连接)。

B#16#13:S7冗余连接被建立

PROD_CON BYTE 当前正在运行连接的子连接,可能的值为0、1、2、3。

STBY_CON BYTE 备用连接的子连接,可能的值为0、1、2、3。B#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请求,Update从CPU,从CPU进入工作状态。link-up和Update过程将影响主CPU对快速过程的处理,例如在Update过程中信号状态的变化不能被识别(执行link-up和Update的时间参考H手册),在这种情况下,通过SFC90可以终止link-up和Update过程,快速过程执行完成后再使能link-up和Update过程,通过调用SFC90还可以使H-CPU执行对数据存储区的检查,SFC90在OB1或循环中断组织块OB3X中调用,调用的例子如图5-7所示:

图5-7 调用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存储器检测 3 操作系统代码校验和检测 4 Code 块校验和检测 5 冗余操作中对数据块、M区、计数器、计数器的比较

RET_VAL :调用SFC90状态返回值。 BUSY :BUSY=1指示任务没有完成。

5.5利用FC125监控DP从站工作状态

在程序中调用FC125可以判断系统中DP从站和模块的错误。它可以检测到丢失和故障的从站,S7-400H具有冗余的PROFIBUS总线,所以必须在CPU中调用2次,分别监控两条PROFIBUS(通过参数DP_MASTERSYSTEM识别)总线上的从站。FC125需要在OB1中调用,在OB1中调用的程序如图5-8所示: 图5-8调用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为从站编号的分配表,注意字节与站号排列次序:

图5-9从站编号的分配表

在编程界面下选择菜单栏中PLC->Monitor/Modify Variables,如图5-10所示:

图5-10打开变量监控表

点击工具栏中的

,观察在线诊断结果,如图5-11所示: