一种基于时间自动机的PLC程序设计方法技术

技术编号:19215491 阅读:49 留言:0更新日期:2018-10-20 06:38
本发明专利技术公开了一种基于时间自动机的PLC程序设计方法,包括:根据工控系统的应用需求将其划分为多个子系统,并为每一个子系统构建一个时间自动机模型;将所构建的每一个时间自动机模型实例化生成相应的进程,然后对所生成的进程进行仿真和验证;将每一个时间自动机转换成其对应的SFC语言功能块,得到多个SFC功能块以及包含所述多个SFC功能块的PLC工程;然后根据所设计的转换规则将时间自动机中的变量声明、状态和转移边、同步以及系统声明对应地转换到PLC程序中,得到完整的符合IEC61131‑3标准的PLC程序。本发明专利技术能够解决复杂工业控制系统的PLC程序设计过程中,由于状态数目巨大而导致的编程工作量繁琐、应用程序逻辑错误难以检查的问题。

【技术实现步骤摘要】
一种基于时间自动机的PLC程序设计方法
本专利技术属于可编程控制器软件
,更具体地,涉及一种基于时间自动机的PLC(ProgrammableLogicController,可编程逻辑控制器)程序设计方法。
技术介绍
PLC是一种以微处理器为核心,在计算机技术、电气自动化控制技术和网络通信技术基础上,开发出来的功能丰富、高度智能化的工业控制装置。IEC61131标准弥补了传统PLC控制系统开放性差、兼容性差、可维护性差以及可复用性差等弱点,在工业控制领域得到了广泛的应用。尽管IEC61131标准编程语言定义了梯形图(LD,LadderLogicProgrammingLanguage)、功能块图(FBD,FunctionBlockDiagram)和顺序功能图(SFC,SequentialFunctionChart)三种图形化编程语言使得程序指令形象直观,但程序指令间的逻辑关系抽象,特别是近年来工业控制系统结构的复杂度不断增长,控制系统的状态数目巨大,会导致PLC程序设计工作量繁琐并且开发周期和成本难以控制等。此外,在PLC程序调试过程中,编程软件只能检测语法、语义相关的错误,程序逻辑错误(如不安全序列、不可达序列、竞态和死锁等)需要设计人员按照程序逐条检查,严重影响开发周期,而且随着系统状态数量的增加,不能保证检查出全部逻辑错误。
技术实现思路
针对现有技术的缺陷和改进需求,本专利技术提供了一种基于时间自动机的PLC程序设计方法,旨在解决复杂工业控制系统的PLC程序设计过程中,由于状态数目巨大而导致的编程工作量繁琐、应用程序逻辑错误难以检查的问题。为实现上述目的,本专利技术提供了一种基于时间自动机的PLC程序设计方法,包括如下步骤:(1)根据工控系统的应用需求将其划分为多个子系统,并为每一个子系统构建一个时间自动机模型;(2)将所构建的每一个时间自动机模型实例化生成相应的进程,然后对所生成的进程进行仿真和验证,以避免出现程序逻辑错误;(3)将每一个时间自动机转换成其对应的顺序功能图(SFC)语言功能块,得到多个SFC功能块以及包含所述多个SFC功能块的PLC工程;(4)将时间自动机的全局变量声明转换成PLC工程的全局变量,将时间自动机局部变量声明转换成对应的SFC功能块的本地变量,并将时间自动机的参数转换成对应的SFC功能块的输入变量,从而完成时间自动机变量声明的转换;(5)将时间自动机的状态转换成对应的SFC功能块的步,将时间自动机转移边上的约束条件转换成对应的SFC功能块的转移条件,并将时间自动机转移边上的变量重置和更新转换成对应的SFC功能块的动作块,从而完成时间自动机状态和转移边的转换;(6)将时间自动机之间的同步通道转换成对应的SFC功能块之间的同步机制,从而完成时间自动机同步的转换;(7)将时间自动机的实例化进程转换成PLC主程序实例化调用各个对应的SFC功能块,从而完成时间自动机系统声明的转换。进一步地,步骤(1)中,为每一个子系统构建一个时间自动机模型,包括如下步骤:(11)确定每个子系统的时间自动机可能存在的状态,确定初始状态以及各个状态的类型;状态的类型包括:普通状态、紧迫状态和约束状态;普通状态允许时间停留;紧迫状态不允许发生时间流逝;约束状态不允许时间流逝,并要求立刻发生所在状态的转移,同时要求除了约束状态外,其他状态都不发生转移;(12)分析各个状态之间的逻辑关系,确定状态的转移边以及边上面的约束条件,以及需要执行的变量重置和更新;其中,变量重置和更新指时钟变量的重置,和数值变量数值的更新以及函数的调用;(13)分析各个子系统之间的行为协同性,确定时间自动机之间需要同步的转移边,添加同步通道;其中,同步通道由通道信号发送方(“!”)和通道信号接收方(“?”)组成,通道信号发送方满足约束条件的情况下,若有通道信号接收方响应,则两个转移同步执行,若无通道信号接收方响应,则不能发生状态转移,直到接收方响应为止。进一步地,步骤(2)中,对时间自动机模型所生成的进程进行仿真和验证,是指利用仿真器对系统的时间自动机模型进行仿真,初步判断系统模型的正确性,并在验证器中利用BNF语法对系统模型进行形式化规范验证,验证系统应用逻辑的正确性,避免出现不可达、不安全、逻辑冲突、死锁等程序逻辑错误。进一步地,步骤(4)中,若所要转换的变量声明为时钟变量,则在PLC工程中调用TON定时器功能块,并将输出ET作为转换结果;若所要转换的变量声明为有输入参数且不使用外部变量声明的函数,则将其转换为PLC工程中ST语言编程的函数;若所要转换的变量声明为有输入参数且使用外部变量声明的函数,则将其转换为PLC工程中ST语言编程的功能块;若所要转换的变量声明为无输入参数的函数,则将其转换为对应的SFC功能块的动作;若所要转换的变量声明为同步通道变量,则转入所述步骤(6)。进一步地,步骤(5)中,若所要转换的状态为紧急状态或者约束状态,则将对应的SFC功能块中的步的步消逝时间设为0。更进一步地,步骤(5)中,若时间自动机中有多条转移边汇集到一个状态,即时间自动机中存在多个子序列汇合的情况,针对这种情况,多条转移边上的变量重置和更新不能直接翻译为SFC功能块后级步连接的动作块,因此,在对应SFC功能块中的各个转移条件后均插入一个辅助步和一个布尔值恒为1的转移条件。更进一步地,步骤(5)中,将时间自动机转移边上的变量重置和更新转换成对应的SFC功能块的动作块,具体指将时间自动机转移边上的时钟变量重置表达式、数值变量赋值表达式以及函数一起转换成SFC功能块对应转移边后级步连接的动作块,然后将时钟变量重置表达式转换为动作块调用TON定时器功能块并复位。更进一步地,步骤(5)中,若时间自动机中存在状态演变流程循环的情况,即整体流程从初始状态开始演变,最终回到初始状态实现周期循环,以及流程内部某状态经过几个转移后回到原状态的内部循环;由于SFC中有向连线不能交叉或往上,针对这种情况,在对应的SFC功能块中使用跳转符号指定后级步。进一步地,步骤(6)中,将时间自动机之间的同步通道转换成对应的SFC功能块之间的同步机制,具体包括如下操作:在PLC工程中创建通道信号发送功能块chan_P和通道信号接收功能模块chan_V,并声明布尔型的条件变量POK和VOK,其中,条件变量POK为真表示通道信号发送功能块chan_P的操作原语执行完成,条件变量VOK为真表示通道信号接收功能模块chan_V的操作原语执行完成;若时间自动机中两个状态之间的转移边上存在通道信号发送方,则在对应的SFC中的两个步之间的转移条件后面插入一个信号发送步和一个布尔值为POK的转移条件,并在信号发送步所连接的动作块中调用通道信号发送功能块chan_P;若时间自动机中两个状态之间的转移边上存在通道信号接收方,则在对应SFC功能块中的前级步所连接的动作块中调用通道信号接收功能模块chan_V,并将对应的转移条件合取布尔值VOK。进一步地,步骤(7)中,PLC主程序实例化调用各个SFC功能块时各SFC功能块的执行顺序与系统所设置的时间自动机的实例化进程之间的优先级顺序一致。总体而言,通过本专利技术所构思的以上技术方案,能够取得以下有益效果:(1)本专利技术所提供的基于时间自动机的本文档来自技高网...

