PLC的模拟量模块具体分类起来,可以有电压量输入输出,电流量输入输出等,这期擂台我们就要求大家就自己熟悉的一类PLC来详细介绍自己在用这类PLC的模拟量模块时是怎样设置的,要附有详细的设置界面截图!然后针对自己的相关的设置过程编写一个有模拟量简单处理过程的例程,越详细越好!附有讲解更佳!
PLC的类型任意选择,回答的最好最完全的,原创最多,阐述最详细,程序越准确者获一等奖!
工控PLC擂台每周一期,本期待102期结束一周后结贴。奖项设置:一等奖1名:50~100MP,二等奖5名:10MP,三等奖10名:50积分。
MP介绍:gongkongMP即工控币,是中国工控网的用户积分与回馈系统的一个网络虚拟计价单位,类似于大家熟悉的QB,1个MP=1元人民币。
MP有什么用?兑换服务:以1个MP=1元来置换中国工控网的相关服务。 兑换现金:非积分获得的MP可兑换等值现金(满100MP后、用户可通过用户管理后台申请兑换
我先来一个,最熟悉的--EM235模块。
PLC:s7-200
模拟量模块:EM235(4路模拟量输入+1路模拟量输出)
先来个EM235的接线图纸:
图中使用了压力变送器为模拟量输入提供电流信号,压力变送器采用二线制4-20MA类型。
那么在EM235的DIP开关处应该这样选择:
好了,硬件部分都准备好了,那么下面就是程序的编制了。
使用西门子模拟量转换库程序调用
本人文采有限,简单说下这个库指令的用法:
1,Input:就是模拟量输入通道,从AIWO开始寻址。
2,Ish:模拟量输入对应数值上限,这里是32000
3,Isl:模拟量输入对应数值下限,这里是6400
这里要解释下,
在S7-200 CPU内部,0 - 20mA对应于数值范围0 - 32000;
对于4 - 20mA的信号,对应的内部数值为6400 - 32000。
4,Osh:这里就是代表所接传感器的量程上限了,比如我用压力变送器是1.6MPa量程的,那么在这里应该输入1.6
5,Osl:代表所接传感器的量程下限,一般为0.
6,Output:经程序转换后输出实际数值,这里就是压力变送器的压力。
信捷XC-6PT-P:
XC-E6PT-P 温度PID 控制模块(以下简称为XC-E6PT-P),对6 点PT100 温度信号进行处理,并把它们传输到PLC 主单元。
特点
铂热电阻输入,分度号 Pt100。
6 通道输入,6 通道输出,2 组PID 参数(每3路一组PID 参数)。
1mA 恒流输出,不受外界环境变化影响。
分辨率精度为0.1℃。
作为 XC 的特殊功能模块,最多可连接7 台模块。
端子:
..........................
软件配置:
PLC程序:
梯型图
命令语句
;控温周期可以通过FD来设置,比喻第一模块可以通过FD8250,FD8251设置,选择2S或20S。
;0CH,1CH 的温度测量值分别存放在寄存器D0,D1中.
LD M8000
MOV ID100 D0
MOV ID101 D1
;设定值
LD M8002
MOV K500 QD100
;Y100 PID启停位
LD M0
OUT Y100
;PID调整 依次为P ,I ,D ,PID调节范围,PID控制死区
LD M8002
MOV K100 QD106
MOV K20 QD107
MOV K100 QD108
MOV K100 QD109
MOV K10 QD110
END
看来都是高手,我不会写,只能 转帖一个我厂里德国进口设备中的模拟量数据的读取程序,与各位一起分享一下!
来一份 S7 300 系列 PLC 的程序,模块用的是 PHOENIX 费尼克斯的 I/O 模块,先上接上图看看,其模块量有电流或是电压输入,不需要在 程序中做任何设备,只是换一下输入线就能切换输入模式
其 配套的模块量接线也非常的方便,两个电源线,一根或是两根信号线都可以,如模拟量 有电流或是电压之分,只需要调换一根线就行。
上图为 在 WINCC 或是屏内对 采集的 模拟量进行重新订位其 工程量的 界面,老外用的都是模板式的 工程量 采集,在显示和设置方面都是非常的 方便实用。
上图为 S7 软件中 自己 写的 一个模拟量采集读取的程序,也是非常的方便实用,其实有参数设置,可对 模拟量进入补偿或是修正,或是对模拟量与实际值 的偏差进行调整,个有感觉 老外的这个 模拟量程序在批量使用时很精点。
西门子PLC S7-200的模拟量模块有3种:1、EM231 模拟量输入模块,2、EM232 模拟量输出模块 ,3、EM235 模拟量输入/输出模块。它们的用法与参数设置是相似的,这里就EM235模块的用法、参数设置及编程作以介绍,供大家参考。
一、EM235简介:
EM235的对外引脚与设置开关如下图一:
图一、EM235连接图
EM235有A、B、C、D 4路模拟量输入和1路模拟量输出:V0为电压输出,I0为电流输出。其内部电路方框图如下:
图二、EM235输入/输出方框图
A、B、C、D 4路模拟量输入点通过多路开关接于同一个放大器及A/D转换器,使用时选用那路输入信号,模块自动将该路开关闭合,将此路信号进行放大与A/D转换。由于4路信号同用一个放大器与A/D转换器,从而确保4路的转换精度相同。
模拟量输出:由PLC将0~32000数字送入AQW0,即送入EM235的D/A模块的数字输入端,转化为0~2V电压信号,该电压去电压放大器输入,经放大变为0~10V电压(单极性设置)由Vo口输出。该电压又去V/I转换电路输入,V/I转换电路将其转换为0~20mA电流,由Io口输出。
图一中的偏移量微调(即图二中的偏移调整),用于手动调整放大器零点的:当输入标准信号(如0~20mA)调为0输入时,如模块转换的数字信号≠0,可调节该微调使其=0.
图一中的增益微调(即图二中的电压调整),用于手动调整放大器增益的:当输入标准信号(如0~20mA)调为20mA输入时,如模块转换的数字信号≠32000,可调节改微调使其=32000。
图一中的配置下的6个DIP开关(SW1~SW6)是设置参数用的:.其SW6为单/ 双极性选择开关。SW6=ON 为单极性,SW6=OFF 为双极性。
SW4和SW5决定输入模拟量的增益选择,而SW1、SW2、SW3共同决定了模块的衰减选择。
下表为EM235的6个DIP开关不同设置对应的模拟量输入量程表:
EM235内部电压放大器为同相放大器,其输入阻抗很大(高于几兆欧以上),故它要求的输入信号是电压。由上表可知:双极性要求输入信号全为电压,通过SW1~SW5的不同设置,其满量程输入电压可由±25mV~±10 V 8种。单极性的输入信号,通过SW1~SW5的不同设置,其输入信号除满量程输入电压由50mV~10 V电压外,还可输入0~20mA电流信号,从单极性表中可知:设置0~5V,与设置0~20mA,其SW1~SW5的设置是一样的,使用时的区别就是(以A输入为例):如输入信号为0~5V电压信号,其电压信号的正负输入线分别接A口的“A+、A_”输入端,而“RA”端空悬或与A-短接。如输入信号为0~20mA电流,其电流信号的正负输入线分别接A口的“A+、A_”输入端外,其“RA”端必需与A+端短接,因为RA与A-之间接有250欧电阻,当输入为0~20mA电流流经RA电阻(RA=250Ω)会使“A+、A_”间产生0~5V电压。即通过250欧电阻使0~20mA电流变为0~5V的电压信号。
二、输入信号与输入模块的连接
1、电压输入信号与EM235的连接:如输入信号为:0~10 V电压信号,则DIP开关应设置为:
SW1 SW2 SW3 SW4 SW5 SW6
OFF ON OFF OFF OFF ON
电压输入的正极引线接EM235的A+ 端,其负极引线接EM235的A- 端即可。EM235的其它未使用的输入口,应将其+、- 输入端短接。
2、电流输入信号与EM235的连接:如输入信号为:0~20 mA电流信号,则DIP开关应设置为:
SW1 SW2 SW3 SW4 SW5 SW6
ON OFF OFF OFF OFF ON
电流输入信号的正极引线接EM235的A+ 端,其负极引线接EM235的A- 端外,一定要将RA端与A+ 端相接在一起,即将RA的250欧电阻并接在A+与A- 端二端。EM235的其它未使用的输入口,应将其+、- 输入端短接。
3、输出信号为4~20ma电流的二线式传感变送器与EM235输入口的接线:
通常输出4~20ma电流信号的传感变送器,对外输出只有 +、-二根连线,它需要外接24V电源电压才能工作,如将它的+、- 二根连线分别与24V电源的正负极相连,在被测量正常变化范围内,此回路将产生4~20ma电流,见下左图。下右图粉色虚线框内为EM235 模块第一路模拟输入的框图,它有3个输入端,其A+与A-为A/D转换器的+ - 输入端,RA与A-之间并接250Ω标准电阻。A/D转换器是正逻辑电路,它的输入是0~5V电压信号,A-为公共端,与PLC的24V电源的负极相连。
那么24V电源、传感变送器、模块的输入口三者应如何连接才是正确的?正确的连线是这样的:将左图电源负极与传感器输出的负极连线断开,将电源的负极接模块的A-端,将传感器输出负极接RA端,RA端与A+端并接一起,这样由传感器负极输出的4~20ma电流由RA流入250Ω标准电阻产生0~5V 电压并加在A+与A-输入端。
切记:不可从左图的24V正极处断开,去接模块的信号输入端,如这样连接,模块是不会正常工作的。
对第(2)种电压输出的传感変送器,模块的输入应设置为0~5V电压模式,连线时,变送器输出正极只连A+,RA端空悬或接A-即可。
三、转换公式的推导
模拟量输入、输出模块的编程要比用位变量进行一般的程序控制难的多,因为它不仅仅是程序编程,而且还涉及到模拟量的转换公式推导与使用的问题。不同的传感变送器,通过不同的模拟量输入输出模块进行转换,其转换公式是不一样的,如果选用的转换公式不对,编出的程序肯定是错误的。比如有3个温度传感变送器:
(1)、测温范围为 0~200 ,变送器输出信号为4~20mA
(2)、测温范围为 0~200 ,变送器输出信号为0~5V
(3)、测温范围为 -100~500 ,变送器输出信号为4~20ma
(1)和(2)二个温度传感变送器,测温范围一样,但输出信号不同,(1)和(3)传感变送器输出信号一样,但测温范围不同,这3个传感变送器可选用同一个的模拟量输入模块,其参数设置相同,但它们的转换公式却不相同,请见以下分析:。
对者种传感器,其DIP开关设置是一样的,即:
SW1 SW2 SW3 SW4 SW5 SW6
ON OFF OFF OFF OFF ON
它适应0~5V 电压输入。也适应0~20mA 电流输入。
对于(1)和(3)传感变送器所用的模块,其模拟量输入=20ma时,对应数子量=32000,而模拟量输入=4 mA 对应数字量=6400;
对于(2)传感变送器用的模块,其模拟量输入为0~5V电压信号,模拟量输入=5V时对应数字量=32000,而模拟量输入=0V时,对应数字量=0;
这3种传感変送器的转换公式该如何推导的呢?这要借助与数学知识帮助,请见下图:
(2)传感器测温T=200时,输出电压V=5V,模块转换数字量AIW=32000;测温T=0时,输出电压=0V,模块转换数字量AIW=0。T与AIW的关系曲线如上中图所示,
上面推导出的(2-1)、(2-2)、(2-3)三式就是对应(1)、(2)、(3)三种温度传感变送器经过模块转换成数字量后再换算为被测量的转换公式。编程者依据正确的转换公式进行编程,就会获得满意的效果。
四、按转换公式编程:
根据转换后变量的精度要求,对转换公式编程有二种形式:1、整数运算,2、实数运算。
请见下面梯形图:
(A)、整数运算的梯形图:
该梯形图是第(1)种温度传感变送器(测温:0~200,输出:4~20ma)按公式(2-1)以整数运算编写的转换程序,它可作为一个子程序进行调用。
(B)实数运算的梯形图:
该梯形图是对一个真空压力变送器(量程:0~0.1Mpa,输出:4~20ma)按公式(2-1)以实数运算编写的转换程序,可作为一个子程序进行调用。
五、编程实例及解析
某设备装有4种传感器:
1、真空压力传感器,量程为:0~0.1Mpa;输出给PLC的信号为4~20ma。
2、蒸汽压力传感器,量程为:0~1.0Mpa;输出给PLC的信号为4~20ma。
3、温度传感器,量程为:0~200 度;输出给PLC的信号为4~20ma。
4、电机转速,量程为:0~50转/秒;输出给PLC的信号为4~20ma。
该设备用蒸汽对其罐体加热,并对温度要求按设定的温度值进行温度控制。控制方式采用自动调整电动阀开门角度的大小来改变加热管道的蒸汽的流量。电动阀的控制信号为4~20ma,即输入4ma时,电动阀关门,输入20ma时,电动阀门全开。
为此选用了含有4路模拟输入和一路模拟输出的模块EM235。其4路模拟量输入信号皆设定为0~20ma电流输入模式,一路模拟量输出信号设定为4~20ma电流输出模式。
要求用触摸屏显示这4种信号的时时状态值,并在触摸屏上设置控制的温度参数,传给PLC使PLC按此值进行温度控制。由于本文重点是讲述有关模拟量的输入与输出的编程设计,对触摸屏的编程设计不予讲述,只提供触摸屏与PLC的通讯变量:
VD0:为真空压力显示区,由PLC传送给触摸屏。
VD4:为蒸汽压力值显示区,由PLC传送给触摸屏。
VW8:为蒸汽温度值显示区,由PLC传送给触摸屏。
VW10:为电机转速值显示区,由PLC传送给触摸屏。
VW12:设定温度值区,由触摸屏传送给PLC.
(一)、硬件设置
除上述4种传感器外,选用:
1、S7-200PLC一台,型号为:CPU222 CN 。
2、选用EM235模拟量输入模块一块(输入设置:0~20 ma工作模式;输出设置:
4~20ma)。
3、变频器一台,型号为PI8100,由PLC控制启停,手动调速。
4、西门子触摸屏一块。型号:Smart 700
硬件电路图
(二)、对传感器输出的4~20ma转换为显示量程的公式推导:
EM235模拟量输入输出模块,当输入信号为20ma时,对应的数字量=32000,故:
输入=4ma时,对应的数字量=6400,对应显示量程值=0。输入20ma时,对应的数字量
=32000,对应显示量程值最大值=Hm,其输出量与模块的数字量的变化关系曲线如图一所
示:
这4个转换公式,前二种为实数运算,后二种为整数运算,为简化程序,自定义二个功能块分别用于实数与整数运算,而每个功能块在程序运行中又都调用二次,分别计算不同的物理量。为此功能块设有二个数字输入与一个计算结果输出三个口,以适用于多次调用去计算不同物理量的值。请见下面编程:
(三)、实数运算功能块(SBR_0):
(四)、整数运算功能快(SBR_1):
(五)、将模块的数字量,按对应公式转换为量程显示值的编程
分析以上梯形图可知,该程序编写的特点:1、选用自定义功能块编写转换公式的子程序,2、对多个转换变量的调用采用每个扫描周期对MB0加1的依次循环调用的方式,这样的编程处理会使编写的程序,简短易读易懂。
(六)、对模拟量输出的编程处理
对罐体温度控制是采用渐近比较的控制方式进行编程。设计思路是这样的:
当罐体的温度低于设定温度10度时,控制加热蒸汽的电动阀门全打开,当罐体的温度低于设定温度7度时,电动阀门打开3/4,当罐体的温度低于设定温度4度时,电动阀门打开1/2,当罐体的温度低于设定温度2度时,电动阀门打开1/4,当罐体的温度低于设定温度1度时,电动阀门打开1/8,当罐体的温度=设定温度时,电动阀门关闭。
电动阀门的控制信号为4~20ma ,即输入4ma时,阀门关闭,当输入20ma时,阀门全
(2-1a)式为温度与数字量的关系式,用它可将设定温度值转换为对应的数字量。如
设定温度Tz=120度,带入(2-1a),可得对应数字量AIW=21760
(3-5)式为数字量与电动阀门打开度α的关系式,可用它输送给模块不同的数字量,来改变模块的模拟量输出值,进而达到改变电动阀门的打开角度。
如:α=1代入(3-5)可得:AIWx=32000 将32000送入给模块的AQW0, 模块的模拟量输出将产生20ma电流输入给电动阀的信号输入端,使阀门全打开。
α=1/2代入(3-5)式可得:AIWx=19200 将19200送入给模块的AQW0, 模块的模拟量输出将产生12ma电流输入给电动阀的信号输入端,使阀门打开1/2。
下面是利用渐近比较法进行温度控制的梯形图:程序解释见网络上的说明
程序中的Q0.0为蒸汽电磁阀的输出信号。Q0.0=1即蒸汽电磁阀打开,注入蒸汽加热,程序将对罐体内的温度进行控制。Q0.1 为冷水电磁阀的输出信号。Q0.1=1即冷水发打开,注入冷水进行降温,此时电动阀门全开,加速降温,程序对降温不做控制处理。
( 七)、PLC输入输出的控制编程
输入有3个按钮:分别控制变频器、蒸汽电磁阀、水冷电磁阀的通电与关断:
1、启动按钮接PLC的I0.0,控制变频器的启动与停止,输出口为Q0.3。
2、蒸汽电磁阀控按钮,控制蒸汽电磁阀的打开与关闭,输出口为 Q0.0
3、冷水电磁阀按钮,控制冷水电磁阀的打开与关闭,输出口为 Q0.1
控制方式选用一个按钮控制启停,用RS触发器指令编程。Q0.0与Q0.1 互锁,即只容许一个电磁阀打开,如蒸汽阀打开时,按水阀控制按钮,水阀不能打开,只有先关断气阀后再按水阀,水阀才能打开。见下面梯形图:
本文到此结束,望大家分析探讨,有不对之处请给于指正。谢谢大家!