PLC控制系统中必不可少的的故障报警控制
故障报警控制是电气自动控制系统中不可缺少的重要环节,也是PLC控制系统中的常用环节。一般来说,标准的报警功能是声光报警,而报警的控制方式又有单故障报警控制和多故障报警控制这两种方式,你知道吗?这一篇文章小编就给大家分别讲一下单故障报警控制和多故障报警控制。
1、单故障报警控制
何谓单故障报警?也就是用蜂鸣器和报警灯对单一的一个故障实现的声光报警控制。假设I0.0是故障报警的输入条件,也就是I0.0为ON时进行报警,Q0.0为报警灯,Q0.1为蜂鸣器,I0.1是报警响应,当I0.1接通时,报警灯可以从闪烁变为常亮,同时蜂鸣器停止报警,I0.2是报警灯的测试信号,当I0.2接通时,报警灯亮。
我们看以下程序:
以上程序中网络1和网络2用定时器T37和T38构成了振荡控制电路程序,当故障报警条件I0.0接通时,Q0.0和Q0.1每隔1s 进行声光报警一次,如此往复循环,直到报警结束。当I0.1接通时,网络4中的M0.0接通并保持,同时网络3中的M0.0常开接通,报警灯从闪烁变为常亮,同时网络5中的M0.0常闭断开,Q0.1断开,蜂鸣器停止报警。当I0.2接通时,报警灯亮,可以进行报警灯的测试。
2、多故障报警控制方式
在实际的工程应用中,出现的故障可能不止一个,而是多个,这时程序的设计跟前面的就有所不同了。在声光多故障报警控制中,一种故障要对应一个指示灯,但是蜂鸣器是可以共用一个的。所以在设计程序的时候要将多个故障共用一个蜂鸣器进行报警。假设有两个个故障信号,故障1用输入信号I0.0,故障2用输入信号I0.1,I0.2为消除蜂鸣器按钮,I0.3为试灯、试蜂鸣器按钮,故障1报警灯用Q0.0输出,故障2报警灯用Q0.1输出,Q0.2为蜂鸣器。不管是故障1还是故障2,声音报警都是靠Q0.2蜂鸣器实现的。
我们看如下程序:
在多种故障报警控制程序中,关键是任何一种故障发生时,按消除蜂鸣器按钮后,不能影响其他故障发生时报警蜂鸣器的正常鸣响。
以上程序由脉冲触发控制、故障报警灯和蜂鸣器的逻辑控制,以及报警控制电流这几个部分组成的。假设控制中发生了故障1报警输入信号,I0.0接通,Q0.0接通1秒,断开1秒,故障1报警灯闪烁,同时Q0.2接通,蜂鸣器鸣响进行报警。当操作人员知道报警后通过按消除蜂鸣器按钮,I0.2接通,网络5中的M0.0常开接通并自锁,M0.0常闭断开,从而使Q0.2断开,蜂鸣器停止鸣响。当故障2报警输入产生时,以相同的方式进行声光报警,不会影响其他故障发生时蜂鸣器的正常鸣响。以上就是两个故障报警控制程序的编写和说明。
故障报警控制程序是我们编程设计的重要环节,这个大家还是必须掌握的噢,大家可以参照以上方法可以设计更多故障的故障报警控制程序,你学会了吗?
技成培训网原创,作者:蔡慧荥,未经授权不得转载,违者必究
私信回复:西门子案例 ,领【777个西门子案例程序】 ~
高手进阶:让PLC自动生成报警信息,绝对是干货
内容梗概:利用Prodiag功能把报警信息封装在需要多次调用的FB程序块中,实现自动生成报警信息,减少HMI的编程工作量。
在一个自动化项目的程序中,报警程序是不可或缺的,它是PLC控制程序中非常重要的组成部分。在设备的自动运行过程中,自动检测设备的运行异常,并输出报警提示,协助操作人员排除故障。在TIA Protal中,大部分人的HMI报警程序是用“离散量报警”来实现的,这个是最容易理解也是最直观的方式。
离散量报警
但是当一个设备中有某个部件被大量重复性的使用时,其HMI的报警程序的编写工作量会变得非常巨大无趣。比如气缸,气缸在自动化项目上的应用非常广泛,而且用量很大,一个中等规模的自动化项目上有几十个气缸很正常,有时为了让故障原因表达得更详细,通常一个气缸会编写多个报警信息,如前进不到位、后退不到位等,这样一来几十个气缸的报警信息的编写是一个很大的工作量,而且是重复性的工作,就我个人的感受来说,做这种重复性的工作是非常枯燥乏味的,心里会非常的烦躁。那有没有方法把这种枯燥而且乏味的重复性的内容让程序自动生成呢?有,确实有,我们可以利用TIA Protal的Prodiag功能把报警信息封装在需要多次调用的FB程序块中,实现自动生成报警信息。今天我们就以气缸的控制程序为例,详细介绍如何实现这个功能。
在本文中不对气缸功能块的控制原理做详细讲解,这个后续我可以单独写文章讲解,只侧重讲解用Prodiag功能做报警信息。关于Prodiag功能在前几篇文章《如何在触摸屏上显示PLC程序之GRAPH篇》、《如何在触摸屏上显示PLC程序之LAD篇》都有介绍,重复的内容在这里就不做累述。
用FB做一个气缸控制功能块命名为“Std_CylinderBase”,在Input、Output(或Static)中添加以下变量:
Input:
DeviceName 数据类型WString[20] //用于填写气缸的功能名称,数据长度自定义
CylNr:数据类型 INT //用于标记气缸编号
Safety_OK:数据类型 BOOL //外围的安全设施正常,为FALSE时气缸不输出报警信息
Output或Static:
Fault:数据类型 BOOL //总的报警输出信号
Error_Code:数据类型 BYTE //报警代码,每个变量的信息参见下表:
Error_Code
FB的接口定义完后如下:
FB的接口定义
在我的Std_CylinderBase程序中将数据类型为INT的CylNr变量转换成字符串STRING后放入报警信息中的,这是因为我在多次调用FB时将FB接口参数化比较方便才将CylNr定义为INT,大家可以直接将CylNr定义为STRING,这样就不需要下面的这段转换程序。
气缸编号转换成STRING
在Std_CylinderBase程序中编写气缸报警程序,并输出Error_Code:
编写Error_Code程序
将所有报警汇总输出到Fault:
Fault输出
打开“PLC报警文本列表”,在其“文本列表”中新建一个名为“CylinderFaultList”的文本列表,在“CylinderFaultList文本列表条码”中根据Error_Code的值填写对应的报警信息:
PLC报警文本列表
在这里可以编辑多语言的报警信息,这样在HMI上就可以实现多语言显示切换。
以上工作做完后,我们回到Std_CylinderBase块,设置Fault变量的Prodiag功能。在FB的接口中Fault变量的“监控”栏右键后选择“新增监控”,在其“属性”—“监控”中设置如下:
Fault的监控设置
条件 1/2/3为串联关系,为空表示无条件。
这里的其他选项我就不详细讲解,不明白的可以看上一边文章《如何在触摸屏上显示PLC程序之LAD篇》中有详细介绍,地址:https://www.toutiao.com/i6974594252995052071/
选择“详细文本”选项,配置如下:
详细文本配置
在这里我们将详细文本的内容设为由变量“变量1(SD_4)”、“变量2(SD_5)”、“变量3(SD_6)”中的值组合生成。
详细文本域的语法如下:
其格式为@<相关值的编号><格式>。符号“@”用于只是开始使用相关值和关闭相关值。
相关值的编号
格式
样例
此例中@4%s@,其中“%s”没有编辑[i]指定任意长度,但是受限于Input中iDeviceName的数据类型WString[20]已经定义宽字符长度为20,“4”表示调用变量1(SD_4)中的值。
此例中@6%t#CylinderFaultList@,表示调用变量3(SD_6)中的值将“#CylinderFaultList”文本列表中的数据以字符串的形式输出。此处实际上是使用了双层嵌套,线调出#oError_Code变量的值,在将“#CylinderFaultList”文本列表中#oError_Code变量的值对应的文本内容调出。
这里使用变量、文本列表的好处是可以减少Prodiag监控,气缸的6个报警输出实际上只用了一个Prodiag监控,大幅节约CPU资源。当然也可以不使用文本列表,那么就需要在FB里为每个报警各自创建一个监控,每个气缸就需要创建6个监控。
以上配置完成后编译Std_CylinderBase。
创建ProdiagFB,将其命名为“AlarmDiag”。
调用Std_CylinderBase。
打开“项目树”里CPU的“PLC监控和报警”,在“FB监控实例”中将气缸的报警分诊断配给刚才新建的“AlarmDiag”。
PLC监控和报警
图中ST?_CylinderManage_DB为调用Std_CylinderBase的FB的背景数据块。
Std_CylinderBase被多次调用后“AlarmDiag”中自动生成的报警诊断如下:
AlarmDiag程序块
打开调用Std_CylinderBase的FB程序块,设置Std_CylinderBase的接口数据。
气缸编号赋值
Std_CylinderBase调佣
在HMI上添加报警信息显示画面,在 “显示”中一定要勾选刚才在诊断里选择报的警类别,否则这里是不会显示诊断的报警信息。
报警信息显示
在HMI上添加代码显示画面,在画面中添加“PLC代码视图”控件,如下图:
PLC代码视图
下载PLC和HMI程序,查看运行效果
HMI报警显示
Std_CylinderBase
以上案例中,我们完全抛弃了用“离散量报警”的报警显示方式,将报警信息集成进封装好的FB块中,免去了对重复对同一部件进行报警信息编写工作,极大的提高了编程工作量,提高了工作效率。
你学会了吗。看完不要忘了给八阿哥点个赞[赞],你的点赞是八阿哥进行创作的动力!
我是八阿哥,关注我,可以随时查看我最新发表的技术原创贴!这可都是干货哦~!
都是原创,打字不易,若有错误或遗漏还请多多包涵[作揖]。
相关问答
plc报警程序怎么编写?
编写PLC报警程序需要考虑以下几个步骤:定义报警条件:首先需要确定哪些条件会触发报警,例如某个设备的温度超过设定值、某个传感器的读数异常等。设计报警逻...
plc屏幕报警?
这是plc与驱动器间的软极限的连接线接触不良造成的。检查触摸屏报警对应的plc的输入点,将之与直流地(gnd)短接在一起试试。驱动器的软极限参数默认在p2-15和p2...
三菱plc怎么查看程序里的报警?
回答如下:要查看程序里的报警,可以按照以下步骤操作:1.进入三菱PLC的编程软件(比如GXWorks3)。2.打开你要查看的程序。3.在编程软件的菜单栏中选择“...
plc报警红灯怎么回事?
PLC报警红灯通常表示系统出现故障或异常情况。可能是传感器故障、电源问题、通信错误、程序错误等。需要检查PLC程序、电源供应、传感器连接和信号传输等方面,...
PLC报警怎么处理?
处理办法如下,plc报警灯亮,一般情况下复位就是自动模式转换到手动模式,然后看故障显示屏显示故障点维修后就可以。处理办法如下,plc报警灯亮,一般情况下复位...
西门子plc报警程序怎么写?
1.西门子PLC报警程序需要按照一定的规则和步骤进行编写。2.首先,需要明确报警的条件和触发条件,例如某个传感器的数值超过设定阈值或者某个设备出现故障等。...
plc报警怎么解除,好像是电压报警了?
如果是在信号输入端接入220V电压,那么,信号输入的光耦会损坏,但后面电路并不损坏,直接更换光耦就可以了。为了使用安全,PLC机的信号输入都使用了物理隔离,...
如何解决plc内部报警?
可以解决因为PLC(可编程逻辑控制器)内部报警通常是由于硬件故障、软件错误或外部干扰等原因引起的。解决PLC内部报警的方法有以下几种:1.检查硬件连接:首先...
PLC电路通不报警不通报警如何编程?-懂得
如图所示,电路的信号接X0。电路通X0为ON,常闭触点断开,Y0不输出,不报警。电路不通X0为OFF,常闭触点导通,Y0输出,报警。望采纳。。。。。。如图所示...
plc报警的灯亮了是什么原因?
PLC报警灯亮起来通常是由于PLC程序中的某个条件被触发,导致PLC输出一个警报信号。这些条件可以是传感器检测到的物理参数、程序计数器的值、逻辑运算结果等等...