回复:写个运行时间累积的程序

已锁定

xiatianyun

  • 帖子

    852
  • 精华

    10
  • 被关注

    25

论坛等级:奇侠

注册时间:2020-05-09

钻石 钻石 如何晋级?

发布于 2023-02-06 17:42:13

36楼

我实现的自动分配DB比较麻烦,目前不想拿出来献丑。不过讨论下还是有必要的。

这个自动分配DB如果是需要全扫描才有效的话,我觉得就不用实现了,太......难受。

原理很简单,每个DB都有一个索引,这个索引是全局的,可以专门使用规划一个区域来做。当然我没有这样做,因为随着DB的实现发现其实用这个不断生长的DB里面的数据来存放就可以了。唯一需要规划索引的地方是主程序里面调用子程序时分配的DB索引。仅此一个。

如果索引有了,那么判断索引是不是初值,是初值0就说明需要分配一个索引,分配后就不是0值了。不是0值说明已经分配过了,不用重新分配。这样即使一个扫描内有些子程序按条件没有执行也不会搅乱DB的归属。也就不需要全扫描了。

目前实现的功能是这些:1、实现了子程序背景数据块的自动分配。2、在1的基础上实现了14个扩展Temp区,用于程序temp区不够用时做temp用。3、扩展temp既可以做普通temp用,当子程序接口数量不够用时也可以做接口扩展用。

使用需要遵循特定的步骤顺序,每个需要使用背景DB的子程序有一些固定程序在开头几个段和结尾两个段。

现在看来有些实现扩大化了,我做实验的ST20在不做其他程序时就已经用掉很大一块存储器。 扫描周期忘了多少了,应该还可以接受。

--------------------------------------------------------------------

现在暂时没有使用200Smart的项目,如果没有文档记录我都快不记得具体实现了啥了。


这个实现减少了子程序调用的深度,因为子程序本身固定调用了几个子程序。

评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200 SMART

共有9030条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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