回复:应用探讨——PCS 7 APL高级过程控制库应用

PCS 7_Engineer

  • 帖子

    48
  • 精华

    0
  • 被关注

    13

论坛等级:游士

注册时间:2012-07-17

普通 普通 如何晋级?

发布于 2013-06-05 20:18:50

78楼

这个略微偏题啊~我组织一下吧。了解的也不深。
RUNTIME GROUP并不是PCS7特有的,而是CFC语言的编程机制。我们都知道PCS7用CFC编程,但最后下载到CPU中的仍然是OB,FC,FB,用户在CFC中做的程序如何转换为CPU语言?在CPU内的执行顺序又是如何?
这些都离不开CFC编译和运行组的机制。
首先,一般来说一个CFC会分配一个运行组,当然,用户也可以划分子组,每个运行组会由CFC编译时编译为一个FC,被所在的OB调用。由于CFC编译时会按需处理相应的OB块,FC块等,用户不能随意对这些系统占用的区域进行操作。这也是为什么使用CFC方式编程后,不再允许用户手动在OB中编程的原因。

有两个顺序:
在同一个OB中有多个运行组,也就是有多个FC,它们的执行先后顺序是按在OB块内的由上而下顺序执行。我们可以打开编译好的OB块(如OB35),看这些运行组的调用语句,当然,不能直接识别哪个FC对应了那个运行组。
在同一个运行组内,也就是一个FC中,有多个功能块(如FB,FC),它们的执行顺序按照功能块右上角标的数字大小先后执行。我们可以打开一个系统编译得到的FC,看在FC(也就是运行组内)内,各功能块的调用语句
默认的顺序是工程师将功能块拖拽入SHEET的先后顺序,而这个顺序往往不是程序逻辑实际应该执行的顺序,可以使用运行组优化功能(Optimizing the run sequence)来进行系统优化。
在CFC帮助和CFC编程手册中可以看到运行组优化的作用:



我想到的有几个要注意的地方:
故障安全类型的程序,不能进行运行组优化(不要随便改动FAILSAFE的运行组顺序)
有时候编译会出现超64K的编译错误。这多是因为运行组归根结底还是个FC,一个运行组内块过多时编译会报警。运行组优化并不会根据实际程序大小去智能划分运行组。
暂时就想到这些。。

quote:以下是引用凌波微步在2013-06-05 11:25:42的发言:
专家能否讲述一下运行组的好处,作用和原理。
来自西门子技术支持与服务
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

DCS/SIMATIC PCS7

共有4374条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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