工业控制
该块用来监控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
编辑:黄飞
全部0条评论
快来发表一下你的评论吧 !