亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種軟件PLC指令解析執(zhí)行方法與流程

文檔序號(hào):12033924閱讀:401來(lái)源:國(guó)知局
一種軟件PLC指令解析執(zhí)行方法與流程

本發(fā)明屬于工業(yè)控制領(lǐng)域,具體是一種軟件plc指令解析執(zhí)行方法。



背景技術(shù):

plc是以自動(dòng)控制技術(shù)、微計(jì)算機(jī)技術(shù)、和通信技術(shù)為基礎(chǔ)發(fā)展起來(lái)的新一代工業(yè)控制裝置,隨著微處理器技術(shù)的發(fā)展,plc得到了迅速的發(fā)展,也在社會(huì)各領(lǐng)域的生產(chǎn)訓(xùn)得到了越來(lái)越多的應(yīng)用。plc在國(guó)內(nèi)外已廣泛應(yīng)用于鋼鐵、石油、化工、電力、建材、機(jī)械制造、汽車、輕紡、交通運(yùn)輸、環(huán)保及文化娛樂(lè)等各個(gè)行業(yè)。

在梯形圖向指令表轉(zhuǎn)換過(guò)程中,傳統(tǒng)plc系統(tǒng)采用的硬件芯片實(shí)現(xiàn)梯形圖掃描,導(dǎo)致梯形圖指令集更新困難,plc的固件更新需要花費(fèi)更長(zhǎng)的時(shí)間周期和成本。



技術(shù)實(shí)現(xiàn)要素:

為了解決現(xiàn)有技術(shù)中存在的上述技術(shù)問(wèn)題,本發(fā)明提供了一種plc指令解析執(zhí)行方法,包括指令譯碼、指令執(zhí)行、邏輯狀態(tài)管理、函數(shù)嵌套管理四個(gè)步驟,

步驟一、指令譯碼,根據(jù)指令指針指示順序讀取指令碼,并對(duì)指令和參數(shù)的有效性進(jìn)行判斷,如果發(fā)現(xiàn)數(shù)據(jù)不合法或者數(shù)據(jù)越界訪問(wèn),則報(bào)錯(cuò);

步驟二、指令執(zhí)行,根據(jù)指令譯碼結(jié)果跳轉(zhuǎn)到對(duì)應(yīng)指令處理函數(shù),指令處理函數(shù)提取各需要的參數(shù)進(jìn)行運(yùn)算,每條指令執(zhí)行完成后都會(huì)輸出對(duì)應(yīng)的邏輯狀態(tài),邏輯有效或無(wú)效,該邏輯狀態(tài)會(huì)被提交給邏輯狀態(tài)管理步驟以進(jìn)行邏輯運(yùn)算和梯圖指令掃描控制;

步驟三、邏輯狀態(tài)管理,記錄最近的邏輯運(yùn)算結(jié)果,每一行梯形圖對(duì)應(yīng)產(chǎn)生一個(gè)邏輯狀態(tài),每一次運(yùn)算都會(huì)產(chǎn)生一個(gè)邏輯狀態(tài)提供給后一個(gè)指令,以判斷是否執(zhí)行后續(xù)指令;

步驟四、函數(shù)嵌套管理,負(fù)責(zé)管理函數(shù)調(diào)用和中斷處理響應(yīng),跳轉(zhuǎn)到被調(diào)用的函數(shù)之前,會(huì)對(duì)當(dāng)前的上下文環(huán)境進(jìn)行進(jìn)棧保存,然后指令指針指向待執(zhí)行的函數(shù)入口,下一條指令會(huì)自動(dòng)轉(zhuǎn)到指令指針?biāo)赶虻牡刂愤M(jìn)行譯碼執(zhí)行;函數(shù)執(zhí)行完后出棧之前所保存的上下文環(huán)境數(shù)據(jù),指令指針恢復(fù)到跳轉(zhuǎn)前指令位置的下一條指令處順序執(zhí)行。

進(jìn)一步的,步驟一具體為:根據(jù)指令指針讀到指令數(shù)據(jù)后,首先判斷指令碼是否為控制器支持的有效指令;然后從指令數(shù)據(jù)中分離出指令依賴的參數(shù)表,并判斷參數(shù)是常量還是變量地址,對(duì)于變量地址還需要判別地址是否為有效系統(tǒng)地址,同時(shí)檢查對(duì)應(yīng)的操作是否會(huì)引起數(shù)據(jù)越界,如果一切正常,則開(kāi)始執(zhí)行對(duì)應(yīng)指令,否則進(jìn)入報(bào)警狀態(tài),停止plc執(zhí)行,防止執(zhí)行錯(cuò)誤的動(dòng)作。

