查看: 4036|回复: 12
收起左侧

[综合教程经验] PLC应用编程实践_空压机程序编写实现(7)

Bob 2020-4-17 16:21:04 | 显示全部楼层 |阅读模式
邀请回答

马上注册,享受更多特权

您需要 登录 才可以下载或查看,没有帐号?立即注册   

x
本帖最后由 Bob 于 2020-4-18 13:24 编辑

(续前内容)
控制程序的任务分解与逻辑设计

按照前面“状态”的划分约定,按控制功能要求,分析每个状态中的控制逻辑,最好以文字方式记录下来,便于最后的全局的审核完善。


状态号
子程序
任务程序
具体描述
ST0状态
(D149=0)
Sbr0
上电自检状态;保证上电完全
1.等待所有的外部信号都处于正常状态工作状态,进入下一步状态为1(D149=1)。
2.所有其他的任务均不执行。
ST1状态
(D149=1)
停机状态,变频模式时Runkey响应
根据系统的控制方式和命令进入对应的模式状态
变频控制:按RUN键进入状态10;
变频联控主:按RUN键进入状态10;
变频联控从: 接收到运行命令进入状态10;
停机状态,工频模式时Runkey响应
根据系统的控制方式和命令进入对应的模式状态
Y-△启动方式:按RUN键进入状态20;
直接启动方式: 按RUN键进入状态21;
停机状态,主电机、风机点动试机响应处理
支持主机变频、工频模式;
支持风机变频、工频模式;


  
状态号
  
子程序
任务程序
具体描述

  工频控制方式
ST20状态
  
D149=20
启动Y型启动
1. 关闭进气阀,启动Y型启动,启动供电电源,当Y型延时到,启动△型启动,进入状态21
ST21状态
  
D149=21
启动△型启动
1.        当△型延时到,打开进气阀,进入状态22
  
  
ST22状态
  
D149=22
加载运行
1.        检测到手动加载操作取反电磁阀的操作。
  
2.        压力低于下限压力关闭打开电磁阀,压力够时关闭电磁阀
  
3. 当以高于上限压力运行到指定时间进入23状态
ST23状态
  
D149=23
休眠散热
  
运行
关闭进气阀
  
1. 当指定的散热时间到进入休眠停机状态24;
  
2. 当压力不够时进入状态22
ST24状态
  
D149=24
休眠停机
  
运行
切断电机电源
  
1.        如果用户压力不够进入状态20
ST25状态
  
D149=25
停机散热
  
运行
关闭进气阀
  
1. 当指定的散热时间到进入停机闭锁状态15
ST26状态
  
D149=26
停机闭锁状态
达到停机闭锁时间进入状态1
子程序
  
(工频模式)
参数计算
  
(每次都运行)
1.  输出频率计算
  
2.  判断各运行状态
子程序
  
(工频模式)
故障处理
  
(11)
1.  功率计算
  
2.  1秒的状态处理

例行的停机保护与告警处理

在所有状态下,都需要执行的例行子程序,这些子程序,只是为了方便接手这个程序的人员阅读,界定功能内容。定义如下:
  
状态号
  
子程序
任务程序
具体描述
例行子程序
子程序
紧急停机
  
判断
1.        判断停机信号有效,关闭所有的输出,保存紧急停机信息进入2状态
  
2.        如果紧急停机无效,判断工频和变频状态是否有变化,有变化关闭所有的输出,进入状态3
子程序
变频故障停机

子程序
工频故障停机

子程序
停机状态
1.        检测到停机命令进入14状态
  
2.        如果没有停机命令。判断系统是否有M80标志
子程序
上电初始化
初始一些中间变量:
子程序
有参数更改
初始化系统使用的一些变量
子程序
每次循环执行
1.  计算输出压力
  
2.  判断运行状态
子程序
11
1.  压力断线判断
  
2.  温度断线判断
  
3.  送系统数据
  
4.  处理运行状态
  
