在生产控制中,通常需要对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表