回复:【不欲勿施】【S7-200 Smart开源标准化编程】之三------IO对象与动作及最新例程

已锁定

holdkcsxyz

西门子1847工业学习平台

  • 帖子

    1577
  • 精华

    24
  • 被关注

    163

论坛等级:至圣

注册时间:2015-06-03

白金 白金 如何晋级?

发布于 2021-11-24 10:05:30

9楼

楼上大侠说的有一定道理,L区可能稍慢于V区.但时间可能主要消耗在参数的传来传去,规范的子程序要用L区(或者开辟一片公用的临时V区)涉及到参数的复制进来,再复制出去,平白无故的多了参数的来回复制,即使你没写一句逻辑算法代码,参数的传递时间都占大头.

因此V区比L区稍快,只有在最高全局的单一一个程序段且不涉及很多的参数传递时才能看出来一点,一旦涉及子程序的接口参数传递(比如把V区传公共V区,再把公共V区传给V区),这时用L或者V做公共缓存容器的优势基本不是太明显.

比如之前的帖子参数传来传去占用时序80us;全改成全局变量不传参数占用时序50us左右.

以前看shine的帖子说L区对中断堆栈的保护也是有讲究的. 

因此用L区做公共缓存容器还是可行的.

至于L区太小,表面上看好像确实太小好像是60byte左右,但个人觉得L不是太小而是太大了反而让不熟悉的人用的不太好,其实组织的好的话可能只要两个指针八个字节的L区就基本够用了.

准备传给L区的V区的数据结构要压缩在60字节以内,比如前56个字节是值类型或者引用指针类型,但最后留四个字节的引用类型以备随时扩展到其它二级栈区域,以及显示声明实例化时再为这个二级栈分配堆空间就可以了.

200的底层固件很自由灵活,实时响应时序也不错,大部分代码只用全局变量满天飞基本也可以了.

评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200 SMART

共有9388条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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