怎样把一个字节拆成八个位?

OPC客户端程序传给我20个字节,每个字节对应八个位变量,现在我要把一个字节拆成八个位,然后再对应到每个WINCC变量,用C脚本做项目函数,拆成8个位的脚本函数怎么写?越详细越好,谢谢。

问题补充:
除2取余是一种方法,如果用结构体做,怎么做?脚本怎么写?

最佳答案

void test(char tagname[30],char bit0[30],char bit1[30],char bit2[30],char bit3[30],char bit4[30],char bit5[30],char bit6[30],char bit7[30])
 {
           int i;
           int temp;
           char a[10];
           union  dataArrary
           {
                     BYTE  m[8];  
           }n;

           temp=GetTagWord(tagname);
           for (i=0;i<=7;i++)
          {                              
                     n.m[i]= (char)((int)temp % 2);
                     temp=(int)(temp/2);
           }
           SetTagWord(bit0,n.m[0]);
           SetTagWord(bit1,n.m[1]);
           SetTagWord(bit2,n.m[2]);
           SetTagWord(bit3,n.m[3]);
           SetTagWord(bit4,n.m[4]);
           SetTagWord(bit5,n.m[5]);
           SetTagWord(bit6,n.m[6]);
           SetTagWord(bit7,n.m[7]);
 }
 在全局脚本或者按钮动作C脚本中调用test函数,将8个位解析到8个变量中即可

提问者对于答案的评价:
能用,谢谢

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2019年6月11日 上午9:14
下一篇 2019年6月11日 上午9:14

相关推荐

  • wincc6.0 历史趋势图能不只显示两点一线的形式

    我想用一个变量做历史曲线。但是要显示两点一线(斜线)。例如:第一次采集数值是50,十分钟后第二次采集数值是30,然后50和30的点画一条直线(在趋势图上)。第三次采集数值是40,第…

    SIMATIC WinCC 2019年6月10日
  • 关于WinCC flexible 2007结构变量的问题

    在触摸屏上想实现按一个设备自动弹出操作对话框,然后在对话框上启停这台设备。由于设备比较多编辑小画面(对话框)太多太麻烦。我见过有人在WinCC 6.0用结构变量做一个对话…

    SIMATIC WinCC 2019年6月11日
  • wincc7.2做报表

    怎么用wincc7.2 做实时报表,能打印的,跪求图文步骤,pdf文件也行呀,各位大神! 最佳答案 如果是要做能查询的报表,可以用页面布局,加打印作业来做,如果是实时数据…

    SIMATIC WinCC 2021年7月5日
  • wincc 是否能保持一个画面一直打开?

    wincc 的工程上有很多画面,在画面切花的时候,切换到下一个页面的同时,上一个页面就是关闭了,现在的问题是:能不能,让一个画面一直开着,不管是切换的哪个页面,总让一个页…

    SIMATIC WinCC 2019年6月11日
  • 谁用过WinCC中的Gadgets水流控件啊?

    现在的问题是一旦一个画面中用的这个控件过多(大概100个以上)就有很大的几率出现一段时间后画面破碎的现象,画面中的物件都无法正常显示,比如按钮错位,无法正常点击等等,总之就是不正常…

    SIMATIC WinCC 2018年12月14日
  • wincc问题3,,

    请问我的WINCC,画面编辑很卡顿是什么原因,每个动作都要卡顿2秒左右 最佳答案 机器的配置足够的话(按照安装说明要求确定),可能就是操作系统的原因了,打开任务管理器看看cpu和内…

    SIMATIC WinCC 2021年7月5日
  • Wincc不能从主画面开始运行

    Wincc Flexible 2008组态出了几组画面,为什么在线运行的时候不能从主画面开始,总是从画面2开始,(主画面的画面编号已经设置为1了),求助各位大神…

    SIMATIC WinCC 2021年7月5日
  • 在线趋势图里的变量值显示如1.0 i. u.,其中i和u表示什么含义?

    在线趋势图里的变量值显示如1.0 i. u.,其中i和u表示什么含义? 最佳答案 参考问题ID为29325的最佳答案: http://www.ad.s…

    SIMATIC WinCC 2019年6月11日
  • WINCC压缩归档

    我每分钟归档一个数据,然后每天做一下压缩归档,定义的压缩归档时间是00时00分00秒,但是启动后发现压缩的归档的时间不是00时00分00秒,而是按系统启动时间开始算时,然后第二天的…

    SIMATIC WinCC 2019年6月10日
  • 求助:WinCC中如何实现对本地图片的动态显示?

    场景:有一产品缺陷视觉检测装置,工业摄像机拍摄的图片经处理后保存在本地硬盘。流程:拍照——下位机检测——存到上位机——WinCC中显示问题:如何在WinCC中动态显示产品图片?即在…

    SIMATIC WinCC 2017年6月13日