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