回复:SCL实现数组全复制的三种方法

'Razor

西门子1847工业学习平台

  • 帖子

    3582
  • 精华

    46
  • 被关注

    237

论坛等级:至圣

注册时间:2008-03-31

钻石 钻石 如何晋级?

发布于 2017-11-10 17:09:53

8楼

展开查看
以下是引用Zane在2017-11-10 08:56:25的发言 >4楼

孔乙己有啥典故?窃书不为偷?


对楼主程序的建议:


300/400的做法,建议按字节直接用SFC20拷贝,只要确保目标存储区大于源存储区即可


而在博图S7-1200/1500下,对等结构是可以直接MOVE的,而不同长度数组的拷贝则可以考虑楼主的做法,但保险起见需要核对目标数组的大小及数组单元的类型

孔乙己不是说“茴”字有三种写法嘛,所以借用了一下。

多谢 Z 版不计前嫌,提携后进。

无论是应用场景,还是应用中的注意事项,都被说到了。

关于不同长度数组的拷贝,核对目标数组的大小及数组单元的类型,考虑采用ARRAY+ANY,ANY指向ARRAY的起始地址,对ANY进行解析,取出重复因子及数据类型等参数,进行数组长度的计算,以及索引下标是否边界溢出,数据类型是否匹配等问题的核验,待算法经过验证后,再另开一帖说明 。

上面的代码缺点不少,最基本的,易读性不是太好,一些类似“0“和”9“这样的常数没有明确的标示出其代表的意义,改成"minIndex"、"maxIndex"、"totalElements",阅读效果要好得多。

博途平台SCL编程环境下,不支持绝对地址的编程,而是采用支持符号寻址的编程方式,更多的恐怕也是基于易读性方面的考虑。

数组的操作属于数据结构的基础知识,自己也只是写出来发在论坛以防自己忘记而已,没想到得到前辈推荐,还成了“精华贴”,实在是惭愧,多谢大伽推荐,更多谢版主封精。

少即是多
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54792条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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