基于ABB-AC500 PLC和组态王的酸奶生产监控系统的设计
酸奶生产是一个压力、温度、液位控制系统,以发酵罐为主反映器,具体过程就是把新鲜原奶和发酵剂(乳酸菌)加入混合罐,通过监控混合罐的液位控制原料的注入量,经搅拌充分混合后注入到发酵罐,通过监控严格控制发酵罐温度,发酵完成后即可获得成品酸奶。
PLC控制系统以其运行可靠、使用维护方便、抗干扰能力强、适合新型高速网络结构等显著的优点,在小型工业控制系统和机械设备中,通常采用PLC单机控制模式实现顺序控制和传动控制,并确保生产效率。为了提高酸奶生产系统的经济性、可靠性和可维护性,目前酸奶生产系统都倾向于采用先进、实用、可靠的PLC来进行控制,同时在上位机利用亚控公司的组态软件“组态王”设计一个人机界面(HMI),通过RS485与可编程控制器通信,对控制系统进行全面监控,从而使用户操作更方便。总体上包括的技术路线:硬件设计,软件编程,组态设计[1]。
1. PLC选型与I/O分配[2]
1.1 系统控制要求
酸奶生产控制方式主要分为继电器控制系统、DDC(直接数字式控制器)控制系统和PLC控制系统等几种形式。采用传统的继电器控制系统来实现酸奶生产控制,由于机械接触点很多,导致接线复杂、参数调整不方便、功耗高等明显的缺点,而且机械接触点的工作频率低、故障率高、容易损坏、可靠性差,所以继电器控制系统已逐渐被淘汰。采用DDC控制系统虽然可以减少接线,使得可靠性有所提高,但是由于其本身的抗干扰能力差、不易联网、信息集成度不高和分级分步式结构的局限性,因此,越来越不能满足复杂多变的智能控制要求。
采用PLC来控制酸奶生产,不仅可以通过编程实现复杂的逻辑控制,而且可以在很大程度上简化硬件接线,提高控制系统可靠性,操作界面友好,信息集成度高,便于实现智能控制。该酸奶生产控制系统主要是根据模拟量输入发酵罐压力、混合罐液位和发酵罐温度控制2阀(原牛奶阀1、发酵罐阀2)和一泵(混合泵)的启停。
系统控制要求如下:
1.能过在上位机HMI通过或在在现场启停控制系统。
2.系统上电后原牛奶阀1打开,发酵剂罐中压力大于25Mpa时,发酵剂阀2打开,此时原牛奶和发酵剂在混合罐中混合,当混合罐液位大于5m时,混合泵打开(否则关闭)。
3.检测发酵罐温度,当其温度低于36度时,混合泵关闭。
![](/xb_startadmxbgk/Editer/uploadfile/20131028145724664.jpg)
图1 系统设计框图
1.2 PLC及编程软件的选择
美国ABB公司生产的AC500-ECO PLC。AC500-ECO PLC由于其技术领先、功能前大、价格合理,在冶金、石油、化工、水利、电力等行业有广泛的应用。AC500-ECO PLC可满足各种小型控制任务的要求:结构紧凑、扩展性强、应用简单、配置灵活、维护便捷。考虑到酸奶生产监控系统总的I/O点数不多,本文我们选用 AC500-ECO PLC作为控制器,而编程软件我们采用ABB的PS501 Control Builder。
AC500-ECO PLC具有以下特点:
1.CPU数据备份可靠,无需电池;2.CPU模块上集成了IO,扩展IO模块更容易;3.程序容量:128KB,集成数据容量:10KB(保持数据可靠)4.兼容性高:所有的I/O模块均可自由连接5.I/O模块接线端子(弹簧和螺钉)可插拔,接线更简单6.与AC500同一个产品平台,并使用同一个编程软件和工具7.CPU单元可支持2个串口,用于编程和通讯
PS501 Control Builder适用于AC500系列的所有CPU的编程工具,是可编程逻辑控制器PLC 的完整开发环境它支持IEC61131-3标准IL 、ST、 FBD 、LD、 CFC、 SFC 六种PLC编程语言,用户可以在同一项目中选择不同的语言编辑子程序,功能模块等。并具有以下特点:1.可对整个系统进行组态(包括现场总线和通讯接口);2.强大的诊断功能报警处理;3.集成可视化和开放的软件接口;
1.3 IO的分配与选择
表1 酸奶生产控制系统IO分配
![](http://fs10.chuandong.com/upload/images/20130605/39DF4370B75E5DAD.jpg)
表2 IO模块型号选择表
![](http://fs10.chuandong.com/upload/images/20130605/F8EDF6341AD04BB4.jpg)
综上,酸奶生产监控系统共需要1点DI、3点DO和3点AI,而AC500-ECO PLC的CPU集成了8DI+6DO,能够满足系统需要,故不需要额外的IO模块。
2. PLC主程序设计
2.1 硬件组态
通过I/O BUS添加AI模块,添加如下图所示:
![](/xb_startadmxbgk/Editer/uploadfile/20131028145744820.jpg)
图2 系统IO模块组态
2.2 I/O地址映射及变量声明
PS501 Control Builder是一个完整的用于逻辑控制器的开发系统,易于进行程序的开发,具有高级语言编程系统的开发环境,可为编辑器的操作和调试功能设置模式。
在POUs中,Main(PRG)即相当于汇编的主程序,在PROGRAM MAIN VAR与END_VAR中定义系统所需变量,在ABB PLC的语言编辑器的说明语句部分里设置输入输出端子的地址,相当于定义变量及类型。变量通常有AI,AO,DI,DO,DI和DO为BOOL型;AI和AO为INT或REAL型;
当完成PLC配置后,配置出对应的硬件扩展模块,接着就要对这些扩展模块进行编程,即可编程。在编程中,扩展的模块地址通过专用的定义表示,有两种方法:
变量声明:
Symbol AT %Array prefix Format Address: Datatype:= init.value;(*Comment*)
[1] 可以在变量声明里,将地址信息映射,例如
do1 AT %QX4000.0: BOOL; (*将do1写到第4000个字节的第0位*)
turn_on AT %IX4000.0: BOOL;(*将第4000个字节的第0位赋值给turn_on *)
[2] 直接表示。例如
%IX4000.0:=TURE;
2.3 控制程序的编写[3]
控制系统的主要功能是对酸奶生产系统进行自动启停,显示压力、液位、温度等运行参数,控制电磁阀(原牛奶阀1、发酵罐阀2)和泵(混合泵)的开关,实现对酸奶生产系统的控制。从控制系统的主要功能出发,为了增加程序可读性和减少程序代码,PLC程序采用了主程序调用功能块的程序结构。对于多个功能块调用的变量,采用全局变量声明。
主程序变量声明如下:
PROGRAM PLC_PRG
VAR
start AT %IX4000.0: BOOL; (*启动开关*)
stop AT %IX4000.1: BOOL; (*停止开关*)
output: BOOL; (*系统启动状态标志*)
value1 AT %QX4000.0: BOOL; (*原牛奶阀1*)
AI1 AT %IW0:WORD:=16#7530; (*发酵剂罐压力*)
AI_yali_ins: AI_FB; (*发酵剂罐压力模拟量输入模块*)
yali_val: REAL; (*发酵剂罐压力工程值*)
value2 AT %QX4000.1: BOOL; (*发酵剂阀2*)
AI_yewei_ins: AI_FB; (*混合罐液位*)
AI2 AT %IW1: WORD:=16#61A8; (*混合罐液位*)
yewei: REAL; (*混合罐液位工程值*)
beng AT %QX4000.2: BOOL; (*混合泵*)
AI_wendu_ins: AI_FB; (*发酵罐温度模拟量输入模块*)
AI3 AT %IW4: WORD:=16#7FF8; (*发酵罐温度*)
wendu: REAL; (*发酵罐温度工程值*)
ok: BOOL;
END_VAR
主程序采用LD(梯形图)作为MAIN POUs的编程语言,主程序如下图所示:
![](/xb_startadmxbgk/Editer/uploadfile/20131028145811273.jpg)
图3 系统控制主程序
2.4 子程序(功能块)的编写
对温度、压力、液位的线性变换[4]:
所谓线性参数,指一次仪表测量值与AD转换结果有线性关系,或者说一次仪表是线性刻度的。标度变换公式为:
![](http://fs10.chuandong.com/upload/images/20130605/84ACF38429D7F086.jpg)
![](http://fs10.chuandong.com/upload/images/20130605/F6C3D69703C8DCE7.jpg)
![](http://fs10.chuandong.com/upload/images/20130605/B51AAD75464453E7.jpg)
2.5 程序的编译与下载
PLC数据存储区的统一规划设置,灵活、合理的规划出各部分的内存空间是软件设计的基础和保证。也是整个PLC系统实现控制的关键所在。编程修改调试都很方便,大大缩短了调试时间,提高了系统的自动化程度,降低了硬件的复杂程度。控制程序编写完成后,对程序进行编译。
(1)单击“project”;
(2)编写LD或FBD的程序;
(3)单击“rebuild all”,编译;
(4)没有语法错误时,否则根据提示修改。单击“online”,选择“communication parameter”,参数设置如下:Port:COM3; Baudrate:波特率;Parity:奇偶校验;Stop bits:停止位 Motorola byteorder:Yes
(5)单击“Login”,下载。
![](http://fs10.chuandong.com/upload/images/20130605/98C2EF6C23CFB7BA.jpg)
3.1 组态王的通信设置
在组态王的设备COM1中新建设备,选择莫迪康MODBUS(RTU)串行,输入设备的逻辑名字,选择COM1,通讯参数设置为:波特率9600,无校验,数据位:8,停止位:1。
3.2 数据词典中I/O变量定义
在数据词典中定义所需要的监控变量:
![](/xb_startadmxbgk/Editer/uploadfile/20131028145837268.jpg)
图4 组态监控变量表
3.3 组态画面的设计
1. 新建一个命名为“酸奶生产车间”的画面,该画面就是酸奶生产过程中的反应车间,该反应车间包括原料罐(盛装原奶)、发酵剂罐、混合罐、发酵罐、搅拌电动机、泵、以及若干阀门。其中原料罐关联自身压力,混合罐关联自身液位,发酵罐关联自身温度,电机开关关联搅拌电机开关。
2. 在“反应车间”画面中从“图库”选择四个合适的反应器分别作为原料罐、发酵剂罐、混合罐,发酵罐,并关联自身变量,以液位为例,如下图:
![](/xb_startadmxbgk/Editer/uploadfile/20131028145908705.jpg)
图5 变量关联
为了使各个变量的实时数值直观的反映出来,可以建立动画连接,以液位为例:选择工具箱中文本,在对应位置写下###,进行变量显示关联。
注意:保存主画面。“文件”下“全保存”。 运行时,为使该放映车间的画面显示出来,在运行前应在“系统配置”中“设置运行系统”的主画面配置,把“反应车间”设为主画面。运行画面如下:
![](/xb_startadmxbgk/Editer/uploadfile/20131028145928633.jpg)
图6 主画面运行效果
3. 为了使各个变量的变化趋势直观的反映出来,可以从“工具箱”中添加实时趋势曲线于主画面,并关联需要显示变化趋势的变量。由于之后的工作中还要建立若干不同的画面,我的工程中将做实时报警画面、酸奶配方、趋势画面、历史曲线、XY控件画面、实时报表、退出控件这些画面。为了运行时可以方便地在这些画面中进行切换,可以新建画面,并添加按钮。
4.建立实时报警画面,为了当系统中某些量的值超过了所规定的界限时,系统自动产生相应警告信息(指示灯闪烁或者出现报警声音),表明该量的值已经超限,提醒操作人员。为了方便查看、记录和区别,要将变量产生的报警信息归到不同的组中,即使变量的报警信息属于某个规定的报警组。对相应变量定义报警之后,还需要新建压力报警标志、温度报警标志、液位报警标志,为报警窗口下的按钮、报警灯的关联打下基础。产生新报警时,为了提醒操作员,故添加指示灯以及发出警报声音,从图库中找到合适的指示灯,并进行报警设置。在出现报警后,指示灯将会一直闪烁,添加“报警确认”按钮,设置按钮按下时这样按下“报警确认”按钮后,在出现下次报警指示灯将不再闪烁。
![](/xb_startadmxbgk/Editer/uploadfile/20131028145952212.jpg)
图7 实时报警画面运行效果
结束语
本文将ABB AC500-ECO PLC和组态王6.5相结合应用于酸奶生产监控系统,有效提高系统的自动化程度、可靠性和通讯能力,实践表明,该方案具有很好的应用前景,极具有推广应用价值。
文章版权归西部工控xbgk所有,未经许可不得转载。