当为相关的I/O域选择了无符号输出格式时,为什么在WinCC运行系统中负的整数值会显示为“大”的正数?

描述:
下表提供了有符号和无符号整数数据类型的对比。

十六进制 无符号十进制 有符号十进制
0x7FFFFFFF 2.147.483.647 2.147.483.647
0x00000001 1 1
0x00000000 0 0
0xFFFFFFFF 4.294.967.295 -1
0x80000000 2.147.483.648 -2.147.483.648

负数显示为2的补码。例如“-1”由位模式“0xFFFFFFFF”代表(所有位都置位)。

如果在WinCC的“I/O域”中用无符号显示格式来显示,那么变量的值被翻译为无符号值。显示的是无符号值“4.294.967.295”(232 - 1)而不是“-1”。

这就是为什么必须注意I/O域中显示的正确输出格式。有符号的输出格式是由字符“s”(sign)开始的。数字“9”的重复次数决定了可在I/O域中显示的最大十进制数。如果变量的值超出了十进制的最大数,会显示三个星号“***”而不是实际值。

样例:
输出格式“s9999999”定义了可显示最大7位十进制的有符号值。

此条目是为WinCC V6.0 SP3创建的。

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年11月5日
下一篇 2021年4月12日

相关推荐

发表回复

登录后才能评论