5.  处理累积运行时间
子程序
11
故障告警信号、预警信号的检查,风机保护,若有新出现的告警信号,作告警输出、登记处理
子程序
反复执行
紧急停机信号的处理
子程序
1分钟1
各种累计时间的刷新处理
子程序
反复执行
通讯请求排队标志的逐个发送处理
子程序
反复执行
风机处理子程序,含工频驱动、变频驱动模式

上面将任务分解到了子程序,按照空压机启动运行的逻辑顺序,逐个对子程序的控制逻辑进行细化,如果是编程熟手,可以开始编写程序了,如果不够熟练,可以按进一步细化每个子程序的逻辑。




上一篇:PLC应用编程实践_空压机程序设计(6)
下一篇:PLC应用编程实践_空压机程序编写实现(8)

已有 0 人打赏作者

1 喜欢他/她就送朵鲜花吧,赠人玫瑰,手有余香! 鲜花榜单
回复 邀请回答送花

使用道具 举报

Bob 2020-4-17 16:28:39 | 显示全部楼层

HMI+PLC的程序一起规划设计

任何电控系统,都需要有状态信息显示,现在人机界面(HMI)是常用部件,建议设计之初就将HMI+PLC作为一个整体,从操作者的角度,需要哪些其功能与操作特性,比如观察哪些状态参数、设定的工作参数、保护参数等,还有哪些调试操作、记录数据等。
HMI通信读取PLC多个寄存器时,会将多个连续地址的目标寄存器,用一帧通信读取回来,可提高通信效率。但若寄存器的地址相差比较大,就需要多帧读取,所以,将经常访问的运行状态参数,安排在连续的地址,就可以提高通信效率,可增加每秒钟访问次数,增加操作响应和显示的顺畅感,控制系统越复杂,这个考虑就越重要。

程序变量定义

在开始子程序细化之前,建议将程序所需要的变量先定义好,下面以H2U、H3U系列控制器为例,建议如下原则:
1)控制程序中,最好不要直接对控制输出Y端口进行操作,可先对定义的M变量进行操作,在程序的最后面才将该M变量复制给对应的Y端口输出,这样作的好处是可以方便地调换输出口;在该继电器损坏后,可以在HMI界面上指定到其它空闲的端口,而不需修改程序;
2)回避系统所需的专用寄存器区,D8000+地址寄存器为系统区域;M8000+地址寄存器为系统区域;
3)控制程序可能用到的缓冲区域,如使用1:1或n:n通信功能,就会需要D200~D551区域;使用CANlink通信,就会用到D7000~D7999区域,无论当前有没有用到,建议回避这些区域,预留给以后的使用;
4)将设置的参数变量,定义于掉电保持区域;
5)将HMI或SCADA需要访问的状态参数变量,定义在连续的地址区域,可提高上位机访问的速度;
6)控制器可能会控制主机变频器、风机变频器,应将两者分块定义,若参数总数不超过100个,可以考虑将风机变频器的变量地址与主机变频器的地址相处100,便于记忆;
7)有的变量可能会采用浮点数,注意预留2Word的地址;
8)将使用频繁的变量放前面,较少使用的放后面,将运行历史记录放最后面;故障记录数据区要有预留空白区,常常需要增加保存的数据的需求,这样修改起来比较方便;
9)考虑应用系统可能的最大机型配置,如所有温度、压力、电流等AI端口的物理量读数,都分配对应参数存储单元,最终的机型可以需要多少显示多少,需要扩充时,只是显示出来就可以了,这在系列化机型设计时会简单容易;
10)建议先列出HMI需要显示的运行状态参数,如:
l 系统当前运行状态、温度、压力、电机电流、故障类型等;
l 设定的工作参数,如排气压力、保护压力、控制温度、保护温度、保护电流、保养计划等;
l 历史记录的查询,如各部件自上次维保以来的运行时间,系统累计运行时间、告警历史记录等待;
l 如果是变频驱动,需要变频器的常用运行状态参数等等,在HMI界面上就可以查阅或设置必需的功能码参数
按上述的提醒,将界面与控制作为一个整体进行变量规划,将所需的参数存放在连续地址区域,提高通信速度,还可避免后续扩展时,需要特别打补丁处理。
         定义举例参见下表的举例,刚开始编程,许多参数并不能事先就能想到,其中大部分变量是在编程过程中逐渐添加的,按变量属性进行区域规划,预留空间就是一个比较好的对策。最好将变量定义以电子表格文档记录保持,作为程序记录的组成部分,以便查阅和补充,







