該塊用來監控PLC的接觸器K50(確認安全裝置)。此外還形成控制器的實時時鐘的時間戳,并且作為6個字節提供。該塊生成2種閃爍周期(1Hz/Blink_L和2Hz/Blink_S),預置True/False、VKE=0/VKE=1和IBN=0/IBN=1的全局標記并且監控這些標記。該塊提供PLC循環時間(OB1)、激活/禁用Profinet節點的數量以及可視化的CRC校驗和。該塊生成總線錯誤(BusOK)、反饋回路(RUECK)、鈍化(AC)、CRC變化、True/False/VKE/IBN預置錯誤、項目文件夾時間戳檢查(系統錯誤消息)、Debug模式下硬件和F-系統維護請求的消息。可以通過可視化符號確認總線錯誤(BusOK)、反饋回路(RUECK)、鈍化(AC)消息。
FB148?系統診斷
IN
STEUEIN : 系統啟動需要K0反饋激活
ZK50 : ?K50的吸合時間
K50K : 確認,安全裝置不正常(0 =? 已激活)
RUECK : 反饋回路(繼電器/接觸器反饋監控)正常
AC :??無鈍化(沒有模塊被鈍化;“安全關機”)
ACKR :?去鈍化請求
_Cfg : 組態位(見組態位表)
F-PROG_SIG : ?在VASS06中規定安全基礎DB30000 /F_PROG_SIG安全標識
F _MODE :?在VASS06中規定安全基礎DB30000 MODE=0 安全模式激活?
On
K50: ?K50 接觸器吸合
PxxSTEUEIN: 系統激活指示燈
F_K50: K50 接觸器故障
Stoexx:故障
QUTRueck:反饋回路確認
QACK:鈍化確認
IN/OUT
BusOK:? 無總線錯誤
:
數據塊劃分
形成閃爍頻率
日期和時間作為6個字節
形成“STEU_EIN”并且監控“K50”接觸器
為可視化準備PLC循環時間
控制器的調整時間
監控CRC校驗和
監控反饋回路
監控鈍化
在Debug模式下監控CPU F-部分
監控IO系統(BusOK)
檢查項目時間戳(發出系統錯誤消息)
診斷PNIO系統
形成閃爍頻
?
"DB_ARG"."VKE=1" | 邏輯結果 1 |
"DB_ARG"."VKE=0" | 邏輯結果 0 |
"DB_ARG"."IBN=1" | 調試標記 1 |
"DB_ARG"."IBN=0" | 調試標記 0 |
"DB_ARG"."BLINK_L" | 閃爍頻率慢 |
"DB_ARG"."BLINK_S" | 閃爍頻率快 |
"DB_ARG"."BLINK1" | 周期標記位 1Hz |
"DB_ARG"."BLINK2" | 周期標記位 2Hz |
"DB_ARG"."STEU_EIN" | 控制器接通 |
"DB_ARG"."Reset_Aus" | 取消 Reset |
"DB_ARG"."Reset_Ein" | 啟用 Reset |
"DB_ARG"."Reset" | Reset 安全裝置 |
"DB_ARG"."Visu_Quitt" | 通過可視化確認 |
"DB_ARG"."Quitt_Global" | 全局故障確認 |
"DB_ARG"."NEUSTART" | 重啟標記 |
"DB_ARG"."NEUSTART_STEU_EIN" | 周期標記激活,重啟之后,總線正常,控制器/控制電壓延遲 3s接通 |
"DB_ARG"."UEB_Bus_OK" | 覆蓋 U_EIN 的 Bus_OK |
"DB_ARG"."DATE_TIME" | 從 2000 年起時間戳作為秒 |
"DB_ARG".Akt_Time_Stunde | 控制器的實時時鐘的時 |
"DB_ARG".Akt_Time_Minute | 控制器的實時時鐘的分 |
"DB_ARG".Akt_Time_Sekunde | 控制器的實時時鐘的秒 |
"DB_ARG".Akt_Time_Tag | 控制器的實時時鐘的日 |
"DB_ARG".Akt_Time_Monat | 控制器的實時時鐘的月 |
"DB_ARG".Akt_Time_Jahr | 控制器的實時時鐘的年 |
"DB_ARG".PC_AKTIV | 平板 PC 的狀態 |
"DB_ARG".Mobile_E2_Index | 用于 FB_Mobil 的 E2 索引 |
?DB_ARG".S7TimeStamp_niO | Script S7TimeStamp 項目時間戳消息不正常 |
?
數據和時間在CPU實時時鐘的“DB_ARG”中以6字節的形式可用。
? “Akt_Time_Jahr”年份
? “Akt_Time_Monat”月份
? “Akt_Time_Tag”日
? ”Akt_Time_Stunde“小時
? ”Akt_Time_Minute“分鐘
? ”Akt_Time_Sekunde“秒
生成“STEU_EIN”和“K50”接觸器監控
輸入信號“STEUEIN”接通“K50”接觸器,并監測接觸器反饋是否在設定的時間內切換到1。然后,“K50”接觸器的控制復位。
如果未發送反饋或未在預期時間窗口內發送反饋,則輸出錯誤。在這種情況下,全局標記“STEU_EIN”設置為FALSE。
如果不需要K50控制,可以用ZK50=T#0s停用。
調試模式下的CPU F部件監控
該塊在調試模式下監視F-CP(“FOB_RTG1_SysInfo”.F_SysInfo.mode)。如果CPU處于調試模式,則輸出消息“Anlage im unsicheren Betrieb”[系統處于非安全操作模式]。
IO系統監控(BusOK)
塊通過塊輸出“BusOK”監測IO系統中的故障設備。如果塊輸出“BusOK”=False,則輸出消息“Bus error”(總線錯誤)。如果IO系統正常,可以通過“GlobalAck”按鈕確認此消息。
PLC重啟后,如果IO系統正常,則必須確認一次BusOK。
例如,故障設備可以在HMI設備視圖或硬件診斷中識別。監測BusOK信號是否有外部操作,并顯示一條消息。
?
CPU is in Stop | |
CPU is in Run | |
PLC –可視化無連接 | |
PLC –可視化連接正常 | |
IO 系統故障 (BusOK = False) | |
IO 系統正常 (BusOK = True) | |
沒有 CPU 集中錯誤 | |
CPU 集中錯誤 |
?
塊的輪廓:
生成閃爍頻率
日期和時間為6字節
生成“STEU_EIN”和“K50”接觸器監控
可視化PLC循環時間的準備
設置控制器的時間
監視CRC校驗和
反饋回路監控
鈍化監測
調試模式下的CPU F部件監控
IO系統監控(BusOK)
項目時間戳監控(報告系統錯誤)
PNIO系統診斷
REGION? 程序標題用于隱藏程序段 用于顯示按鈕
IF"DB_ARG".PC_AKTIV = DWORD#16#00000000 THEN ?HMI屏與PLC沒有連接上
#"HMI-UDT".bVisuTasten := Byte#0;按鈕被定義為0
END_IF;
#xSF_Reset := (#"HMI-UDT".bVisuTasten = Byte#1);WINCC畫面上復位按鈕
#xSF_QACK:= (#"HMI-UDT".bVisuTasten = Byte#2);WINCC畫面上去頓按鈕
#xSF_QRUECK :=(#"HMI-UDT".bVisuTasten = Byte#4);WINCC畫面上回路復位按鈕
#R_Trig_SF_RESET_Q := #xSF_Reset AND NOT #R_Trig_SF_RESET_Edge;
#R_Trig_SF_RESET_Edge := #xSF_Reset;
END_REGION
#RET_VAL_SFC := RD_SINFO(TOP_SI => #OB1_StartInfo,
START_UP_SI =>#OB1_StartInfo_1);
RD_SINFO SFC6讀取當前OB的啟動信息
REGION IO-Device Zaehlen
#RetValue_konfiguriert:= DeviceStates(LADDR :="Local~PROFINET_IO-System", MODE := 1, STATE := #State_konfiguriert);PLC的配置
DeviceStates FC802 讀取IO系統的模塊狀態信息Local~PROFINET_IO-System =257
#RetValue_stoerung := DeviceStates(LADDR :="Local~PROFINET_IO-System", MODE := 2, STATE := #State_stoerung);故障狀態
DeviceStates FC802 讀取IO系統的模塊狀態信息Local~PROFINET_IO-System =257
#RetValue_deaktiviert := DeviceStates(LADDR :="Local~PROFINET_IO-System", MODE := 3, STATE :="DB_ARG".State_deaktiviert);掉了的站
DeviceStates FC802 讀取IO系統的模塊狀態信息Local~PROFINET_IO-System =257
#RetValue_vorhanden := DeviceStates(LADDR := "Local~PROFINET_IO-System",MODE := 4, STATE := #State_vorhanden);存在的站
DeviceStates FC802 讀取IO系統的模塊狀態信息Local~PROFINET_IO-System =257
#RetValue_wartung := DeviceStates(LADDR :="Local~PROFINET_IO-System", MODE := 5, STATE := #State_wartung);維護狀態
DeviceStates FC802 讀取IO系統的模塊狀態信息Local~PROFINET_IO-System =257
IF(#RetValue_konfiguriert = 0) AND (#RetValue_deaktiviert = 0) AND
PLC上配置組態數=0?? PLC上掉站數=0
(#RetValue_vorhanden = 0)THEN? 存在的站
#iPN_Ist := 0;
#iPN_Soll:= 0;
#iPN_Abg := 0;
FOR#iZaehler := 1 TO 256 DO
IF #State_vorhanden[#iZaehler] THEN?實際連接的網絡設備
#iPN_Ist := #iPN_Ist + 1;? 實際連上的數
END_IF;
IF "DB_ARG".State_deaktiviert[#iZaehler] THEN 掉站的網絡設備個數
#iPN_Abg := #iPN_Abg + 1;? 掉站的數量
END_IF;
IF #State_konfiguriert[#iZaehler] THEN?PLC組態的設備配置數量
#iPN_Soll := #iPN_Soll + 1;? 理論組態數量
END_IF;
"Profinet_TNDeaktiv_DB".TNDeaktiv[#iZaehler]:=#State_vorhanden[#iZaehler];// 用于PLC快換頭-快換站,連接.(DB852)
END_FOR;
END_IF;
END_REGION
編輯:黃飛
?
評論
查看更多