我们在设计自动化设备时,往往少不了对一些压力传感器、仪器信号或者温度传感器进行监控和控制。很多时候这些仪器仪表都会有模拟量输入或输出信号,我们就需要使用PLC对它的模拟量进行读取和输出模拟量给到仪器仪表。
到底什么是模拟量?有些电气工程师在调试时总是没计算好,它没有想像中的复杂。下面我们来看看常见的几种模拟量使用场景吧。
一、常见模拟量范围
模拟量输入:DC -10V~+10VDC、 -20mA~+20mA、DC 0V~10VDC、4mA~20mA
模拟量输出:DC -10V~+10V、 0mA~20mA、DC 0V~10V、4mA~20mA
还会有DC 0V~5V等,不一一列举,我们后面主要讲0~10V和4~20mA两个。
二、使用场景,在哪些地方会用到?
变频器控制
温度监控
压力监控
液位监控
比例阀控制
............
使用模拟量的地方很多,工作中接触最多的是变频器、压力、液位。近几年随着技术的发展,可能更多的是使用通讯来实现,这个模拟量我们可以不用,但是我们得懂。
三、模拟量类型选择,电压还是电流?怎么选
选信号前得先明白本质区别,不然选错了,后期调试能熬到半夜。
0-10V 电压信号:像 “短距离快递”,适合柜内或 10 米内的设备,比如 PLC 和同柜子里的变频器、柜内温度传感器,优点是接线简单(两根线就行),新手也能接;但缺点明显,线一长就容易被干扰(比如旁边有变频器动力线),而且信号会 “衰减”(比如 10V 信号传 20 米,可能只剩 8V,数据就不准了)。
4-20mA 电流信号:是 “长途货车”,50 米甚至 100 米的距离都稳,比如车间角落的液位变送器、室外的流量计,抗干扰能力强,还能 “自检”:正常情况下信号不会低于 4mA,要是 PLC 读成 0mA,不用查传感器,先看线是不是断了(0-10V 就没法区分 “没信号” 和 “数值为 0”)。
四、模拟量转换为想要的数据。
下面我们使用温度计和比例阀来举例
模拟量输入:外部温度计输出的DC 0~10V模拟量,接到PLC的模拟量输入模块上,PLC模拟量它是一个数值(如0~32000)出来,我们再把数值转换成电压,这样我们就知道外部输入的电压是多少了。
直接上图,这个很好理解吧。
然后我们程序里面再把数值,比如0~10V对应0~100摄氏度,一般电压转换为温度会有一个转换公式,我们把PLC计算的电压值代入进公式,就能得出我们想要的温度了。
计算1:先计算我们程序里面从模拟量输入模块取得的电压
我们假设y-数值,x-电压。公式是y=ax+b
代入
32000 = a * 10 + b
0 = a * 0 + b
解得公式:y=3200x,x=y/3200(先记住,后面会用到)
计算2:计算电压对应的温度
我们假设0摄氏度对应0V,100摄氏度对应10V,也为二元一次方程关系y=ax+b。y-温度,x-电压
0 = a * 0 + b
100 = a* 10 + b
解得公式:y = 10x
模拟量输出:我们要控制一个比例阀(能够控制输出压力的一个东西,用的机器不多,我也比较少接触),这个比例阀可以接收0~20mA的电流,对应0~500KPa压力输出,如下图:
那么我们在程序内部对应的寄存器写入数值,写入32000对应20mA,这时比例阀会输出500KPa压力,写入0对应0mA,这时比例阀会输出0KPa压力。
计算1:先把我们对应的数值0~32000转换成0~20mA
我们假设y-电流,x-数值,公式也是y=ax+b。
20 = a * 32000 + b
0 = a * 0 + b
解得公式:y= x/1600
计算2:把0~20mA,对应0~500kPa
我们假设y-压力,x-电流,公式也是y=ax+b。
0 = a * 0 +b
500 = a * 20 +b
五、编程实例,我们以FX3U的4AD和4DA进行举例
这里说一下,缓冲区操作指令FROM/TO和U/G指令,他们都是一个目的,移动数据,
TO:模块号、缓冲区、要传的数据、多少个长度
FROM:模块号、缓冲区、读取出来的数据存哪里、多少个长度
U/G:U模块号、G缓冲区。使用MOV或BMOV指令
开始编程吧。
模拟量输入模块FX3U-4AD编程:
BFM 0输入模式:
选哪种模拟量,第四点我们选择的是DC 0~10V电压模
拟量输出的温度计,所以模式可以选0。
注意:使用加法运算数据时,需要将加法运算数据功能(BFM222b0)置ON PLC程序:(前面解得公式:电压x=数值y/3200;温度y = 10 * 电压x)
OK,D4就是我们的温度了。
模拟量输出模块FX3U-4DA编程:
先确定输出模式,选哪种模拟量。我们第四点选择的是0~20mA电流模拟量输入比例阀,所以模式选2。
输出比输入稍微简单一些。
PLC程序:(前面解得公式:电流y=数值x/1600;压力y=25*电流x)
我们要算数值,把数值存到PLC缓冲区。
电流x = 压力y / 25,数值x = 电流y * 1600
OK,到这里就完成啦。是不是很简单。
总结三大要点:
搞懂缓冲区功能。
熟悉FROM/TO、U/G操作指令。
PLC数据量的数值、模拟电压/电流、实际温度/压力与电压/电流的公式换算。
这三个搞懂,就很轻松了。
用得上的话大家帮点点关注收藏一下。
以下是一些相关的技术分享文章,感兴趣的可以看看: