[发明专利]一种数控内嵌PLC中间文件处理及译码执行方法有效
申请号: | 202110867139.6 | 申请日: | 2021-07-29 |
公开(公告)号: | CN113625652B | 公开(公告)日: | 2023-04-25 |
发明(设计)人: | 王庆华;胡延华;傅仁轩;何军拥 | 申请(专利权)人: | 广东工贸职业技术学院 |
主分类号: | G05B19/05 | 分类号: | G05B19/05 |
代理公司: | 深圳市知太狼知识产权代理有限公司 44915 | 代理人: | 高晓倩 |
地址: | 510515 广*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 数控 plc 中间 文件 处理 译码 执行 方法 | ||
1.一种数控内嵌PLC中间文件处理及译码执行方法,其特征在于该方法首先定义中间文件的数据结构BinCode,每个BinCode占两个long int空间,而每个指令可以由一个或者几个BinCode数据结构表示,最后编译为二进制中间文件plc.bin,保存起来供后面程序处理;
其中,数据结构BinCode为:包括char类型变量cmd、char类型变量arg_t和一个共用体arg,该共用体arg包括unsigned int型数据num和由unsigned char 型数据reg、unsignedshort型数据no和unsigned char 型数据 bit组成的结构体reg_no_bit,
其中,整个中间文件由含n个BinCode结构体的数组组成,定义BinCode结构体中的各个成员的具体含义以及取值范围; cmd表示指令代码,分为基本指令和功能指令;arg_t表示参数类型,用来指示共用体中的数据意义;0:无参数,1:寄存器-组号-位号,2:寄存器-组号,3:常数,4:状态字;arg根据arg_t的意义来确定本共用体的信息;其中结构体reg_no_bit表示寄存器-组号-位号;num表示常数或状态字;
将生成的plc.bin的二进制中间文件通过/dev/rtf1这个实时FIFO 1设备名写到RTLINUX实时内核空间,在RTLINUX实时环境中创建一个实时FIFO 1,并打开FIFO 1(rtf_get(1))读取到多组BinCode,
在RTLINUX内核实时处理BinCode结构,并根据cmd的编码,调用相应的函数指针来执行相应的处理;
(*cmd_fun[(unsigned char) bin_pointer-cmd])();
将输出继电器Y,G状态存到PLC运行的内部数据结构struct PMC中;
在RTLINUX内核定时处理输入输出刷新,
data=inb(reg_addr);
outb(data, reg_addr);
调用IO输入输出指令,刷新输入状态和输出控制。
2.如权利要求1所述的数控内嵌PLC中间文件处理及译码执行方法,其特征在于在RTLINUX内核空间用mbuff_alloc开辟一块名字为SHMPMC的MBUFF,首地址赋值给kernelpmc,并将所有数据清零;在LINUX用户空间中用mbuff_attach连接名为SHMPMC的MBUFF,首地址赋值给userpmc。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于广东工贸职业技术学院,未经广东工贸职业技术学院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110867139.6/1.html,转载请声明来源钻瓜专利网。