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