回复 送花

使用道具 举报

Bob 2020-4-17 16:30:15 | 显示全部楼层
本帖最后由 Bob 于 2020-4-17 20:39 编辑

变量定义举例,如下表:

空压机运行参数
D900~D999
本站联机状态字
D910
空压机运行状态文字串显示
D911
网络控制命令字/状态
D912
排气压力P1
D913
机头温度T1
D914
排气压力P2
D915
机头温度T2
D916
主电机变频器运行状态
D917
主机变频器输出频率
D918
主机电机电流
D919
风机变频器输出频率
D920
风机变频输出电流
D921
休眠判断倒计时计时器
D922
停机闭锁倒计时计时器
D923
主变频器告警码
D924
风机变频器告警码
D925
本机站号标识
D926
本机主机驱动模式
D927
本机设定排气压力
D928
本机设定过压保护压力
D929
本机设定加载压力(工频)
D930
本机设定卸载压力(压力)
D931
本机设定休眠唤醒压力
D932
主变频器运行频率上限
D933
风机变频器运行频率上限
D934
主机电机过载保护电流(工频)
D935
风机电机保护电流(工频)
D936
本机组标称排气量
D937
上次保养以来的运行时间
D938
本次上电以来的运行时间
D939
风机变频器运行状态
D940
备用
D941



空压机设定参数,要放在掉电保存区,工频与变频两种驱动方式统一安排:
  
当前空压机设定参数组
  
D1900~D1999
供气压力设定值(变频)
D1900
供气压力上限(变频卸载压力)
D1901
供气压力下限(变频加载压力)
D1902
工频加载压力1
D1903
工频卸载压力1
D1904
工频加载压力2段
D1905
工频卸载压力2段
D1906
机器压力上限值
D1907
休眠唤醒压力(变频模式)
D1908
过压停机告警压力
D1909
设定机头目标温度(变频)
D1910
设定停扇温度(变频)
D1911
风机启动温度(工频)
D1912
风机停机温度(工频)
D1913
机头过温预警
D1914
机头过温停机温度
D1915
风机保护电流
D1916
风机驱动模式
D1917
(未用)
D1918
主机工频启动方式
D1919
工频Y型启动时间
D1920
工频启动加载延迟
D1921
变频启动加载频率
D1922
主机保护电流
D1923
休眠判断时间
D1924
停机准备时间
D1925
最小停机时间
D1926
排水阀开启时间
D1927
排水阀关闭时间
D1928
主机命令方式
D1929
电力恢复(上电自检)时间
D1930
自动上电提醒时间
D1931
断电自动启动
D1932
断电自启厂家授权
D1933
压力比例增益KP
D1940
压力积分时间TI
D1941
压力微分时间TD
D1942
压力采样周期TS
D1943
压力输入滤波常数
D1944
温度比例增益P
D1945
温度积分时间I
D1946
温度采样周期
D1947
T2预警温度
D1948
T2停机温度
D1949
空气过滤器保养周期
D1950
油过滤器保养周期
D1951
油气分离器保养周期
D1952
电机润滑脂时间
D1953
润滑油保养周期
D1954
使用语言
D1956
压力的单位
D1957
温度的单位
D1958
使用的压力带
D1959
主电机工频起动方式
D1960
D1961
当前负序分量
D1976
负序电压判断值
D1977
P1变送器量程
D1978
P2变送器量程
D1979
P1校0偏置
D1980
T1校正偏置
D1981
P2传感器是否使用
D1982
P2校0偏置
D1983
P2预警压力
D1984
P2停机压力
D1985
T2传感器是否使用
D1986
T2校正偏置
D1987


回复 送花

使用道具 举报

