[发明专利]一种基于运动控制器的编译型PLC的执行方法和装置有效
申请号: | 201810170399.6 | 申请日: | 2018-04-16 |
公开(公告)号: | CN108303948B | 公开(公告)日: | 2019-11-15 |
发明(设计)人: | 胡国煌;王立松 | 申请(专利权)人: | 深圳市雷赛控制技术有限公司 |
主分类号: | G05B19/05 | 分类号: | G05B19/05 |
代理公司: | 11371 北京超凡志成知识产权代理事务所(普通合伙) | 代理人: | 王文红<国际申请>=<国际公布>=<进入 |
地址: | 518000广东省深圳市南山区*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 运算符栈 定位标签 运动控制器 编译 方法和装置 操作数栈 栈首 算法 运动控制功能 逻辑表达式 算法实现 指针指向 操作数 初始化 控制性 首地址 运算符 末尾 指针 返回 | ||
1.一种基于运动控制器的编译型PLC的执行方法,其特征在于,包括:
初始化运算符栈和操作数栈,在所述运算符栈的运算符首地址中设置定位标签;
判断是否出现指针指向所述运算符栈的逻辑表达式的末尾,且其所述运算符栈的栈首元素为所述定位标签的情况;
若是,则返回所述操作数的栈首元素,执行结束;
若否,则判断所述指针指向是否为操作数;
若所述指针指向的为操作数,则将所述操作数入栈,后移操作符,并返回所述“判断是否出现指针指向所述运算符栈的逻辑表达式的末尾,且其所述运算符栈的栈首元素为所述定位标签的情况”;
若所述指针指向的不为所述操作数,则判定所述指针指向为操作符;
比较所述运算符栈的栈首运算符和指针指向的所述运算符的优先级;
若所述运算符栈的栈首运算符的优先级小于所述指针指向的运算符的优先级,则执行结束。
2.如权利要求1所述基于运动控制器的编译型PLC的执行方法,其特征在于,所述“比较所述运算符栈的栈首运算符和指针指向的所述运算符的优先级”之后,还包括:
若所述运算符栈的栈首运算符的优先级大于所述指针指向的运算符优先级,则计算所述运算符栈的所述运算符,生成运算结果;
将所述运算结果存入所述操作数,将所述指针后移,并返回所述“判断是否出现指针指向所述运算符栈的逻辑表达式的末尾,且其所述运算符栈的栈首元素为所述定位标签的情况”。
3.如权利要求2所述基于运动控制器的编译型PLC的执行方法,其特征在于,所述“计算所述运算符栈的所述运算符,生成运算结果”包括:
确认所述运算符的操作变量数;
根据所述操作变量数获取所述操作数栈中的与所述操作变量数相对应的所述操作数;
对所述运算符栈的所述运算符进行计算,并生成所述运算结果。
4.如权利要求1所述基于运动控制器的编译型PLC的执行方法,其特征在于,所述“比较所述运算符栈的栈首运算符和指针指向的所述运算符的优先级”之后,还包括:
若所述运算符栈的栈首运算符的优先级等于所述指针指向的运算符优先级,则判断所述运算符的两端是否存在括号字符;
若所述运算符的两端存在括号字符,则后移所述运算符和所述指针,并返回“判断是否出现指针指向所述运算符栈的逻辑表达式的末尾,且其所述运算符栈的栈首元素为所述定位标签的情况”。
5.如权利要求1所述基于运动控制器的编译型PLC的执行方法,其特征在于,所述“初始化运算符栈和操作数栈,在所述运算符栈的运算符首地址中设置定位标签”之前,还包括:
确定控制器类型,并依据所述控制器类型生成LD指令集和IL指令集;
根据所述LD指令集和所述IL指令集生成编译执行文件,以便于基于所述编译执行文件进行所述运算符栈和所述操作数栈的初始化和运算。
6.如权利要求5所述基于运动控制器的编译型PLC的执行方法,其特征在于,所述“根据所述LD指令集和所述IL指令集生成编译执行文件”包括:
根据所述LD指令集和所述IL指令集生成新的IL指令集,并根据所述新的指令集得到程序列表和变量列表;
对所述IL指令集的类别分别进行词法和语法分析,将每个IL指令集的词法和语法生成语法树;
根据所述语法树与所述变量列表合成程序文件列表,并对所述程序文件列表中的程序文件进行CRC校验,生成编译执行文件。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳市雷赛控制技术有限公司,未经深圳市雷赛控制技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810170399.6/1.html,转载请声明来源钻瓜专利网。