传感器模拟量 浅谈西门子S7-1200PLC的模拟量转换,附实例演示
浅谈西门子S7-1200PLC的模拟量转换,附实例演示
大家好,欢迎关注电气技术微课堂!
今天来简单探讨一下西门子S7-1200PLC的模拟量使用方法。
实际工业应用中常常由传感器采集压力、温度、速度等非电信号,并将这些非电量转换为电压或电流信号再传输给PLC、单片机等控制系统,此时这些信号均为模拟量。我们往往要对PLC中采集的模拟量信息进一步的加工处理,方便用来计算、比较、显示等。
模拟量转换的相关设置
S7-1200(1214C)内部集成了2路模拟量信号输入通道,分别为通道0和通道1,也就是可以同时接收并处理两个传感器输入的模拟信号,对应的地址为IW64和IW66(长度为一个字,16位),在TIA PROTAL中选中PLC的“常规”—“AI”标签项可以进行查看和设置。
S7-1200PLC模拟量转换的工作原理
假设PLC的AI0口外接了一个温度传感器,传感器将测得的温度值转换为一个范围为0~10V的连续电压信号输入给PLC。模拟量经过PLC内部的A/D转换后被转换成了范围0~27648的数字量并存储在特定地址的寄存器中。具体的转换流程如下图所示。
如何将模拟量输入转换的数字值还原成对应的物理量?
例:某个压力传感器的量程为0~0.1MPa,转换成对应的电压信号为0~5V,设转换后地址IW64中的数值为N,尝试求以Pa为单位的压力值。
解: S7-1200PLC默认的模拟信号输入电压范围是0~10V,转换成数字信号的范围是0~27648,因为此压力传感器输出电压范围是0~5V,所以转换的数字信号范围是0~13824。压力传感器的测量压力范围是0~0.1MPa,由此可推导出公式,将电压值还原成以Pa为单位的压力值并将结果存储于寄存器MD30中。
电压转换成数字信号后存入IW64的数值为N
在博途软件中编写对应的PLC程序如下:
在编写梯形图程序时有以下两点需要特别注意:
1)因为PLC执行除法指令时会丢掉余数而只保留商值,这样会影响计算的精度,所以在编写梯形图程序计算压力值时要注意先乘后除。
2)IW64中的数据类型为整型(INT),该值乘以100000后其结果会超出int的范围,所以必须先应用CONV指令将数据类型转换为DInt。
西门子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功能相同,用于模拟量输入/输出的编程。
编程界面下,在 "指令" 中的"基本指令 ——> 转换操作"中可以找到,
电气相关知识和经验是用来分享,希望本文能对你有帮助。与人玫瑰,手留余香。
相关问答
基恩士il-1000 传感器模拟量 怎么换算?基恩士il-1000传感器模拟量是指在一定范围内测量的物理量,如温度、湿度等,通过传感器转换为电信号,再通过模拟量信号处理器进行计算和处理。换算时,需要根据...
电气plc里面,什么是 模拟量 ?电气模拟量是指:电压,电流,功率,频率等。非电气模拟量是指:压力,温度,流量等PLC中传感器把非电气模拟量(压力,温度,流量等)转换为可以有一定逻辑关...电气...
什么是开关量传感器,什么是 模拟量传感器 ?开关量传感器发出的信号是接点信号,有断开和闭合两种状态,比如液位开关就是一种常见的开关量传感器.当液位低于设定值时,液位开关断开(或闭合);当液位高于...
模拟量 输出有哪些元件?模拟量输出元件有那些?生产过程自动化中用的检测仪表几乎都是模拟量输出信号,这类检测仪表种类繁多。上图就是自控系统的方框图,控制器环节送给执行器的信号...
如何读取485接口 传感器 的 模拟量 ?读取485接口的传感器的模拟量,懂得一下知识点才行:1.什么是通讯协议2.本传感器是支持哪种协议现在一般传感器都支持MODBUS协议...读取485接口的传感器的...
传感器 上传输的信号都是 模拟量 吗?不是传感器检测的是自然界中或人们的生产(科研)活动中存在的物理量、化学量、生物量等被测量;这些量多数是渐变的,所以多为模拟量输入;但也有量子化的,比...
plc与 模拟量 温度 传感器 算法?一、说明:公式:Y=K*X+b信号:4-20mAPLC模拟量输入数据范围(变量X):0-32000仪表量程(变量Y):10-100对应关系:4-20mA转换为6400-32000转换为10...
压力 传感器 与 模拟量 编程方法?线制压力传感器需要外部提供电源(例如DC24V),然后发出电流信号(例如4~20mA)。所以你需在压力传感器的信号线和PLC的模拟量模块端口之间串接电源,模拟量模...
西门子plc 模拟量 编程实例?以下是一个使用西门子PLC的模拟量编程示例:假设有一个温度传感器,将温度值转换为4-20mA模拟量信号,然后将信号输入到PLC的模拟量输入模块中。我们需要将输入的...
模拟量 4到20毫安分有源和无源么?模拟量4到20毫安通常指的是电流信号,它可以根据需要是有源的或无源的。有源模拟量通常由电源提供信号,例如放大器。无源模拟量则需要从外部信号源中获取信...