進(jìn)一步的,步驟三中,當(dāng)出現(xiàn)分支時(shí)會(huì)自動(dòng)壓棧保存當(dāng)前邏輯狀態(tài),當(dāng)前邏輯狀態(tài)分別提供給所有分支使用,在最后一行分支自動(dòng)出棧上一次保存的邏輯。系統(tǒng)根據(jù)當(dāng)前的邏輯狀態(tài),判斷是否執(zhí)行下一步指令。

本發(fā)明還公開(kāi)了一種plc指令解析執(zhí)行系統(tǒng),包括指令譯碼模塊、指令執(zhí)行模塊、邏輯狀態(tài)管理模塊和函數(shù)嵌套管理模塊,

指令譯碼模塊,根據(jù)指令指針指示順序讀取指令碼,并對(duì)指令和參數(shù)的有效性進(jìn)行檢查。

指令執(zhí)行模塊,根據(jù)譯碼結(jié)果跳轉(zhuǎn)到對(duì)應(yīng)指令處理函數(shù),處理函數(shù)提取各需要的參數(shù)進(jìn)行運(yùn)算,并產(chǎn)生邏輯狀態(tài);

邏輯狀態(tài)管理模塊,它記錄最近的邏輯運(yùn)算狀態(tài),每一條梯圖指令都會(huì)產(chǎn)生一個(gè)邏輯狀態(tài)。模塊根據(jù)前面的邏輯狀態(tài)判斷是否執(zhí)行下一條指令運(yùn)算。

函數(shù)嵌套管理模塊,管理函數(shù)調(diào)用和中斷處理響應(yīng),以支持函數(shù)的多重嵌套調(diào)用。

本發(fā)明使得指令之間的耦合大為降低,增強(qiáng)了系統(tǒng)的可擴(kuò)展性,并保證系統(tǒng)穩(wěn)定可靠。

附圖說(shuō)明

圖1是本發(fā)明的plc指令解析執(zhí)行方法流程圖;

圖2是邏輯狀態(tài)和指令運(yùn)算關(guān)系圖。

具體實(shí)施方式

下面結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步說(shuō)明。

如圖1所示,本發(fā)明的plc指令解析執(zhí)行方法,主要包括指令譯碼、指令執(zhí)行、邏輯狀態(tài)管理、函數(shù)嵌套管理四個(gè)步驟。

步驟一、指令譯碼,根據(jù)指令指針指示順序讀取指令碼,并對(duì)指令和參數(shù)的有效性進(jìn)行判斷,如果發(fā)現(xiàn)數(shù)據(jù)不合法或者數(shù)據(jù)越界訪問(wèn),則報(bào)錯(cuò)。

根據(jù)指令指針讀到指令數(shù)據(jù)后,首先判斷指令碼是否為控制器支持的有效指令;然后從指令數(shù)據(jù)中分離出指令依賴的參數(shù)表,并判斷參數(shù)是常量還是變量地址,對(duì)于變量地址還需要判別地址是否為有效系統(tǒng)地址,同時(shí)檢查對(duì)應(yīng)的操作是否會(huì)引起數(shù)據(jù)越界,如果一切正常,則開(kāi)始執(zhí)行對(duì)應(yīng)指令,否則進(jìn)入報(bào)警狀態(tài),停止plc執(zhí)行,防止執(zhí)行錯(cuò)誤的動(dòng)作;

步驟二、指令執(zhí)行,根據(jù)指令譯碼結(jié)果跳轉(zhuǎn)到對(duì)應(yīng)指令處理函數(shù),指令處理函數(shù)提取各需要的參數(shù)進(jìn)行運(yùn)算,每條指令執(zhí)行完成后都會(huì)輸出對(duì)應(yīng)的邏輯狀態(tài),邏輯有效或無(wú)效,該邏輯狀態(tài)會(huì)被提交給邏輯狀態(tài)管理步驟以進(jìn)行邏輯運(yùn)算和梯圖指令掃描控制;

步驟三、邏輯狀態(tài)管理,記錄最近的邏輯運(yùn)算結(jié)果,每一行梯形圖對(duì)應(yīng)產(chǎn)生一個(gè)邏輯狀態(tài),每一次運(yùn)算都會(huì)產(chǎn)生一個(gè)邏輯狀態(tài)提供給后一個(gè)指令,以判斷是否執(zhí)行后續(xù)指令。

