該塊用來監(jiān)控PLC的接觸器K50(確認安全裝置)。此外還形成控制器的實時時鐘的時間戳,并且作為6個字節(jié)提供。該塊生成2種閃爍周期(1Hz/Blink_L和2Hz/Blink_S),預(yù)置True/False、VKE=0/VKE=1和IBN=0/IBN=1的全局標記并且監(jiān)控這些標記。該塊提供PLC循環(huán)時間(OB1)、激活/禁用Profinet節(jié)點的數(shù)量以及可視化的CRC校驗和。該塊生成總線錯誤(BusOK)、反饋回路(RUECK)、鈍化(AC)、CRC變化、True/False/VKE/IBN預(yù)置錯誤、項目文件夾時間戳檢查(系統(tǒng)錯誤消息)、Debug模式下硬件和F-系統(tǒng)維護請求的消息。可以通過可視化符號確認總線錯誤(BusOK)、反饋回路(RUECK)、鈍化(AC)消息。
FB148?系統(tǒng)診斷
IN
STEUEIN : 系統(tǒng)啟動需要K0反饋激活
ZK50 : ?K50的吸合時間
K50K : 確認,安全裝置不正常(0 =? 已激活)
RUECK : 反饋回路(繼電器/接觸器反饋監(jiān)控)正常
AC :??無鈍化(沒有模塊被鈍化;“安全關(guān)機”)
ACKR :?去鈍化請求
_Cfg : 組態(tài)位(見組態(tài)位表)
F-PROG_SIG : ?在VASS06中規(guī)定安全基礎(chǔ)DB30000 /F_PROG_SIG安全標識
F _MODE :?在VASS06中規(guī)定安全基礎(chǔ)DB30000 MODE=0 安全模式激活?
On
K50: ?K50 接觸器吸合
PxxSTEUEIN: 系統(tǒng)激活指示燈
F_K50: K50 接觸器故障
Stoexx:故障
QUTRueck:反饋回路確認
QACK:鈍化確認
IN/OUT
BusOK:? 無總線錯誤
:
數(shù)據(jù)塊劃分
形成閃爍頻率
日期和時間作為6個字節(jié)
形成“STEU_EIN”并且監(jiān)控“K50”接觸器
為可視化準備PLC循環(huán)時間
控制器的調(diào)整時間
監(jiān)控CRC校驗和
監(jiān)控反饋回路
監(jiān)控鈍化
在Debug模式下監(jiān)控CPU F-部分
監(jiān)控IO系統(tǒng)(BusOK)
檢查項目時間戳(發(fā)出系統(tǒng)錯誤消息)
診斷PNIO系統(tǒng)
形成閃爍頻
?
"DB_ARG"."VKE=1" | 邏輯結(jié)果 1 |
"DB_ARG"."VKE=0" | 邏輯結(jié)果 0 |
"DB_ARG"."IBN=1" | 調(diào)試標記 1 |
"DB_ARG"."IBN=0" | 調(diào)試標記 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 的狀態(tài) |
"DB_ARG".Mobile_E2_Index | 用于 FB_Mobil 的 E2 索引 |
?DB_ARG".S7TimeStamp_niO | Script S7TimeStamp 項目時間戳消息不正常 |
?
數(shù)據(jù)和時間在CPU實時時鐘的“DB_ARG”中以6字節(jié)的形式可用。
? “Akt_Time_Jahr”年份
? “Akt_Time_Monat”月份
? “Akt_Time_Tag”日
? ”Akt_Time_Stunde“小時
? ”Akt_Time_Minute“分鐘
? ”Akt_Time_Sekunde“秒
生成“STEU_EIN”和“K50”接觸器監(jiān)控
輸入信號“STEUEIN”接通“K50”接觸器,并監(jiān)測接觸器反饋是否在設(shè)定的時間內(nèi)切換到1。然后,“K50”接觸器的控制復(fù)位。
如果未發(fā)送反饋或未在預(yù)期時間窗口內(nèi)發(fā)送反饋,則輸出錯誤。在這種情況下,全局標記“STEU_EIN”設(shè)置為FALSE。
如果不需要K50控制,可以用ZK50=T#0s停用。
調(diào)試模式下的CPU F部件監(jiān)控
該塊在調(diào)試模式下監(jiān)視F-CP(“FOB_RTG1_SysInfo”.F_SysInfo.mode)。如果CPU處于調(diào)試模式,則輸出消息“Anlage im unsicheren Betrieb”[系統(tǒng)處于非安全操作模式]。
IO系統(tǒng)監(jiān)控(BusOK)
塊通過塊輸出“BusOK”監(jiān)測IO系統(tǒng)中的故障設(shè)備。如果塊輸出“BusOK”=False,則輸出消息“Bus error”(總線錯誤)。如果IO系統(tǒng)正常,可以通過“GlobalAck”按鈕確認此消息。
PLC重啟后,如果IO系統(tǒng)正常,則必須確認一次BusOK。
例如,故障設(shè)備可以在HMI設(shè)備視圖或硬件診斷中識別。監(jiān)測BusOK信號是否有外部操作,并顯示一條消息。
?
CPU is in Stop | |
CPU is in Run | |
PLC –可視化無連接 | |
PLC –可視化連接正常 | |
IO 系統(tǒng)故障 (BusOK = False) | |
IO 系統(tǒng)正常 (BusOK = True) | |
沒有 CPU 集中錯誤 | |
CPU 集中錯誤 |
?
塊的輪廓:
生成閃爍頻率
日期和時間為6字節(jié)
生成“STEU_EIN”和“K50”接觸器監(jiān)控
可視化PLC循環(huán)時間的準備
設(shè)置控制器的時間
監(jiān)視CRC校驗和
反饋回路監(jiān)控
鈍化監(jiān)測
調(diào)試模式下的CPU F部件監(jiān)控
IO系統(tǒng)監(jiān)控(BusOK)
項目時間戳監(jiān)控(報告系統(tǒng)錯誤)
PNIO系統(tǒng)診斷
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畫面上復(fù)位按鈕
#xSF_QACK:= (#"HMI-UDT".bVisuTasten = Byte#2);WINCC畫面上去頓按鈕
#xSF_QRUECK :=(#"HMI-UDT".bVisuTasten = Byte#4);WINCC畫面上回路復(fù)位按鈕
#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系統(tǒng)的模塊狀態(tài)信息Local~PROFINET_IO-System =257
#RetValue_stoerung := DeviceStates(LADDR :="Local~PROFINET_IO-System", MODE := 2, STATE := #State_stoerung);故障狀態(tài)
DeviceStates FC802 讀取IO系統(tǒng)的模塊狀態(tài)信息Local~PROFINET_IO-System =257
#RetValue_deaktiviert := DeviceStates(LADDR :="Local~PROFINET_IO-System", MODE := 3, STATE :="DB_ARG".State_deaktiviert);掉了的站
DeviceStates FC802 讀取IO系統(tǒng)的模塊狀態(tài)信息Local~PROFINET_IO-System =257
#RetValue_vorhanden := DeviceStates(LADDR := "Local~PROFINET_IO-System",MODE := 4, STATE := #State_vorhanden);存在的站
DeviceStates FC802 讀取IO系統(tǒng)的模塊狀態(tài)信息Local~PROFINET_IO-System =257
#RetValue_wartung := DeviceStates(LADDR :="Local~PROFINET_IO-System", MODE := 5, STATE := #State_wartung);維護狀態(tài)
DeviceStates FC802 讀取IO系統(tǒng)的模塊狀態(tài)信息Local~PROFINET_IO-System =257
IF(#RetValue_konfiguriert = 0) AND (#RetValue_deaktiviert = 0) AND
PLC上配置組態(tài)數(shù)=0?? PLC上掉站數(shù)=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?實際連接的網(wǎng)絡(luò)設(shè)備
#iPN_Ist := #iPN_Ist + 1;? 實際連上的數(shù)
END_IF;
IF "DB_ARG".State_deaktiviert[#iZaehler] THEN 掉站的網(wǎng)絡(luò)設(shè)備個數(shù)
#iPN_Abg := #iPN_Abg + 1;? 掉站的數(shù)量
END_IF;
IF #State_konfiguriert[#iZaehler] THEN?PLC組態(tài)的設(shè)備配置數(shù)量
#iPN_Soll := #iPN_Soll + 1;? 理論組態(tài)數(shù)量
END_IF;
"Profinet_TNDeaktiv_DB".TNDeaktiv[#iZaehler]:=#State_vorhanden[#iZaehler];// 用于PLC快換頭-快換站,連接.(DB852)
END_FOR;
END_IF;
END_REGION
編輯:黃飛
?
評論
查看更多