如何在WinCC上显示S7 CPU 的运行模式
利用S7 系统函数 SFC51 “RDSYSST”(SSL_ID=W#16#023 2, Index=W# 1 6#0004),可以获得CPU上钥匙当前的位置,存放到M 区或DB块中,通过WinCC读取并显示出来。
可以在OB35 中调用 SFC 51 :
CALL "R DSYSST"
REQ :=TRUE
SZL_ID :=W#16#2 32
INDEX :=W#16#4
RET_VAL :=MW12
BUSY :=M10.1
SZL_HEADER:=DB1.SZL_HEADER
DR :=P#M 100.0 WORD 20
SFC51的参数解释如下,
REQ :为TRUE 时启动读请求。
SZL_ID :指定需要读取的系统信息,本例为W#16#0232。
INDEX :本例中为W#16#0004。
RET_VAL :执行SFC51 返回状态。
BUSY : 为1 时表示读进程没有完成。
SZL_HEADER:输出系统信息存储的数据记录区号及长度,结构数据类型。
DR :指定输出系统信息存储在CPU的地址区。
参数SZL_HEADER 的地址区在DB1 中建立
用户可以从DR指向的地址区域中读取到当前CPU的运行状态,见下表。其中第五个字提供了关于CPU 钥匙当前的位置:
当CPU打到 RUN-P 时,MW108返回值为2,意为CPU处于RUN-P运行模式:
当CPU 达到RUN时,MW108返回值为1,意为CPU处于RUN运行模式:
VASS标准的PLC模式显示:
由WINCC系统区域指针向PLC的DB100.DBW994 发送1
如果读取PLC的DB值为1认为CPU在运行RUN模式
如果读取PLC的DB值为0认为CPU 处于 STOP 模式
BUS_OK的显示:
dwVisuwert4.X4 := BusOK;
审核编辑:刘清
全部0条评论
快来发表一下你的评论吧 !