Bob 2020-4-17 16:32:41 | 显示全部楼层
本帖最后由 Bob 于 2020-4-18 13:22 编辑

       由于小型PLC的编程体系中,采用的X、Y、M、C、D等元件及序号都属于绝对编址方式,建议在确定了I/O端口、M标志、D寄存器等元件的功能定义后,在元件表中,一次性地将常用的元件加上注释,方便程序阅读,可以减少出错的可能性,如下图:
符号表.png
       在定义的变量中,程序状态指针变量D149是一个重要的变量,其值【0~25】代表设备当前的运行状态,对应前面状态转移图中的“状态”,在程序中则指向程序当前执行的子程序;
为了方便观察设备的运行状态,还定义了一个空压机运行状态显示索引D911,其值【0~20】代表设备当前的运行状态,与D149相关,能说明操作命令来源、停机原因,如手动停机、远程停机、故障停机、紧急停机等,这相当于在控制程序上开了一个透明的窗口,方便观察程序的执行,配合监控D149、D911的调试,可方便定位程序错误所在语句。
例如D911所表示的信息定义如下:

D911读数
显示信息描述
0
上电自检中…
1
停机
2
启动中...
3
运行
4
休眠运行中...
5
停机准备中...
6
故障停机闭锁..
7
紧急停机闭锁..
8
上电自检中...
9
手动测试运行
10
Y型启动中..
11
△型启动中...
12
空载运行
13
自动加载
14
自动卸载
15
手动载入
16
手动卸载
17
停机闭锁...
18
紧急停机请复位
19
故障请检查
20
等待设置运行参数...
         HMI或上位机读取控制器内的D911寄存器值,以动态文字串的方式显示,让终端操作者一目了然,显得设备比较智能化。
完善的系统控制程序,还应有完善的设备部件的异常检测和保护,空压机中实现了如下的保护,按如下M标志进行更新,这样按连续片区的方式安排,方便批量读取、判断和操作,在许多HMI中,方便设计成自动弹出告警窗:
故障或异常的类型
标志
是否停机
是否记录
空压机排气过温预警
M200


空压机排气过温
M201
Y
Y
空压机供气过压力
M202
Y
Y
压力传感器断线
M203
Y

温度传感器断线
M204
Y

外部紧急停机
M205


空滤堵塞
M206


油滤堵塞
M207


分离器堵塞
M208


空滤保养提醒
M209


油滤保养提醒
M210


油精分器保养提醒
M211


润滑油保养提醒
M212


风机过电流
M213
Y
Y
风机缺相
M214
Y
Y
主电机过电流
M215
Y
Y
主电机电流缺相
M216
Y
Y
交流电源相序错误
M217
Y

主变频器故障
M218
Y
Y
主变频器通讯故障
M219
Y

交流电源电压异常
M220


润滑脂保养提醒
M221


油精分堵塞
M222


风机变频通讯故障
M223
Y

风机变频器过流
M224
Y
Y
风机变频器故障
M225
Y
Y
风机过载
M226


限时运行到
M227
Y

热继动作
M228
Y
Y
X6启停按键状态异常
M229
Y

缺水故障
M230







回复 送花

使用道具 举报

Bob 2020-4-17 17:36:43 | 显示全部楼层
本帖最后由 Bob 于 2020-4-17 20:43 编辑

      上面是用到变量定义的举例,涉及到程序控制所需的不同方面,供读者参考。      其中将N:N通信需要用到的系统D200~D551、M500~M563缓冲区全部预留出来,供多台空压机并联运行时交互数据之用。
      因H2U的D变量区间够大,定义时预留了比较大的间隔。
回复 送花

使用道具 举报

zhu 2020-9-12 10:00:01 | 显示全部楼层
这种程序得对空压机这行有足够了解才能规划的好
回复 送花

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册   

本版积分规则

有技术问题,就上汇川技术社区

INOVANCE汇川技术 公众号

扫码下载掌上汇川APP

全国服务热线:8:30-17:30

4000-300124

苏州地址:江苏省苏州市吴中区越溪友翔路16号

深圳地址:深圳市龙华新区观澜街道高新技术产业园汇川技术总部大厦

Copyright © 2003-2100 汇川技术 Powered by Discuz! X3.4 ( 苏ICP备12002088号 )
快速回复 返回列表 返回顶部