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日
下一篇 2017年11月1日

相关推荐

  • WinCC数据通过脚本或者其他方式写到PLC中?

    WinCC与S7-400用MPI连接,与串口设备通过OPC连接,请问如何将OPC获得的数据通过WinCC再写入到S7-400中?    尝试…

    2020年11月1日
  • configured device name for the time synchronization dc

    系统每次开启,总是报警以上信息,也不知道哪里出错了,请教各位大哥。 最佳答案 应该是在设置对时方面有问题,你检查一下你的对时服务器设定的对不对? 提问者对于答案的评价:ok 专家置…

    SIMATIC WinCC 2019年6月11日
  • VBS问题请教

    我在WinCC的图形编辑器中的一个按钮的鼠标动作中,写下如下代码后 Sub OnClick(ByVal Item)  Dim&nb…

    SIMATIC WinCC 2019年6月11日
  • 在线报表

    我想用在线报表,非周期归档,但是那个时间不会写啊,可以用变量和函数,变量怎么弄啊?是WINCC变量还是其他的什么啊? 最佳答案 请参考:《在线报表控件》http://wenku.b…

    SIMATIC WinCC 2019年6月10日
  • 关于WINCC无法正常激活程序

    点击计算机后在,右击我的服务器名称(就是我自己的电脑),选择属性,将TAG LOGGING和ALARM LOGGING前的复选框打钩,确定后,想激活程序,却在激活进度条达到75%时…

    SIMATIC WinCC 2019年6月11日
  • 关于opc通讯的几个问题。

    系统中采用的了opc通讯,采用kepware与s7-200 smart通讯,经过测试通讯正常,现场还有一套倍福CX1020系统,需要与上位wincc链接,计划也采用opc…

    2021年7月5日
  • 请问WINCC7.3怎么从SQL数据库读取数据?需要授权吗?

    我们最近在做一个项目,要从一个工厂的几个PLC读取数据,有三菱FX2N,2U,3U和Q系列PLC等等,都是串口或以太网通讯,通过SQL采集到这些数据,然后在WINCC7.3上做集中…

    SIMATIC WinCC 2017年6月10日
  • 以太网通信中断

    我公司在现场运行设备,其中一台是S7-300通过CP343与工业以太网线(网线10米左右)和工控机直连,工控机安装有组态王软件,软件数据采集频率为200ms左右,一起采集200个字…

    SIMATIC WinCC 2019年6月11日
  • 正版wincc6.0价格

    我想咨询下正版wincc6.0软件价格是多少,各个点数价格,象在做工程时,应该如何来估算编程,组态,调试,维护费用价格, 最佳答案 参考价格:   6…

    SIMATIC WinCC 2019年6月11日
  • wincc归档采集周期

    目前在做的项目需要操作站监控系统采集主传动系统的电枢电流电压转速,励磁电流电压信号要求达到50MS时间范围内采集一次 问题是WINCC归档的最快采集默认是500MS,请问…

    SIMATIC WinCC 2019年6月11日