数据的解包操作

在plc300的数据块中定义了int数组array[0..100],然后通信发送给wincc定义的原始数据类型变量Raw,怎么通过GetTagRaw函数对原始数据变量进行操作,其返还值得到数据包中依次存放的单个采集数据,将GetTagRaw函数的返回值依次赋给建立好的变量数组中的各元素。以实现数据包的解包操作。
付两个小问题:1.用GetTagRaw时一定要把不是字节数组的数组变量转成字节数组吗,是的话,为什么?
2.plc给原始数据类型变量int数组,那原始数据类型变量的数据类型是int还是我建立定义时选择的数据类型,比如字节
本人初学,不太了解,希望答案能尽量详细和易懂点,不然有些难理解。感谢各位大佬。

最佳答案

此回答已完善

1.用GetTagRaw时一定要把不是字节数组的数组变量转成字节数组吗,是的话,为什么?
GetTagRaw返回的是一组原始字节数据,第2个参数必须对应BYTE数组
2.plc给原始数据类型变量int数组,那原始数据类型变量的数据类型是int还是我建立定义时选择的数据类型
wincc存储解析数据的变量类型要与plc原来相同,如plc是int,那内部变量选择int
 
建立“有符号 16 位数”内部变量如tag0~tag100(变量名称要便于在for循环操作),用于存放解析的数据
 
c脚本示例:
 
char Tag_Name[20]={NULL};
BYTE a[202];  //原始字节数据,202个字节
int  b[101];   //int数据,101个
int i;
 
GetTagRaw("原始数据变量",a,202); //读取原始数据,放入a字节数组
 
for(i=0;i<101;i++) 

   ((BYTE*)&b[i])[0]=a[i*2+1]; 
   ((BYTE*)&b[i])[1]=a[i*2];  
   sprintf(Tag_Name,"%s%d","tag",i); //组合变量名称tag+i
   SetTagSWord(Tag_Name,b[i]); 
}

提问者对于答案的评价:
多谢大佬,只是还有点小疑问,就是c脚本的第一句,Char Tag_Name[20]={NULL}为什么改成这样,不是建立了tag0到tag100的内部变量吗,这个应该是对应它们的吧,那为什么还要用[20]呢,麻烦大佬最后再解答一下。

最佳答案作者回复:
过奖了
Char Tag_Name[20]:定义一存放变量名的字符串变量

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年11月1日 下午4:05
下一篇 2020年11月1日

相关推荐

  • WINCC做报表11

    WINCC怎么做报表,要求对现场的仪表数值半小时记录一次 最佳答案 http://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=133…

    SIMATIC WinCC 2017年6月9日
  • wincc7.4安装时报错

    wincc7.4安装时弹出报错:无法找到C\:windoes\regedit.exe. 但是这个文件一直存在于我的C盘且注册表是好用的!见下图!请求大家帮忙解决!谢谢! …

    SIMATIC WinCC 2021年7月5日
  • wincc中可不可以用静态文本或者输入输出域显示报警信息?(如果有未确认报警)怎么弄?

    想做一个画面,其中有一部分显示现有未确认的报警(用静态文本或者输入输出域来显示),一个时刻只显示一条,若有多条,2秒后刷新再显示另一条,以此类推。我不想利用报警控件来做,感觉做起来…

    SIMATIC WinCC 2019年6月11日
  • SQL安装问题

    WIN XP SP3操作系统,安装WINCC 6.2请问SQL应该安装什么版本的,在哪里能下载到?谢谢! 最佳答案 安装SLQ版本只和WINCC的版本…

    SIMATIC WinCC 2019年6月11日
  • WINCC 7.0 报警和语言问题

    各位高手,我现在有两个问题高分求教?1、wincc 7.0 如何使用报警控件,即当以变量为真时,触发一报警。2、我在Graphics Designer…

    SIMATIC WinCC 2019年6月11日
  • PLC与PC通讯

    s7317-2DP和工控机连接不上这是怎莫回事啊! s7317-2DP我使得V2.6.0版本的,编程软件用的是STEP75.3 最佳答案 dp方式通讯需要5611卡&nb…

    SIMATIC WinCC 2019年6月11日
  • WINCCprofession v13.0安装提示系统错误

    在安装WINCCprofession v13.0总是提示系统错误,CCProfileServer.exe-system error安装了很多次都不行,截图如下,…

    2017年5月31日
  • graphics runtime

    今天早上一台电脑突然死机了,屏幕上出现了一些错误,请看附件的照片。重启电脑之后又恢复正常,到晚上从工地回来一直都正常。请能够分析一下原因? 问题补充:出现提示“WinCC&nbsp…

    2018年12月9日
  • wincc客户机,能打开但是不能运行

    wincc的客户机/服务器结构,客户机可以打开,但是点击运行的时候那个运行进度窗口启到一半就消失了,没有运行界面;如果打开一个画面,然后点击激活,同样没有运行界面,同时出现两个Er…

    SIMATIC WinCC 2019年6月11日
  • 如何在运行界面上选择并打开图片

    我现在做一个系统,系统要求自动保存界面截图,然后操作员可以在wincc运行界面上查找和打开以前保存的截图。这样的想法可以实现吗?能在界面上选择并打开自动保存的截图吗??怎么做呢? …

    SIMATIC WinCC 2019年6月11日