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

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日
下一篇 2019年6月11日

相关推荐