回复:求助winCC的位操作和比较脚本

锋言锋语

西门子1847工业学习平台

  • 帖子

    3940
  • 精华

    54
  • 被关注

    130

论坛等级:至圣

注册时间:2011-07-31

钻石 钻石 如何晋级?

发布于 2012-05-23 10:02:50

1楼

思路:
组合成一个状态字:
用位操作,
//文本数组
static char *ptext[16] =
{
"111111111111";
"222222222222"
.....
"16 16 16 16 16 16"
};
struct
{
int s1:1;
int s2:1;
......
int s16:1;
}sw;
int *p = (int*)&sw;
int sr = 0;
int i = 0;

sw.s1 = GetTagBit("A");
sw.s2 = GetTagBit(B");
......
sw.s16 = GetTagBit("P");

sr = (*p) ^ STATUS1; //STATUS1是给定的比较状态,这里做异或操作。

for(i = 0; i < 16; ++i)
{
if (sr & (1 << i))
{
printf("%s\n", ptext[i];
SetTagChar("OutText", ptext[i]);
}
}



有问题联系我: 123871020
不忘初心
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC WinCC / Panel

共有32566条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。