使用200SMART, WINCC 7.4 通过OPC ACESS 读取PLC数据,监控到PLC内该参数变量数据仍然是正确的值,比如0.7 (VD2000), OPC监控显示也是0.7 (REAL), WINCC中 设置该变量为 32位浮点数,输入输出域 格式 十进制 9999.99, WINCC的日志中也能正确记录变更数据,比如 1 》 0.7, 刚设置完WINCC画面中也能正确显示输入的0.7,但很快就自己变成了1. 这是什么原因?
问题补充:
PLC程序状态图表显示是浮点数,PC ACCESS中看到的值也是正确的浮点数,就WINCC显示不正确。
图片说明:
最佳答案
应该是变量格式不对。
比如:OPC方式通讯的时候不光设置REAL型变量(浮点数 32位)还需要OPC格式设置变量地址的(需要在地址后加一个F来显示浮点数)。仔细检查变量地址设置。
补充:1、变量类型有符号(无符号)16位(8位或者32位),I/O域的格式定成999.999会出现小数点后的数值被四舍五入
2、变量类型是float且I/O域格式选择是999.999,应该是输入和输出完全一样,不会出现四舍五入
3、 opc变量管理里面的数据类型被默认为了32位有符号数,要改为32位浮点数
参考资料:http://www.ad.siemens.com.cn/service/answer/solution.aspx?Q_ID=51314&cid=1032
提问者对于答案的评价:
找到问题原因了, 因为第一次在WINCC 中添加OPC变量时,OPC内的变量格式设置不对,虽然后来手动修改成REAL,WINCC中也手动改成了浮点32位。但结果还是自动四舍五入。 后来把WINCC内的变量全部删除,然后重新添加OPC ACCESS中格式正确的变量,WINCC 内的变量格式自动为浮点32位,这样不再四舍五入了。
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc358160.html