回复:【实用FC系列】之二,SizeOf 统计数据的大小

Zane

西门子1847工业学习平台

  • 帖子

    21062
  • 精华

    399
  • 被关注

    1486

论坛等级:至圣

注册时间:2003-06-06

钻石 钻石 如何晋级?

发布于 2025-10-01 11:01:31

6楼

有些概念,我认为还是要澄清一下:


1,我们注意到data占用8个字节,但是在data这个结构体中的所有数据占用字节总和是6个。这是我们需要注意的问题。


数据(结构)在数据块的存放总是以偶数地址开始的(单字节数据除外,临近的字节与字节或者字节与位会合并成偶数地址开始的字),在此情况下定义数据结构的长度是5个字节,但是实际占用的存储区域长度是6个字节,定义数据结构优化条件和非优化条件下并没有区别,只是在不同条件下占用的数据存储区的方式不同,并不是数据结构本身的定义长度有变化。因此如果定义了2个前述的5字节数据结构,那么占用的数据存储区域就会是12字节,而非10个字节



这个结构序列化后占用了多少字节的数据存储区呢?   答案是16个字节


 3,对于bool类型的数组。不同CPU占用的字节数不同。比如X86系列CPU以及1500优化块,每个bool类型占用一个字节。对于非优化块,每个bool类型占用一个bit。Sizeof采用非优化块标准。



博途环境下编程,提倡的就是优化方式编程

并且同样的而优化访问方式,S7-1200与1500也是有差别的,单个数据与结构数据在不同模式下对数据存储区的占用也是有差别的。


因此,提到通信的数据交互,我们不建议直接使用类似本楼的原始结构数据,而是转化为字节数组后


还有个建议,编程中尽量不要定义非整数字节长度的位数组变量

Zane 注册自动化系统工程师 Always save before download
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

谈天说地

共有13246条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。