赋值C语言

现有从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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2019年6月11日
下一篇 2019年6月11日

相关推荐