现在的问题是量程下限是负的和是0都是没问题的,如果量程下限是50上限是100又如何处理好呢。
注释:工程值转换,这里因为有负数所以得到的值要减去量程下限,因为负负得正,所以用了实数
加,实际应用下0和以下的量程下限使用无问题。这里是从梯形图转换过来的,让各位见笑了。
A(
A(
A(
A(
A(
L #tem0 //PIW输入
ITD //输入整数转双整数
T #tem1 //转换值送入TEM1
SET
SAVE
CLR
A BR
)
JNB _003
L #tem1
DTR //双整数转实数
T #tem2 //送入TEM2
SET
SAVE
CLR
_003: A BR
)
JNB _004
L #tem2 //转换后的值除以27648
L 2.764800e+004
/R
T #tem4 //送入TEM4
AN OV
SAVE
CLR
_004: A BR
)
JNB _005
L #tem4
L #tem3 //TEM3为量程上限减去下限得到的值
*R //转换后的值除以27648后乘以量程上限减去下限得到的值
T #tem5 //送入TEM5
AN OV
SAVE
CLR
_005: A BR
)
JNB _006
L #tem5 //装载TEM5
L #low //LOW为量程下限
+R //处理后的值加上量程下限,此处只适合下限为0和负数的使用。如果下限都是0可不要此加法器
T #tem5 //因为程序是按顺序扫描的,所以输出还是TEM5
AN OV
SAVE
CLR
_006: A BR
)
JNB _007
L #tem5 //装载处理结果
T #out //处理结果输出
_007: NOP 0