资源描述:
《WinCC原始数据类型.pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、最近有人提到原始数据类型,碰巧做过,写出来看看。为什么采用原始数据:有时候需要同时传输很多数据到PLC,不能分批下去,更不能有遗漏,怎么办?西门子推出了原始数据类型。如果大家想节约winCC的点数,也可以采用这个办法。首先,原始数据类型是针对大批量数据传输的,可以定义很多个字节。可以采用bsend/breceive的方式,西门子的官网有,下面是采用发送/接收块的方式做的:1,定义一大批变量,每隔208个字节定义一批;2,具体的定义如下:3,在计算机的内部变量里面定义你需要在WinCC上处理的各种变量,可以是实数,也可以是整形数;4,在WinCC需要用到大批量数据的地方链接您的内
2、部变量:5,编程,把内部变量发送出去。6,部分代码如下:思路:先把数据转换成int,然后好拆分成byte。情况1:如果画面上的变量是实数,并且可以通过乘以10或者100变为整数,并且转换后小于32767,那么可以如下操作:BYTEa[2400];BYTEa1[220];BYTEa2[220];BYTEa3[220];BYTEa4[220];BYTEa5[220];BYTEa6[220];BYTEa7[220];BYTEa8[220];BYTEa9[220];BYTEa10[220];longi;longj;intb[1200];b[0]=(int)(GetTagFloat("S
3、1_TT")*100);b[1]=(int)(GetTagFloat("S1_PP")*100);b[2]=(int)(GetTagFloat("S1_TI")*1.0);b[3]=(int)(GetTagFloat("S1_TP")*10.0);b[4]=(int)(GetTagFloat("S1_TC")*100);.......................中间省略.......................b[896]=(int)(GetTagFloat("S30_T")*100);b[897]=(int)(GetTagFloat("S30_U")*100);b[8
4、98]=(int)(GetTagFloat("S30_V")*100);b[899]=(int)(GetTagFloat("S30_W")*100);for(i=0;i<901;i++){j=i*2;a[j]=b[i]/256;a[j+1]=b[i]%256;}for(i=0;i<210;i++){a1[i]=a[i];}for(i=208;i<420;i++){a2[i-208]=a[i];}for(i=416;i<630;i++){a3[i-416]=a[i];}for(i=624;i<840;i++){a4[i-624]=a[i];}for(i=832;i<1050;i+
5、+){a5[i-832]=a[i];}for(i=1040;i<1260;i++){a6[i-1040]=a[i];}for(i=1248;i<1470;i++){a7[i-1248]=a[i];}for(i=1456;i<1680;i++){a8[i-1456]=a[i];}for(i=1664;i<1890;i++){a9[i-1664]=a[i];}for(i=1872;i<2010;i++){a10[i-1872]=a[i];}SetTagRaw("Recipe_Raw_0",a1,208);SetTagRaw("Recipe_Raw_1",a2,208);SetTag
6、Raw("Recipe_Raw_2",a3,208);SetTagRaw("Recipe_Raw_3",a4,208);SetTagRaw("Recipe_Raw_4",a5,208);SetTagRaw("Recipe_Raw_5",a6,208);SetTagRaw("Recipe_Raw_6",a7,208);SetTagRaw("Recipe_Raw_7",a8,208);SetTagRaw("Recipe_Raw_8",a9,208);SetTagRaw("Recipe_Raw_9",a10,208);情况2:如果变量全部是整数,那么如下操作即可:BYTEa[2400
7、];BYTEa1[220];BYTEa2[220];BYTEa3[220];BYTEa4[220];BYTEa5[220];BYTEa6[220];BYTEa7[220];BYTEa8[220];BYTEa9[220];BYTEa10[220];longi;longj;longb[1200];SetTagBit("M_A4",1);b[0]=GetTagSWord("S1_TT");.......................中间省略.......................b[111