从设备上 返回一个BYTE数组,其中需要显示一项指标 为 温度 它返回 对应的 的数值为 001 116 而它实际的值为 37.2℃,不知道怎么转换过来的,请教各位大侠。
即仪器界面上显示温度为 37.2℃,而它对应的 BYTE数组 数值为 001 116。
即仪器界面上显示温度为 37.2℃,而它对应的 BYTE数组 数值为 001 116。
解决方案 »
- 多线程与数据库,困扰我好几天,我都快疯,请高手给指点一下!
- 问关于DBGrid表格显示问题??
- 通过崩溃地址找错误行数之Delphi版 ^_^
- delphi打印窗体的问题
- 请问GetSystemMetrics这个api函数是做什么用的??
- 请帮帮忙,怎样屏蔽或取消“Ctrl+c”、“Ctrl+v”功能?
- 高分!关于字符串的操作,不是很难,可我想不过来了。
- 50分求购清空收藏夹和临时文件夹的源程序!!!!!
- 要在DBGrid中选中多项,除了用Ctrl和鼠标组合,还有没有别的方法?
- application.initialize完成了什么
- DBGRid如何自定义显示
- 请教:delphi如何让代码自动排列?相当于MS VC的ALT+F8功能
自控的温度我见过的几种格式:
1.BCD码,小数点是隐含的;如1位小数或没有小数
2.线性对应,如: 0-4000 对应0-400度,这与量程有关。
也有: 0-32000对应0-400度,也与量程有关;
是用什么软件显示出的? 如果PLC程序,它会注明是
16进,8进,10进?
存贮器内的数值都是二进制的,但太长不方便,为了让你看到方便的数值,
软件会显示成其它进制的。楼主做为程序员,这点要搞清楚的。
你的BYTE数组是C++BUILDER程序显示的,那肯定是十进制的了。
第一个字节是1,第二字节是116了,是这样吗?要说清楚的。
两个字节表示一个温度,1是高位,116是低位
这两个字节就是一个16位短整数,1*256+116=372
表示37.2度,隐含了一个十进位小数点,即倍率是0.1,
t=(b1*256+b2)/10.
就这么简单!
两个都会。什么OPC,485通迅滚熟,只是书呆子一个,混的
潦倒,没办法了。