wincc组合框不同选项将不同变量置位

组合框连接变量为a,数据类型int。b,c,d是3个BOOL量。当a=1,将变量b置1,a=2,将变量c置1;a=3,将变量d置1.请问这个如何实现,C脚本程序应该怎么编。谢谢大家。

最佳答案

这个可以用 全局脚本来实现,打开全局脚本编辑器,然后新建“全局动作”

然后写入下面代码
int a;
a=GetTagWord("a");
switch(a)
{
case 1 : {SetTagBit("b",1);
SetTagBit("c",0);
SetTagBit("d",0);
};
break; 
case 2 : {SetTagBit("c",1);
SetTagBit("b",0);
SetTagBit("d",0);
};
break;  
case 3 : {SetTagBit("d",1);
SetTagBit("b",0);
SetTagBit("c",0);
};
break;  

或者用if else 也可以
int a;
a=GetTagWord("a");
if(a==1)
{
SetTagBit("b",1);
SetTagBit("c",0);
SetTagBit("d",0);
}

if(a==2)
{
SetTagBit("c",1);
SetTagBit("b",0);
SetTagBit("d",0);
}
if(a==3)
{
SetTagBit("d",1);
SetTagBit("c",0);
SetTagBit("b",0);
}

完成代码后编译,保存,然后选择触发器,建议选择变量"a” 作为触发器,这样当a发生变化时,执行全局动作,减少系统负载。当然你选择循环触发C全局动作也是可以的,就是浪费了系统的资源。
最后,不要忘了,设置全局脚本,在WINCC 激活时,自动启动,WINCC 服务器的属性里设置

当然,楼上的方法很好,直接在PLC 里面做吗,也很简单

L a
L 1
==I
S B
R C
R D
TAK
L 2
==I
S C
R B
R D
TAK
L 3
==I
S D
R B
R C

提问者对于答案的评价:
谢谢您的回答,功能我试了的确可以实现。但是目前我有40个变量,类型是BOOL。像这样做,有一个变量置1,另外39个变量要置0.请问有更简单的方法吗?

最佳答案作者回复:
恩,把 你的这些BOOL为分成 2个DWORD 类型的双字
比如
W=DB1.DBD0
A=DB1.DBX0.0
B=DB1.DBX0.1
C=DB1.DBX0.2
然后通过SetTagDWord("W",0x1000);
就是把A=DB1.DBX0.0置1了,
SetTagDWord("W",0x2000);
就是把B=DB1.DBX0.0置1了,
SetTagDWord("W",0xF000);
就是把 DB1.DBX0.0-DB1.DBX0.7 全部置1.

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc202825.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2017年11月1日 上午12:51
下一篇 2017年11月1日 上午12:51

相关推荐

  • STEP7 V5.5中使用了多重背景,变量无法导入WINCC,如何解决

    大家好,以前做项目时DB块数据通过编译导入WINCC都可以。这次项目STEP7中使用了多重背景数据块做的,但是编译过后,在WINCC变量表里面却没有多重背景里面的变量,请教这个怎么…

    SIMATIC WinCC 2021年7月5日
  • wincc 串口通讯

    各位前辈:     我打算用wincc通过mscomm控件和单片机通讯,在西门子自动化的网站上看到相关的帖子,很有启发。&nbsp…

    SIMATIC WinCC 2019年6月11日
  • 关于wincc 界面设计的一个问题

    项目运行后,业主要求主界面中的一个图片他能根据自己的需求随时更换,这个要求能实现吗?请问怎么做? 问题补充:VB语言不太熟悉,尝试了下没有做出来,能详细说明下吗? 最佳答案 此回答…

    SIMATIC WinCC 2021年7月5日
  • 我在安装wincc2008的时候 wincc弹出提示 请问这个提示上什么含义请看截图

    我在安装wincc2008的时候  wincc弹出提示 请问这个提示上什么含义请看截图 问题补充:看截图 图片说明:    最佳答…

    2019年6月10日
  • wincc驱动的选择

    200的网口243-1与300的343-1中的p1口连接,300的343-1的p2与电脑wincc连接,能否实现通讯,而且wincc里的驱动程序我该选哪一个? 最佳答案 是的!S7…

    SIMATIC WinCC 2019年6月11日
  • WinCC V7.2 安装 SQL

    在虚拟机vmware安装wincc v7.2的过程中,提示sql server正在安装,耐心等待。等了两小时,一直在提示,没有变化。 图片说明:  &…

    2021年7月5日
  • 请教关于变量记录的问题

    7.0 sp3 用变量触发记录的话,1→0,0→1都会记录一下,不好以前都是用PLC建一个中间变量,用原触发变量上升沿转换中间变量,然后再用这个中间变量触发记录…

    2021年7月5日
  • wincc画面自动跳转

    一个项目想用这样的方式实现:wincc有A\B\C三个界面  wincc在C界面控制200SMART, 当SMART完成任务后,如何让WINCC&nb…

    SIMATIC WinCC 2020年11月1日
  • 触发变量归档的问题

    我现在是要求当一个归档变量发生变化的时候,触发另外一个变量开始归档,请教各位怎么实现?这两个变量都是模拟量,不是数字量的 专家建议 先确认一下您的提问: A(模拟量)变化…

    SIMATIC WinCC 2020年11月1日
  • WINCC C/S架构授权问题

    如题,WINCC Audit选件以及用户归档的授权在服务器端授权之后需要在客户机端安装授权吗? 最佳答案 1、WinCC?Audit?RC?授权通常安装在WinCC服务器…

    SIMATIC WinCC 2021年7月5日