PLC 用户报警处理

某机床的用户报警调用FC,FC程序如下:
Network1:
/
Network2:Daten nach Temp kopierenDaten nach Temp kopieren
// Speicher einlesen
      L     #Wert_aktuell
      T     LD     0

// e_Wert -> tmp_Wert
      L     0
      T     #tmp_Wert

      A     #e_Wert_1
      =     L      5.0
      A     #e_Wert_2
      =     L      5.1
      A     #e_Wert_3
      =     L      5.2
      A     #e_Wert_4
      =     L      5.3
      A     #e_Wert_5
      =     L      5.4
      A     #e_Wert_6
      =     L      5.5
      A     #e_Wert_7
      =     L      5.6
      A     #e_Wert_8
      =     L      5.7
      A     #e_Wert_9
      =     L      4.0
      A     #e_Wert_10
      =     L      4.1

      L     #e_Meldenummer
      T     #tmp_Meldenummer
Network3:
      L     #tmp_Wert
      L     #tmp_Wert_akt
      <>I   
      JCN   end

// alte loeschen
      AN    #tmp_intern[2]
      S     #tmp_intern[1]
      R     #tmp_intern[0]
      S     #tmp_intern[2]
      JC    schr

// neu einfuegen
      A     #tmp_intern[2]
      JCN   schr
      S     #tmp_intern[1]
      S     #tmp_intern[0]
      R     #tmp_intern[2]
      L     #tmp_Wert
      T     #tmp_Wert_akt

      L     #tmp_Wert_akt
      L     0
      ==I   
      R     #tmp_intern[1]
      JC    end
schr: NOP   0
      A     #tmp_intern[1]
      JCN   end
      CALL  "ALARM_SQ"
       SIG    :=#tmp_intern[0]
       ID     :=W#16#EEEE
       EV_ID  :=#tmp_Meldenummer
       SD     :=#tmp_Wert_akt
       RET_VAL:=#tmp_error
      SET   
      R     #tmp_intern[1]
end:  NOP   0

Network4
      L     #tmp_Wert_akt
      L     0
      <>I   
      =     #a_Meldung_steht_an
Network5;
// Speicher beschreiben
      L     LD     0
      T     #Wert_aktuell

      A     #e_Quit
      JCN   x01
      L     0
      T     #Wert_aktuell
x01:  NOP   0

某一报警代码如下:
702224 – Minimalmengenschmierung LUBRIX %1<DUMMY> — St?rung steht an 
      CALL  "FC Meldung Begleitwert"
       e_Meldenummer     :=L#702224
       e_Wert_1          :="HMI Hilfsagreggate".MinimalSchmierung_1.A_Stoerung
       e_Wert_2          :="HMI Hilfsagreggate".MinimalSchmierung_2.A_Stoerung
       e_Wert_3          :=FALSE
       e_Wert_4          :=FALSE
       e_Wert_5          :=FALSE
       e_Wert_6          :=FALSE
       e_Wert_7          :=FALSE
       e_Wert_8          :=FALSE
       e_Wert_9          :=FALSE
       e_Wert_10         :=FALSE
       e_Quit            :="DB Leitsystem".NC.Status.Alarm_quittieren_FP
       a_Meldung_steht_an:="ALMSG_DB".A7022xx[24]
       Wert_aktuell      :="DB DummySpeicher".Alarm_70xxxx[2224]

以上报警为润滑油液位低报警,      请问报警是怎么出来的?

问题补充:
702204 0 0 "Hydraulic system %1<DUMMY> — Level in hydraulic tank has fallen short"(液压油位低)
而         
"HMI Hilfsagreggate".MinimalSchmierung_1.A_Stoerung
"HMI Hilfsagreggate".MinimalSchmierung_2.A_Stoerung
在程序中仅仅显示地址为DB300.DBX126.2/DB300.DBX136.2
以上两个信号是如何与传感器信号联系起来的,又是如何通过FC263 产生报警信号702224的?

最佳答案

网络2
装载形参#Wert_aktuell 对应实参"DB DummySpeicher".Alarm_70xxxx[2224] 的值
传送给LD0
 初始化#tmp_Wert,每个扫描周期先计0 采集报警接口信号,分别存与#tmp_Wert字的对应位
这里只赋值了两个位接口信号:"HMI  Hilfsagreggate".MinimalSchmierung_1.A_Stoerung  "HMI Hilfsagreggate".MinimalSchmierung_2.A_Stoerung
装载报警号 传送给  #tmp_Meldenummer 临时变量
网络3
比较当前采集报警信号#tmp_Wert 与#tmp_Wert_akt 是否不等,不等则执行以下的信号检查,相等则跳出信号检查,并判断显示信息   #a_Meldung_steht_an 是否显示。如果不相等则执行以下的信号检查
网络4 
判断显示消息是否显示。
网络5
判断报警出口信号是否有,有则清零 #Wert_aktuell


所以,报警产生,是由于"HMI Hilfsagreggate".MinimalSchmierung_1.A_Stoerung
                                    "HMI Hilfsagreggate".MinimalSchmierung_2.A_Stoerung
这两个信号产生的。
问题补充:程序中显示的是不带注释和符号的地址   要知道DB300.DBX126.2/DB300.DBX136.2的来源
可以运用”交叉参考‘ 找到其源头,间接寻址除外
FC263 产生对应702224的报警是由于 a_Meldung_steht_an:="ALMSG_DB".A7022xx[24] 
这是决定显示702224号报警的,DB2 是PLC—》MMC 的通讯块 ,有详细的对应关系,可参考调试手册对应接口信号。

提问者对于答案的评价:
对  #tmp_intern[2] 没有理解

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc151889.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2017年6月5日
下一篇 2017年6月5日

相关推荐