一种实现PLC按顺序功能流程编程的方法与流程

文档序号:18950893发布日期:2019-10-23 02:12阅读:1258来源:国知局
一种实现PLC按顺序功能流程编程的方法与流程

本发明涉及一种实现plc按顺序功能流程编程的方法。



背景技术:

plc是一种通过程序来控制机器设备功能的一种工业控制装置,在工业自动化领域得到广泛应用。国际电工委员会(iec)规定了五种plc标准编程语言:梯形图语言(ld)、指令表语言(il)、功能模块图语言(fbd)、顺序功能流程图语言(sfc)、结构文本化语言(st)。其中梯形图语言(ld)是plc程序设计中最基本,应用最广的编程语言。其优点是:与电气原理图相对应,而且直观,容易被电气设计人员和设备维护维修人员所掌握。顺序功能流程图语言(sfc)主要为满足plc按顺序功能流程编程的方法而设计的编程语言。按顺序功能流程编程的优点是:结构清晰,条理清楚,程序易于理解,可以将复杂的系统分解成多个简单系统进行编程。缩短编程,调试和维修时间,提高效益。但顺序功能流程图语言(sfc)存在其缺点。主要表现在:1)不是所有plc厂商都提供sfc语言编程功能,有的则需要另外购买软件许可;2)plc厂商之间没有统一的sfc编程格式和编程环境,没有互换性,工程设计人员则需要掌握多种格式的sfc编程;3)掌握sfc语言的设备维护维修人员及少,有的工厂和企业规定不接受sfc语言编程;4)sfc程序难以从故障中断后恢复,故障中断后大多数情况只能从第一步重新开始,如果想从故障中断处或其他状态下启动,则需要增加附助逻辑程序,使程序变为复杂难懂。



技术实现要素:

发明目的:用其他通用编程语言实现plc按顺序功能流程编程,保持按顺序功能流程编程的优点,避免顺序功能流程图语言(sfc)编程的缺点和不足。同时实现自动,单步,手动运行模式和设备故障中断后的快速恢复功能,缩短工程设计,调试和设备维修时间。降低成本,提高效益。

技术方案:本发明提供一种实现plc按顺序功能流程编程的方法,其特征包括三个模块:(1)与顺序功能流程对应的设备状态模块;(2)步任务执行命令和控制模块;(3)任务输出模块。如图1所示。

本文以梯形图语言(ld)对该技术方案进行论述。用其他通用编程语言也同样能实现该技术方案。

设备在自动或单步模式下运行实际上就是设备按照顺序功能流程,顺序执行每一步中相应的任务的循环过程。也就是根据上一步任务完成的结果决定下一步任务的执行。当设备状态满足了功能流程到下一步的转换条件后,设备就进入下一步,执行下一步的任务。每一步中执行的任务定义为步任务。执行每一步中任务的命令定义为步任务执行命令。

图2所示为根据顺序功能流程制作的顺序功能流程图。这里显示一个只有三步的顺序功能流程图。多步顺序功能流程图用同样方法制作。

图3所示为与顺序功能流程对应的设备状态模块。该模块的功能是获取设备当前所处的状态,即设备当前处在顺序功能流程中的哪一步;其特征在于该设备状态模块中的步与顺序功能流程中的步一一对应,设备状态模块中的步任务与顺序功能流程中的步任务一一对应,设备状态模块中步之间的转换条件与顺序功能流程中步之间的转换条件一一对应;该模块包括与设备顺序功能流程中所有的步以及每一步之间转换条件相对应的条件逻辑程序,还包括用于获取设备当前所处步的逻辑程序和存储步的值的变量。图3中con_1表示顺序功能流程第一步的转换条件,con_2表示顺序功能流程第二步的转换条件,以此类推;step是用来存储设备顺序功能流程中步的值的变量。plc执行该模块后step得到一个唯一的值,该值表示设备当前所处的状态,即处于顺序功能流程中的哪一步。例如当con_1等于1,step被置为1,表示设备处于顺序功能流程第一步。当con_2等于1,step被置为2,表示设备处于顺序功能流程第二步。以此类推。

