显示温度时如何显示小数点后面的值?在输入输出域中设置不起作用,设置用32位浮点数读不到值。

显示温度时如何显示小数点后面的值?在输入输出域中设置不起作用,设置用32位浮点数读不到值。   

 目前用16位无符号类型。通讯驱动连接是 MODBUS TCP.

 但是读其他OPC SERVER 的值时有可以显示小数位。
 

问题补充:
希望各位老大仔细看看我得问题以及目前已经做过的测试,我再补充一下:
 1:输入输出域的格式设置不起作用。在读取其他OPC SERVER 值的时候才有作用。可以显示小数位。
 2:如果改为读取 数据类型为32位浮点数 IEEE 754格式,就读不到数值。
 3:我的下位机是 串口服务器接ABB PLC AC31 ,用TCP模式,上位机不用串口模拟软件。PLC 模拟量数据类型为INT 型。
 4:MODBUS TCP 协议设置为 16位无符号数可以正确读值,比如温度值为:8618,线性化后的值为为86,没有了小数位的18。 
 5:其他组态软件可以正确读值并线性化没有出现丢失小数位的现象。WINCC只是设置输入输出域的999。99是不行的。
 6:除过在程序里面用程序实现显示小数位,还有什么好办法吗?
 7:WINCC程序里面实现如何实现显示小数位?
 8:哪位方便的话,我可以提供公网IP 实际联机设备测试一下这个问题。
 9:之前做过WINCC显示小数位的,但也是读取OPC SERVER 的工况。
 10:先谢谢各位关注了。

最佳答案

你的温度值读入的格式为16位无符号类型的话,肯定是不会有小数点后面的值的...只有读入的是REAL也就是32位浮点数 IEEE 754格式时,直接显示可以设置小数位数.
 根据你的这一点:  MODBUS TCP 协议设置为 16位无符号数可以正确读值,我认为你应该使用读入的格式为16位无符号类型,但是不要线性化,显示时输入输出域不要用变量的直接连接,使用动态对话框,输出值为: "变量"/100  就可以了...
 

提问者对于答案的评价:
谢谢,可以正常显示了,要除100。00;除100不行。再问问,这个变量名字值可以直接归档吗?归档里面也有小数位吗?

专家置评

只能归档变量管理里定义的变量。
 对于无符号十六位的变量显示为小数格式。可以这样操作:
 1、数据类型定义为浮点数 32位,
 2、调整格式定义为:FloatToUnsignedWord
 3、根据实际情况定义线性标定。
 4、根据实际情况定义输出格式,例:999.9。
 以上是在MPI通道下做的测试。这样归档里面也带有小数。
 搂主可以按照这个思路测试一下MODBUS TCP协议下的情况。

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc271198.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2019年6月11日
下一篇 2019年6月11日

相关推荐