模拟量控制类---模拟量输入与输出 模拟量初步认识与单位换算编程方式
【模拟量的认识】
1、模拟量的概念:
模拟量是指变量在一定范围内连续变化的量,也就是在一定范围内可以取任
意值。
对于PLC而言,模拟量是以模拟量输入和模拟量输出两种形式呈现。
我们常见的模拟量输入信号,如:温度、压力、称重、流量、浓度、湿度、PH值(酸碱度)、光照强度、位移测距、雷达测速等等,这些需要将数据传送到PLC接收的信号,都称为模拟量输入信号。
而模拟量输出信号,如:控制阀门大小,控制变频器频率变化等。这些需要PLC输出变化量信号来进行的控制的方式,称为模拟量输出信号。
2、模拟量的应用场景:
模拟量的应用并不仅限于工业生产,在农林牧副渔等行业中都是应用很广泛的,一些典型的应用场景,如:污水处理(检测PH值),高温锅炉类(温度控制),养殖行业(监控鸡舍羊圈等环境中的温湿度等),鱼塘水氧气浓度监控,电流电压监控,土壤养料元素监控,水流量计检测,控制变频器频率改变再去控制电机转速等等。
3、模拟量的信号类型:
电压型:0-10v;电流型:4-20ma。
我司采用的模拟量信号目前主要以电流型信号为主,无论是模拟量输入还是
模拟量输出,都是支持4-20ma信号,若模拟量输入传感器支持0-10v信号,可以采用“电压转电流信号模块”将采集的0-10v信号转变成4-20ma后再接入到PLC模拟量输入端;若PLC输出需要控制的负载是0-10v信号,可以采用“电流转电压信号模块”将PLC输出端的4-20ma信号转变成0-10v信号,再去控制相对应的负载。
【模拟量输入的单位换算公式】

公式中的量程是指传感器的量程。
我们取的模拟量的信号类型是4-20ma,模拟量输入(PLC本机自带模拟量入口和采集器模拟量入口)采集精度是12位,采集范围是0-4095,为了方便计算,我们后面用于公式的采集值全部取值0-4000。如下图所示,将传感器量程范围分别对应好模拟量信号范围以及采集值范围,再将对应数据套进模拟量公式,换算得到模拟量实时值。

【PLC本机自带模拟量输入单位换算方式】
PLC本机自带模拟量输入,目前仅有型号为SFa-0806A2022(四代0806双模拟量款)以及SFm-2424A4120(四轴带两路Ai)和SFm-2424A4122(四轴全功能)支持机身带两路模拟量输入。
PLC自身的模拟量输入采集值用Ai表示,采集值范围是0-4000,直接套用公式进行计算,此处以压力传感器为例,压力传感器输出4-20ma信号到PLC机身的模拟量输入端口,压力传感器量程范围:10kg-80kg。
我们根据公式得到以下4组有效数据,并将其保存在4个W32位寄存器里面:
①传感器量程差值:80kg-10kg=70kg,所以W0=70;
②采集值最大范围值:4000,所以W1=4000;
③4ma对应的传感器最小量程值:10kg,所以W2=10;
④最后运算得到的实时值保存在W3寄存器里面。
得到相关数据之后,我们再将数据套入公式,请注意,PLC运算只能单条指令执行,且不包含小数计算,所以我们需要对公式进行拆分,按照“先乘除后加减”的规则添加运算公式,对于每一步运算的结果值,我们用V中间变量寄存器来过渡(中间变量掉电不保存数据),如下操作:
V0=实时采集值Ai1×W0;(先乘,Ai1表示第一路模拟量输入通道)
V1=V0/W1;(后除)
W3=V1+W2。(再加减)
将得到的运算誊写到PLC编程软件,在组合帧编辑一组,取标志M0断为组长,可进行实时运算,得实时结果。

通过此运算得到的W3就是实时压力值,我们在实际的控制过程中,就是通过对压力W3进行比较控制的,比如压力低于20kg时,触发电磁阀动作,压力高于50kg时,触发电磁阀停止,类似这样比较控制就是在时序环编辑,如下所示:X00是启动信号,G10=20kg,G11=50kg,Y0是电磁阀。

【PLC扩展采集器增加模拟量输入单位换算方式】
PLC自身无模拟量入口或者模拟量入口过少需要外增,类似这样通过扩展采集的方式来增加模拟量通道的方式,我们都需要通过CAN扩展控制,在PLC软件中需要先写一条CAN扩展指令,一条扩展指令表示扩展一个采集器(4路),需要扩展几个采集器,就添加几条扩展指令(不同的采集器必须修改站号,站号要对应指令中的匹配ID)。
1-先设置扩展程序:在软件的通信配置-CAN总线扩展处,编辑一条扩展指令。

