签到有奖
消息提醒
运维工程师专区
官方商城
扫码分享好友 任选多种周边
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
原始数据,就是wincc不做内部转换的数据,就是一组二进制数据,具体到每个字节,或连续的几个字节什么意义,数据格式由使用者定义解析。
看错问题了
现在有个问题是,通过仿真将原始数据类型变量RW地址连接到PLC数据块地址了,而且PLC侧数据块中已有值了,WINCC这边的原始数据里面一直为空,但是通过绝对寻址,v1的数值就是数据块第一个变量的值了。这是什么情况呢
根据你的实际情况啊,比如,浮点数就是4个字节,双整数4个字节,整数就是2个字节这样
不过转换的时候记得都要先字节交换一下
楼主可以写几个函数: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;}
在学会转换之前, 先用byte数组通讯, 确保通讯成功。
我猜你这里没成功。
分享
扫码分享好友 任选多种好礼
收藏
有帮助
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!
密码至少8位,包含大、小写字母,数字和符号至少三种。
允许邮箱和手机接收来自支持中心网站的信息
我已同意《支持中心网站注册协议和隐私政策》
微信登录扫码一键登录
验证码登录
密码登录
二维码失效点击重试
打开微信扫一扫,快速登录/注册
未注册手机验证后自动登录,注册即代表同意《支持中心网站注册协议和隐私政策》
三日内免验证登录
短信登录
登录