如何优化SFC tye的工作内存容量?

指导说明:
当编译S7程序时,对应每一个SfC type将会创建一个FB功能块。该功能块的块号在SFC创建时即被自动分配。通过 "Properties SFC type" 对话框可以分配该功能块的块号。该功能块同时在内部调用两个FC功能,一个用于处理动作,一个用于切换条件的判断。在大型的顺序控制中,一个功能块可能包含的顺序控制指令超出系统运行的64Kbyte的限制。如果发生此中情况,则S7程序将不能被成功编译。该条目描述了如何优化SFC type使其不超过64Kbyte的限制。 FAQ Entry ID 24411054 描述了如何决定SFC type的工作内存的大小。

No. 描绘
1 从切换条件中导出指令到CFC中
该方法可以减少用于处理切换条件的FC功能块的工作内存大小。
那些在切换条件中重复出现的逻辑操作指令可以在CFC中进行组态。仅仅将逻辑操作结果作为一个过程值输入到SFC type中的某个切换条件中来。 n

注意:

  • 如果需要大量的削减容量,则需要将更多的逻辑导出到CFC中,同样也意味着在SFC type中会使用到更多的逻辑操作结果。n
  • 该方法唯一的弊端就是,在运行环境下SFC可视化中,仅仅能看到RLO输出结果,因为实际的逻辑处理在CFC中进行执行。然而,如果CFC逻辑处理创建了HMI功能块 (例如,INTERLOK 功能块),则可以通过相应的面板在线对逻辑进行显示和诊断。
2 将处理的动作的指令导出到CFC中
该方法有助于减少用于处理动作的FC功能的工作内存大小。
如果在SFC type中,单独的某个步中需要对许多的执行器 (例如,阀门或泵)进行激活,则相应的执行器可以按照一定的规则进行分组,通过某个共享的变量来激活。 n

注意:

  • 如果需要最大限度的减少工作内存大小,则需要将更多的信号结合成共享的信号并且更加频繁的使用上述方法。n
  • 而该方法的不利之处则在于必须在CFC中更多的使用附加逻辑功能块来用于执行器的监控。
    例如:
    可以想像,在SFC type中步中仅仅输出当前步的步号或者相应的所谓 "step flags" 的位控制信号,在CFC中必须使用附加的逻辑控制来评估SFC输出信号用于执行器的控制。然而,在运行系统SFC可视化的每一步中将不能提供任何的有关该信号的运行状况监控。
3 基于位、字节、字或双字的数据读写
在某些情况下,顺序控制步中使用基于字的读取方式的指令来代替基于位的读取方式的指令的方法,可以削减许多指令。
4 使用循环
如果某些任务执行了一步跟着一步的重复性的动作,则可以使用 "loop" 的方式来实现。这样将使得顺序控制中的某个段被重复性的执行。此方法也可以很大程度上减小程序代码。然而,该方法的不利之处使,在进行小部分程序更改时显得不那么清晰,必须针对每个单独的执行循环进行组态。

如何优化SFC tye的工作内存容量?
图 01

5组合选择分支
如果几个选择分支拥有相同的或是相似的结构,则各个选择分支下的步可以作为公共部分共享运行。选择分支将继续在顺序控制起始时候运行,然而,为了允许原来的选择分支步的不同,用户将仅仅接受一步或一些步,在此仅仅是执行一些初始化的动作。基于哪一个初始化的动作(切换分支)将会在顺序控制中的起始部分执行,在公用的程序部分将执行相应的不同的动作。

如何优化SFC tye的工作内存容量?
图 02

6将工艺流程分割在不同的SFC中
某个大型的顺序控制工艺可以被分隔到不同的顺序控制中。使用一个主顺序控制来调用或控制一个或多个顺序控制。

原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc337846.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年11月5日 下午12:03
下一篇 2021年4月12日 上午12:00

相关推荐

发表回复

登录后才能评论