[發(fā)明專(zhuān)利]一種數(shù)控內(nèi)嵌PLC中間文件處理及譯碼執(zhí)行方法有效
| 申請(qǐng)?zhí)枺?/td> | 202110867139.6 | 申請(qǐng)日: | 2021-07-29 |
| 公開(kāi)(公告)號(hào): | CN113625652B | 公開(kāi)(公告)日: | 2023-04-25 |
| 發(fā)明(設(shè)計(jì))人: | 王慶華;胡延華;傅仁軒;何軍擁 | 申請(qǐng)(專(zhuān)利權(quán))人: | 廣東工貿(mào)職業(yè)技術(shù)學(xué)院 |
| 主分類(lèi)號(hào): | G05B19/05 | 分類(lèi)號(hào): | G05B19/05 |
| 代理公司: | 深圳市知太狼知識(shí)產(chǎn)權(quán)代理有限公司 44915 | 代理人: | 高曉倩 |
| 地址: | 510515 廣*** | 國(guó)省代碼: | 廣東;44 |
| 權(quán)利要求書(shū): | 查看更多 | 說(shuō)明書(shū): | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 數(shù)控 plc 中間 文件 處理 譯碼 執(zhí)行 方法 | ||
1.一種數(shù)控內(nèi)嵌PLC中間文件處理及譯碼執(zhí)行方法,其特征在于該方法首先定義中間文件的數(shù)據(jù)結(jié)構(gòu)BinCode,每個(gè)BinCode占兩個(gè)long?int空間,而每個(gè)指令可以由一個(gè)或者幾個(gè)BinCode數(shù)據(jù)結(jié)構(gòu)表示,最后編譯為二進(jìn)制中間文件plc.bin,保存起來(lái)供后面程序處理;
其中,數(shù)據(jù)結(jié)構(gòu)BinCode為:包括char類(lèi)型變量cmd、char類(lèi)型變量arg_t和一個(gè)共用體arg,該共用體arg包括unsigned?int型數(shù)據(jù)num和由unsigned?char?型數(shù)據(jù)reg、unsignedshort型數(shù)據(jù)no和unsigned?char?型數(shù)據(jù)?bit組成的結(jié)構(gòu)體reg_no_bit,
其中,整個(gè)中間文件由含n個(gè)BinCode結(jié)構(gòu)體的數(shù)組組成,定義BinCode結(jié)構(gòu)體中的各個(gè)成員的具體含義以及取值范圍;?cmd表示指令代碼,分為基本指令和功能指令;arg_t表示參數(shù)類(lèi)型,用來(lái)指示共用體中的數(shù)據(jù)意義;0:無(wú)參數(shù),1:寄存器-組號(hào)-位號(hào),2:寄存器-組號(hào),3:常數(shù),4:狀態(tài)字;arg根據(jù)arg_t的意義來(lái)確定本共用體的信息;其中結(jié)構(gòu)體reg_no_bit表示寄存器-組號(hào)-位號(hào);num表示常數(shù)或狀態(tài)字;
將生成的plc.bin的二進(jìn)制中間文件通過(guò)/dev/rtf1這個(gè)實(shí)時(shí)FIFO?1設(shè)備名寫(xiě)到RTLINUX實(shí)時(shí)內(nèi)核空間,在RTLINUX實(shí)時(shí)環(huán)境中創(chuàng)建一個(gè)實(shí)時(shí)FIFO?1,并打開(kāi)FIFO?1(rtf_get(1))讀取到多組BinCode,
在RTLINUX內(nèi)核實(shí)時(shí)處理BinCode結(jié)構(gòu),并根據(jù)cmd的編碼,調(diào)用相應(yīng)的函數(shù)指針來(lái)執(zhí)行相應(yīng)的處理;
(*cmd_fun[(unsigned?char)?bin_pointer-cmd])();
將輸出繼電器Y,G狀態(tài)存到PLC運(yùn)行的內(nèi)部數(shù)據(jù)結(jié)構(gòu)struct?PMC中;
在RTLINUX內(nèi)核定時(shí)處理輸入輸出刷新,
data=inb(reg_addr);
outb(data,?reg_addr);
調(diào)用IO輸入輸出指令,刷新輸入狀態(tài)和輸出控制。
2.如權(quán)利要求1所述的數(shù)控內(nèi)嵌PLC中間文件處理及譯碼執(zhí)行方法,其特征在于在RTLINUX內(nèi)核空間用mbuff_alloc開(kāi)辟一塊名字為SHMPMC的MBUFF,首地址賦值給kernelpmc,并將所有數(shù)據(jù)清零;在LINUX用戶空間中用mbuff_attach連接名為SHMPMC的MBUFF,首地址賦值給userpmc。
該專(zhuān)利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專(zhuān)利權(quán)人授權(quán)。該專(zhuān)利全部權(quán)利屬于廣東工貿(mào)職業(yè)技術(shù)學(xué)院,未經(jīng)廣東工貿(mào)職業(yè)技術(shù)學(xué)院許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買(mǎi)此專(zhuān)利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202110867139.6/1.html,轉(zhuǎn)載請(qǐng)聲明來(lái)源鉆瓜專(zhuān)利網(wǎng)。
- 壓力臂成型數(shù)控磨床
- 一種數(shù)控系統(tǒng)實(shí)訓(xùn)工作站
- 一種自動(dòng)化數(shù)控機(jī)床
- 一種數(shù)控車(chē)床部件安裝方法、裝置及計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)
- 一種環(huán)保的數(shù)控鉆床水冷裝置
- 一種盤(pán)類(lèi)立式多主軸數(shù)控車(chē)床
- 數(shù)控生產(chǎn)系統(tǒng)、數(shù)控生產(chǎn)方法及監(jiān)控單元
- 一種盤(pán)類(lèi)立式多主軸數(shù)控車(chē)床
- 一種使用穩(wěn)定的數(shù)控銑床外殼
- 一種用于防止數(shù)控加工中數(shù)控程序調(diào)用錯(cuò)誤的方法





