wincc 里边遇到单位不统一怎么弄啊,比如,我wincc中的一个I/O域链接的是来自opc的温度变量,想让它既能显示温度同时又能改写温度,但是底层opc读来的温度单位是K即热力学温度值,我想在I/O域中显示单位为℃,当然这可以通过在组态动态对话框中给这个变量减去一个绝对零度以使其转换为摄氏度,但问题来了,我这样减后从I/O域就不能改写这个温度值了,但我要是不组态动态对话框而是给I/O域直接连接这个底层变量(注意没有做任何运算),那么这时我可以从I/O域改写温度。这个问题估计是在组态动态对话框中我读时做了运算,但写时却没有,因而改写不了底层的OPC变量值,不知道这该怎么解决,在此求助各位大侠!
最佳答案
其实你就是要对这个取进来的变量a转成变量b,b=a-绝对零度是吗?当改变b 时,a不能改变是吗?
你可以这样,例如绝对零度=30
建立a和b两个变量
在画面上组态两个输入输出域,输入输出1和输入输出2
在输入输出1上连a变量
在输入输出2上连b变量
在输入输出1的其他——对象改变里,写入下面的C脚本
SetTagByte("b",GetTagByte("a")-30);
在输入输出2的其他——对象改变里,写入下面的C脚本
SetTagByte("a",GetTagByte("b")+30);
我自己测试过,可以用,能实现你需要的功能了。
提问者对于答案的评价:
非常感谢你的解答!可以的
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc272876.html