LDW>= LW14, +6400
ANDW 16#7FF8, LW14
SRW LW14, 3
MOVW +0, LW12
DTR LD12, LD16
-R 800.0, LD16
我没搞懂这句话有什么用
问题补充:
LD SM0.0
MOVW LW4, LW14
LDW< LW14, +6400
MOVW +0, LW10
MOVR 0.0, LD6
JMP 70
LDW> LW14, +32000
MOVW +32000, LW14
LDW>= LW14, +6400
ANDW 16#7FF8, LW14
SRW LW14, 3
MOVW +0, LW12
DTR LD12, LD16
-R 800.0, LD16
LD SM0.0
*R LD0, LD16
/R 3200.0, LD16
MOVR LD16, LD6
TRUNC LD16, LD12
MOVW LW14, LW10
我觉得这个程序是在捣糨糊。。。请各位大侠给我点评吓 感激万分 这是个模拟量的转化程序
最佳答案
12位数据模拟转化为数字量的存储格式
在单极性格式中,3个连续的0使得ADC计数值每变化1个单位,数据字中则以8为单位变化。
编程的人是省去了3个变化位,和16#7FF8相与把变化位先清零,在SHR右移3位 得到12数据位值,在进行模拟量转换,本来是
(AIW0-6400.0)/25600.0 的公式,由于已经右移了3位,所以
AIW0/8=LD16 代入公式,(LD16*8-6400)/25600 变为了
(LD16-800)/3200 得到一个0-1 的数字 在乘以LD0
提问者对于答案的评价:
TKS
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc314255.html