本发明涉及逻辑控制器技术领域,更具体地说,涉及一种基于运动控制器的编译型plc的执行方法和装置。
背景技术:
目前plc(可编程逻辑控制器)主要分为两大类,即解释型plc和编译型plc两大类型。
解释型plc是将梯形图源程序以特定的格式下载到下位机中,在程序执行的过程中,对梯形图程序进行逐条解释,最终得到相应的输出数据。该方法的特点是便于移植、灵活性强,缺点是占用较多资源、运行速度慢,plc的运行性能取决于硬件的计算速度;编译型plc是在上位pc机中将梯形图程序转换成十六进制代码,并将代码直接下载到下位机中,在下位机执行阶段直接执行十六进制代码即可。该方法的优点是运行速度快,执行效率高,节省硬件资源,缺点是移植性差,不同的cpu的下位机需要不同的编译系统。运动控制器主要擅长于处于运动控制,而对逻辑控制较弱,使用也不方便。
现有的plc具有以下几个方面缺陷:编译型plc的灵活性差,移植不方便;而解释型plc执行效率低,运行速度慢;plc擅长处理逻辑控制,但对于运动控制功能支持较少,运动控制性能差,同时使用较为复杂。
技术实现要素:
有鉴于此,本发明提供一种基于运动控制器的编译型plc的执行方法和装置以解决现有技术的不足。
为实现上述目的,本发明提供一种基于运动控制器的编译型plc的执行方法,包括:
初始化运算符栈和操作数栈,在所述运算符栈的运算符首地址中设置定位标签;
判断是否出现指针指向所述运算符栈的逻辑表达式的末尾,且其所述运算符栈的栈首元素为所述定位标签的情况;
若是,则返回所述操作数的栈首元素,执行结束。
优选地,所述“判断是否出现指针指向所述运算符栈的逻辑表达式的末尾,且其所述运算符栈的栈首元素为所述定位标签的情况”之后,还包括:
若否,则判断所述指针指向是否为操作数;
若所述指针指向的为所述操作数,则将所述操作数入栈,后移所述操作符,并返回所述“判断是否出现指针指向所述运算符栈的逻辑表达式的末尾,且其所述运算符栈的栈首元素为所述定位标签的情况”;
若所述指针指向的不为所述操作数,则判定所述指针指向为所述操作符;
比较所述运算符栈的栈首运算符和指针指向的所述运算符的优先级;
若所述运算符栈的栈首运算符的优先级小于所述指针指向的运算符的优先级,则执行结束。
优选地,所述“比较所述运算符栈的栈首运算符和指针指向的所述运算符的优先级”之后,还包括:
若所述运算符栈的栈首运算符的优先级大于所述指针指向的运算符优先级,则计算所述运算符栈的所述运算符,生成运算结果;
将所述运算结果存入所述操作数,将所述指针后移,并返回所述“判断是否出现指针指向所述运算符栈的逻辑表达式的末尾,且其所述运算符栈的栈首元素为所述定位标签的情况”。
优选地,所述“计算所述运算符栈的所述运算符,生成运算结果”包括:
确认所述运算符的操作变量数;
根据所述操作变量数获取所述操作数栈中的与所述操作变量数相对应的所述操作数;
对所述运算符栈的所述运算符进行计算,并生成所述运算结果。
优选地,所述“比较所述运算符栈的栈首运算符和指针指向的所述运算符的优先级”之后,还包括:
若所述运算符栈的栈首运算符的优先级等于所述指针指向的运算符优先级,则判断所述运算符的两端是否存在括号字符;
若所述运算符的两端存在括号字符,则所述后移所述运算符和所述指针,并返回“判断是否出现指针指向所述运算符栈的逻辑表达式的末尾,且其所述运算符栈的栈首元素为所述定位标签的情况”。
优选地,所述“初始化运算符栈和操作数栈,在所述运算符栈的运算符首地址中设置定位标签”之前,还包括:
确定控制器类型,并依据所述控制器类型生成ld指令集和il指令集;
根据所述ld指令集和所述il指令集生成编译执行文件,以便于基于所述编译执行文件进行所述运算符栈和所述操作数栈的初始化和运算。
优选地,所述“根据所述ld指令集和所述il指令集生成编译执行文件”包括:
根据所述ld指令集和所述il指令集生成新的il指令集,并根据所述新的指令集得到程序列表和变量列表;
对所述il指令集的类别分别进行词法和语法分析,将每个il指令集的词法和语法生成语法树;
根据所述语法树与所述变量列表合成程序文件表,并对所述程序文件列表中的程序文件进行crc校验,生成编译执行文件。
此外,为解决上述问题,本发明还提供一种基于运动控制器的编译型plc的执行装置,包括定位模块、判断模块和返回模块;
所述定位模块,用于初始化运算符栈和操作数栈,在所述运算符栈的运算符首地址中设置定位标签;
所述判断模块,用于判断是否出现指针指向所述运算符栈的逻辑表达式的末尾,且其所述运算符栈的栈首元素为所述定位标签的情况;
所述返回模块,用于若是,则返回所述操作数的栈首元素,执行结束。
此外,为解决上述问题,本发明还提供一种用户终端,包括存储器及处理器,所述存储器用于存储基于运动控制器的编译型plc的执行程序,所述处理器运行所述基于运动控制器的编译型plc的执行程序以使所述用户终端执行如上述所述基于运动控制器的编译型plc的执行方法。
此外,为解决上述问题,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有基于运动控制器的编译型plc的执行程序,所述基于运动控制器的编译型plc的执行程序被处理器执行时实现如上述所述基于运动控制器的编译型plc的执行方法。
本发明提供的一种基于运动控制器的编译型plc的执行方法和装置。其中,所述方法通过设置定位标签,并根据针对运算符栈和操作数栈的指针和定位标签进行执行基于运动控制器的编译型plc的算法,即通过plc编程算法实现运动控制功能,提高了编译型plc算法的灵活性,提高运行速度,进而提高了执行效率,且本发明所提供方法逻辑简单,控制性强。
附图说明
图1为本发明基于运动控制器的编译型plc的执行方法实施例方案涉及的硬件运行环境的结构示意图;
图2为本发明基于运动控制器的编译型plc的执行方法第一实施例的流程示意图;
图3为本发明基于运动控制器的编译型plc的执行方法第二实施例的流程示意图;
图4为本发明基于运动控制器的编译型plc的执行方法第三实施例的流程示意图;
图5为本发明基于运动控制器的编译型plc的执行方法第三实施例的步骤s90的细化的流程示意图;
图6为本发明基于运动控制器的编译型plc的执行方法第四实施例的流程示意图;
图7为本发明基于运动控制器的编译型plc的执行方法第五实施例的流程示意图;
图8为本发明基于运动控制器的编译型plc的执行方法第五实施例的步骤s140的细化的流程示意图;
图9为本发明基于运动控制器的编译型plc的执行方法第六实施例的流程示意图;
图10为本发明基于运动控制器的编译型plc的执行方法第六实施例的plc与basic之间的数据交互模块连接示意图;
图11为本发明基于运动控制器的编译型plc的执行方法第六实施例的plc与basic之间的数据交互示意图;
图12为本发明基于运动控制器的编译型plc的执行方法第六实施例的回零函数信息交互流程示意图;
图13为本发明基于运动控制器的编译型plc的执行装置的功能模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
下面详细描述本发明的实施例,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
在本发明中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,是本发明实施例方案涉及的终端的硬件运行环境的结构示意图。
本发明实施例终端可以是pc,也可以是智能手机、平板电脑、便携计算机等具有显示功能的可移动式终端设备。
该终端可以包括:处理器1001,例如cpu,网络接口1004,用户接口1003,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏、输入单元比如键盘、遥控器,可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如wi-fi接口)。存储器1005可以是高速ram存储器,也可以是稳定的存储器,例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的终端并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机可读存储介质的存储器1005中可以包括操作系统、数据接口控制程序、网络连接程序以及基于运动控制器的编译型plc的执行程序。
本发明提供的一种基于运动控制器的编译型plc的执行方法和装置,其中所述方法通过plc编程算法实现运动控制功能,提高了编译型plc算法的灵活性,提高运行速度,进而提高了执行效率,且本发明所提供方法逻辑简单,控制性强。
实施例1:
参照图2,本发明第一实施例提供一种基于运动控制器的编译型plc的执行方法,包括:
步骤s10,初始化运算符栈和操作数栈,在所述运算符栈的运算符首地址中设置定位标签;
上述,需要理解的是,栈(stack)又名堆栈,它是一种运算受限的线性表。其限制是仅允许在表的一端进行插入和删除运算。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。其中,需要说明的是,所有运算符的输入输出参数都是存储在操作数栈中。
上述,需要理解的是,运算符用于执行程序代码运算,会针对一个以上操作数项目来进行运算。例如:2+3,其操作数是2和3,而运算符则是“+”。
上述,需要理解的是,操作数是运算符作用于的实体,是表达式中的一个组成部分,它规定了指令中进行数字运算的量。表达式是操作数与操作符的组合。操作数指出指令执行的操作所需要数据的来源。操作数是汇编语言指令的一个字段。例如:movax5678h操作数(ax5678h)。在操作数这个字段中可以放操作数本身,也可以放操作地址,还可以放操作地址的计算方法。通常一条指令均包含操作符和操作数。例如:在比较指令中操作符指定计算机做比较操作,操作数则指定进行比较的两个数值。操作数是指令执行的参与者,也就是各种操作的对象.与之有关的是操作码,所谓操作码是说明计算机要执行哪种,如传送,运算,移位,跳转等操作,它是指令中不可缺少的组成部分。
上述,定位标签为起到定位作用的标识符,在本实施例中为定位符“$”。
上述,在本实施例中,运算符栈(operatorstack)、操作数栈(operatordatastack)的初始化,同时向运算符中压入“$”作为运动控制定位,此时指针dspointer指向逻辑表达式的首地址,初始化操作是对运算符栈和操作数栈申请内存空间和一些变量的初始化,压入“$”是作为栈的一个起始标志。
上述,需要理解的是,在计算机科学中,指针(pointer)是编程语言中的一个对象,利用地址,它的值直接指向(pointsto)存在电脑存储器中另一个地方的值。由于通过地址能找到所需的变量单元,可以说,地址指向该变量单元。因此,将地址形象化的称为“指针”。意思是通过它能找到以它为地址的内存单元。指针参考了存储器中某个地址,通过被称为反参考指针的动作,可以取出在那个地址中存储的值。
步骤s20,判断是否出现指针指向所述运算符栈的逻辑表达式的末尾,且其所述运算符栈的栈首元素为所述定位标签的情况;
上述,需要理解的是,运算符栈中包括逻辑表达式,其中逻辑表达式,即为用逻辑运算符将关系表达式或逻辑量连接起来的有意义的式子。逻辑表达式的值是一个逻辑值,即“true”或“false”。c语言编译系统在给出逻辑运算结果时,以数字1表示“真”,以数字0表示“假”,但在判断一个量是否为“真”时,以0表示“假”,以非0表示“真”。需要说明的是,栈首元素一般使用“$”作为起始标识符,当栈中数据取完后再遇到这个标识符即表示结束。
步骤s30,若是,则返回所述操作数的栈首元素,执行结束。
上述,运算符栈中包括逻辑表达式。判断当前运行状态是否出现如下情况:1、指针指向末尾,2、栈首元素为定位标签“$”,当同时满足,则达到判断条件,返回操作数栈首元素。
本实施例提供的一种基于运动控制器的编译型plc的执行方法,通过设置定位标签,并根据针对运算符栈和操作数栈的指针和定位标签进行执行基于运动控制器的编译型plc的算法,即通过plc编程算法实现运动控制功能,提高了编译型plc算法的灵活性,提高运行速度,进而提高了执行效率,且本发明所提供方法逻辑简单,控制性强。
实施例2:
参照图3,本发明第二实施例提供一种基于运动控制器的编译型plc的执行方法,基于上述第一实施例,所述步骤s20“判断是否出现指针指向所述运算符栈的逻辑表达式的末尾,且其所述运算符栈的栈首元素为所述定位标签的情况”之后,还包括:
步骤s40,若否,则判断所述指针指向是否为操作数;
上述,如果未出现指针指向所述运算符栈的逻辑表达式的末尾,且其所述运算符栈的栈首元素为所述定位标签的情况,则对指针指向进行判断,判断指针指向的是否为操作数。
步骤s50,若所述指针指向的为所述操作数,则将所述操作数入栈,后移所述操作符,并返回所述“判断是否出现指针指向所述运算符栈的逻辑表达式的末尾,且其所述运算符栈的栈首元素为所述定位标签的情况”;
步骤s60,若所述指针指向的不为所述操作数,则判定所述指针指向为所述操作符;
步骤s70,比较所述运算符栈的栈首运算符和指针指向的所述运算符的优先级;
如果指针指向的不为操作数即为指向操作符,进而进行比较运算符栈栈首的运算符和dspointer指针所指向的运算符的优先级。
步骤s80,若所述运算符栈的栈首运算符的优先级小于所述指针指向的运算符的优先级,则执行结束。
如果运算符栈的栈首运算符的优先级与指针指向的运算符的优先级相比,栈首运算符小于指针指向运算符,则执行直接结束。
实施例3:
参照图4和图5,本发明第三实施例提供一种基于运动控制器的编译型plc的执行方法,基于上述第二实施例,所述步骤s70“比较所述运算符栈的栈首运算符和指针指向的所述运算符的优先级”之后,还包括:
步骤s90,若所述运算符栈的栈首运算符的优先级大于所述指针指向的运算符优先级,则计算所述运算符栈的所述运算符,生成运算结果。
上述,如果出现运算符栈的栈首运算符的优先级大于指针指向的运算符优先级,即为在运算过程中,指针指向的运算符由于优先级要先于运算符栈的栈首运算符,则根据优先级对运算符栈的运算符进行计算,并生成运算结果。
步骤s100,将所述运算结果存入所述操作数,将所述指针后移,并返回所述“判断是否出现指针指向所述运算符栈的逻辑表达式的末尾,且其所述运算符栈的栈首元素为所述定位标签的情况”。
上述,在计算结束后,将结果压入操作数,并将指针后移并进行重新判断是否出现指针指向所述运算符栈的逻辑表达式的末尾,且其所述运算符栈的栈首元素为所述定位标签的情况。
所述“计算所述运算符栈的所述运算符,生成运算结果”包括:
步骤s91,确认所述运算符的操作变量数;
步骤s92,根据所述操作变量数获取所述操作数栈中的与所述操作变量数相对应的所述操作数;
步骤s93,对所述运算符栈的所述运算符进行计算,并生成所述运算结果。
上述,判断运算符栈首的运算符,确认该运算符的操作变量数,即为确认其为几元运算符,例如一元运算符、五元运算符。在确认运算符的操作变量数后,根据该数据,获取操作数栈中的与所述操作变量数相对应的所述操作数;在例如,计算运算符栈首的运算符,若是一元运算符,则从操作数栈中取出一个操作数,若是二元运算符,则从操作数栈中取出两个操作数,等等以此类推,进而进行运算并在运算结束后得到运算结果。
实施例4:
参照图6,本发明第四实施例提供一种基于运动控制器的编译型plc的执行方法,基于上述第三实施例,所述步骤s70“比较所述运算符栈的栈首运算符和指针指向的所述运算符的优先级”之后,还包括:
步骤s110,若所述运算符栈的栈首运算符的优先级等于所述指针指向的运算符优先级,则判断所述运算符的两端是否存在括号字符;
上述,如果出现运算符栈的栈首运算符的优先级等于所述指针指向的运算符优先级的情况,则进行对运算符两端是否存在括号字符的判断。括号字符为运算符的一种,在运算符中起到中断计算的作用。
步骤s120,若所述运算符的两端存在括号字符,则所述后移所述运算符和所述指针,并返回“判断是否出现指针指向所述运算符栈的逻辑表达式的末尾,且其所述运算符栈的栈首元素为所述定位标签的情况”。
如果出现运算符两端存在括号的情况,则运算符退栈处理,将指针后移,并进行返回进行判断是否出现指针指向所述运算符栈的逻辑表达式的末尾,且其所述运算符栈的栈首元素为所述定位标签的情况。两端括号标识运算符计算的优先级,例如加减乘除运算时候加括号表示优先级提高。
实施例5:
参照图7和图8,本发明第五实施例提供一种基于运动控制器的编译型plc的执行方法,基于上述第一实施例,所述步骤s10“初始化运算符栈和操作数栈,在所述运算符栈的运算符首地址中设置定位标签”之前,还包括:
步骤s130,确定控制器类型,并依据所述控制器类型生成ld指令集和il指令集;
上述,需要理解的是,控制器是指按照预定顺序改变主电路或控制电路的接线和改变电路中电阻值来控制电动机的启动、调速、制动和反向的主令装置。由程序计数器、指令寄存器、指令译码器、时序产生器和操作控制器组成,它是发布命令的“决策机构”,即完成协调和指挥整个计算机系统的操作。需要说明的是,控制器类型是指厂家可以根据不同的应用场合和对象开放部分功能和指令,即不同的控制器型号所支持的功能不尽相同。
上述,进行对控制器类型的分析,从而确定控制器的类型,进而针对不同的控制器类型生成不同的ld和il指令集。
步骤s140,根据所述ld指令集和所述il指令集生成编译执行文件,以便于基于所述编译执行文件进行所述运算符栈和所述操作数栈的初始化和运算。
上述,通过ld指令集和il指令集,从而生成编译执行文件,即可进行进一步的对于运算符的运算。
所述步骤s140“根据所述ld指令集和所述il指令集生成编译执行文件”包括:
步骤s141,根据所述ld指令集和所述il指令集生成新的il指令集,并根据所述新的指令集得到程序列表和变量列表;
步骤s142,对所述il指令集的类别分别进行词法和语法分析,将每个il指令集的词法和语法生成语法树;
上述,在进行生成编译执行文件时,需进行plc程序文件的分析,并根据ld指令和il指令生成新的il指令集合。对新的il指令集进行分析,形成程序列表和变量列表两大分支。其中,变量列表包含子程序局部变量、中断程序局部变量和全局变量程序列表分支;对程序列表进行分类分析,形成主程序、子程序和中断程序三种列表,并分别针对三种程序进行指令分析;针对il指令表的类别分别进行词法和语法分析,将所有的il指令集的语法和词法汇集到一起形成语法树。需要说明的是,语法数即一系列语法规则组成的集合。
步骤s143,根据所述语法树与所述变量列表合成程序文件表,并对所述程序文件列表中的程序文件进行crc校验,生成编译执行文件。
上述,将语法树和变量列表一起转换生成程序文件表,包括ld、il文件、全局变量文件、工程文件、plc配置表、检测变量表等等;最后将生成的一些程序文件进行crc校验,并打包生成一个压缩后的编译执行文件。
实施例6:
为了更好的理解本发明,参照图9,本发明提供的一种基于运动控制器的编译型plc的执行方法包括如下:
1、首先进行控制器类型分析,针对不同的控制器类型生成不同的ld和il指令集;
2、然后进行plc程序文件分析,根据ld指令和il指令生成全新的il指令;
3、根据新的il指令集分析,形成程序列表和变量列表两大分支,程序列表分支转步骤(4),变量列表又包含子程序局部变量、中断程序局部变量和全局变量;
4、程序列表再次进行分类分析,形成主程序、子程序和中断程序三种列表,并分别针对三种程序进行指令分析;
5、针对il指令表的类别分别进行词法和语法分析,将所有的il指令集的语法和词法汇集到一起形成语法树;
6、将语法树和步骤(3)中生成的变量列表一起转换生成程序文件表,包括ld、il文件、全局变量文件、工程文件、plc配置表、检测变量表等等;
7、最后将生成的一些程序文件进行crc校验,并打包生成一个压缩后的编译执行文件,以便于基于所述编译执行文件进行所述运算符栈和所述操作数栈的初始化和运算。
8、初始化主要进行运算符栈(operatorstack)、操作数栈(operatordatastack)的初始化,同时向运算符中压入“$”,dspointer指向逻辑表达式的首地址;
9、如果dspointer指向逻辑表达式的末尾,并且逻辑表达式栈首元素也为“$”,即表示计算结束,返回操作数栈首元素,否则转到步骤10;
10、判断dspointer指向的是操作数还是操作符,若是操作符则转向步骤11,若是操作数,则操作数入栈,操作符后移,转到步骤9;
11、比较运算符栈栈首的运算符和dspointer所指向的运算符的优先级,如果两者优先级相同则转向步骤12,如果是大于则转向步骤13,如果是小于则转向步骤14;
12、若左右两边是括号,则运算符栈退栈,dspointer后移,并转向步骤9;
13、计算运算符栈首的运算符,若是一元运算符,则从操作数栈中取出一个操作数,若是二元运算符,则从操作数栈中取出两个操作数,运算后将结果压入操作数,此时运算结束,dspointer后移,转到步骤9;
14、执行结束。
为了更好地理解本发明所提供的一种基于运动控制器的编译型plc的执行方法,参考图10-12,本发明中的plc内核与basic内核的数据交互方式如下:
为了充分发挥控制器的强大运动控制功能和性能以及plc的逻辑运算功能,在执行部分同时保留plc内核和basic内核,以plc内核为主,basic内核为辅,plc主要执行逻辑运算功能,并可以调用basic内核实现运动控制功能。
1、plc与basic之间通过共享内存方式实现数据交互。
1.1plc向basic发送数据:
plc向basic发送信息采用f数据区域进行数据,范围为g0~g255如g0.0,交互参数放在指定的v区域存储数据,该区域可以采用固定内存区域用于存放交互参数;
1.2basic向plc发送数据:
basic向plc发送信息采用f数据区域进行数据,范围为f0~f255如f0.0,交互参数放在指定的v区域存储数据,该区域可以采用固定内存区域用于存放交互参数。
2、为了更好地描述plc与basic之间的数据交互方式,下面以实现回零功能为例进行描述。
涉及到运动控制相关的指令采用basic部分实现,plc部分只负责传送数据和命令,下面以plc调用轴回零为例说明plc与basic之间的数据交互过程。
g:plc向basic发送消息;
f:basic向plc发送消息;
d_data:参数存放共享区域;
参考图12中的回零函数的交互流程,流程如下:
2.1plc内核执行到轴回零指令时,首先向共享数据内存区获取回零参数如轴号、回零模式、回零慢速速度、回零快速速度、加减速时间等相关回零参数;
2.2向basic内核发送g0.0x轴开始回零指令;
2.3basic内核收到回零指令后开始调用运动功能块开始回零操作,同时向plc发送f0.0指令反馈轴已经开始进入回零状态;
2.4当basic内核回零完成或者回零错误时候向plc发送f0.1反馈回零完成状态,同时向共享内存区发送回零错误码。
此外,参照图13,本发明还提供一种基于运动控制器的编译型plc的执行装置,包括定位模块10、判断模块20和返回模块30;
所述定位模块10,用于初始化运算符栈和操作数栈,在所述运算符栈的运算符首地址中设置定位标签;
所述判断模块20,用于判断是否出现指针指向所述运算符栈的逻辑表达式的末尾,且其所述运算符栈的栈首元素为所述定位标签的情况;
所述返回模块30,用于若是,则返回所述操作数的栈首元素,执行结束。
此外,本发明还提供一种用户终端,包括存储器及处理器,所述存储器用于存储基于运动控制器的编译型plc的执行程序,所述处理器运行所述基于运动控制器的编译型plc的执行程序以使所述用户终端执行如上述所述基于运动控制器的编译型plc的执行方法。
此外,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有基于运动控制器的编译型plc的执行程序,所述基于运动控制器的编译型plc的执行程序被处理器执行时实现如上述所述基于运动控制器的编译型plc的执行方法。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。