6ES7214-2BD23-0XB8参数设置
一、概述
本文介绍了艾默生公司EC20PLC在老化房控制系统中的应用并着重介绍该产品的PID闭环功能在恒温控制上的实现和强大的网络通信功能对EMERSONEV2000变频器运行控制的实现。该老化房控制系统是家电,电子,电脑行业产品生产检测的重要设备,也是产品生产合格检查的重要环节。该系统采用EMERSONEC20 PLC和多台EV2000变频器,实现对室内温度和变频器运行的集中控制。
二、 老化房控制系统工艺要求:
老化房结构如图所示:
具体要求如下:
1, 该系统所控制的老化房面积达16×30M,要求控制范围在20-55℃,控制精度达±5℃,能够在上位机对温度设定/显示/保存;(加湿控制采用单独进行和PLC无关)
2, 该系统有3个风机,用于进风,回风和排风;有4个风闸:新风闸,回风闸,排风闸,防火闸;2个防尘过滤网;6个火灾报警点;
在正常情况下(温湿度),关闭进风阀和排风阀,停止进风电机和排风电机,打开回风阀和防火阀,启动回风风机,保持老化房内回风循环;
在高温情况下,排风阀和进风阀打开,启动排风电机和进风电机,抽出部分空气;
在火灾报警情况下,防火阀关闭,回风禁止循环,全部从室内抽出;排风阀和进风阀打开,启动排风电机和进风电机,抽出室内空气;
3,其他要求省略;
三、 工作原理:
PLC系统结构如下:
EC20PLC设备的I/0接线如图:
工作原理:
根据老化房工艺要求组成如上图控制系统:上位机采用台湾研华IPC(工控计算机);监控画面采用亚控公司的KINGVIEW软件,该软件操作简单,元件形象丰富,性能稳定;核心控制部分采用EMERSONEC20-2012BTA类型的PLC和4个温度采集模块(EC20-4TC,接受K型温度信号);传动采用EMERSONEV2000通用型变频器。
在设备连接方面,EC20 PLC充分体现了自身的优势,由于EC20PLC本身带有2个串行通信口(1个RS232口,集成自由协议/编程协议/MODBUS从站协议,1个RS232/485口,集成自由协议/MODBUS主站/从站协议),EC20PLC利用COM0口和IPC进行通信(EC20PLC做从站,设置成MODBUS从站协议),利用COM1和多台变频器组成网络进行集中控制(EC20PLC的COM1设置成MODBUS主站协议)。
IPC为整个系统的人机接口,IPC读取PLC采集的系统运行状态如各风机的运转状态,各测温点温度,报警状况并显示在监控画面上,IPC又把各种操作命令传给PLC以控制系统的运行,如温度的设定,PID参数设定,各种阀门的开闭,变频器的启动、停止等设定。并且可以实时监控整个系统的工作运行状态、动作过程及故障报警等,IPC还可以根据设定对采集的数据进行保存打印。
在系统设计中,EC20 PLC为整个系统的核心,执行各种系统操作及计算,EC20PLC根据工艺要求和现场状况进行逻辑判断,开闭各种阀门和启停各风机;利用自身的PID功能对温度进行控制,具体方法后面描述。
EV2000系列变频器自带RS485接口的通讯单元,符合RS485通讯规范,用于实现PLC与多台变频器的联网。根据MODBUS通讯协议,我们可以通过RS485网络轻松实现对变频器的运行控制。由于RS485通讯链路传输距离远、配线简单、抗干扰能力强、可靠性高,在设计中,我们省略了变频器的外部起停控制线路,对变频器的所有控制都通过RS485通讯链路来完成,达到了经济高效的目的。
四、 监控画面
整个系统监控画面主要分为主画面,实时温度监控,PID参数设定,三个部分(其他部分省略),具体如下:
主画面如上图所示,主要完成对系统状态的监控(如各种风阀的开闭状态,风机的运行状态,报警状态),数据统计(如系统运行的时间,启停系统的次数),温度设定/测量等功能。
实时温度监控画面如上所示,此画面主要用于对温度的实时监控,并描绘出温度曲线趋势,以便判断系统的温度控制是否处于良好状态,可以实现对温度进行保存/打印等操作。
PID参数设定画面主要用于比例常数P,积分常数I,微分常数D的设定,根据实时温度曲线状况进行调节;显示PID控制的输出比例。
五、 对温度控制的实现
为便于对整个老化房内温度的控制,充分利用EC20PLC自身PID功能和PWM脉冲输出(Y0,Y1)的优势,室内温度区域分为2个部分(上层和下层各8个测温度点),对温度取平均值作为温度的测量值,并把此平均值送入PID功能块进行运算,对加热执行元件(参考EC20PLC的I/O接线图,固态继电器SSR1,SSR2,SSR3所控制的发热管的功率逐渐加大)也进行了分组处理:温度偏差较小的情况下,进行PID运算,通过Y0输出脉冲给SSR1,关闭SSR2,SSR3(即Y1,Y2停止输出);如果温度偏差较大,则Y1,Y2也参加输出,具体处理思路如下:
偏差值(ER=SV-PV)
处理办法
ER≥3
关闭PID运算,直接输出Y0,Y1,Y2;
3>ER≥1
启动PID运算控制Y0输出,启动Y1输出;关闭Y2输出;
1>ER≥-1
启动PID运算控制Y0输出,关闭Y1,Y2输出;
-3>ER>-1
启动PID运算控制Y0输出,启动Y1输出;关闭Y2输出;
-3≥ER
关闭PID运算,关闭Y0,Y1,Y2;
通过此法处理可以把温度控制精度保持在±0.3度以内,无论提升温度还是下降温度都很快速;把PID输出转化为PWM的占空比输出,又大大节省了PLC的资源(充分利用Y0,Y1的高达100KHZ的脉冲输出功能)。
EC20PLC的编程软件CONTROLSTAR的操作简单方便,指令丰富,功能强大,是一个很的全中文编辑工具。
实现步骤具体如下:在数据块设定PID各参数,其中的重点是设置P,I,D三个参数和输出量的上下限范围,由于PID的输出结果直接和PWM结合在一起,设置时要特别注意,在本例子中,按照PWM的周期为4秒(=4000MS)计算,把PID的输出上下限分别设定为4000和0;按照逆动作(BIT0=1),输出限定(BIT5=1)的要求对D7911各位进行赋值;
D7910 500 //采样时间S3 采样时间(Ts)范围为1~32767(ms),比运算周期短的时间数值无法执行;
D7911 16#23 //动作方向> 逆动作,设输出限定
………………………………………………..//BIT0 0:正动作 1:逆动作;
………………………………………………..//BIT1 0:输入变化量报警无效 1:输入变化量报警有效;
………………………………………………..//BIT2 0:输出变化量报警无效 1:输出变化量报警有效;
………………………………………………..//BIT3-4 没使用;
………………………………………………..//BIT5 0:输出值上下限设定无效1:输出值上下限设定有效;
………………………………………………..//BIT6~BIT15 没使用
D7912 70 //S3+2 输入滤波常数(α)范围0~99[﹪],为0时没有输入滤波;
D7913 100 //S3+3 比例增益(Kp)范围1~32767[﹪];
D7914 25 //S3+4 积分时间(TI)范围0~32767(×100ms),为0时作为∞处理(无积分);
D7915 0 //S3+5 微分增益(KD)范围0~100[﹪],为0时无微分增益;
D7916 63 //S3+6 微分时间(TD)范围0~32767(×10ms),为0时无微分处理;
D7925 2000 //S3+15 输入变化量(增侧)报警设定值0~32767(S3+1的BIT1=1时);
D7926 0 //S3+16 输入变化量(减侧)报警设定值0~32767(S3+1的BIT1=1时);
D7927 4000 //S3+17 输出变化量(增侧)报警设定值0~32767(S3+1的BIT2=1和BIT5=0时);输出上限设定值-32768~32767(S3+1的BIT2=0和BIT5=1时);
D7928 0 //S3+18 输出变化量(减侧)报警设定值0~32767(S3+1的BIT2=1和BIT5=0时);输出下限设定值-32768~32767(S3+1的BIT2=0和BIT5=1时);
在程序里调用PID指令和PWM指令用于控制Y0的输出(对SV和PV的比较而进行的逻辑控制输出较简单,故此处省略)。
六、 对变频器的启停控制
由于EMESON EC20PLC和EV2000变频器(非标)都集成MODBUS协议,实现它们的通信相对比较简单,整个网络采用RS485通信方式。
1. 各设备接口通信参数设置,对EC20PLC设置如下:
2. EV2000的设置要点:1,各通信参数要和EC20PLC一致;2,各变频器的地址要有自己唯一的从机地址;3,注意变频器的通信跳线开关CN14拨在RS485方向 ;
3. EC20PLC和变频器的连接如下:
4. EC20 PLC和变频器之间采用MODBUSRTU方式通信,Modbus采用“Big Endian”编码方式,先发送高位字节,是低位字节。RTU方式格式如下:
RTU方式:在RTU方式下,帧之间的空闲时间取功能码设定和Modbus内部约定值中的较大值。Modbus内部约定的小帧间空闲如下:帧头和帧尾通过总线空闲时间不小于3.5个字节时间来界定帧。数据校验采用CRC-16,整个信息参与校验,校验和的高低字节需要交换后发送。具体的CRC校验请参考协议后面的示例。帧间保持至少3.5个字符的总线空闲即可,帧之间的总线空闲不需要累加起始和结束空闲。
Modbus主要的功能是读写参数,不同的功能码决定不同的操作请求。变频器Modbus协议支持以下功能码操作:
功能码
功能码意义
0x03
读取变频器功能码参数和运行状态参数
0x06
改写单个变频器功能码或者控制参数,掉电之后不保存
0x08
线路诊断
0x10
改写多个变频器功能码或者控制参数,掉电之后不保存
0x41
改写单个变频器功能码或者控制参数,掉电之后保存
0x42
功能码管理
Modbus协议不同的功能码有不同数据的格式和意义,简要介绍如下:
改写多个变频器功能码和状态参数的格式协议:请求格式如下:
应用层协议
数据单元
数据长度
(字节数)
取值或范围
功能码
1
0x10
起始寄存器地址
2
0x0000~0xFFFF
操作寄存器数目
2
0x0001~0x0004
寄存器内容字节数
1
2*操作寄存器数目
寄存器内容
2*操作寄存器数目
应答格式如下:
应用层协议
数据单元
数据长度(字节数)
取值或范围
功能码
1
0x10
起始寄存器地址
2
0x0000~0xFFFF
操作寄存器数目
2
0x0001~0x0004
读取变频器参数的协议格式:请求格式如下:
应用层协议
数据单元
数据长度
(字节数)
取值或范围
功能码
1
0x03
起始寄存器地址
2
0x0000~0xFFFF
寄存器数目
2
0x0001~0x0004
应答格式如下:
应用层协议
数据单元
数据长度
(字节数)
取值或范围
功能码
1
0x03
读取字节数
1
2*寄存器数目
读取内容
2*寄存器数目
变频器的功能码参数、控制参数和状态参数都映射为Modbus的读写寄存器。功能码参数的读写特性和范围遵循变频器用户手册的说明。变频器功能码的组号映射为寄存器地址的高字节,组内索引映射为寄存器地址的低字节。变频器的控制参数和状态参数均虚拟为变频器功能码组。功能码组号与其映射的寄存器地址高字节的对应关系如下:
F0组:0x00;F1组:0x01;F2组:0x02;F3组:0x03;F4组:0x04;F5组:0x05;F6组:0x06;F7组:0x07;F8组:0x08;F9组:0x09;FA组:0x0A;Fb组:0x0B;FC组:0x0C;Fd组:0x0D;FE组:0x0E;FF组:0x0F;FH组:0x10;FL组:0x11;Fn组:0x12;FP组:0x13;FU组:0x14;变频器控制参数组:0x32;变频器状态参数组:0x33。
例如变频器功能码参数F3.02的寄存器地址为0x302,变频器功能码参数FF.01的寄存器地址为0xF01。
5、具体程序编写:启动5#变频器正转,转速设定为50.00HZ(内部表示为5000)的命令如下:
地址
功能码
寄存器地址
寄存器数目
寄存器内容字节数
寄存器内容
校验和
请求
0x05
0x10
0x3200
0x0002
0x04
0x01C7,0x1388
0x16A9
响应
0x05
0x10
0x3200
0x0002
无
无
0x4EF4
程序清单:
读取5#变频器的运行频率,变频器应答运行频率为50.00HZ:
地址
功能码
寄存器地址
寄存器数目或者读取字节数
寄存器内容
校验和
请求
0x05
0x03
0x3301
0x0001
无
0xDB0A
响应
0x05
0x03
无
0x02
0x1388
0x44D2
程序清单:
5#变频器以快速度停车:
地址
功能码
寄存器地址
寄存器内容
校验和
请求
0x05
0x06
0x3200
0x00C3
0xC6A7
响应
0x05
0x06
0x3200
0x00C3
0xC6A7
七、 小结
该系统以前是采用IPC+控制I/O卡的方式进行控制的,存在系统稳定性能差,控制效果不理想,故障率高的缺点,自从改用EMERSON的PLC作为系统的核心设备后,系统不仅达到良好的控制效果和很好的经济效益,比较容易维护,受到用户的好评。
1 龙门刨床的机械传动控制要求
图1 往返式机械传动示意图
图1所示的龙门刨床的机械传动示意图。传动系统从原点启动,中速行驶到1000mm,开始高速行驶,高速行驶到3000mm,开始低速爬行,低速爬行到终点(3200mm)停车。停顿2s。反向高速行驶,高速行驶到距原点200mm处开始低速爬行。到达原点停车,停顿2s后重新开始往返。在原点和终点低速爬行的目的是为了避免系统惯性带来的定点误差,做到原点和终点的jingque定位停车。
2 龙门刨床机械传动的PLC控制系统硬件设计
2.1 系统对变频器的控制要求
变频器的正反转由继电器K1、K2控制,速度的切换由继电器K3、K4完成。变频器故障报警输出触点(30A、30C触点)用于立即停止高速计数器运行,并由指示灯HR指示。
变频器具有多段速度设定功能,当K3、K4两个继电器触点都断开时,高速行驶(速度);K3闭合,K4断开时,中速行驶(第二速度);K3断开,K4闭合时,低速行驶(第三速度);K3、K4都闭合时,手动调节行驶(第四速度)。
旋钮SF用于手动/自动切换,并用指示灯HG1表示自动状态。手动时,能够通过按钮SA1(电机正转)和SA2(电机反转)手动调节传动系统的位置。
按钮SA用于传动系统在自动状态下的启动/停止控制。采用“一键开关机”方式实现启动/停止控制,用指示灯HG2表示启动状态。
行程开关SQ用于自动启动时,确定传动系统在原点位置,自动停止时,传动系统必须返回原点。行程开关SQ1、SQ2用于传动系统的两端限位,确保传动系统不能脱离设备。
2.2 PLC系统硬件系统的构成及连接
为了实现对龙门刨床机械传动的jingque定位,本系统采用PLC作为控制器,通过变频器进行速度调节,采用光电编码器和PLC高速计数器进行定位控制。根据龙门刨床的机械传动控制要求,系统中有开关量输入点8个,开关量输出点7个,光电编码器A相输入一个,选用SIEMENS的CPU224作为控制器,其I/O点的分配及系统接线如图2所示。
图2 龙门刨床机械传动PLC控制系统接线图
3 PLC梯形图程序的设计
PLC的梯形图程序设计包含主程序(用于实时调用手动子程序SBR_0和自动子程序SBR_1)、子程序SBR_0(用于实现对系统的手动控制)和SBR_1(用于实现对系统的自动控制)和中断处理程序INT_0程序(用于处理高速计数器计数当前值到达不同预置值的处理)。由于篇幅所限,以下将以中断处理程序INT_0程序为例,说明变频器对速度的控制和调节。其梯形图如下。
4 梯形图设计过程中要注意的几个关键问题
4.1通过多次更改高速计数器的中断和预置值实现多点定位
实现多点定位控制的关键包括两点,点是设置高速计数器中断事件12(计数器当前值=计数器预置值),另一点就是在中断处理程序中更改高速计数器预置值。
定位控制需要测量定位点与原点的距离,将单位距离(mm)转换成脉冲量,通过光电编码器和PLC高速计数器记录脉冲量的变化。本系统中,光电编码器的机械轴和电动机同轴。传动比=10,用于驱动设备的传动辊直径=100mm,光电编码器每转脉冲数=600个/转。可以计算出每毫米距离的脉冲数为:
每毫米距离的脉冲数=600÷(10×100×3.14)≈0.19108脉冲/mm
定点位和预置值比较,必须采用高速计数器中断方式,而不能采用一般的比较指令。因为一般的比较指令无法捕捉高速变化的事件。
必须通过ATCH和ENI指令将高速计数器中断事件号12((计数器当前值=计数器预置值)与中断处理程序INT_0连接。在中断处理程序INT_0中,到达预置值时,重新装载下一次的预置值,并执行工艺要求的继电器输出,处理变频器的运行速度。
在自动子程序SBR_1中,将高速计数器HC0设置为单相计数输入,没有外部控制功能。在原点和终点通过更改计数方向,便于中断处理程序INT_0判断变频器的运行方向。
4.2 在中断处理程序INT_0中不能使用等于比较指令
由于在一个中断处理程序INT_0中判断处理多个预置值。需要比较指令和计数方向来判断目前高速计数器计数当前值在哪个阶段,根据判断来决定执行那一段指令。判断不能使用等于比较指令,应该使用大于或小于指令判断。
中断事件(计数器当前值=计数器预置值)发生时,PLC立即中断当前主程序、子程序,执行中断处理程序INT_0中的指令。在中断处理程序INT_0中,PLC仍然是按照逐条逐行的扫描机制执行。而高速变化的计数值不可能和中断处理程序执行同步,如果采用等于比较指令,PLC在执行中断处理程序时,可能会错过等于值,使PLC在中断处理程序中无法判断设备运行到哪个阶段。
4.3 在自动运行时,高速计数器的初始值寄存器写入必须禁止
由于多点定位需要多次装载预置值,写入预置值必须执行HSC指令。
执行HSC写入指令,不单单是写入预置值,如果在控制字节中不加以限制,初始值寄存器SMD38中的值同样写入。而SMD38=0,这样,就会使高速计数器计数当前值置0。在自动运行时,必须设置控制字节SMB37的第七位SM37.6为0,在装载预置值时,禁止写入初始值。
在高速计数器初始设置和返回原点重新开始运行时,又必须写入初始值,使初始值置0,避免机械原因带来的误差。控制字节必须多次修改。遵循的原则是:允许写入初始值、执行HSC指令后,必须马上修改控制字节,禁止初始值写入,并执行HSC指令,中间不能有其它指令存在。
4.4 多点定位的输出线圈尽量采用立即指令
采用高速计数器进行多点定位,主要为了jingque定位。定位精度既决定于高速计数器的测量,也决定于执行机构的执行快速性。
如果采用普通输出指令,在一个扫描周期的程序执行阶段,改变的仅仅是输出映像存储器,PLC的输出点不会立即刷新,只有在程序执行完毕后,PLC的输出映像存储器才能对输出点刷新,执行输出。
为了增加定位精度,尽量采用立即输出指令。立即输出指令不受PLC扫描周期阶段的限制,在改变输出映像存储器的立即刷新PLC输出点。
4.5自动/手动程序采用For-Next循环指令和子程序指令实现
本系统中的自动/手动功能通过采用For-Next指令和子程序指令实现。自动程序和手动程序实际上就是两个循环指令的循环体。而循环指令仅执行一次循环扫描刷新。
手动子程序SBR_0和自动子程序SBR_1用于整个程序的分段,便于程序的理解,增加程序的可读性。For-Next循环指令的作用是使输出线圈能够重复使用,简化程序。
中断处理程序:INT_0
当变频器正向运行(由SM36.5判断,增计数为正向运行,SM36.5=1),高速计数器当前值等于19108(1000mm)时,继电器K3(Q0.2)、K4(Q0.3)断开,变频器速度设定为高速正向行驶(速度)。将高速计数器预置值更改为57325(3000mm)。
当变频器正向运行,高速计数器当前值等于59325(3000mm)时,继电器K3(Q0.2)断开、K4(Q0.3)接通,变频器速度设定为低速正向爬行行驶(第三速度)。将高速计数器预置值更改为61146(3200mm)。
当变频器正向运行,高速计数器当前值等于61146(3200mm)时,表明达到终点,继电器K1(Q0.0)、K2(Q0.1)、K3(Q0.2)、K4(Q0.3)全部复位断开,变频器立即停止运行。发出终点到达信号M0.1,让子程序SBR_1处理停顿2s时间,并由SBR_1处理反向运行设置。
当变频器反向运行(由SM36.5判断,减计数为反向运行,SM36.5=0),高速计数器当前值等于3822(200mm)时,继电器K3(Q0.2)断开、K4(Q0.3)接通,变频器速度设定为低速反向爬行行驶(第三速度)。将高速计数器预置值更改为0。
当变频器反向运行(由SM36.5判断,减计数为反向运行,SM36.5=0),高速计数器当前值等于0时,表明变频器返回到达原点。继电器K1(Q0.0)、K2(Q0.1)、K3(Q0.2)、K4(Q0.3)全部复位断开,变频器立即停止运行。发出原点到达信号M0.0,让子程序SBR_1处理停顿2s时间,并由SBR_1处理正向重新运行设置。
本文创新点:
往返式传动控制系统的多点定位是一个较难解决的问题,本系统采用PLC作为控制器,通过变频调速,利用光电编码器和PLC高速计数器进行定位控制,克服了往返式传动控制系统中由于机械惯性的作用给系统带来的定点误差,从而实现了jingque定位。