*使能标志:M79,启动扩展接收指令的一个标志(这个标志无特别说明,任选一个M,严禁与错误标志相同)。在时序环或组合帧的程序中触发M79通,此条通信指令将使能,只要M79不复位,此条指令一直有效。
*传送方向:接收。为PLC接收模拟量采集器的数据。
*扩展功能:扩展外部16位寄存器。模拟量采集器采集到的数值是保存在PLC的G_16位通用寄存器里面。
*扩展地址:扩展地址就是G的寄存器序号,如地址写:1,表示从G1寄存器开始,连续调用4个寄存器储存采集器的4路模拟量信号,那么按顺序Ai1-Ai4这四个入口采集的数据分别保存在G1,G2,G3,G4这四个寄存器中。也就是Ai1--G1,Ai2--G2,Ai3--G3,Ai4--G4。
*匹配STDID:表示扩展的采集器对应的站号,扩展1个采集器,第一个扩展指令ID就写1,那么这个采集器的站号就要对应1;扩展2个采集器,第2个扩展指令ID就写2,那么第二个采集器的站号就要对应2;只要ID跟采集器的站号对应上才能起作用。
*数据长度:每个寄存器要占用两位,一个采集器有4路模拟量入口,所以数据长度为8。
*错误标志:指令自带,默认。
2-再设置触发扩展标志程序:
任意一个时序环,或者组合帧里面设置一条触发标志M79通的指令,表示启动扩展指令,如下所示在组合帧编辑触发M79通。

3-设置模拟量换算程序:


PLC扩展的模拟量输入采集值用寄存器G表示,采集值范围是0-4000,直接套用公式进行计算,此处以温度传感器为例,温度传感器输出4-20ma信号到PLC
机身的模拟量输入端口,温度传感器量程范围:100℃-500℃。
我们根据以上公式得到以下4组有效数据,并将其保存在4个W32位寄存器里面,前面压力传感器案例调用的W0~W3寄存器,这里我们就调用W4~W7。
①传感器量程差值:500℃-100℃=400℃,所以W4=70;
②采集值最大范围值:4000,所以W5=4000;
③4ma对应的传感器最小量程值:100℃;也就是W2=100;
④最后运算得到的实时值保存在W7寄存器里面。
得到相关数据之后,我们再将数据套入公式,按照“先乘除后加减”的规则添加运算公式,对于每一步运算的结果值,我们用V中间变量寄存器来过渡(中间变量掉电不保存数据),如下操作:
V2=实时采集值G1×W4;(先乘,G1表示采集器第一路模拟量输入通道)
V3=V2/W5;(后除)
W7=V3+W6。(再加减)
将得到的运算誊写到PLC编程软件,在组合帧编辑一组,取标志M0断为组长,可进行实时运算,得实时结果。

通过此运算得到的W7就是实时温度值,我们在实际的控制过程中,就是通过对温度W7进行比较控制的,比如温度低于150℃时,触发加热棒动作,温度高于350℃时,触发电磁阀停止,类似这样比较控制就是在时序环编辑,如下所示:X01是启动信号,G12=150,G13=350,Y1是加热棒。

【PLC模拟量输出控制方式】
目前仅有型号为SFa-0806A2022(四代0806双模拟量款)以及SFm-2424A4102(四轴带两路Ao)和SFm-2424A4122(四轴全功能)这三款型号支持两路模拟量输出,模拟量输出暂不支持扩展。
PLC发送的模拟量输出信号也是4-20ma,无需单位换算公式,只需要一条赋值运算指令就可以完成,以下程序以控制变频器频率为例:

指令解析:
Ao1:表示模拟量输出值,其中“1”表示第一路模拟量输出通道,若取用第二路通道,则选用Ao2,其输出的范围值是4-20ma。
G0:表示在变频器频率范围值0-50HZ,需要在触摸屏上面输入数值,比如G0输入1,那么输出模拟量数值是Ao1=G0×80=80,就是G0整体放大80倍才是对应的模拟量输出采集值80;若G0输入10,那么模拟量数值Ao1=G0×80=800,就是整体放大800倍,模拟量输出采集值就对应800。
因为Ao1范围值是4-20ma,模拟量精度是12位,其采集值范围是0-4000,而G0变频器的范围值是0-50,三者要对应,所以对照运算就需要将G0的值需要放大80倍。

