目的:
1、为了节约wincc的点数,想用一个字(比如:vw206)分别控制16个位(比如:v206.0~v207.7其中的指定1个或2个)。
2、使用方法是在数据i/o域输入数字(比如5位数)完成后按回车键后产生一个对v206.0~v207.7其中的指定1个或2个位的控制接通或断开
现在:通过wincc、 pc access、plc200已经建立连接
结果:我在wincc的数字i/o域中输入5位数字后按回车键,plc中的v206.0~v207.7的位是按照我输入的5位数字的二进制值在变化,我想指定其中的1位采用什么办法?
plc中的程序是:LD V207.0
=Q0.0
以下是两位大侠的回答,意思就是这个意思,但是我试了,就是走不通,不知道问题在哪里?请大侠在指点指点。
一、在OPC中设置这个VW206为读写;在WINCC中按钮和指示灯都设置成位操作。你补充说明VW206想控制V103.1和V103.3,这个要在PLC中编程。假设用V206.1控制V103.1,在程序中假如用V206.1开点-->V103.0线圈,以此类推就可以了,需要进入WINCC的I点状态则是反过来,Ix.x-->V206.x。WINCC的指示灯则受VW206的这个位来控制颜色。不知道你能看明白吗?
二、如果按照你上面说的,比如,建立的变量地址是QW0(无符号16位),I/O域与QW0地址对应的变量关联,1,2,4,8,16.。。。。对应被赋值的位地址分别为Q0.0, Q0.1, Q0.2,Q0.3。。。。。
如果是用一个按钮去控制某个DB1.DBW0变量中的一个位,可以这样去尝试
圆---属性----背景颜色---动态对话框-----关联DB1.DBW0变量----数据类型选择:bit,然后点击bit,确定要关联的那个位,这样就可以通过一个变量的不同位去显示16个bool位的状态,但是只需要建立一个wincc变量
最佳答案
比如变量:VW206,如果用输入/输出域控制的话:
v206.0置一就输入256
v206.1置一就输入512
.
.
v206.7置一就输入32768
v207.0置一就输入1
v207.1置一就输入2
.
.
v207.7置一就输入128
你要同时置位V206.0和V207.0就输入1+256,这样比较麻烦。
可以用按钮在置某一位时又不影响其它的位,先建个变量Vw206,按钮脚本:
dim tag1
set tag1=HmiRuntime.tags("VW206")
tag1.read
tag1.write tag1.valur or 256 ''置位V206.0
set tag1=nothing
如果置位V207.0就用tag1.write tag1.valur or 1,这样你想置哪个都行,又不影响其它的位。
提问者对于答案的评价:
谢谢,我有点明白了
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc265076.html