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

相关推荐

  • 多套WINCC与一套300以太网通讯

    请问两套wincc 7.0,两套PC,同时和一台CP343-1以太网通讯采集同样的数据,请问可以吗?因为一个是本地wincc ,一个是远程,考虑稳定,还是不考虑…

    SIMATIC WinCC 2019年6月10日
  • WINCC画面授权

    在WINCC上面组态了画面,想做成只有登录正确的用户名和密码,才能进行画面中的操作.请问怎么做啊? 钻石用户推荐最佳答案 参考:如何根据登录用户权限级别执行某些动作?https:/…

    SIMATIC WinCC 2021年7月5日
  • 我要在WINCC里面做报警 需要一个插件请大师发一个我 我的WINCC是7.0 SP3版本的

    我要在WINCC里面做报警 需要一个插件请大师发一个我 我的WINCC是7.0 SP3版本的 问题补充:我要做模拟量报警 最佳答案 WINCC本身就能…

    SIMATIC WinCC 2021年7月5日
  • WINCC SQL.Server.2005数据库

    在安装WINCC V7.0 SP3 时,里面集成了SQL.Server.2005数据库,但是英文版的,如何切换成中文版的,或者有个汉化文件。 最佳答案…

    SIMATIC WinCC 2017年12月7日
  • 关于WINCC卸载与安装的问题

    我想请问两个问题: 1我重新设置了WINCC项目的启动画面后项目为什么不能激活停留在归档初始化阶段? 2我在没有卸载的情况下重装了WINCC后重新开机就不能进入…

    SIMATIC WinCC 2019年6月11日
  • wincc 使用者权限问题

    求助:电脑重新安装Windows XP的作业系统,及Wincc的程序无法开启问题? 图片说明:    最佳答案 登陆的用户组不对,请选择Adminis…

    2017年12月7日
  • WINCC的共享等问题

    WINCC项目建立后是共享的,我更改其属性,取消了其共享后,运行后什么都不显示。将项目属性改回来后,运行后还是什么都没有。退出WINCC管理器后,发现原来在图形编辑器里编辑的好几个…

    SIMATIC WinCC 2019年6月11日
  • 关于web 外网访问

    公司局域网内1台电脑做web服务器,同一台电脑,内网访问服务器速度很快;但外网访问服务器时速度慢,还经常掉线。 情况如下:  服务器配置:IBM&nb…

    SIMATIC WinCC 2019年6月11日
  • wincc画面中的文字全部消失?

    运行wincc程序几年一直都正常,最近一天通过wincc程序开启设备,画面上的所有文字全部消失(其他都正常,能操作设备能读取PLC变量值),用画面编辑打开画面也看不见所有文字,拖拽…

    SIMATIC WinCC 2017年11月6日
  • wincc客户机权限问题

    想增加一台wincc客户机仅供监视,无其他操作权限,已在服务器增加这样一个用户,如何实现这台客户机只能已这个用户名登陆,防止它用其他权限的用户名登陆。 问题补充:感谢大家的回答,我…

    SIMATIC WinCC 2019年6月11日