问题1. SFC chart有哪些状态,各种状态之间如何转换?
SFC chart是顺序功能图(Sequential Function Chart)的简写,SFC chart有16种状态,如下图1所示:图1 SFC chart状态结构图
· 稳定状态:需要通过事件触发才会退出该状态,包括:Ready、Run、Completed、Aborted、stopped、Held、Held(error)
· 非稳定状态:不需要事件触发,顺控程序执行完之后会自动退出该状态,包括:Starting、Completing、error(Completing)、Holding、Error、Resuming、Resuming(Error)、Aborting、Stopping
注:
- Ready状态也称为Idle,Abort命令也称为Cancel
· 图中黑色粗线表示事件触发,即状态改变需要事件触发,例如ReadyàRun需要Start命令。事件可以是命令、条件、外部信号、内部信号。SFC chart的命令窗口如下图2所示:
图2 SFC chart的命令窗口
SFC chart简单的状态变化如下:
1) SFC chart初始状态为Idle,Start命令将SFC chart从“Idle”转换到“Starting”状态。
2) “Starting”状态下的顺控程序执行完成后,SFC chart会自动进入”Run”状态。
3) “Run”状态的改变受SELFCOMP参数影响。SELFCOMP=1时,”Run”状态的顺控程序执行完成后SFC chart会自动进入“Completing”状态;SELFCOMP=0时,需要Complete命令才能使SFC chart由“Run”状态转换到“Completing”状态。
4) “Completing”状态的顺控程序执行完成后,SFC chart会自动进入“Completed”状态,
5) SFC chart会稳定在“Completed”状态,直到受到新的事件触发,例如“Reset”命令会使SFC chart回到“Idle”状态;Start命令会使SFC chart回到“Starting“状态。
问题2. SFC chart 与顺控程序有何差异?
顺控程序中包含步和转移,在步中编辑程序实现对工艺设备的控制;SFC chart允许用户通过图形化的方式组态和调试顺控程序,单个SFC chart中可以创建8个顺控程序。SFC chart 有16种状态,如图1所示;而顺控程序仅有五种状态,如下图3所示。
SFC chart的命令窗口的控制命令改变的是SFC chart的状态,而不是顺控程序的状态。SFC chart的状态改变会触发顺控程序状态改变,通过在SFC chart不同的状态来触发不同的顺控程序执行。
图3顺控程序的状态结构图
SFC chart状态和顺控程序的状态相互独立,同时又相互影响。如下图4所示的SFC chart中包含三个顺控程序RUN_KM,HOLD_KM,ABORT_KM。
图4 SFC chart和顺控程序的状态结构
- 顺控程序和SFC chart都有自己的状态。SFC chart处于“Holding”状态,但是顺控程序RUN_KM处于“Held“状态,而顺控HOLD_KM处于”Running”状态。
- 顺控的状态可以影响SFC chart的状态。顺控程序HOLD_KM未执行完成之前,SFC chart会一直处于“Holding”状态,当HOLD_KM执行完之后SFC chart会自动转入“Held”状态。
- 如果在顺控程序的启动条件中加入SFC chart的状态,SFC chart的状态可以控制顺控程序的运行。RUN_KM的启动条件为SFC chart处于“Run”状态,HOLD_KM的启动条件为SFC chart处于“Holding”状态。hold命令使SFC chart从“Run”状态转入“Holding”状态,导致RUN_KM顺控的暂停和HOLD_KM顺控的执行。
问题3. 顺控程序的每一步是如何执行的?
在顺控程序的步中,都可以设置“Initialization“、”Processing“、”Termination“三种执行程序,如下图5所示。除START步和END步之外,步和转移交替布置。图5顺控程序的步属性
顺控程序在处理“Processing“的程序过程中会判断转移条件是否满足(转移逻辑和步的最少执行时间)。如下图6所示:在未满足转移条件T4时,顺控程序会一直执行S4步的“Processing“程序,如图绿色部分Execution阶段。T4满足后的下一个处理周期,开始执行S5步。S4的”Termination“和S5的”Initialization“在同一个处理周期执行,而且仅执行一个处理周期,如图红色部分。
图6顺控程序步和转移的执行
问题4. 为什么顺控程序的不能启动?
顺控程序只有在满足启动条件后才能启动。需要为每个顺控程序定义启动条件,如下图7所示。选中顺控程序后右击在弹出的菜单中选择“Sequence Properties”,在顺控程序属性窗口的“Start condition”选项卡中设置启动条件。下图所示的顺控程序在SFC chart的状态为“Run”时才会启动执行。图7顺控程序的启动条件
在顺控程序的“General”选项卡中可以设置顺控程序的优先级,如下图8所示。因为在几个顺控程序同时满足启动条件时,优先级高的会先执行。如果有相同优先级的几个顺控程序同时满足启动条件,则左面的顺控程序会执行。
图8顺控程序的优先级
除了满足顺控程序的启动条件,还需要判断SFC chart的是否允许启动:
· 要求SFC chart允许启动,即ENSTART=1,和LI_ERR=0
· 要求比启动优先级高的信号,如 INTERROR 、 LOCKERROR 、 LOCKCOMPLETE 、 LOCKHOLD 、LOCKABORT 或 LOCKSTOP 没有置1
· 在手动模式下没有操作员错误,即OP_ERR=0
问题5. 顺控程序中如何编辑链接CFC的结构变量?
在顺控程序的步中编辑CFC 功能块的结构变量时,会提示如下图9的错误信息,显示类型不匹配。图9顺控程序步中使用结构变量提示信息
转移条件不支持结构变量,会提示如下图10错误。
图10转移中使用结构变量错误信息
需要在结构变量上右击,通过“Open Structure”命令来打开结构变量,然后选择其中的value数值,如下图11所示。注意:转移条件不支持结构变量。
图11如何在步中配置结构变量
问题6. 如何通过程序控制SFC chart切换到自动模式?
SFC chart能以外部视图的方式显示为功能块,可以像CFC一样通过IO互联控制SFC chart的执行。在工厂层级下选中SFC chart右击,通过“Open External View”打开外部视图;或者在SFC chart编辑界面通过菜单ViewàExternal View打开外部视图。如下图12所示:图12如何调用SFC chart的外部视图
SFC chart与控制模式相关的外部视图IO如下图13所示,表格显示了手动模式和自动模式输入/输出IO的对应关系。从手动模式切换到自动模式要求ENAUT=1和AUT=1,且MAN=0。注意:AUT和MAN不能都=1,否则会提示LI_ERR错误,无法实现模式切换。
图13手动模式和自动模式切换
问题7. 如何让CPU启动后SFC chart就运行?CPU重启后SFC chart能否继续执行?
在SFC chart的属性中可以设置启动选项和CPU重启后SFC chart的运行方式。如下图14所示:图14 SFC chart 属性
· Autostart:CPU启动后SFC chart是否自动启动。不勾选时CPU启动后SFC chart处于“Idle”状态,勾选后CPU启动以后SFC chart自动进入“Starting”状态。#p#分页标题#e#
· Initialize SFC:CPU重启后SFC chart所有数据进行初始化,SFC chart返回初始状态“Idle”或者“Starting”,由AutoStart参数决定。
· Retain SFC state:记录SFC chart的状态,CPU重启后顺控程序保持在重启前的控制步,由操作员来决定SFC chart的执行。如下图15所示,由操作人员来决定SFC chart的工作状态,点击Resume按钮后顺控程序继续向下执行,也可以通过Stop和Abort按钮转换SFC chart的状态执行。
图15 CPU重启后SFC chart状态
问题8. 在SFC chart中执行Abort命令时顺控程序如何执行?
当顺控程序被Abort时,顺控程序先执行当前激活步,之后再执行END步。然后SFC chart处理满足启动条件的顺控程序。如果触发Abort命令时当前SFC chart中有处于“Held”状态的顺控程序,则SFC chart会先处理正在运行的顺控程序(先执行当前步,再执行END步),之后处理处于“Held”的顺控程序(先执行Held步,再执行END步)。然后才处理满足启动条件的顺控程序。
如下图16所示的SFC chart包含三个顺控程序RUN_KM,ABORT_KM,HOLD_KM,启动条件分别为SFC chart处于“Run”,“Aborting”,“Holding”状态。在SFC chart处于“Run”状态时,顺控程序RUN_KM会执行,Hold命令将SFC chart转入“Holding”状态(RUNHOLD=hold),此时顺控程序RUN_KM会暂停而去执行HOLD_KM的顺控程序。
图16 SFC chart被Holding
如果此时通过Abort命令将SFC chart转入“Aborting”状态。在这个过程中会先执行HOLD_KM顺控程序的Abort过程,然后再执行RUN_KM顺控程序的Abort过程,之后才会执行ABORT_KM的顺控程序,如下图17所示:
图17 SFC chart被Aborting
问题9. 那些参数会影响SFC chart的状态转换?
1) SELFRESET决定SFC chart在“completed”、“aborted”、“stopped”三中状态下的转换方式,仅在手动模式下有效。(注意:SFC chart循环执行时Selfreset不能=1)· SELFRESET=1,SFC chart在“Completed”、“Aborted”、“Stopped”状态下的顺控程序执行完成之后,SFC chart会立即自动转换为“idle”状态。
· SELFRESET=0,“Completed”、“Aborted”、“Stopped”状态下的顺控程序执行完成之后SFC仍然保持在相应的状态,直到SFC chart收到新的触发命令。
2) CYCLEXEX决定SFC chart是否循环执行,在自动模式下有效。手动模式由命令窗口的“Cyclic Operation”决定。
· CYCLEXEX=1,SFC chart会自动从“Completed”状态转换到“Starting”状态。
· CYCLEXEX=0,SFC chart保持“Completed”状态,由事件触发离开该状态。
3) SELFCOMP决定SFC chart离开“Run”状态的方式,如下图18所示,
· SELFCOMP=1,顺控程序处理完成后,SFC chart自动从“Run”状态转换到“Completing”状态。顺控的最后一步执行完成之后执行END步,SFC chart的状态转入“Completing”状态。
· SELFCOMP=0,SFC chart保持在“Run”状态,并重复start到end步,直到发出“完成”命令。顺控程序的最后一步执行完成之后执行START步。
图18 SELFCOMP参数
4) RUNHold决定SFC chart被Hold之后当前顺控程序的处理方式,如下图19所示:
· RUNHold=1(abort),将中止先前执行的顺控程序。执行当前激活步和END步后离开该顺控程序,SFC chart从“Holding”à“Held”后,Resume命令使顺控程序从START步开始执行。
· RUNHold=0(hold),暂停先前的顺控程序。在SFC chart中记录该顺控程序的信息,SFC chart从“Holding”à“Held”后,Resume命令使顺控程序从当前记录步开始执行。
图19 RUNHOLD参数
问题10. 为什么并行分支中的顺控程序显示异常?
并行分支不允许跳出和跳进。如下图20所示,在条件18满足之后并行分支5、12、6同时执行,在条件2、3、8都满足后顺控程序才会结束并行分支继续向下执行。如果此时通过跳转指令跳出并行分支,SFC chart会产生混乱。图20显示顺控程序步3、5和步12、4都在执行,这种状态时错误的,此时的SFC chart已经出现故障,无法正常执行。图20并行分支的异常状态
问题11. SFC chart的控制命令有哪些?
SFC chart的控制命令包括手动命令、自动命令、外部命令、内部命令,如下图21所示;图21 SFC chart的控制命令
·手动命令:SFC chart调试窗口和SFC 面板上的控制按钮,共9个,仅在手动模式下有效。包括:Start、Hold、Error、Restart、Complete、Abort、Stop、Resume、Reset
·自动命令:通过SFC chart外部视图的IO互联控制SFC,仅在自动模式下有效。包括:START、COMPLETE、HOLD、RESUME、ABORT、STOP、RESTART、RESET
·外部命令:包括:LOCKCOMPLETE、LOCKHOLD、LOCKABORT、LOCKSTOP、LOCKERROR,通过IO互联控制SFC
·内部命令:包括:INTSTART、INTCOMPLETE、INTHOLD、INTRESUME、INTERROR、INTABORT、INTSTOP、INTRESTART、INTRESET,是SFC的内部命令,在步中设置用于触发SFC的状态转换。
注意:
· 手动模式下自动互联输入无效,自动模式下命令按钮不可用。但是内部命令和外部命令在手动和自动模式下都有效
· 外部命令的优先级为lockabort>lockstop>lockerror>complete,hold
· 如果有几个命令(例如:外部命令和内部命令)同时排队等待时,SFC会显示互联错误LI_ERR=1,此时会执行命令的执行情况如下图22所示。
图22LI_ERR下命令执行情况
问题12. 在OS编译时为何没有生成SFC的块图标?
首先需要在SFC chart的属性中勾选“Transfer chart to OS for visualization“复选框,然后在进行OS编译时选择”SFC Visualization“,如下图23所示。这样SFC chart就会在对应的层级图片上生成块图标,点击块图标在弹出的SFC面板上可以控制SFC chart(OS需要SFC可视化授权),如下图24所示。图23 SFC chart生成OS的块图标
图24 SFC chart块图标和面板
问题13. 在OS中可以使用哪些与SFC相关的控件?
在OS上也能够自定制SFC chart的调用,可以使用动态向导从任意图形对象来选择SFC,OS的SFC相关的动态向导如下图25所示。· SFC browser:通过图形对象,在OS运行期间调用SFC浏览器,使用SFC浏览器来选择需要操作和监控的SFC。
· SFC button:可以通过任意图形对象打开指定的SFC控制窗口,
图25与SFC 相关的动态向导
同时在PCS 7 中可以使用下图26所示的ActiveX control:
· SFC Control:显示指定的SFC状态,包括操作模式、SFC状态,正在执行的顺控程序名称、时间及当前步序号。可以调出SFC的面板。
· SFC Topology Control:显示指定的SFC拓扑结构,不能操作。
· SFC MultiChart Control:用于同时操作和监视多个SFC的状态。
图26 SFC的ActiveX control控件
注意:SFC的ActiveX control默认情况下是影藏的,需要手动注册,如下图27所示
图27增加SFC控件