接到一个工程,要求把模拟量的数值转化为工程量放在指定的字节中:高字节放整数部分,低字节放小数部分。我把模拟量转化成工程量以后,发现数据格式变成实数了,请问各位大侠“这个要求能不能在200编程中做到”“如何完成工程的要求”谢谢大家的帮助!谢谢
问题补充:
谢谢 啊鸣的帮助。是不是转换成的16位整数B1的低字节可以直接读取为实数的整数部分?16位整数F1的低字节直接读取为实数的小数部分?
最佳答案
这个问题看似简单,但编程还是挺麻烦的,本人曾做过类似的程序,程序编制的步骤大致为:
1、转化成工程量以后数据格式变成实数了,该实数表示为A。
2、应用取整指令(TRUNC)将A实数值转换为双整数,结果只保存实数的整数部分,实数的小数部分舍去。该结果用B表示,B就是A的以双整数表示的整数部分。
3、应用双整数转换为实数指令(DTR),将B转换为实数,这个实数结果为C。
4、应用实数减法指令,A - C=D,D就是A的以实数表示的小数部分。
5、应用实数乘法指令,将D扩大相应倍数(例如乘以1000)为E。
6、再应用取整指令(TRUNC)将E实数值转换为双整数F,F就是A的以双整数表示的小数部分。
7、应用双整数(32位)转换为整数(16位)指令,将B,F转换为整数(16位),分别为B1,F1.。
8、将B1低字节(低8位)取出存入G的高字节,将F1.的低字节(低8位)存入G的低字节。G就是高字节放整数部分,低字节放小数部分。
提问者对于答案的评价:
xx
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc306113.html