技术论坛

WINCC的原始数据类型通过GetTagRaw进行获取,但是不同数据类型的拆分原则是什么呢,比如INT和Real型数据

作者 主题
游侠

经验值: 331
发帖数: 10
精华帖: 0
主题:【求助】WINCC的原始数据类型通过GetTagRaw进行获取,但是不同数据类型的拆分原则是什么呢,比如INT和Real型数据


只看楼主 只看精华 楼主 2020-07-29 15:41:06

WINCC的原始数据类型通过GetTagRaw进行获取,但是不同数据类型的拆分原则是什么呢,比如INT和Real型数据是怎样拆分的。


 
以下网友喜欢您的帖子:

  
重要声明:

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

帖子链接:https://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=1634883&b_id=5&s_id=0&num=5

侠圣

经验值: 4092
发帖数: 565
精华帖: 4
回复:WINCC的原始数据类型通过GetTagRaw进行获取,但是不同数据类型的拆分原则是什么呢,比如INT和Real型数据


只看楼主 只看精华 1楼 2020-07-29 22:19:17

原始数据,就是wincc不做内部转换的数据,就是一组二进制数据,具体到每个字节,或连续的几个字节什么意义,数据格式由使用者定义解析。

看错问题了


 
以下网友喜欢您的帖子:

  
游侠

经验值: 331
发帖数: 10
精华帖: 0
回复:WINCC的原始数据类型通过GetTagRaw进行获取,但是不同数据类型的拆分原则是什么呢,比如INT和Real型数据


只看楼主 只看精华 楼主 2楼 2020-07-30 08:22:50
以下是引用sangshunyang在2020-07-29 22:19:17的发言 >

原始数据,就是wincc不做内部转换的数据,就是一组二进制数据,具体到每个字节,或连续的几个字节什么意义,数据格式由使用者定义解析。

看错问题了

现在有个问题是,通过仿真将原始数据类型变量RW地址连接到PLC数据块地址了,而且PLC侧数据块中已有值了,WINCC这边的原始数据里面一直为空,但是通过绝对寻址,v1的数值就是数据块第一个变量的值了。这是什么情况呢



 
以下网友喜欢您的帖子:

  
版主

经验值: 69053
发帖数: 12266
精华帖: 59
回复:WINCC的原始数据类型通过GetTagRaw进行获取,但是不同数据类型的拆分原则是什么呢,比如INT和Real型数据


只看楼主 只看精华 3楼 2020-09-19 08:45:49

根据你的实际情况啊,比如,浮点数就是4个字节,双整数4个字节,整数就是2个字节这样

不过转换的时候记得都要先字节交换一下


Q群:https://jq.qq.com/?k=9BDuEgf6
以下网友喜欢您的帖子:

  
至圣

经验值: 23744
发帖数: 3385
精华帖: 52
回复:WINCC的原始数据类型通过GetTagRaw进行获取,但是不同数据类型的拆分原则是什么呢,比如INT和Real型数据
精华帖精华帖星级2级


只看楼主 只看精华 4楼 2020-09-19 14:34:53

楼主可以写几个函数:

int GetInt(const char *p, int offset)
{
       WORD refInt = SwapDWord(p + offset);
        return refInt;
}


float GetReal(const char *p, int offset)
{
       DWORD refInt = SwapDWord(p + offset);
        

        return *((float)&refInt);
}
DWORD SwapDWofd(const char *p)
{
       DWORD x = 0;
       char *q = (char*)&x;
       

       q[0] = p[3], q[1] = p[2], q[2] = p[1], q[3] = p[0];
       return x;
}


WORD SwapDWofd(const char *p)
{
       WORD x = 0;
       char *q = (char*)&x;
       

       q[0] = p[1], q[1] = p[0];
       return x;
}



不忘初心
以下网友喜欢您的帖子:

  
至圣

经验值: 28599
发帖数: 10824
精华帖: 131
回复:WINCC的原始数据类型通过GetTagRaw进行获取,但是不同数据类型的拆分原则是什么呢,比如INT和Real型数据


只看楼主 只看精华 5楼 2020-09-19 16:25:04

在学会转换之前, 先用byte数组通讯, 确保通讯成功。 

我猜你这里没成功。 



微信公众号:PLC标准化编程,ZHO6371995
以下网友喜欢您的帖子:

  
  • 上一页
  • 1
  • 下一页
收起
WINCC的原始数据类型通过GetTagRaw进行获取,但是不同数据类型的拆分原则是什么呢,比如INT和Real型数据
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。