【技术保护点】
1.一种基于时间自动机的PLC程序设计方法,其特征在于,包括如下步骤:(1)根据工控系统的应用需求将其划分为多个子系统,并为每一个子系统构建一个时间自动机模型;(2)将所构建的每一个时间自动机模型实例化生成相应的进程,然后对所生成的进程进行仿真和验证,以避免出现程序逻辑错误;(3)将每一个时间自动机转换成其对应的SFC语言功能块,得到多个SFC功能块以及包含所述多个SFC功能块的PLC工程;(4)将时间自动机的全局变量声明转换成PLC工程的全局变量,将时间自动机局部变量声明转换成对应的SFC功能块的本地变量,并将时间自动机的参数转换成对应的SFC功能块的输入变量,从而完成时间自动机变量声明的转换;(5)将时间自动机的状态转换成对应的SFC功能块的步,将时间自动机转移边上的约束条件转换成对应的SFC功能块的转移条件,并将时间自动机转移边上的变量重置和更新转换成对应的SFC功能块的动作块,从而完成时间自动机状态和转移边的转换;(6)将时间自动机之间的同步通道转换成对应的SFC功能块之间的同步机制,从而完成时间自动机同步的转换;(7)将时间自动机的实例化进程转换成PLC主程序实例化调用各个对应的SFC功能块,从而完成时间自动机系统声明的转换。...

