监控PLC的接触器K50应用案例

工业控制

1221人已加入

描述

该块用来监控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

编辑:黄飞

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分