普通低压电机和气动阀门的PLC&DCS编程思路
普通低压电机和气动阀门的典型IO点
设备
信号描述
信号类型
普通低压电机
启动命令
输出(DO)
停止命令
输出(DO)
运行信号
反馈(DI)
停止信号
反馈(DI)
故障信号
反馈(DI)
气动阀门(双电磁阀)
开命令
输出(DO)
关命令
输出(DO)
开信号
反馈(DI)
关信号
反馈(DI)
编程前需要考虑的方面
1 启动(打开)允许条件 (建议作为弹出窗口,放置列表在上位机。)
1) 上下游工艺允许。2)设备无检修。3)设备无故障。
2 停止(关闭)允许条件 (建议作为弹出窗口,放置列表在上位机。)
1)上下游工艺允许。2)设备无检修。
3 相关报警 (建议作为弹出窗口,放置列表在上位机。)
1) 电机
a 启动失败(启动命令按下,x秒内无运行信号)
b 停止失败(停止命令按下,x秒内无停止信号)
c 电气跳闸
d 信号不匹配 (运行信号和停止信号同时来 或者 运行信号和停止信号同时消失---延时x秒)
2) 气动阀门
a 开失败 (开命令按下,x秒内无开信号)
b 关失败 (关命令按下,x秒内无关信号)
c 信号不匹配 (开信号和关信号同时来 或者 开信号和关信号同时消失 ---延时x秒)
4 上位机操作按钮
1) 启动 2) 停止 3)手动/自动 切换 4) 检修 5)复位(用于复位启动失败等软报警)
如果一个系统有多个相同电机或阀门,编程时建议做成功能块(宏)。不同品牌PLC/DCS 的编程环境不同,但基本满足IEC61131-3 标准要求。标准功能块也可以在其他项目中应用。功能块每个变量做好注释,程序尽量做到简单易懂。
「PLC」编写一个模板程序,可用于控制泵、阀等一类设备的启停
系列视频《WinCC+PLC综合实战演练》已经累计发布了十余期了,鉴于有网友要求对一些关键知识点形成文字资料,因此,特别概括性的做一些总结,以弥补视频中遗漏的、未提到的部分,供有需要的小伙伴做参考。
前文总结了WinCC画面中,沉降池水位的动态跟踪及液位超限(太高或太低)时,如何在画面中实现报警。本文把启停控制程序捋一遍(泵的启停、阀的开合用的同一套程序)。
"启停"程序(on_off)写在FC1中,其调用时的管脚图如图1所示,其中定义输入管脚4个,输入/输出管脚3个,输出管脚4个。为什么要这样定义呢?接下来我们细细道来。
一、程序体分解释疑
为了方便说明,我们先逐段说明一下程序,再解释为何要将接口定义成图1那种方式(注意,程序中所有带"#"标识的触点、线圈变量都为FC1块中定义的接口或临时变量 )。
1、启停控制
如图2所示,"程序段1"中的程序为"启停控制程序"。
"#order"为启停命令,其为图1中输出接口的一个,信号最终与Q点相连; "#start"为启动信号、"#stop"为停止信号,其指令来自画面(如图3所示),用于启动或停止泵(阀); 当"#order"为1时,通过"复位"指令,复位"#start"的信号,这样做的目的是使"#start"端的信号变为一个脉冲信号,方便信号处理。而由于"#start"既作为输入接收来自画面的指令,又作为"线圈"被"复位"指令复位,因此要将该信号接口定义为"输入/输出接口"; "#fault"为故障信号,当其为1时,停泵、关阀。2、"#start"、"#stop"、"#ack"信号的脉冲化处理
"#start"、"#stop"及"#ack"指令均来自WinCC画面(如图3所示),画面侧通过点击相应的按钮,发过来一个高电平信号,为了简化信号处理,统一在程序使其"脉冲化",如图4所示。
逻辑也很简单:
当泵(或阀)启动命令发出后("#order"上升沿),复位"#start"; 当泵(或阀)停止命令发出后("#order"下降沿),复位"#stop"; "#ack"为故障确认信号,当"#ack"发出确认指令且故障清除后("#fault"下降沿),复位"#ack"。3、状态反馈"响应时间"监控
"#T_no"是定时器的形参地址,实际调用该FC块时,需要关联一个实际的定时器号。(1)"程序段4"的逻辑是,当"#order"为1时,启动定时器;
"程序段5"的逻辑是,在定时器计时完成(计时完成后,常闭触点"#T_no")前检测到运行反馈信号"#fbk",此时说明泵(或阀)启动正常,则复位定时器。
故障确认指令"#ack"也会复位定时器。
4、"运行信号"判定
"程序段6"和"程序段7"用于判定泵(或阀)是否正在运行。
当有输出命令("#order"=1)且有反馈信号("#fbk"=1)时,说明泵(或阀)正在运行; 当无输出("#order"=0)或有故障("#fault=1")时,认为泵(或阀)处于停止状态。5、"故障"判定及确认
当以下情况发生时,认为泵(或阀)有故障:
在正常运行("#running=1")时,反馈信号("#fbk")突然丢失,此时系统判定主回路由于某种原因失电,从而触发故障; 在启动命令发出后,规定的时间内(定时器"T_no"计时完成)未检测到反馈信号("#fbk"),系统认为泵(或阀)启动失败,触发故障。"#ack"接入"SR触发器"的复位端,用于做故障确认。
6、状态字
"状态字"定义的核心指令为:MOVE指令。满足不同条件时,将不同的值送给状态字"#status"。
二、接口定义
经过前面对程序的"逐段"分析,我们对"接口"为什么做如是定义,也有了基本的了解,再补充以下几点:
"#start"、"#stop"和"#ack"之所以定义为"输入/输出"接口类型,是因为它们既接受外部的信号,在程序中又作为"线圈"输出。 "定时器号"的形式参数的数据类型为"Timer"。 "#sim_on"是预留的仿真用接口,目前的程序中,它是没用的。 FC中定义的接口变量,在本块中寻址方式为:"#+符号名",如"#start"、"#status"等。相关视频:
《PLC编程实现“泵”的启停控制,如何自定义运行状态及状态字》
《程序“pumb1_FC"的勘误和优化,完善故障的类别信息》
上一篇《「视频随手文档」WinCC实现“液位”的动态跟踪以及超限报警》
相关问答
plc如何控制比例调节阀门?
电动调节阀门才用PLC进行比例调节,是输入信号,与给定信号的比较后,对偏差调节的一种算法。比例值的设定不可能一次性调整到位。对控制点曲线进行记录。比例设...
阀门要进PLC,要加什么东西?!-盖德问答-化工人互助问答社区
自动阀啊....要看你是什么阀门,开关阀的话一般有反馈要求都是开关量的点如果是调节阀的话有的自带4-20ma信号plc可以接收。要看你是什么阀门...
plc模拟量如何控制电动阀门开度?
PLC通过模拟量输出信号,将电动阀门的开度控制在特定范围内。首先,传感器测量所需参数(如流量、温度等),将模拟信号传输给PLC。PLC根据预设的逻辑和控制算法...
一个三菱PLC,一个气缸,一个电磁阀,怎么编程?
气缸两头的感应器是感应气缸位置的磁感应器(霍尔开关),类似于阀门的开到位和关到位,可用于程序的联锁或保护,不是一定要用的。电磁阀用于控制气源驱动气缸动...
关于风机的plc控制?
PLC是可编程控制器,它具有逻辑、顺序、定时、计数、运算等控制功能的通用自动控制设备。它以体积小、功耗低、速度快、可靠性高、具有较大的灵活性和扩展性而...
接触器用PLC怎么去控制?
这个属于plc与上位机通信和应用的问题,也就是所谓的数据采集与监控SCADA。不同的品牌或者型号的plc所使用的软件也是不同的,例如AB的5000系列要在计算机里面安...
plc中co指令的用法?
回答如下:PLC中的CO指令是用于将输出位的状态从一个逻辑状态转换为另一个逻辑状态。该指令可以用于控制输出位的开关状态。CO指令的用法如下:1.首先,确定要...
plc怎么接气动电磁阀?
PLC接气动阀都是通过中间继电器控制的。这样做防止气动电磁阀故障时强电接入PLC的输出端烧坏PLC。PLC不能直接接电磁阀,因为电磁阀容易发生故障,极容易造成输...
电磁阀的应用及原理是什么?它是如何与PLC配合使用的?
我是矿山电气小东,分享电气知识。电磁阀的应用及原理是什么?它是如何与PLC配合使用的?电磁阀在我们的生产中应用十分广泛,我们先对电磁阀有个初步的认识,矿...
西门子PLC-盖德问答-化工人互助问答社区
我想请教一下高手:西门子plc内部有已编写好的模块,但我自己编写的模块和内部的模块名称一下的话我怎么取区分并不受影响。若我想直接调用已编写好的...