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

相关推荐

  • 300用电话与WINCC通讯

    300用电话与WINCC通讯 最佳答案 可以参考:《如何通过3G网络对S7300/S7400远程编程和调试》http://www2.ad.siemens.com.cn/downlo…

    SIMATIC WinCC 2021年7月5日
  • wincc flexible smart 切换开关状态

    请问怎样可以在编辑的画面直接切换开关状态的显示,现在只会能过模拟的方式 换,好麻烦用过其他家的HMI软件,都直接有一个状态切换的工具条,可这里死活找不到,麻烦好心人指点一…

    2021年7月5日
  • wincc动态对话框中如何做与或非

    想作一动画,A变量和B变量只要1个为1就闪烁(或的关系),在wincc动态对话框中输入A|B还是A||B?有什么区别?与是&还是&&? 最佳答案 输入’A’|’B’逻辑操作&nbs…

    SIMATIC WinCC 2019年6月11日
  • 上位机工控机配置推荐

    最近使用的上位机工控机突然变得很卡,数据是通过OPC与300PLC通讯的。有没有推荐的服务器配置,目前是DELL的T5810。 最佳答案 T5810配置已经很好了,完全胜任winc…

    SIMATIC WinCC 2021年7月5日
  • Web客户端安装

    web服务器设置完后,用别的计算机浏览时,web客户端安装不了,不怎么搞了。 问题补充:点击下一步后就是这样了。 图片说明:       最…

    2021年7月5日
  • wincc6.2历史曲线

    我现在做一个水泥厂项目,5台计算机,为独立操作站,无服务器,为了做历史曲线,我定义一个过程归档,大概246模拟量做历史记录,保存的时间为6个月,每个归档变量的采样周期为500ms,…

    SIMATIC WinCC 2019年6月11日
  • 关于wincc过程归档周期设置等问题..大哥们快来给个见解吧

    首先说明一下情况,从plc中采集到的变量有日产,周产,月产,年产。我想首先对他们实时监控,每秒都显示一次。(可以监控哪里停滞了,方便排查故障)还想实现查询功能,比方说查1号到5号得…

    SIMATIC WinCC 2019年6月11日
  • 如何获取Wincc上的数据然后搭建新的系统

    别人已经做好生产控制系统已运行(有三个)我要做一个远程中央监控系统,目的是可以同时监控他们三个生产过程的情况,可以实现远程的访问。因为我不能去动别人已经做好的系统,所以我的想法是:…

    SIMATIC WinCC 2019年6月11日
  • wincc7.0如何用vbs连接mysql数据库

    wincc7.0如何用vbs连接mysql数据库 问题补充:我按着楼上的代码写入vbs脚本,设置了一个按钮,鼠标点击触发事件,运行后并没有任何反应 最佳答案 资料转帖的,仅供参考,…

    SIMATIC WinCC 2021年7月5日
  • 关于wincc flexible smart v3的软件问题

    为什么这个软件组态时使用的只有宋体,我想我想改变字体如何更改? 钻石用户推荐最佳答案 建议保持默认字体宋体,因为只有宋体经过长期的官方测试。Smart屏中文显示乱码http://w…

    SIMATIC WinCC 2020年11月1日