出現(xiàn)分支時(shí)會(huì)自動(dòng)壓棧保存當(dāng)前邏輯狀態(tài),當(dāng)前邏輯狀態(tài)分別提供給所有分支使用,在最后一行分支自動(dòng)出棧上一次保存的邏輯。系統(tǒng)根據(jù)當(dāng)前的邏輯狀態(tài),判斷是否執(zhí)行下一步指令;

步驟四、函數(shù)嵌套管理,負(fù)責(zé)管理函數(shù)調(diào)用和中斷處理響應(yīng),跳轉(zhuǎn)到被調(diào)用的函數(shù)之前,會(huì)對(duì)當(dāng)前的上下文環(huán)境進(jìn)行進(jìn)棧保存,然后指令指針指向待執(zhí)行的函數(shù)入口,下一條指令會(huì)自動(dòng)轉(zhuǎn)到指令指針?biāo)赶虻牡刂愤M(jìn)行譯碼執(zhí)行;函數(shù)執(zhí)行完后出棧之前所保存的上下文環(huán)境數(shù)據(jù),指令指針恢復(fù)到跳轉(zhuǎn)前指令位置的下一條指令處順序執(zhí)行。

本發(fā)明的plc指令解析執(zhí)行系統(tǒng),包括指令譯碼模塊、指令執(zhí)行模塊、邏輯狀態(tài)管理模塊和函數(shù)嵌套管理模塊。

指令譯碼模塊,根據(jù)指令指針指示順序讀取指令碼,并對(duì)指令和參數(shù)的有效性進(jìn)行檢查。

指令執(zhí)行模塊,根據(jù)譯碼結(jié)果跳轉(zhuǎn)到對(duì)應(yīng)指令處理函數(shù),處理函數(shù)提取各需要的參數(shù)進(jìn)行運(yùn)算,并產(chǎn)生邏輯狀態(tài);

邏輯狀態(tài)管理模塊,它記錄最近的邏輯運(yùn)算狀態(tài),每一條梯圖指令都會(huì)產(chǎn)生一個(gè)邏輯狀態(tài)。模塊根據(jù)前面的邏輯狀態(tài)判斷是否執(zhí)行下一條指令運(yùn)算。

函數(shù)嵌套管理模塊,管理函數(shù)調(diào)用和中斷處理響應(yīng),以支持函數(shù)的多重嵌套調(diào)用。

如圖2所示,由于指令之間只用邏輯狀態(tài)進(jìn)行調(diào)度控制,用戶通過(guò)改變梯圖指令的數(shù)據(jù)狀態(tài)、指令位置順序、分支結(jié)構(gòu)等方式來(lái)改變輸出的邏輯狀態(tài),后續(xù)指令根據(jù)前面輸出的邏輯狀態(tài)有效與否來(lái)判斷是否需要執(zhí)行指令運(yùn)算(或者跳過(guò)當(dāng)前指令,直接執(zhí)行下一條指令)、判斷是否輸出有效的邏輯狀態(tài)。由于指令本身的運(yùn)算結(jié)果和生成邏輯狀態(tài)是相互獨(dú)立的,因此指令運(yùn)算結(jié)果是否正確不會(huì)影響到下一條指令是否被執(zhí)行。而對(duì)于梯圖掃描只需要保證指令輸出的邏輯狀態(tài)正確即可保證梯圖掃描順序正確可靠。



技術(shù)特征:

技術(shù)總結(jié)
本發(fā)明公開(kāi)了一種PLC指令解析執(zhí)行方法,包括指令譯碼、指令執(zhí)行、邏輯狀態(tài)管理、函數(shù)嵌套管理四個(gè)步驟。本發(fā)明還公開(kāi)了一種PLC指令解析執(zhí)行系統(tǒng),包括指令譯碼模塊、指令執(zhí)行模塊、邏輯狀態(tài)管理模塊和函數(shù)嵌套管理模塊。本發(fā)明使得指令之間的耦合大為降低,增強(qiáng)了系統(tǒng)的可擴(kuò)展性,并保證系統(tǒng)穩(wěn)定可靠。

技術(shù)研發(fā)人員:李建峰;劉俊;盧天城;歐陽(yáng)建清
受保護(hù)的技術(shù)使用者:浙江奇賽其自動(dòng)化科技有限公司
技術(shù)研發(fā)日:2017.07.27
技術(shù)公布日:2017.10.24
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1