现有从PLC中读取的速度设定变量A和B, 想设定一个输入输出域自定义一个变量C,然后一个按钮D, 想实现在C框中输入一个值,按按钮D将此值赋值到A和B中。设定D左键时
float x;
x=GetTagFloat("C")
SetTagFloat("A",x);
SetTagFloat("B",x);
结果出现了两个问题: 第一个是C脚本错误,
第二个是 就算程序执行了,但无法解除C向A,B的赋值动作。
请高手 分析下错误原因 及 合理的解决方法!
问题补充:
如果改为 if 的行不行, 设置一变量Z 按钮按下时 Z=1 按钮松开时 Z=0 Z=1时赋值 Z=0时 不赋值
求高解!
最佳答案
第2句句尾没";"肯定是语法错误,不过这里语句只有给AB赋值功能,(已经赋过值要想恢复原来值只能在赋值前保存AB的值.可以用另个按钮把保存的值写到AB去,)你不想赋值不用点击这个按钮,自然是解除赋值状态,这个按钮程序是点击一下执行一次,不点就不执行.
按照你现在提供Z判断做法也只有Z=1是有效的,Z=0取消赋值(你是想保持已经赋值的AB值呢(仅仅是这样你只需要Z=1就可以)?还是想恢复以前的AB值.如果是后者
1) 还需要定义一个二进制标签变量Z(用于按钮来改变值)
2)还需要这样一个全局脚本(循环执行):
STATIC FLOAT X,Y;
SHORT D;
X=GETTAGFLOAT("A");
Y=GETTAGFLOAT("B");
IF(GETTAGBIT("Z"))
{ D=1;}
ELSE
{ D=0;}
IF (D==1)
{ SETTAGFLOAT("A",GETTAGFLOAT("C"));
SETTAGFLOAT("B",GETTAGFLOAT("C"));
}
ELSE
{ SETTAGFLOAT("A",X);
SETTAGFLOAT("B",Y);
}
提问者对于答案的评价:
谢谢
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc268428.html