PLC模拟量输入的整定(定标)和PLC模拟量输出的的整定(解标)
我们知道,对于模拟量的输入,PLC的模拟量模块在接受从现场设备中传来的模拟量信号(如4~20mA信号或0~10V信号等)首先要经过定标,转化成相应的数字量(如:0~16383或0~27648等)才能为PLC程序使用;同样,对于模拟量的输出,一般要把PLC处理后的值(如:0~16383或0~27648等)经过解标转换成实际的模拟量信号(如4~20mA信号或0~10V信号等),才能通过PLC输出模块输出为现场设备所使用!
擂台:请给出一个有输入整定(定标)和输出整定(解标)的例子!(做的简单项目和所做的仿真实验均可)。要求详细说明在硬件的配置和参数设置并配有相关的截图。回答的最好最全面者首先拿大奖!
PLC品牌不限。
注:所谓定标就是把得来的(如4~20mA信号或0~10V信号等)模拟信号进行线性变换,使之转换为在一定范围内的数字量;解标为其相反过程。具体的定标解表指令如:AB的PLC的SCP和SCL;西门子PLC的FC105和FC106等等!
工控PLC擂台每周一期,本期下周末结贴。奖项设置:一等奖1名:50MP,二等奖5名:10MP,三等奖10名:30积分。
MP介绍:gongkongMP即工控币,是中国工控网的用户积分与回馈系统的一个网络虚拟计价单位,类似于大家熟悉的QB,1个MP=1元人民币。
MP有什么用?兑换服务:以1个MP=1元来置换中国工控网的相关服务。 兑换现金:非积分获得的MP可兑换等值现金(满100MP后、用户可通过用户管理后台申请兑换)。
楼主最近还看过
这个问题,实际上是初中数学中的一个代数公式: Y=K*X+B在PLC编程中的应用。K为变换系数,B为偏移量,XY为变换的源数据和结果。只要能理解这一点,在PLC编程中就迎刃而解了。假定一个案例,测量量为压力0-10MPA,,现场传感器为4-20mA,AD转换后为0-4000,计算结果需要显示成0.00-10.00MPA,则线性变换为:AD(0-4000)对应工程量结果0.00--10.00MPA,以PLC寄存器数据16位无符号数,则K=0.25(1/4),公式Y=X*1/4+0(K=1/4),B=0,对应输出计算也如此。此题目为一个代数公式: Y=K*X+B在PLC编程中的应用,谁理解了,会用了,在用PLC处理模拟量的问题上就得心应手了。
除了上述基本计算方法外,我建议在采集4-20mA的时候,外部传感器仍为4-20mA电流信号,但在PLC的AD转换时,按照0-20mA的方式转换,那时候就可以通过一个偏移量B来实现正确的线性变换,同时,也可通过PLC编程方式,实现传感器断线或故障判定。具体方法大家来考虑好了,我在处理模拟量的时候常用这种方式来判断传感器故障。
编程时,对于小数的处理,请采用分数的方式来计算,先乘以分子,再除以分母,这样可减少计算误差。如果分母不是常数,在除之前请先判定分母是否为0.乘结果一般是双字,除的时候不要忘了哦,不然有可能结果错误。
楼上各位的方案写的都很好,在此学习了。今天我提出一种新的实施方案,就是用自制模拟量输入与模拟量输出的模板,也可达到现有的PLC模拟量输入与模拟量输出模块的功能。
PLC模拟量输入模块与模拟量输出的模块价格是很贵的,甚至高于中小PLC的价格,而自制的模拟量输入模板与模拟量输出的模板是用集成块构成,成本价格仅在百元以下。声明:我不想推广此种方法,只是介绍。因为它有一定的难度,不适宜一般的PLC编程者,必须有很好的电子线路基础,并且懂得串行通讯的人,才可做到。下面简单介绍一下:
模拟量输入模板,有二种形式:1、将4-20ma(或0-10V)模拟量转换为与之成正比的0-10KHZ频率脉冲。将该脉冲输入给PLC高速计数口,PLC采用时间中断的方式,用等时间计数采样,再将采集的数据按转换公式进行计算(与输入模块的计算类似),就可求出被测量。2、将4-20ma(或0-10V)模拟量通过12位AD转换器(如AD574)转换为与之成正比的数字量,并按固定的时钟脉冲将其各位的数依次输出给PLC的普通输入口,PLC接受完,立刻将此数值按转换公式进行计算(与输入模块的计算类似),就可求出被测量。
模拟量输出模板:PLC将待传的数据,以200HZ左右的振荡频率以串行输出方式将数据的各位由最低位开始,依次输出给PLC的二个普通输出口(一个是振荡频率,一个是串行数据),模拟量输出模板接受到数据后,通过串入并出集成块将此数据写入到12位DA转换器(如DAC1210),就变为0-10V的模拟信号。
下面,我将0-10V(4-20ma也可)转换为0-10KZH 的模拟量输入模板的电路图贴上来,这个电路比较简单,容易看懂.


模拟量输入信号的整定
本例用S7-200系列PLC模拟量I/O模块,主要有EM231模拟量4路输入,程序如下:
模拟输入量的转换及标准化
XORD AC0,AC0 //清累加器AC0
MOVW AIW0,AC0 //读模拟量存入AC0
LDW>= AC0,0 //若模拟量为正
JMP K0 / /则转到标号为K0的程序段进行直接转换
NOT //否则(即模拟量为负)
ORD 16#FFFF0000,AC0 //AC0中的符号处理
LBL K0
DTR AC0,AC0 //将32位整数格式转换为实数格式
/R 64000.0,AC0 //将AC0中的值标准化
+R 0.5,AC0 //将所得结果转移到范围[0.0,1.0]
MOVR AC0,VDl00 //将标准化结果存入PID运算数据存储区
[10111]
[7449]
[12437]
[20164]
[28616]
[10574]
[8034]
[7564]
[11637]
[8151]

客服
小程序
公众号