发表于:2018/6/16 14:58:04
#10楼
以下是引用gk_0在2018/6/16 13:01:01的发言:
你说的“使用符号编程并不会节省存储空间”,有待商榷:
标准访问方式和优化访问方式下,数据块的存储空间有什么不同了,请看下图。
图一引自西门子官网S7-1200视频教程的截图,至少整理了数据,类似电脑磁盘的碎片整理。
图二,则说明了节省的字节数。
不对之处,请批评指正!
以下是引用cvlsam在2018/6/16 11:42:45的发言:
在早期的STEP7软件中已经可以符号寻址 ,其他厂商也称为标签化编程,只是用户仍然可以使用地址来进行编程,在博途中,强化了这一点,如果用户使用绝对地址编程,那么系统会默认为他指定一个符号名(标签名)。
使用符号编程并不会节省存储空间,区别仅仅是分配变量的地址由用户分配变成了系统分配,字节仍然是字节,并不节省,采用符号编程的好处在于:
1、提高了编程效率,用户不需要考虑存储空间地址的定义,因为系统会根据数据类型分配。
2、大大的减少了数据访问出错的可能性,因为通过地址,用户可能会忽略数据类型而导致数据地址访问出错。
日系与西门子不同的地方在于FB的存储区域,日系会划分一个统一的FB可以使用的特定内存区域来作为FB的使用,而西门子则是通过用户指定背景DB的方式来分配FB的所使用的内存区域,这两种方式都有益有弊,说不上谁更好一点。
Good Luck~
以下是引用gk_0在2018/6/16 7:55:15的发言:
这让我想到了博途优化的块访问,即符号寻址,可节省很大的存储空间,不知日系的是不是这样
这让我想到了博途优化的块访问,即符号寻址,可节省很大的存储空间,不知日系的是不是这样
在早期的STEP7软件中已经可以符号寻址 ,其他厂商也称为标签化编程,只是用户仍然可以使用地址来进行编程,在博途中,强化了这一点,如果用户使用绝对地址编程,那么系统会默认为他指定一个符号名(标签名)。
使用符号编程并不会节省存储空间,区别仅仅是分配变量的地址由用户分配变成了系统分配,字节仍然是字节,并不节省,采用符号编程的好处在于:
1、提高了编程效率,用户不需要考虑存储空间地址的定义,因为系统会根据数据类型分配。
2、大大的减少了数据访问出错的可能性,因为通过地址,用户可能会忽略数据类型而导致数据地址访问出错。
日系与西门子不同的地方在于FB的存储区域,日系会划分一个统一的FB可以使用的特定内存区域来作为FB的使用,而西门子则是通过用户指定背景DB的方式来分配FB的所使用的内存区域,这两种方式都有益有弊,说不上谁更好一点。
Good Luck~
你说的“使用符号编程并不会节省存储空间”,有待商榷:
标准访问方式和优化访问方式下,数据块的存储空间有什么不同了,请看下图。
图一引自西门子官网S7-1200视频教程的截图,至少整理了数据,类似电脑磁盘的碎片整理。
图二,则说明了节省的字节数。
不对之处,请批评指正!
图二并没有节省字节数。
因为西门子推荐的偶数字节的数据类型的地址应该使用偶数字节,实际上,在实际的编程中,使用奇数地址系统也不会认为有错误。图二只是对于内存地址的优化,因为在博途中,符号编程是强制规范。
在传统的STEP7中,类似于左图这样的,我们不是仍然可以使用类似于MB3的方式使用这块地址,因此,图二仅仅是西门子对于偶数字节长度的数据类型,例如双字,整形,长整形以及浮点数的强制偶数地址排列。
Good Luck~