图4所示步任务执行命令和控制模块。该模块的功能是把设备状态模块中的步的值转换为步任务执行命令;其特征在于设备状态模块中的每一步的值都有一个步任务执行命令与之一一对应,在plc的每一个扫描周期中只产生唯一的一个步的值和唯一的一个与该步对应的步任务执行命令,通过对设备状态模块中步的值到步任务执行命令的转换条件的控制,实现自动和单步模式运行控制;该模块包括设备状态模块中的所有步的值和所有步任务执行命令的变量,以及步的值到步任务执行命令的转换逻辑程序。还包括作为步的值到步任务执行命令的转换条件的自动和单步运行模式的控制变量,设备处在功能流程中不同的步时执行对应的步任务,步任务通过步任务执行命令来驱动;用步step产生该步任务的执行命令,步任务执行命令就与顺序功能流程中的步任务一一对应。图4中cmd_n表示顺序功能流程第n步的步任务执行命令。实现把步step转换为步任务执行命令可以通过多种形式。例如比较指令,当step等于1,只有cmd_1被置为1,其他步任务执行命令都为0,表示设备处于顺序功能流程第一步,只产生第一步的步任务执行命令。当step等于2;只有cmd_2被置为1,其他步任务执行命令为0。表示设备处于顺序功能流程第二步,只产生第二步的步任务执行命令。以此类推。在具体实施方式例子中还会作更详细说明。

通过控制设备状态步step到步任务执行命令cmd-n的转换,也就控制了设备的运行。

图4中ctr_a是自动模式的运行控制。在自动循环过程中如果设备出现故障或急停等其他原因引起ctr_a复位,即ctr_a为0,设备状态步step到步任务执行命令cmd-n的转换条件不满足,也就不能实现步step到步任务执行命令的转换,步任务执行命令cmd_n即为0,意味着没有动作输出,即停机。同样如果在自动循环的最后一步发出一个循环停止请求把ctr_a复位,即ctr_a为0,设备在完成循环的最后一步后就会终止运行,这就实现了设备的单循环运行模式。如果设备因故障等原因停止在循环中的某一步,当故障被排除后,只要把设备置回自动模式运行,即ctr_a置为1,如果这时步的转换条件滿足的话,设备就可以直接从当前状态下启动,而不需要把设备恢复到原位后再从新启动。

图4中ctr_s是单步模式的运行控制。设备在单步模式下运行时,设备每执行完一步后把ctr_s置为1,设备状态步step到步任务执行命令cmd-n的转换条件不满足,也就不能实现步的值到步任务执行命令的转换,步任务执行命令cmd_n即为0,意味着没有动作输出,这样设备每执行完一步后即停机,直到操作员通过hmi将ctr_s手动复位后,即ctr_s置为0,才会继续下一步动作。这样设备每运行一步,操作员通过手动复位一次,设备就会一步一步运行,即实现了设备的单步模式运行。

图5所示任务输出模块。该模块的功能是驱动任务输出;其特征在于把自动模式,单步模式和手动模式任务执行命令集中一起驱动任务输出;该模块包括设备状态模块中每一步在自动模式,单步模式下的步任务执行命令,手动模式下的任务执行命令,手动模式的互锁条件和任务输出逻辑程序。图5中cmd_n表示自动或单步模式下设备状态第n步对应的步任务执行命令。y_n表示第n步对应的任务输出。pb_n表示手动模式下任务执行命令。il_n表示该任务执行的互锁条件。每一步的任务输出都使用同一格式编程。

综上所述,plc按顺序扫描执行图3,图4和图5模块,每个模块中又按从上到下顺序扫描。从设备状态模块,得到当前设备所处的步step的值;通过步任务执行命令和控制模块,得到当前设备状态步所对应的步任务执行命令,通过对步step到步任务执行命令的转换的控制,实现自动和单步模式运行控制;最后通过任务输出模块用任务执行命令驱动任务输出。图3模块实现了plc按顺序功能流程的编程,程序在结构上和顺序功能流程图一一对应。图4模块不仅实现自动循环运行模式,同时还实现了sfc语言或其他编程方法难以实现的单步运行模式,单循环运行模式和设备故障后的快速恢复。图5模块实现了手动运行模式,互锁条件及统一任务输出。上述三个模块中所有步的编程具有相同的格式,结构清晰,条理清楚,程序易于理解。一个复杂的系统都可以分成若干个子系统通过按该顺序功能流程编程的方法来实现。大大缩短编程,调试和维修时间。一套完整的设备控制软件程序还应包括运行模式,安全,诊断,模拟,人机界面(hhi)以及其他辅助控制程序。

有益效果:用其他通用编程语言实现plc按顺序功能流程编程,保持了按顺序功能流程编程的优点,避免顺序功能流程图语言(sfc)编程的缺点和不足。缩短工程设计,调试和设备维修时间。本发明应用在工厂企业和自动化工程公司作为标准化plc编程模板,节约时间和成本,提高效益。

附图说明

图1按顺序功能流程编程方法特征模块

图2根据顺序功能流程制作的顺序功能流程图

图3与顺序功能流程对应的设备状态模块

图4步任务执行命令和控制模块

图5任务输出模块

图6自动涂胶机根据顺序功能流程制作的顺序功能流程图

图7自动涂胶机与顺序功能流程对应的设备状态模块

