一种PLC程序执行器IP核制造技术

技术编号:8934398 阅读:255 留言:0更新日期:2013-07-18 02:57
本发明专利技术公开了一种PLC程序执行器IP核,其通过总线接口挂接在片上总线上,所述片上总线上同时挂接有MCU和存储器,其包括总线接口模块、程序计数模块、读指令模块、寻址模块、取数据模块与执行模块,所述总线接口模块包括多个寄存器,PLC程序为IL语言程序,以32位定长指令集格式存储,该IP通过总线接口挂接在片上总线上,通过寄存器接收控制信号,从同样挂接在片上总线上的存储器中读取IL指令并通过各模块与寄存器配合执行指令。本发明专利技术以更快的速度和更高的效率进行PLC程序的执行,同时IP核结构的设计避免了依靠MCU执行而带来的性能影响和硬件相关等缺点,接口开放易移植。

【技术实现步骤摘要】

本专利技术涉及一种片上实现的程序执行模块,特别是一种PLC程序执行器IP核
技术介绍
随着自动控制技术的发展,可编程逻辑控制器(PLC)已经越来越多的应用在各个行业领域中,标准化水平越来越高。目前,已形成了 PLC控制器典型结构、编程语言、通信、用户使用导则等系列国际标准(IEC61131)。其中,以编程语言标准(IEC61131-3)最为广泛应用,所有可编程控制器均需要支持该标准支持的五种语言,包括IL、ST、LD、FBD和SFC。其中IL语言即指令表语句,最接近PLC机器语言的语言(类似汇编语言),其它四种为高级语言。普遍的,组态编程软件在编译以该五种语言编成的程序时,会将程序均转换成以IL语言为描述的中间代码。可以将中间代码下载到PLC中按句进行解释并执行(解释型),也可以将中间代码直接编译成PLC的本地代码下载运行。对于解释执行方式,它的每一条PLC程序在执行前都需要进行复杂的软件解释工作,一条IL指令需要约5句 20句C语言程序来进行解释,进一步需要约20条 100条精减指令集指令(以ARM指令集为例)。所以解释型执行方式运行速度慢,只能用于中、低档PLC。对于编译执行方式,PLC的编程者需要提前将PLC程序针对指定的CPU处理器型号用指定的编译器和编译环境参数进行编译方能正确下载运行,即只能用特定的编程软件才能对PLC进行编程。替换一种MCU处理器芯片,或仅升级一个PLC内部组件,原有的组态编程软件可能就无法再适用。所以其通用性差,产品的应用和升级成本高。此外,与解释执行方式类似的是,编译型执行方式虽然将PLC程序编译为本地代码,但仍需要采用通用处理器的精减指令集格式,每一条IL指令可能需要3-10条本地汇编指令;即使由其它PLC语言(如FBD、ST)直接编译为本地汇编指令(不经由IL中间代码),本地汇编毕竟非面向PLC程序的指令集结构,仍不可避免地有效率的损失。另一方面,在以MCU为处理核心的PLC控制器结构中,无论解释型还是编译型,都需要占用大量MCU的工作,而MCU通常还需要完成其它重要任务(如通讯、显示),PLC任务的执行和响应速度也因此受MCU其它工作的影响,难以保障其实时性和可靠性。
技术实现思路
为了克服现有技术的缺陷,本专利技术提供了一种PLC程序执行器IP核,其通过总线接口挂接在片上总线上,所述片上总线上同时挂接有MCU和存储器,包括总线接口模块、程序计数模块、取指令模块、寻址模块、取数据模块、执行模块以及程序栈,所述总线接口模块分别与所述程序计数模块、读指令模块、寻址模块、取数据模块以及执行模块连接,所述总线接口模块包括多个寄存器;其中,所述总线接口模块通过所述多个寄存器接收所述MCU写入的程序执行信息; 所述程序计数模块更新程序的执行指令地址并交由所述取指令模块; 所述取指令模块根据所述执行指令地址从所述存储器中获取执行指令并分析和处理所述执行指令; 所述寻址模块用于获取所述执行指令的实际地址; 所述取数据模块用于获取所述执行指令的被操作数; 所述指令执行模块完成对所述执行指令的执行,所述执行指令包括跳转指令; 所述程序栈用于保存所述跳转指令的地址。较佳地,所述PLC程序为与IL语言直接对应的指令集程序。较佳地,所述多个寄存器包括代码段首地址寄存器、数据段首地址寄存器、程序计数寄存器、指令寄存器、控制寄存器以及状态寄存器。较佳地,所述代码段首地址寄存器与所述数据段首地址寄存器分别接收所述MCU写入的需要执行的程序的代码段首地址与该代码段对应的数据段首地址,所述控制寄存器接收所述MCU写入的启动程序的命令。较佳地,所述取指令模块将所述代码段首地址载入所述程序计数寄存器,所述程序计数模块将所述代码段首地址交由所述取指令模块,所述取指令模块根据所述地址通过片上总线在所述存储器中取出指令存入所述指令寄存器并分析该指令。较佳地,所述执行指令的被操作数为立即数或无操作数时,所述取指令模块将所述执行指令交由所述指令执行模块;所述执行指令的被操作数以偏移量的形式需要寻址获得时,所述取指令模块将该执行指令的被操作数交由所述寻址模块。较佳地,所述寻址模块通过该执行指令段表和偏移量信息寻得被操作数的实际地址,并交由所述取数据模块;所述取数据模块取出被操作数,并同该指令一同交由所述指令执行模块。较佳地,所述指令执行单元根据该执行指令的类型进行处理:当所述指令执行模块完成的是单条指令的执行时,则在所述状态寄存器中设置指令完成标志,并向程序计数模块发送完成信号,程序计数寄存器自加I;当所述指令执行模块无法完成指令的执行时,则在所述状态寄存器中设置对应错误标志,执行停止,同时发送中断信号;当所述指令寄存器中的指令为跳转指令(JMP)时,所述寻址模块所寻得地址为跳转点地址,将该跳转地址载入到所述程序计数寄存器中,完成跳转指令的执行;当所述指令寄存器中的指令为调用指令(CAL)时,所述寻址模块所寻得地址为调用点地址,此时所述程序计数模块将所述程序计数寄存器的值压入所述程序栈中,并将所述寻址模块寻得的跳转地址载入到所述程序计数寄存器中,完成该调用指令的执行。较佳地,所述PLC程序为与IL语言直接对应的指令集程序。较佳地,所述PLC程序为与IL语言直接对应的指令集程序。较佳地,其顺序读取程序的IL指令。较佳地,其通过所述片上总线主动访问或配置其它IP核或接受其它IP核的访问或配置,所述片上总线为AMBA、CoreConnect> Wishbone、OCP、Avalon片上总线中的一种。较佳地,一种PLC程序执行器IP核的工作方法,该IP核通过总线接口挂接在片上总线上,所述片上总线上同时挂接有MCU和存储器,其特征在于,包括总线接口模块、程序计数模块、取指令模块、寻址模块、取数据模块、执行模块以及程序栈,所述总线接口模块分别与所述程序计数模块、读指令模块、寻址模块、取数据模块以及执行模块连接,所述总线接口模块包括代码段首地址寄存器、数据段首地址寄存器、程序计数寄存器、指令寄存器、控制寄存器以及状态寄存器; 该IP核的工作方法为: (1)(MCU)向所述代码段首地址寄存器、数据段首地址寄存器内分别写入需要执行的程序的代码段首地址与该代码段对应的数据段首地址,并向所述控制寄存器写入启动程序的命令; (2)所述程序计数寄存器载入所述代码段首地址,所述程序计数模块将所述代码段首地址交由所述取指令模块; (3)所述取指令模块根据所述地址通过片上总线在所述存储器中取出指令并存入所述指令寄存器并分析该指令; (4)当该指令的被操作数为立即数或无操作数,则所述取指令模块将该指令交由所述指令执行模块;当该指令的被操作数以偏移量的形式需要寻址获得,所述指令寄存器将该指令的操作数信息交由所述寻址模块,所述寻址模块通过该指令段表和偏移量信息寻得被操作数的实际地址,并交由所述取数据模块; (5)所述取数据模块取出被操作数,并同该指令一同交由所述指令执行模块; (6)所述指令执行单元根据该指令的类型进行处理:当所述指令执行模块完成的是单条指令的执行时,则在所述状态寄存器中设置指令完成标志,并向程序计数模块发送完成信号,程序计数寄存器自加1,重复(2广(6)步骤;当所述指令执行模块无法完成指令的执行时本文档来自技高网
...

【技术保护点】
一种PLC程序执行器IP核,其通过总线接口挂接在片上总线上,所述片上总线上同时挂接有MCU和存储器,其特征在于,包括总线接口模块、程序计数模块、取指令模块、寻址模块、取数据模块、执行模块以及程序栈,所述总线接口模块分别与所述程序计数模块、读指令模块、寻址模块、取数据模块以及执行模块连接,所述总线接口模块包括多个寄存器;其中,所述总线接口模块通过所述多个寄存器接收所述MCU写入的程序执行信息;所述程序计数模块更新程序的执行指令地址并交由所述取指令模块;所述取指令模块根据所述执行指令地址从所述存储器中获取执行指令并分析和处理所述执行指令;??所述寻址模块用于获取所述执行指令的实际地址;所述取数据模块用于获取所述执行指令的被操作数;所述指令执行模块完成对所述执行指令的执行,所述执行指令包括跳转指令;所述程序栈用于保存所述跳转指令的地址。

【技术特征摘要】

【专利技术属性】
技术研发人员:杨大胜潘再生张伟宁
申请(专利权)人:浙江中控研究院有限公司
类型:发明
国别省市:

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

1