我们公司Profibus总线上挂接了很多ET200S、ET200L、ET200M模块,同时也挂接了几台变频器。出于安全方面的考虑,生产线大门打开时,安全继电器动作将变频器断电,为了防止CPU掉站停机,使用了OB86功能块,但同时造成了一个问题,就是其他模块通讯故障时无法发现,只有产品出现批量报废后才知道有故障,还要分析究竟是什么故障,为此我们采用了SFC51系统功能,使用方式如下:
CALL "RDSYSST"
REQ :="Flag_Req_read_DPBus"
SZL_ID :=W#16#292
INDEX :=W#16#1
RET_VAL :=#Ret_Val_SFC51
BUSY :="Flag_Req_read_DP_Busy"
SZL_HEADER:=#SLZ_Header
DR :=P#M 150.0 BYTE 16
A "Flag_Req_read_DPBus"
AN "Flag_Req_read_DP_Busy"
R "Flag_Req_read_DPBus"
JC Bus1
S "Flag_Req_read_DPBus"
Bus1: NOP 0
SZL_ID:=W#16#0292:通过集成DP 接口连接的DP主站系统的中央机架/站的实际状态,这样系统不断读取128个从站的状态,并把结果输出到M150.0开始的16个字节中,读取从站对应的地址就可以直接判断其状态,从而做出报警
管理员注:本帖已被纳入此次探讨发帖整理,请
点此详阅。