技术论坛

 DB 的最大存储空间和最大数组下标

返回主题列表
作者 主题
1Shadow1
侠士

经验值:1896
发帖数:155
精华帖:6
楼主    2024-08-01 15:04:43
主题:DB 的最大存储空间和最大数组下标 精华帖 

西门子的手册在同行业里面是最全的,但是有些细节阐述仍然不够详细;

下面用三个问题展开,说明一下所见所得:

1.手册允许的最大容量和报警的容量变量不一致;

下面以1500的DB 大小描述为例:


可以看到是否优化,最大容量是不同的,这个意思是没问题的;

但是具体来说,非优化的块最大64kb,对应的应该是65536 byte;

在尝试用过多的数据来尝试的时候,可以看到警告信息,显示允许的最大容量是65534byte, 由此可以发现二者的不同;


个人认为,这是从不同的角度去看问题产生的不同,一个应该类似于占用的空间,一个是可用空间,中间类似公摊面积的一些额外开销;

对应的,优化的块的空间也是不同的,比如下面:



这个里面有2个问题:

1是允许的最大空间16777216 byte=16M byte; 而手册里面是3.5M byte,这可能是个错误, 这个手册是最新的,2024.7 月份的;

2.是同样的,这里面有个4个byte的额外开销;


第二个问题:DB的最大数组下标是多少?

这个有两个维度,首先是数组本身Index 的允许数量范围,300 PLC 统一是32767, 1500根据数组的元素类型的不同而不同;

比如BYTE 最大可以到16777216 ,这个数字比较好记,因为这是16 M 展开的数字;INT 减半,REAL 再减半;

第二个维度即使前面提到的DB 块本身的空间限制,由于优化和非优化的块的大小不同,所以差别比较大,参看前面的图片;


第三个问题:数组元素的可见性

在1500中,可见的数组最大条目是10000,这是尝试了好多次得出的;这个数量也可以和多维数组共享,比如[1..100,1..100],[1..20,1..500].超过不会报错,但是在离线阶段不可见;




有表述不正确的地方欢迎指正;





闲着就写写程序吧,让大脑有点运动量;
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。