图8自动涂胶机步任务执行命令和控制模块

图9自动涂胶机任务输出模块

具体实施方式

下面用一台自动涂胶机为例对本发明具体实施方式做详细介绍。

前提假设:涂胶机的顺序功能流程为:(1)机器人工件上线,(2)工件定位,(3)涂胶,(4)工件定位回原位,(5)机器人工件下线。

图7,图8和图9中的plc变量和指令如下:

x01为工件在位传感器输入

x02为定位气缸在定位位置传感器输入

x03为定位气缸在原位位置传感器输入

j01为涂胶任务完成标志位变量

step为设备处于第几步的变量,step等于1,表示设备处于第一步,以此类推

move为移动指令

incycle为自动循环标志位变量,表示设备在自动模式运行

stepmode为单步循环标志位变量,表示设备在单步模式运行

cmp为比较指令

cmd-1为设备第一步的步任务执行命令。cmd-1等于1,表示向机器人发出工件上线请求命令

cmd-2为设备第二步的步任务执行命令。cmd-2等于1,表示发出定位气缸定位命令

pb-1为向机器人发出的工件上线请求人工命令

pb-2为定位气缸定位人工命令

y01为向机器人要求工件上线请求输出,即第一步的步任务

y02为定位气缸定位输出,即第二步的步任务

y03为定位气缸回原位输出,即第四步的步任务。

plc按顺序扫描图7,图8和图9中的模块,每个模块中又按从上到下顺序扫描。下面按顺序功能流程以第一和第二步为例解释模块工作原理。第三步,第四步和第五步的编程以及工作原理和第一和第二步相同。

第一步:工件上线请求

假设启动时设备上没有工件,定位气缸处在原位位置。当设备进入自动循环后,从图7中可以看出只有第一步的转换条件得以滿足,即x01=0,x03=1。执行图7模块的结果是step被置1。表示设备处于第一步。图8所示在自动循环下incycle为1,stepmode为0,cmp比较指令step等于1条件满足,执行图8模块的结果是只有cmd-1被置1,其他步任务执行命令都为0。从图9中可以看出cmd-1为1,y01就为1,这时plc就向机器人发出工件上线请求。

第二步:工件定位

机器人接到工件上线请求后,把工件放到设备上,完成了工件上线任务。从图7中可以看出这时只有第二步的转换条件得以滿足,即x01=1,x03=1。执行图7模块的结果是step被置2。表示设备处于第二步。图8所示在自动循环下incycle为1,stepmode为0。cmp比较指令step等于2条件满足,执行图8模块的结果是只有cmd-2被置1,其他步任务执行命令都为0。从图9中可以看出cmd-2为1,y02就为1,这时定位气缸就对工件进行定位。

以此类推。设备执行第三步,第四步,第五步后又回到第一步,重新开始下一个循环。

如果设备在自动循环过程中出现故障或急停等其他原因,incycle就被复位,即incycle为0。从图8和图9中可以看出这时cmd_1,cmd_2都为0,y01,y02也就都为0。意味着没有动作输出,即设备停机。如果在自动循环的最后一步任务完成后发出一个循环停止请求把incycle复位,即incycle为0,设备在完成循环的最后一步后就会停止运行,这就实现了设备的单循环运行模式。一旦排除了故障,设备被重新置为自动循环后,incycle为1,如果这时步的转换条件滿足的话,设备就可以直接从当前状态下继续运行,而不需要恢复到原位后再重新启动。

当设备被置为单步模式后,设备每执行完一步后把stepmode置为1。从图8和图9中可以看出这时incycle为1,stepmode为1,cmd_1,cmd_2都为0,y01,y02也就都为0。即意味着没有动作输出,这样设备每执行完一步后就停机,直到操作员通过hmi面板将stepmode手动复位后,即stepmode置为0,才会继续下一步动作。这样设备每运行一步,操作员通过手动复位一次,设备就一步一步运行,即实现了设备的单步模式运行。

当设备被置为手动模式后,incycle为0。从图8和图9中可以看出这时cmd_1,cmd_2都为0。这时y01,y02可以通过手动模式下驱动动作的命令输出。例如图9中通过hmi发出的定位气缸定位人工命令pb_2驱动y02输出。

图8和图9只显示第一步和第二步的程序。第三步,第四步和第五步的程序具有相同的格式。通过简单的复制和相应改动即可。由此可见,每一步的程序都具有相同的格式,程序结构清晰,一个复杂的系统都可以分解成多个简单系统通过按顺序功能流程编程的方法来实现。整台设备控制软件程序还应包括运行模式,安全,诊断,模拟,人机界面(hmi)以及其他辅助控制程序。

以上是关于本专利申请说明书的全部内容。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1