作者 | 主题 |
---|---|
kibu 侠圣 经验值:4518 发帖数:554 精华帖:4 |
楼主 2018-07-13 09:11:54
主题:wincc 7.4 变量数据类型和线性标定误解的问题 本人用wincc时间不长,在变量建立的过程中对数据类型和线性标定出现误解,绕了好大弯子,分享出来,希望其他新手别再犯同样的错误了。 驱动:modbus TCP 寄存器地址:40200 16bit 有符号数据 寄存器数值:实际测量温度值的10倍 数值范围:-200~1000 对应-20℃~100℃ 希望画面上IO域显示为浮点数:-20.0~100.0 错误的变量组态: 正确的组态 误解的原因: 以前用过其他组态软件,整型数据缩小10倍只要IO域组态为浮点,移动小数点位置就能以浮点数形式显示整数,比如寄存器内是1234,IO域可以显示为123.4; 但wincc内不是这个规则,IO域即使组态成浮点数格式,配置了小数点后的位数,但关联的变量数据类型如果是整型的话,那么小数点后面始终是0,结果1234经过线性标定后在IO域内只能显示123.0,小数部分丢失了 如果希望modbus寄存器内的整数在winccIO域中以浮点数形式显示出来,在变量组态时数据类型一定要要选32位浮点数,格式调整选 FloatToSignedWord 或者 FloatToUnsignedWord ,再做线性标定,这时IO域关联此变量以后就能正常显示小数部分了。 此方法对于其他驱动协议应该也适用,不过我还没测试。 只要涉及到把整型数据转浮点数需要线性标定的应该都可以,但是把整型数据放大倍数显示的话,没必要。因为小数部分肯定始终都是0. |