第一节 S7-200 EM235模拟量模块
1. 模拟量模块的外部接线方式
模拟量模块主要分为3种,即模拟量输入模块EM231(4路模拟 量输入)、模拟量输出模块EM232(2路模拟量输出)和模拟量I/O组 合模块EM235(4路模拟量输入、1路模拟量输出)。下面以组合模块 EM235为例说明其模拟量I/O接线方式。
长沙工控帮教育科技有限公司整理
24V DC电源正极接入模块左下方L+端子,负极接入M端子。
长沙工控帮教育科技有限公司整理
EM235模块的上部端子排为标注A、B、C、D的四路模拟量 输入接口,可分别接入标准电压、电流信号。
与C-端用短路子短 接,以免受到外部干 扰。
长沙工控帮教育科技有限公司整理
下部端子为一路模拟量输出端的3个接线端子MO、VO、IO,
其中MO为数字接地接口,VO为电压输出接口,IO为电流输出 接口。
长沙工控帮教育科技有限公司整理
在进行接线时应注意以下几点。
(1) 传感器接线的长度应尽可能短,并使用屏蔽双绞线
。
(2) 敷设线路时应使用电缆槽,避免将导线弯成锐角。
(3) 避免将信号线与电源线路平行接近布置。
(4) 使用高质量的24V DC传感器电源,以保证无噪声 及稳定运行。
长沙工控帮教育科技有限公司整理
2. 模拟量模块的特点
(1) 模拟量转换精度高,A/D转换达到12位。EM231模块单极性输 入0V~5V、0V~10V、0mA~20mA满量程精度可达±0.01%。I/O数据 格式如图所示。
输入数据格式
单极性数据
LSB MSB
0 0
数据值12位
0 0
0 1
2 3
F
双极性数据
LSB MSB
0 0
0
数据值12位0
0 1
2 3
4 F
长沙工控帮教育科技有限公司整理
输出数据格式
电流输出数据格式
LSB MSB
0 0
数据值12位
0 0
0 1
2 3
F
电压输出数据格式
LSB MSB
0 0
0
数据值12位0
0 1
2 3
4 F
长沙工控帮教育科技有限公司整理
(2) 有多种量程输入范围,可通过DIP开关进行设置。如图所示。
长沙工控帮教育科技有限公司整理
2.5mV 0V~10V
ON OFF
OFF OFF
ON OFF
0mV~20mA ON
OFF OFF
OFF OFF
ON
1.25mV 0V~5V
ON OFF
OFF OFF
OFF ON
0V~1V ON
ON OFF
OFF ON
OFF
0mV~500mV ON
ON OFF
OFF OFF
ON
0mV~100mV ON
OFF ON
OFF ON
OFF
0mV~50mV ON
OFF ON
OFF OFF
ON
SW6 SW5
SW4 SW3
SW2
SW1
单极性 满量程输入 分辨率25μV 12.5μV 125μV
长沙工控帮教育科技有限公司整理
12.5μV 25μV 125μV
±250mV OFF
ON OFF
OFF OFF
ON
±100mV OFF
OFF ON
ON OFF
OFF
±50mV OFF
OFF ON
OFF ON
OFF
±25mV OFF
OFF ON
OFF OFF
ON
SW6 SW5
SW4 SW3
SW2
SW1
双极性 满量程输入 分辨率25μV
250μV
5mV
±10V OFF
OFF OFF
ON OFF
OFF
2.5mV
±5V OFF
OFF OFF
OFF ON
OFF
1.25mV
±2.5V OFF
OFF OFF
OFF OFF
ON
±1V OFF
ON OFF
ON OFF
OFF
±500mV OFF
ON OFF
OFF ON
OFF
SW6 SW5
SW4 SW3
SW2
SW1
双极性 满量程输入 分辨率500μV
长沙工控帮教育科技有限公司整理
0.2 ON
OFF OFF
0.4 OFF
ON OFF
0.8 OFF
OFF ON
ON
无效ON
×100
OFF
ON
×10
ON
OFF
×1
OFF
OFF
双极性
OFF
ON
单极性SW6 SW5
SW4 SW3
SW2
SW1
单/双极 增益 衰减性
EM235的DIP开关
EM235选择单/双极性、增益和衰减
若所有输入设置成相同的模拟量输入范围和格式,则可 通过开关1到开关6设置单/双极性、增益和衰减。
长沙工控帮教育科技有限公司整理
(3) 输入接口带有模拟量输入滤波器,用以提高模拟量输入精度。
(4) 可对模拟量输入接口进行校准和配置位置。
(5) 数据采集速度高,模块可将模拟量信号在内转换为相应的数 字量信号。
长沙工控帮教育科技有限公司整理
ON:24V电源良好 OFF:无24V电源 ON:24V电
源良好
OFF:无24V
电源ON:24V电源
良好OFF:无24V
电源LED指示器
20.4V~28.8V 20.4V~
28.8V 20.4V~28.8V
L+电压范围 DC传感器供
电4路模拟量输入、1路模拟
量输出2路模拟量输 4路模拟量输入
出物理量I/O数 量
通 用 技 术 规 范
EM235 EM232
EM231
性 能长沙工控帮教育科技有限公司整理
<250
<250
0V~5V、0V~10V
0V~1V、0mV~500mV 0mV~100mV、0mV~
50mV
±10V、±5V、
±2.5V、±1V、
±500mV、±250mV
±100mV、±50mV
±25mV
0mA~20mA 0V~5V、0V~10V
±5V、±2.5V 0mA~20mA
输入范围电压:单极性 电压:双极性 电流
差分 差分
输入类型
12位A/D转换 12位A/D转换
分辨率
32
最大输入电流32
/mA
30V DC 30V DC
最大输入电压
-32000~32000
0~32000
-32000~32000
0~32000
数据字格式 双极性:全量程 单极性:全量程
输 入 技 术 规 范
模拟量到数字量 的转换时间/
μs
长沙工控帮教育科技有限公司整理
最大驱动 电压输出 电流输出
100 2 100
电流输出
2 /ms
满量程 的0.5%
满量程的
0.5%
精度 典型情况
(25℃)
电压、电 流
12位 11位 12位
11位
全量程分辨率 电压 电流
0mA~
0mA~20mA 20mA
电流输出范围/mA
±10
电压输出范±10
围/V
输 出 技 术 规 范
EM235 EM232
EM231
性 能5k
最大 最小
500
500
最小 最大
5k
设置时间
电压输出/
μs 长沙工控帮教育科技有限公司整理
第二节 PID 调节及PID指令
PID算法是过程控制领域中技术成熟、应用方便且广泛使用的控制方法
。它是基于经典控制理论,并经过长期工程实践而总结出的一套行之有 效的控制算法。在较早的PLC中并没有PID的现成指令,只能通过运算 指令实现PID功能,但随着PLC技术的发展,很多品牌的PLC都增加了 PID功能,有些是专用模块,有些是指令形式,都大大扩展了PLC的应 用范围。西门子的S7-200系列PLC中使用的是PID回路指令。
1. PID算法
长沙工控帮教育科技有限公司整理
PID控制(比例—积分—微分控制)算法在过程控制领域中的闭环控制中得到 了广泛应用。
长沙工控帮教育科技有限公司整理
PID控制器可调节回路输出,使系统达到稳定状态。偏差e是给定 值SP和测量值PV的差值。式(1)为PID控制的位置式算法,回路的输出 变量M(t)是时间的函数,它可以看作是比例项、积分项、微分项3项之 和:
(1) 式中: M(t) ——PID回路的输出,是时间函数;
——PID回路的增益;
e ——PID回路的偏差;
——PID回路的初始值。
数字计算机处理这个函数关系式,必须将连续函数离散化,对偏 差周期采样后,计算输出值。式(2)是式(1)的离散形式:
(2)
C C 0 initial C
( ) t d d / d
M t K e K e t M K e t
K C initial
M
n
C I i initial D 1
1
( )
n n n n
i
M K e K e M K e e
长沙工控帮教育科技有限公司整理
式中: Mn ——在第n采样时刻PID回路输出的计算值;
Kc ——PID回路增益;
En ——在第n采样时刻的偏差值;
——在第n-1采样时刻的偏差值(偏差前值);
Ki ——积分项的系数;
——PID回路的初值;
Kd ——微分项的系数。
式(2)中,积分项 是包括从第1个采样周期到当前采样周期 的所有误差的累积值。计算中,没有必要保留所有采样周期的误差项,
只需保留积分项前值MX即可。CPU实际上是使用式(3)的改进形式的 PID算式。
(3)
1
e n initial
M
n
I i
i 1
K e
C I D ( 1 )
n n n n n n n n
M K e K e 长沙工控帮教育科技有限公司整理 MX K e e MP MI MD
式中: MX ——积分项前值(在第n-1采样时刻的积分项);
MPn ——第n个采样时刻的比例项;
MIn ——第n个采样时刻的积分项;
MDn ——第n个采样时刻的微分项。
(1) 比例项
比例项MPn是增益Kc(决定输出对偏差的灵敏度)和偏差 的乘积
。增益为正的回路为正作用回路,反之为反作用回路。选择正、反作用 回路的目的是使系统处于负反馈控制。CPU采用式(7-4)来计算MPn。
(4) 式中: SPn ——第n采样时刻的给定值;
PVn ——第n采样时刻的过程变量值。
(2) 积分项
积分项MIn与偏差的和成正比,是各次积分项的累积值。CPU采 用式(5)来计算MIn。
(5)
e n
C C ( )
n n n n
MP K e K SP PV
I C S / I ( )
n n n n
MI K e MX K T T SP PV MX
长沙工控帮教育科技有限公司整理
式中: Ts ——采样周期;
Ti ——积分时间常数。
积分项前值MX是第n采样周期前所有积分项之和。在每次计算出 MIn之后,都要用MIn去更新MX。第一次计算时,MX的初值被设置 为 (初值)。采样周期Ts是每次采样的时间间隔,而积分时间常 数Ti控制积分项在控制量计算中的作用程度。
(3) 微分项
微分项MDn与偏差的变化成正比。
(6) 为了避免给定值变化的微分作用而引起的跳变,可设置给定值不变 ( )。那么计算公式可简化为式(7)。
(7)
initial
M
C D
D 1 1 1
S
( ) ( ) ( )
n n n n n n n
MD K e e K T SP PV SP PV
T
1
n n
SP SP
C D C D
1 1 1
S S
( ) ( )
n n n n n n n
K T K T
MD SP PV SP PV PV PV
T T
长沙工控帮教育科技有限公司整理
式中: ——微分时间常数;
——第n-1采样时刻的给定值;
——第n-1采样时刻的过程变量值。
T D 1
SP n n 1
PV
2. PID指令
1) 指令格式及梯形图
常数(0~7)
LOOP
VB(BYTE型)
操作数TBL
梯形图格式
PID TBL,LOOP
指令表格式指令
PID
PID运算
名 称长沙工控帮教育科技有限公司整理
2) 指令功能
PID 在EN端口执行条件存在时,运用回路表中的输入信息和组态 信息,进行PID运算,编程极其简便。
该指令有两个操作数:TBL和LOOP。其中TBL是回路表的起始 地址,操作数限用VB区域;LOOP是回路号,可以是0到7的整数。在 程序中最多可以用8条PID指令,PID回路指令不可重复使用同一个回路 号(即使这些指令的回路表不同),否则会产生不可预料的结果。
回路表包含9个参数,用来控制和监视PID运算。这些参数分别是 过程变量当前值PV,过程变量前值 ,给定值SPn,输出值Mn,
增益Kc,采样时间Ts,积分时间Ti,微分时间 和积分项前值MX。
36个字节的回路表格式见表。若要以一定的采样频率进行PID运算,采 样时间必须输入到回路表中。且PID指令必须编入定时发生的中断程序 中,或者在主程序中由定时器控制PID指令的执行频率。
1
PV n
T D
长沙工控帮教育科技有限公司整理
PV n
SP n
M n
K C
T S
过程变量
给定值
输出值
增益
采样时间 实数 输入 单位为s,必须是正数
( ) 16
比例常数,可正可负 输入
( )
实数12
必须在0.0~1.0之间 输入/输出
实数
( )
8
必须在0.0~1.0之间 输入
实数
( )
4
必须在0.0~1.0之间 输入
( )
实数0
描述 变量类型
数据类型 变量名
偏移地址
PID指令回路表
长沙工控帮教育科技有限公司整理
最近一次PID运算的过 程变量值,必须在 0.0~1.0之间
输入/输出 ( ) 实数
32
必须在0.0~1.0之间 输入/输出
( ) 实数 28
单位为min,必须是正 输入 数
( ) 实数 24
单位为min,必须是正 输入 数
实数 ( )
20
描述 变量类型
数据类型 变量名
偏移地址
T I
T D
MX
1
PV n
积分时间
微分时间 积分项前值 过程变量前值
长沙工控帮教育科技有限公司整理
对于PID回路的控制,有些控制系统只需要比例、积分、微分其中的一 种或两种控制类型。通过设置相关参数即可选择所需的回路控制类型
。
如只需要比例、微分回路控制,可以把积分时间常数设为无穷大
。此时积分项为初值。
只需要比例、积分回路控制,可以把微分时间常数置为0。
只需要积分或微分回路,则可以把回路增益Kc设为0.0,在计算积 分项和微分项时,系统把回路增益Kc当作1.0。
一般情况下,比例、积分回路控制应用较多。微分控制的作用不 宜过强,否则易引起系统的不稳定。
长沙工控帮教育科技有限公司整理
3) PID回路指令控制方式
S7-200 系列PLC中,PID回路指令没有控制方式的设置,只要EN 端有效就可以执行PID指令。PID指令执行称之为“自动”方式,PID指 令不运行称之为“手动”的方式。当EN端口检测到一个正跳变(从0到1) 信号,PID回路就从手动方式切换到自动方式。为达到无扰动切换,
必须用手动方式将当前输入值填入回路表中的 Mn栏,用来初始化输 出值Mn ,且PID指令对回路表中的值进行一系列操作,以保证手动方 式无扰动地切换到自动方式。
置给定值SPn=过程变量PVn。
置过程变量前值 =过程变量当前值PVn。
置积分项前值MX=输出值Mn。
1
PV n
长沙工控帮教育科技有限公司整理
4) 回路输入输出变量的数值转换及其范围 (1) 回路输入变量的转换和归一化处理
每个PID回路有两个输入变量,给定值SP和过程变量PV。给定值通常 是一个固定的值,如温度控制中温度的给定值。过程变量PV则与PID回路 输出有关,并反映了控制的效果。在温度控制系统中,测量并转换为标准 信号的温度值就是过程变量。
给定值和过程变量一般都是实际工程物理量,其数值大小、范围和测 量单位都可能不一样。执行PID指令前必须把它们转换成标准的浮点型实 数。
长沙工控帮教育科技有限公司整理
① 回路输入变量的数据转换。把A/D模拟量单元输出的整数值转换成浮 点型实数值,程序如下。
XORD AC0,AC0 //清空累加器
MOVW AIW0,AC0 //模拟量采集,送入AC0 LDW>= AC0,0 //若为正,直接转换为实数
JMP 0 //否则,先对AC0中的值进行符号扩展 NOT
ORD 16#FFFF0000,AC0 LBL 0
DTR AC0,AC0
长沙工控帮教育科技有限公司整理
//把32位整数转换为实数② 实数值的归一化处理。
实数值进一步归一化为0.0~1.0之间的实数。
noum ( raw / pan set )
R R S Off
归一化公式
式中: ——标准化的实数值;
——未标准化的实数值;
——补偿值或偏置,单级性为0.0,双极性为0.5;
——值域大小,为最大允许值减去最小允许值,单极 性为32000(典型值),双极性为64000(典型值)。
R noum
R raw
Off set
S pan
长沙工控帮教育科技有限公司整理
双极性实数标准化的程序如下。
/R 64000.0,AC0 //累加器值进行标准化
+R 0.5,AC0 //加上偏置,使其落在 0.0~1.0之间 MOVR AC0,VD100 //标准化的值存入回路表
(2) 回路输出变量的数据转换
回路输出变量是用来控制外部设备的,例如控制水泵的速度。PID运算 的输出值是0.0~1.0之间的标准化了的实数值,在输出变量传送给D/A 模拟量单元之前,必须把回路输出变量转换成相应的整数。这一过程 是实数值标准化的逆过程。
长沙工控帮教育科技有限公司整理
① 回路输出变量的刻度化。把回路输出的标准化实数转换成实数,公式如下。
scal ( n set ) pan
R M Off S
式中: ——回路输出的刻度实数值;
Mn ——回路输出的标准化实数值
R scal
长沙工控帮教育科技有限公司整理
② 将实数转换为整数(INT)。
把回路输出变量的刻度值转换成整数(INT)的程序为:
ROUND AC0,AC0 //实数转换为32位整数
MOVW AC0,AQW0 //将输出值输出到模拟量输出寄存器 回路输出变量的刻度化的程序如下。
MOVR VD108,AC0 //将回路输出值放入累加器
-R 0.5,AC0 //对双极性输出,要减0.5的偏置(单极性无此句)
*R 64000.0,AC0 //得到回路输出的刻度值
长沙工控帮教育科技有限公司整理
(3) 变量的范围
过程变量和给定值是PID运算的输入变量,因此,在回路表中这些 变量只能被除数回路指令读取而不能改写。
输出变量是由PID运算产生的,在每一次PID运算完成之后,需要把 新输出值写入回路表,以供下一次PID运算使用。输出值应为0.0~1.0 之间的实数。
如果使用积分控制,积分项前值要根据PID运算结果更新。每次PID 运算后更新了的积分项前值要写入回路表,用作下一次运算的输入。
若输出值超过范围(大于1.0或小于0.0),那么积分项前值必须根据下列 公式进行调整:
MX=1.0-(MPn-MDn) 当计算输出值Mn>1.0 MX= -(MPn-MDn) 当计算输出值MN<0.0
长沙工控帮教育科技有限公司整理
式中:
MX ——经过调整了的积分项前值;
MPn ——第采样时刻的比例项;
MDn ——第采样时刻的微分项。
修改回路表中积分项前值时,应保证MX的值在0.0~1.0之间。调整积分项前
值后使输出值回到(0.0~1.0)范围,可以提高系统的响应性能。4) PID指令运行出错条件
PID指令不检查回路表中的值是否在范围之内,所以必须确保过程变 量、给定值、输出值、积分项前值、过程变量前值在0.0~1.0之间。如果 指令操作数超出范围,CPU会产生编译错误,导致编译失败。
如果PID运算发生错误,那么特殊存储器标志位SM1.1(溢出或非法 值)会被置1,并且中止PID指令的执行。要想消除这种错误,单靠改变回 路中的输出值是不够的,正确的方法是在下一次执行PID运算之前,改变 引起运算错误的输入值,而不是更新输出值。
长沙工控帮教育科技有限公司整理
1) 控制要求
某水箱其出水口流量是变化的,进水口流量可通过调节水泵转速控 制,水位检测由差压变送器完成。现对水箱进行水位控制,使其水位保 持在满水位的75%。以PLC为主控制器,采用EM235模拟量模块实现模 拟量和数字量的转换,差压变送器送出的水位测量值通过模拟量输入通 道送入PLC中,PID回路输出值通过模拟量转化控制变频器实现对水泵 转速的调节。
3. 指令应用举例
长沙工控帮教育科技有限公司整理
2) 控制程序的实现
在以上要求中,水位测量值为过程变量PV,满水位的75%为给定值SP。
本例中过程变量PV和回路输出量归一化采用单极性方案。控制方式采用比例
、积分控制,PID参数采用如下设置:Kc=0.25,Ts=0.1s,T
I
=30min。⑴ 系统启动时,关闭出水口,用手动方式控制进水,使水位达到满水位的 75%,然后打开出水口,同时将控制方式从“手动”转为“自动”。I0.0控制 PID指令的启动,只需提供一个上升沿。
⑵ SBR_0子程序中为PID参数设置及定时中断程序的启动。
⑶ 定时中断程序INT_0中为数据的标准化、PID指令的执行、及控制量的输 出。
长沙工控帮教育科技有限公司整理
长沙工控帮教育科技有限公司整理
(1) 采用主程序、子程序、中断程序的程序结构形式,可优化程序结构
,减少周期扫描时间。
(2) 在子程序中,先进行组态编程的初始化工作,将5个固定值的参数 (SPn、Kc、Ts、T
I
、TD
)填入回路表。然后再设置定时中断,以便周期 地执行PID指令。4. PID指令使用说明
(3) 在中断程序中完成3个任务。
① 将由模拟量输入模块提供的过程变量PVn转换成标准化的实数(0.0
~1.0之间的实数)并填入回路表。
② 设置PID指令的无扰动切换的条件(例I0.0),并执行PID指令。使 系统由手动方式无扰动地切换到自动方式。将参数Mn、SPn、 、 MX 先后填入回路表,完成回路表的组态编程,从而实现周期地执行PID 指令。
③ 将PID运算输出的标准化实数值Mn先刻度化,然后再转换成有符 号整数(INT),最后送至模拟量输出模块,以实现对外部设备的控制。