这个略微偏题啊~我组织一下吧。了解的也不深。
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的发言:
专家能否讲述一下运行组的好处,作用和原理。