L #in_word_1
L #in_word_2
-I
ITD
DTR
L 0.000000e+000
<R
JCN M01
L 0.000000e+000
JU M03
M01: NOP 0
TAK
L 2.764800e+004
>R
JCN M02
L 2.764800e+004
JU M03
M02: NOP 0
TAK
M03: NOP 0
L 2.764800e+004
/R
L #band
*R
T #out_real
其中#in_word_1, #in_word_2,#band是输入变量
#out_real是输出变量
最佳答案
L #in_word_1 // 装载整数#in_word_1
L #in_word_2 //装载整数#in_word_2
-I //两整数相减
ITD //将差转换为双整数
DTR //将双整数转换为实数
L 0.000000e+000
<R //将结果与0比较
JCN M01 //若不小于0, 跳转到M01
L 0.000000e+000
JU M03 //否则,就跳转到M03
M01: NOP 0
TAK //因为此时ACCM1中为值为0,ACCM2中才是两数相减的差,
因此将两者的内容相换,即差存放在ACCM1中,
L 2.764800e+004 //装载27648.0
>R //将差值与27648.0比较,
JCN M02 //若不大于27648.0,跳转到M02
L 2.764800e+004
JU M03 //否则,就跳转到M03
M02: NOP 0
TAK //因为此时ACCM1中为值为27648.0,ACCM2中才是两数相减的差,
因此将两者的内容相换,即差存放在ACCM1中
M03: NOP 0
L 2.764800e+004
/R //将两者的差值除以27648.0,
L #band // 装载实数#band
*R //将商与#band相乘,
T #out_real //将乘积送入#out_real
这段程序的计算结果是:#out_real=( #in_word_1- #in_word_2)/27648.0*#band,
其中( #in_word_1- #in_word_2)/27648.0的取值范围为0.0---1.0.
提问者对于答案的评价:
很详细,谢谢。
专家置评
已阅,最佳答案正确。
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc241680.html