模拟量在PLC里怎么应用?5分钟后就学会模拟量接线和编程!
在工业应用中,最普遍的两个元素就是数字量和模拟量,今天我们聊一聊模拟量的编程,
模拟量作为工业控制中必不可少的一个元素,由模拟量传感器发出信号,最终由控制单元接收,可以表示温度,压力,流量,液位等等!在PLC控制系统中,最常见的模拟量信号为4-20ma,以前的文章我们也提到过,4-20ma作为行业标准有着得天独厚的优势。
那么除了4-20ma外,我们还可以用-10V~ +10V或者0-20ma等等,这些信号由传感器发送出来,最终进入到PLC模拟量输入通道,那么你知道PLC怎么识别和控制吗?
我们用实例来说明一下,看完本文后你也可以使用PLC编程控制模拟量!
一、 S7-200 模拟量使用简介
S7-200系列产品可以采集标准的电压、电流模拟量信号和热电偶、热电阻温度传感器信号。普通的电压和电流信号经过A/D转换成为0~32000 或者-32000~32000 之间的整数。温度传感器信号被直接转换为摄氏度(或华氏度)温度值,省去了复杂的温度值换算。
S7-200系列可以提供的模拟量输出信号有-10V~ +10V之间的电压和0~20mA 的电流信号,能够满足大多数模拟量负载的需求。
S7-200系列的模拟量扩展模块选型灵活,用户可以根据实际需要选择使用CPU224XP集成的模拟量通道,或者使用4通道输入、8通道输入、2通道输出、4通道输出和输入输出混合模块。
224 XP在CPU上集成了两个模拟量输入端口和一个模拟量输出端口。
224 XP 的模拟量输入/输出通道的精度为 12位。 224 XP上的模拟量输入转换速度比模拟量扩展模块慢,因此要求高的场合请使用模拟量扩展模块。
分辨率 是A/D模拟量转换芯片的转换精度,即用多少位的数值来表示模拟量。S7-200模拟量模块的转换分辨率是12位,能够反映模拟量变化的最小单位是满量程的1/4096。
模拟量转换的精度 除了取决于A/D转换的分辨率,还受到转换芯片的外围电路的影响。在实际应用中,输入的模拟量信号会有波动、噪声和干扰,内部模拟电路也会产生噪声、漂移,这些都会对转换的最后精度造成影响。这些因素造成的误差要大于A/D芯片的转换误差。
二、CPU 224 XP本体集成的模拟量I/O接线图如下:
图中:
a:此处表示A+和B+都可以接±10V信号
b:电流型负载接在I和M端子之间
c:电压型负载接在V和M端子之间
S7-224 XP 的两路模拟量输入通道被出厂设置为电压信号(0-10V)输入。为了能够输入电流信号,必须在 A+ 与 M 端 (或 B+ 与 M 端) 之间并入一个500 欧姆的电阻。并必须确保外接电流源具有短路保护以防损坏。因为没有充分隔离,外接电阻也可成为干扰源。
为了得到尽量精确的测量结果,推荐使用公差尽可能小的电阻。当在500欧电阻两端施加最大 28.8V 的电压时,电阻消耗功率为1.66W。要选择功率大于1.66瓦的500欧电阻。
三、模拟量比例换算
S7-200 CPU内部用数值表示外部的模拟量信号,两者之间有一定的数学关系。这个关系就是模拟量/数值量的换算关系。例如,使用一个0 - 20mA的模拟量信号输入,在S7-200 CPU内部,0 - 20mA对应于数值范围0 - 32000;对于4 - 20mA的信号,对应的内部数值为6400 - 32000。
模拟量转换的目的不是在S7-200 CPU中得到一个0 - 32000之类的数值;对于编程和操作人员来说,得到具体的物理量数值(如压力值、流量值),或者对应物理量占量程的百分比数值更重要,这是换算的最终目标。
1、通用比例换算公式
模拟量的输入/输出都可以用下列的通用换算公式换算:
Ov = [(Osh - Osl)*(Iv - Isl)/(Ish - Isl)] + Osl
其中:
Ov:换算结果,Iv:换算对象,Osh:换算结果的高限,Osl:换算结果的低限,
Ish:换算对象的高限,Ish:换算对象的低限。
它们之间的关系可以图示如下:
2、实用指令库
为便于用户使用,用户可以将“自定义指令库”添加到自己的Micro/WIN编程软件中应用。下载并添加模拟量比例换算指令库如下图中的scale_E(V1.0),或scaling(V1.2)。
在这个指令库中,子程序Scale_I_to_R可用来进行模拟量输入到S7-200内部数据的转换;子程序Scale_R_I可用于内部数据到模拟量输出的转换。
四、模拟量编程实例
1、模拟电路图及接线如下图,24V电源采用S7-224 XP自带的电源。调节电位器可以得到0—9V的直流电压输出。
喜欢的话请点赞并分享,您的支持是我坚持下去的动力!送人玫瑰,手有余香!
西门子PLC模拟量是如何编程的
在PLC编程中,模拟量是我们经常会用到的,比如压力传感器的模拟量反馈就要用到模拟量输入模块,给比例阀的设定就需要用到模拟量输出模块等等,模拟量编程的掌握也是PLC编程的必备技能,编程的基本思路其实也是非常简单,下面我们就先简单说说:
对于模拟量输入来说:只需要将反馈的电压或电流信号进行数字化处理,并对处理后的数字量进行标准化(也就是0~100%或-100%~100%)。然后就可以根据实际进行编程了。
对于弄你两输出来说:就需要将程序执行后的结果进行去标准化,比如就是将0~100%转化成0~27648(这里量程的范围主要看选择的模块支持的信号和范围),如下面这段程序:
下面我们就一步步看看到底是什么编程的,我们这里就以模拟量输出为例来进行编程:
需要在硬件组态中插入一个模拟量模块,本例中插入的是模拟量输出模块 SM 332; AO 8 x 12 位; (6ES7332-5HF00-0AB0) ,8个通道,每个通道可设置为电流或电压输出
也可以设置量程,如下图所示:
2、下面我们就要知道我们要用到模拟量精度及量程转换
模拟量转换的分辨率
分辨率是 A/D 模拟量转换芯片的转换精度,即用多少位的数值来表示模拟量。模拟量模块的转换分辨率用于反映模拟量变化的最小单位。精度 < 15 位时,将所有由"x"标识的位设置为"0"。
模拟量模块所支持的模拟值精度,如表1.1所示。
表1.1
单极性输入范围(例如,电压输入0~10V,对应值为0~27648),如表所示。
双极性输入范围(例如,电压输入-10~10V,对应值为-27648~27648),如表所示。
例如,下表中 12 位分辨率的模块,其数据从低字节的第四位(bit3)开始变化,其最小变化单位2的3次方= 8 ,bit0~bit2 则补" 0 "(红色图框为无效位)
设该模拟量通道类型为电压0~10V,满量程电压值10V对应数据27648,其能识别的最小电压值为:
3、STEP 7 V5.x中模拟量输入/输出的编程
1)FC105/FC106 在哪里?
在编程界面下,在 "程序元素"中的 "库——> Standard Library ——> TI-S7 Converting Blocks"中可以找到,见下图:
注意:请不要使用 "S5-S7 Converting Blocks"下的 FC105,FC106,该路径下的功能是用于 S5 输入输出模板的,在 S7 输入输出模板上无法使用。
2) FC105功能描述
SCALE(FC105)功能接受一个整型值(IN),并将其转换为以工程单位表示的介于下限和上限(LO_LIM和HI_LIM)之间的实型值。将结果写入OUT。SCALE功能使用以下等式:
OUT = [ ((FLOAT (IN) - K1)/(K2 - K1)) * (HI_LIM - LO_LIM)] + LO_LIM
常数K1和K2根据输入值是BIPOLAR还是UNIPOLAR设置。
● BIPOLAR:假定输入整型值介于 -27648与27648之间,因此K1 = -27648.0,K2 = +27648.0
●UNIPOLAR:假定输入整型值介于0和27648之间,因此K1 = 0.0,K2 = +27648.0
如果输入整型值大于K2,输出(OUT)将钳位于HI_LIM,并返回一个错误。如果输入整型值小于K1,输出将钳位于LO_LIM,并返回一个错误。
通过设置LO_LIM > HI_LIM可获得反向标定。使用反向转换时,输出值将随输入值的增加而减小。
3) FC105的参数定义
故障信息:
如果输入整型值大于K2,输出(OUT)将钳位于HI_LIM,并返回一个错误。如果输入整型值小于K1,输出将钳位于LO_LIM,并返回一个错误。ENO的信号状态将设置为0,RET_VAL等于W#16#0008。
4) FC105例子程序
上图中用MW20作为模拟量输入地址(正常编程中在IN中模拟量输入地址比如PIW256,这个值根据前面规则来的,也就是单极性27648对应100)
5) FC106 功能描述
UNSCALE(FC106)功能接收一个以工程单位表示、且标定于下限和上限(LO_LIM和HI_LIM)之间的实型输入值(IN),并将其转换为一个整型值。将结果写入OUT。UNSCALE功能使用以下等式:
OUT = [ ((IN - LO_LIM)/(HI_LIM - LO_LIM)) * (K2 - K1) ] + K1
并根据输入值是BIPOLAR还是UNIPOLAR设置常数K1和K2。
● BIPOLAR:假定输出整型值介于 -27648和27648之间,因此,K1 = -27648.0,K2 = +27648.0
● UNIPOLAR:假定输出整型值介于0和27648之间,因此,K1 = 0.0,K2 = +27648.0
如果输入值超出LO_LIM和HI_LIM范围,输出(OUT)将钳位于距其类型(BIPOLAR或UNIPOLAR)的指定范围的下限或上限较近的一方,并返回一个错误。
6) FC106 的参数定义
故障信息:
如果输入值超出LO_LIM和HI_LIM范围,输出(OUT)将钳位于距其类型(BIPOLAR或UNIPOLAR)的指定范围的下限或上限较近的一方,并返回一个错误。ENO的信号状态将设置为0,RET_VAL等于W#16#0008。
7) FC106 例子程序
上图中就是MD作为设定,本例设定50,对应的输出就是13824,并将MW16(13824送至PQW256,控制对应设备,例如比例阀的开口度)。
那么TIA Portal博途中模拟量输入/输出的编程
1)SCALE/UNSCALE在哪里?
在TIA Portal中指令SCALE/UNSCALE的功能和STEP7中的FC105/FC106功能相同,用于模拟量输入/输出的编程。
编程界面下,在 "指令" 中的"基本指令 ——> 转换操作"中可以找到,
电气相关知识和经验是用来分享,希望本文能对你有帮助。与人玫瑰,手留余香。
相关问答
西门子模拟量公式?
模拟量输出对应的整型数是0---276484----20Ma如12Ma=16384我一般先用浮点计算算成百分比如100%50%10%输出值=10%X27648.0=2764,8接下来就...
西门子step7PLC里的,模拟量输出是怎么计算的?
模拟量输出对应的整型数是0---276484----20Ma如12Ma=16384我一般先用浮点计算算成百分比如100%50%10%输出值=10%X27648.0=2764,8接下来就...
西门子PLC模拟量和数字量之间如何转换?
实质:都是读取模拟量通道,至于转换,则由PLC的AD模块完成。200系列:假设你的模拟量接驳在第一个通道:读取模拟量:MOVWAIW0,VW0此时VW0中保存的就是...实质...
西门子1200模拟量计算公式?
西门子1200系列PLC的模拟量输入输出信号范围为0-10V或4-20mA,具体计算公式如下:模拟量输入信号量转换成实际值的计算公式:对于0-10V信号,实际值=(输入信...
西门子PLCS7-200SMART编程模拟量输入转换?
西门子PLCS7-200SMART编程模拟量输入转换程序为:(input-5530)*50/(27648-5530)。S7-200SMART亮点:(1)新颖的信号板设计可扩展通信端口、数字量...
西门子PLCS7-200smart模拟量输入采集?
西门子PLCS7-200SMART编程模拟量输入转换程序为:(input-5530)*50/(27648-5530)。西门子PLCS7-200SMART编程模拟量输入转换程序为:(input...
西门子PLC模拟量AI模块如何进行快速诊断及故障处理?
西门子PLC模拟量AI模块如何进行快速诊断及故障处理?在工业自动化发展迅速的今天,可编程控制器得到广泛应用,尤其是小型的可编程控制器,使用灵活、安装方便且...
西门子S7-200的plc模拟量模块如果是接温度PT100的话,用编程...
1、你可以直接选用热电阻模块,直接编程,就可以了。用一AIW0通道,测量值放在VW...你用模拟量模块的话,要在PT100加变送器。将转换成的4到20毫安电流串二十四伏...
西门子1200模拟量输入值范围?
回答:西门子PLC1200模拟量输入对应(4-20MA)是300的模拟量,输入0-10V或0-20ma的信号,对应0-27648。如果是4-20ma,需要在程序里做处理。比如传感器0-10bar输....
西门子s7200em231232235模拟量模块怎样编程?
有对应的内存地址,直接读取或者赋值就行。S7-200的PLC内存地址是自动编排的。譬如说,CPU带着几个扩展模块,处在最靠前的是EM231,那个它的四个模拟量的地址分...