一种软件PLC指令解析执行方法与流程

文档序号:12033924阅读:389来源:国知局
一种软件PLC指令解析执行方法与流程

本发明属于工业控制领域,具体是一种软件plc指令解析执行方法。



背景技术:

plc是以自动控制技术、微计算机技术、和通信技术为基础发展起来的新一代工业控制装置,随着微处理器技术的发展,plc得到了迅速的发展,也在社会各领域的生产训得到了越来越多的应用。plc在国内外已广泛应用于钢铁、石油、化工、电力、建材、机械制造、汽车、轻纺、交通运输、环保及文化娱乐等各个行业。

在梯形图向指令表转换过程中,传统plc系统采用的硬件芯片实现梯形图扫描,导致梯形图指令集更新困难,plc的固件更新需要花费更长的时间周期和成本。



技术实现要素:

为了解决现有技术中存在的上述技术问题,本发明提供了一种plc指令解析执行方法,包括指令译码、指令执行、逻辑状态管理、函数嵌套管理四个步骤,

步骤一、指令译码,根据指令指针指示顺序读取指令码,并对指令和参数的有效性进行判断,如果发现数据不合法或者数据越界访问,则报错;

步骤二、指令执行,根据指令译码结果跳转到对应指令处理函数,指令处理函数提取各需要的参数进行运算,每条指令执行完成后都会输出对应的逻辑状态,逻辑有效或无效,该逻辑状态会被提交给逻辑状态管理步骤以进行逻辑运算和梯图指令扫描控制;

步骤三、逻辑状态管理,记录最近的逻辑运算结果,每一行梯形图对应产生一个逻辑状态,每一次运算都会产生一个逻辑状态提供给后一个指令,以判断是否执行后续指令;

步骤四、函数嵌套管理,负责管理函数调用和中断处理响应,跳转到被调用的函数之前,会对当前的上下文环境进行进栈保存,然后指令指针指向待执行的函数入口,下一条指令会自动转到指令指针所指向的地址进行译码执行;函数执行完后出栈之前所保存的上下文环境数据,指令指针恢复到跳转前指令位置的下一条指令处顺序执行。

进一步的,步骤一具体为:根据指令指针读到指令数据后,首先判断指令码是否为控制器支持的有效指令;然后从指令数据中分离出指令依赖的参数表,并判断参数是常量还是变量地址,对于变量地址还需要判别地址是否为有效系统地址,同时检查对应的操作是否会引起数据越界,如果一切正常,则开始执行对应指令,否则进入报警状态,停止plc执行,防止执行错误的动作。

进一步的,步骤三中,当出现分支时会自动压栈保存当前逻辑状态,当前逻辑状态分别提供给所有分支使用,在最后一行分支自动出栈上一次保存的逻辑。系统根据当前的逻辑状态,判断是否执行下一步指令。

本发明还公开了一种plc指令解析执行系统,包括指令译码模块、指令执行模块、逻辑状态管理模块和函数嵌套管理模块,

指令译码模块,根据指令指针指示顺序读取指令码,并对指令和参数的有效性进行检查。

指令执行模块,根据译码结果跳转到对应指令处理函数,处理函数提取各需要的参数进行运算,并产生逻辑状态;

逻辑状态管理模块,它记录最近的逻辑运算状态,每一条梯图指令都会产生一个逻辑状态。模块根据前面的逻辑状态判断是否执行下一条指令运算。

函数嵌套管理模块,管理函数调用和中断处理响应,以支持函数的多重嵌套调用。

本发明使得指令之间的耦合大为降低,增强了系统的可扩展性,并保证系统稳定可靠。

附图说明

图1是本发明的plc指令解析执行方法流程图;

图2是逻辑状态和指令运算关系图。

具体实施方式

下面结合附图对本发明作进一步说明。

如图1所示,本发明的plc指令解析执行方法,主要包括指令译码、指令执行、逻辑状态管理、函数嵌套管理四个步骤。

步骤一、指令译码,根据指令指针指示顺序读取指令码,并对指令和参数的有效性进行判断,如果发现数据不合法或者数据越界访问,则报错。

根据指令指针读到指令数据后,首先判断指令码是否为控制器支持的有效指令;然后从指令数据中分离出指令依赖的参数表,并判断参数是常量还是变量地址,对于变量地址还需要判别地址是否为有效系统地址,同时检查对应的操作是否会引起数据越界,如果一切正常,则开始执行对应指令,否则进入报警状态,停止plc执行,防止执行错误的动作;

步骤二、指令执行,根据指令译码结果跳转到对应指令处理函数,指令处理函数提取各需要的参数进行运算,每条指令执行完成后都会输出对应的逻辑状态,逻辑有效或无效,该逻辑状态会被提交给逻辑状态管理步骤以进行逻辑运算和梯图指令扫描控制;

步骤三、逻辑状态管理,记录最近的逻辑运算结果,每一行梯形图对应产生一个逻辑状态,每一次运算都会产生一个逻辑状态提供给后一个指令,以判断是否执行后续指令。

出现分支时会自动压栈保存当前逻辑状态,当前逻辑状态分别提供给所有分支使用,在最后一行分支自动出栈上一次保存的逻辑。系统根据当前的逻辑状态,判断是否执行下一步指令;

步骤四、函数嵌套管理,负责管理函数调用和中断处理响应,跳转到被调用的函数之前,会对当前的上下文环境进行进栈保存,然后指令指针指向待执行的函数入口,下一条指令会自动转到指令指针所指向的地址进行译码执行;函数执行完后出栈之前所保存的上下文环境数据,指令指针恢复到跳转前指令位置的下一条指令处顺序执行。

本发明的plc指令解析执行系统,包括指令译码模块、指令执行模块、逻辑状态管理模块和函数嵌套管理模块。

指令译码模块,根据指令指针指示顺序读取指令码,并对指令和参数的有效性进行检查。

指令执行模块,根据译码结果跳转到对应指令处理函数,处理函数提取各需要的参数进行运算,并产生逻辑状态;

逻辑状态管理模块,它记录最近的逻辑运算状态,每一条梯图指令都会产生一个逻辑状态。模块根据前面的逻辑状态判断是否执行下一条指令运算。

函数嵌套管理模块,管理函数调用和中断处理响应,以支持函数的多重嵌套调用。

如图2所示,由于指令之间只用逻辑状态进行调度控制,用户通过改变梯图指令的数据状态、指令位置顺序、分支结构等方式来改变输出的逻辑状态,后续指令根据前面输出的逻辑状态有效与否来判断是否需要执行指令运算(或者跳过当前指令,直接执行下一条指令)、判断是否输出有效的逻辑状态。由于指令本身的运算结果和生成逻辑状态是相互独立的,因此指令运算结果是否正确不会影响到下一条指令是否被执行。而对于梯图扫描只需要保证指令输出的逻辑状态正确即可保证梯图扫描顺序正确可靠。



技术特征:

技术总结
本发明公开了一种PLC指令解析执行方法,包括指令译码、指令执行、逻辑状态管理、函数嵌套管理四个步骤。本发明还公开了一种PLC指令解析执行系统,包括指令译码模块、指令执行模块、逻辑状态管理模块和函数嵌套管理模块。本发明使得指令之间的耦合大为降低,增强了系统的可扩展性,并保证系统稳定可靠。

技术研发人员:李建峰;刘俊;卢天城;欧阳建清
受保护的技术使用者:浙江奇赛其自动化科技有限公司
技术研发日:2017.07.27
技术公布日:2017.10.24
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1