[发明专利]一种支持协程功能的PLC控制器有效
申请号: | 201611123603.6 | 申请日: | 2016-12-08 |
公开(公告)号: | CN106527335B | 公开(公告)日: | 2019-03-19 |
发明(设计)人: | 胡小春 | 申请(专利权)人: | 湖南戈人自动化科技有限公司 |
主分类号: | G05B19/05 | 分类号: | G05B19/05 |
代理公司: | 北京众合诚成知识产权代理有限公司 11246 | 代理人: | 夏艳 |
地址: | 424500 湖*** | 国省代码: | 湖南;43 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 协程 编程 字节码 语言编译器 编译 程式输入装置 输入输出回路 虚拟机执行 标记程序 电源模块 过程控制 基本操作 任务执行 存储器 复杂度 寄存器 库函数 实时性 虚拟机 指令集 下载 语言 | ||
本发明提供一种支持协程功能的PLC控制器,包括:中央处理单元,存储器,电源模块,程式输入装置,输入输出回路;在中央处理单元中扩展了对程序协程功能的支持,包括:在用于所述PLC控制器编程的ST语言中加入协程的关键词,用于标记程序协程的起始和结束;用于所述PLC控制器编程的ST语言中加入协程基本操作的库函数的支持,PLC控制器编程的ST语言编译器独立编译各协程段,每一个协程拥有自己的寄存器上下文和栈;用于所述PLC控制器编程的ST语言编译器编译生成字节码,下载至PLC控制器,PLC控制器的字节码虚拟机执行此字节码;在PLC控制器字节码虚拟机中增加了对协程指令集的支持。简化了过程控制的编程复杂度,多任务执行的实时性、执行效率大大提升。
技术领域
本发明涉及控制领域,特别是指一种支持协程功能的PLC控制器。
背景技术
在工业控制领域,从控制指令的发出,到控制指令的执行,中间往往需要延时。因此当一个指令执行后,要等待这个指令执行完毕才能执行下一个指令,这个过程称作阻塞。阻塞使控制器的效率和实时性大大降低。因此我们往往要采取非阻塞的编程策略,即当一个指令执行后,不必等待这个指令执行完毕才能执行下一个指令,但是这种情况下执行后续指令时要不停检查当前指令是否结束,否则会造成时序错误。这样编程的复杂性就增大了。
协程是一种用户级的轻量级线程。协程拥有自己的寄存器上下文和栈。协程调度切换时,将寄存器上下文和栈保存到其他地方,在切回来的时候,恢复先前保存的寄存器上下文和栈。协程可以大大简化多任务并行执行的编程。比如,我们控制4台机械手的运动,当第一台机械手的控制指令下达后,这台机械手的协程被挂起;系统切换至等待指令执行的下一个协程控制;这样控制系统的效率和实时性就大大地提高了。同时,每台机械手的控制程序在一个协程之中,编程的复杂度也得到降低。
PLC控制器的IEC61131-3国际标准的编程语言包括图形化编程语言和文本化编程语言ST。然而标准ST语言不包含协程功能。
发明内容
鉴于协程功能在工业控制领域的重要性,本发明提出一种支持协程功能的PLC控制器,
包括:中央处理单元,存储器,电源模块,程式输入装置,输入输出回路;其特征在于,
在中央处理单元中扩展了对程序协程功能的支持,包括以下方案:
在用于所述PLC控制器编程的ST语言中加入协程的关键词,用于标记程序协程的起始和结束;
在用于所述PLC控制器编程的ST语言中加入协程基本操作的库函数的支持;
用于所述PLC控制器编程的ST语言编译器独立编译各协程段,每一个协程拥有自己的寄存器上下文和栈;
用于所述PLC控制器编程的ST语言编译器编译生成字节码,下载至PLC控制器,PLC控制器的字节码虚拟机执行此字节码;
在所述PLC控制器字节码虚拟机中增加了对协程指令集的支持。
进一步的,所述字节码虚拟机运行在一个实时操作系统的环境下,一个字节码虚拟机占用一个线程,这个系统下有独立于字节码虚拟机的线程对字节码虚拟机进行监视,并进行异常处理;此监视线程有独立于字节码虚拟机的寄存器上下文和栈,一旦字节码虚拟机异常,监视线程仍可正常运行,其对字节码虚拟机的监视和异常处理能正常运行。
进一步的,一个PLC控制器可以运行多个字节码虚拟机。
本发明的有益效果是:简化了过程控制的编程复杂度;多任务执行的实时性、执行效率大大提升。
附图说明
图1为协程调度切换原理图。
具体实施方式
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于湖南戈人自动化科技有限公司,未经湖南戈人自动化科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201611123603.6/2.html,转载请声明来源钻瓜专利网。