WinCC SetTagByte Warning

if (GetTagByte("By_Enable")&0x1 == 0) //Return-Type: BYTE 
SetTagByte("By_Enable",GetTagByte("By_Enable") | 0x1); //Return-Type: BOOL 
else
SetTagByte("By_Enable",GetTagByte("By_Enable") & 0xFE); //Return-Type: BOOL 

请教大家为什么我在编辑时总是提示 Warning(011)conversion may loose information.
注:By_Enable 是一个字节变量,

谢谢

最佳答案

我也觉得是 if (GetTagByte("By_Enable")&0x1 == 0) 这句有数据类型不一致的地方,(GetTagByte("By_Enable")&0x1的结果仍然是BYTE,0写成0x0应该就可以了。单写0,不知会被编译程序当作int或者bool什么的了。
总的来说,编译时出现Warning信息,只要再确认一下你编程确实没问题,可以不用管它。像这个只是提示数据类型不一致,但实际上编译程序会自动正确处理的,实际使用不会有问题。

提问者对于答案的评价:
谢谢各位的建议,脚本能正常运行。

专家置评

已阅,最佳答案正确。

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2017年6月1日 下午7:17
下一篇 2017年6月1日 下午7:17

相关推荐