【技术特征摘要】
1.一种基于时间自动机的PLC程序设计方法,其特征在于,包括如下步骤:(1)根据工控系统的应用需求将其划分为多个子系统,并为每一个子系统构建一个时间自动机模型;(2)将所构建的每一个时间自动机模型实例化生成相应的进程,然后对所生成的进程进行仿真和验证,以避免出现程序逻辑错误;(3)将每一个时间自动机转换成其对应的SFC语言功能块,得到多个SFC功能块以及包含所述多个SFC功能块的PLC工程;(4)将时间自动机的全局变量声明转换成PLC工程的全局变量,将时间自动机局部变量声明转换成对应的SFC功能块的本地变量,并将时间自动机的参数转换成对应的SFC功能块的输入变量,从而完成时间自动机变量声明的转换;(5)将时间自动机的状态转换成对应的SFC功能块的步,将时间自动机转移边上的约束条件转换成对应的SFC功能块的转移条件,并将时间自动机转移边上的变量重置和更新转换成对应的SFC功能块的动作块,从而完成时间自动机状态和转移边的转换;(6)将时间自动机之间的同步通道转换成对应的SFC功能块之间的同步机制,从而完成时间自动机同步的转换;(7)将时间自动机的实例化进程转换成PLC主程序实例化调用各个对应的SFC功能块,从而完成时间自动机系统声明的转换。2.如权利要求1所述的基于时间自动机的PLC程序设计方法,其特征在于,所述步骤(4)中,若所要转换的变量声明为时钟变量,则在PLC工程中调用TON定时器功能块,并将输出ET作为转换结果;若所要转换的变量声明为有输入参数且不使用外部变量声明的函数,则将其转换为PLC工程中ST语言编程的函数;若所要转换的变量声明为有输入参数且使用外部变量声明的函数,则将其转换为PLC工程中ST语言编程的功能块;若所要转换的变量声明为无输入参数的函数,则将其转换为对应的SFC功能块的动作;若所要转换的变量声明为同步通道变量,则转入所述步骤(6)。3.如权利要求1所述的基于时间自动机的PLC程序设计方法,其特征在于,所述步骤(5)中,若所要转换的状态为紧急状态或者约束状态,则将对应的SFC功能块中的步的步消逝时间设为0。4.如权利要求1...

【专利技术属性】
技术研发人员:王晓宇黄青青陈吉红周星黄黎明
申请(专利权)人:华中科技大学
类型:发明
国别省市:湖北,42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1