模拟量输出转换成4-20MA的问题

我用了MicronPower20060821上的模拟量比例换算指令库,但输出的值一直在变化,无法稳定,具体的程序如下:
Network 1 
LD     SM0.0
MOVR   640.0, VD300
*R     VD200, VD300
CALL   SBR1, VD300, 100.0, 0.0, 32000, 6400, VW400
MOVW   VW400, AQW0


LD     SM0.0
-I     #Osl, #Osh
ITD    #Osh, #Temp_D
DTR    #Temp_D, #Temp_R
-R     #Isl, #Input
*R     #Input, #Temp_R
-R     #Isl, #Ish
/R     #Ish, #Temp_R
ROUND  #Temp_R, #Temp_D
DTI    #Temp_D, #Temp_I
+I     #Osl, #Temp_I
MOVW   #Temp_I, #Output

VD300是我输入的工程值,这个数一直没有变化,但是输出的VD400数值在不断的随机变化,AQW0输出值总在5.0-5.1MA之间变化,请问这是为什么?请帮忙解决,谢谢.

问题补充:
LD     SM0.0
 MOVR   640.0, VD300
 *R     VD200, VD300
 CALL   Scale_R_I, VD300, 100.0, 0.0, 32000, 6400, VW400
 MOVW   VW400, AQW0

 The formula is as follows:
  Ov = [(Osh - Osl) * (Iv - Isl) / (Ish - Isl)] + Osl

  Ov  = scaled output value
  Iv  = analog input value
  Osh = high limit of the scale for the scaled output value
  Osl = low limit of the scale for the scaled output value
  Ish = high limit of the scale for the analog input value
  Isl = low limit of the scale for the analog input value

 
 LD     SM0.0
 -I     #Osl, #Osh
 ITD    #Osh, #Temp_D
 DTR    #Temp_D, #Temp_R
 -R     #Isl, #Input
 *R     #Input, #Temp_R
 -R     #Isl, #Ish
 /R     #Ish, #Temp_R
 ROUND  #Temp_R, #Temp_D
 DTI    #Temp_D, #Temp_I
 +I     #Osl, #Temp_I
 MOVW   #Temp_I, #Output

最佳答案

1、AQW0寄存器中存放的值与AQW0端子上测到的电流值中对应的,如果AQW0中的值不变,端子上的电流应不变,如果AQW0中的值在变,那么端子上的电流也应跟着变,这是肯定的!
 2、虽然你的输入值是稳定的,但是中间有很多的常数与变量参与了计算,这些变量的值稳定吗?你不妨监视一下这些变量的值,是否有不期望的变动出现。

提问者对于答案的评价:
是我输入的值有问题

原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc359877.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2021年7月5日 上午11:13
下一篇 2021年7月5日 上午11:13

相关推荐

发表回复

登录后才能评论