45C-20A
日期:2019-6-15 图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)