結(jié)構(gòu)化文本語(yǔ)言開發(fā)工具的設(shè)計(jì)與實(shí)現(xiàn)
發(fā)布時(shí)間:2021-11-04 02:26
目前,可編程控制器已廣泛應(yīng)用于工業(yè)控制領(lǐng)域。相較于傳統(tǒng)可編程控制器,嵌入式可編程控制器以嵌入式芯片為核心,具有靈活的硬件結(jié)構(gòu),使用簡(jiǎn)單且開發(fā)周期短,得到國(guó)內(nèi)外的廣泛認(rèn)可。結(jié)構(gòu)化文本(Structured Text,ST)語(yǔ)言作為可編程控制器常用的編程語(yǔ)言,易于實(shí)現(xiàn)復(fù)雜的控制程序。因此,本文設(shè)計(jì)并實(shí)現(xiàn)一款適用于嵌入式可編程控制器的ST開發(fā)工具,并針對(duì)嵌入式設(shè)備中通用的C語(yǔ)言,提出了一種ST語(yǔ)言到C語(yǔ)言的轉(zhuǎn)換方法,從而提高開發(fā)工具對(duì)嵌入式可編程控制器的兼容性。本文重點(diǎn)研究ST開發(fā)工具及編譯器模塊的設(shè)計(jì)與實(shí)現(xiàn),具體內(nèi)容如下:1)深入研究IEC61131-3標(biāo)準(zhǔn)規(guī)定的公用元素和ST程序結(jié)構(gòu),實(shí)現(xiàn)ST編譯器前端設(shè)計(jì)。主要描述ST語(yǔ)言的詞法規(guī)則和語(yǔ)法規(guī)則,并構(gòu)建、分析ST抽象語(yǔ)法樹。2)對(duì)于ST編譯器后端設(shè)計(jì),本文制定ST語(yǔ)言和目標(biāo)C語(yǔ)言之間的轉(zhuǎn)換規(guī)則。并根據(jù)可編程控制器的內(nèi)存特點(diǎn)及硬件結(jié)構(gòu),設(shè)計(jì)內(nèi)存映射規(guī)則。為了描述可編程控制器特殊的程序組織單元,本文采用C語(yǔ)言實(shí)現(xiàn)ST的標(biāo)準(zhǔn)函數(shù)以及標(biāo)準(zhǔn)功能塊。3)ST語(yǔ)言支持時(shí)間類型,本文以定時(shí)器為例,構(gòu)建ST程序及C程序的時(shí)間自動(dòng)機(jī)模型,采用UPPAAL工具...
【文章來(lái)源】:杭州電子科技大學(xué)浙江省
【文章頁(yè)數(shù)】:87 頁(yè)
【學(xué)位級(jí)別】:碩士
【部分圖文】:
圖2.4可編程控制器編程語(yǔ)言示例圖??2.2?ST語(yǔ)言程序結(jié)構(gòu)??結(jié)構(gòu)化文本(Structured?Text,?ST)編程語(yǔ)言是一種類似于PASCAL的高級(jí)編??
單詞符號(hào)的識(shí)別。該方法中采用GetNextChar〇方法獲取下一個(gè)單詞符號(hào)并進(jìn)行??識(shí)別操作,采用StringBuilder類型的變量builder作為字符緩沖區(qū),用于臨時(shí)保??存讀入的字符。GetNextToken()程序流程圖如圖3.2所示。??C?了)?丫或 ̄*?過濾注釋???n?[賄關(guān)?|??%空字?+字母或’,—沖區(qū)中,直到識(shí)—??I?lT不為鐘、齡或????符1,r??N???Y丫??獲取下-個(gè)字符,叫,H溫::1?|構(gòu)?臺(tái)鍵字|???直到curC'har不為空????Token??——^——n????新建1<—并初始化?_?Token??11數(shù)字、^?」構(gòu)造數(shù)值文字|???斷當(dāng)前?字符? ̄?lokcn??<^\scurChar//>??J?丨1?」構(gòu)造直接表|???H?接表^示童?Token??J ̄ ̄ ̄|?t|?構(gòu)造數(shù)組????H?為數(shù)組^1?Token??■?其他字符識(shí)別《????圖3.2?GetNextToken程序流程圖??圖中描述了不同類型Token的識(shí)別過程。其中,其他字符包括了單/雙字節(jié)??字符。若為單字節(jié)界符,則直接識(shí)別,類型為其ASCII碼。若為雙字節(jié)界符,??19??
?杭州電子科技大學(xué)碩士學(xué)位論文???(3)規(guī)則三:POU轉(zhuǎn)換規(guī)則??作為面向?qū)ο蟮木幊陶Z(yǔ)言,一個(gè)POU包含用于模塊化目的和結(jié)構(gòu)化的明確??定義的程序部分,本文所實(shí)現(xiàn)的POU包括程序、功能塊、函數(shù)。在ST語(yǔ)言轉(zhuǎn)??換過程中,全局/局部變量在C語(yǔ)言中仍為全局/局部變量,變量數(shù)據(jù)類型則根據(jù)??表3.4轉(zhuǎn)換為等價(jià)的數(shù)據(jù)類型。POU轉(zhuǎn)換細(xì)節(jié)如下:??1)P0U類型為程序:將程序轉(zhuǎn)換為void類型的函數(shù)FirstProgramSubO,該??函數(shù)為設(shè)備中運(yùn)行的主進(jìn)程函數(shù)。若定義功能塊實(shí)例,則轉(zhuǎn)換時(shí)需在C語(yǔ)言中??定義該實(shí)例的輸出變量,且為指針變量,命名格式為“實(shí)例名_輸出變量名”。程??序轉(zhuǎn)換示例如圖3.6所示。??
【參考文獻(xiàn)】:
期刊論文
[1]可編程控制器(PLC)新技術(shù)[J]. 嚴(yán)義. 自動(dòng)化博覽. 2018(06)
[2]基于狀態(tài)轉(zhuǎn)換的PLC程序模型構(gòu)建方法[J]. 常天佑,魏強(qiáng),耿洋洋. 計(jì)算機(jī)應(yīng)用. 2017(12)
[3]基于IEC61131-3標(biāo)準(zhǔn)的ST轉(zhuǎn)化為IL語(yǔ)言的設(shè)計(jì)與實(shí)現(xiàn)[J]. 張玉姣,卓懷忠,沈開奎,郭虎鋒,潘景霞. 自動(dòng)化與儀表. 2016(09)
[4]基于N叉樹的PLC功能塊向指令表的轉(zhuǎn)換算法研究[J]. 周偉,張得禮. 機(jī)電工程. 2015(12)
[5]基于普通Petri網(wǎng)的梯形圖中接通延時(shí)定時(shí)器的建模方法[J]. 溫世剛,羅繼亮,倪會(huì)娟,陳雪琨. 計(jì)算機(jī)科學(xué). 2014(07)
碩士論文
[1]面向工業(yè)控制器編程語(yǔ)言的中間語(yǔ)言研究[D]. 龐海萍.華東師范大學(xué) 2018
[2]ST語(yǔ)言編程平臺(tái)的設(shè)計(jì)及其到C語(yǔ)言的轉(zhuǎn)換[D]. 張吉.杭州電子科技大學(xué) 2016
[3]FBD平臺(tái)開發(fā)以及與梯形圖轉(zhuǎn)換的研究[D]. 李婧.杭州電子科技大學(xué) 2015
[4]梯形圖與腳本語(yǔ)言互換方法的研究[D]. 吳盼盼.杭州電子科技大學(xué) 2013
[5]開放式數(shù)控系統(tǒng)軟PLC運(yùn)行系統(tǒng)的研究與開發(fā)[D]. 王亞男.陜西科技大學(xué) 2012
[6]SFC到梯形圖的轉(zhuǎn)換算法設(shè)計(jì)與實(shí)現(xiàn)[D]. 吳松松.杭州電子科技大學(xué) 2011
[7]基于LMI的PLC功能塊圖和順序功能圖的相互轉(zhuǎn)換技術(shù)[D]. 許文靚.大連理工大學(xué) 2010
本文編號(hào):3474810
【文章來(lái)源】:杭州電子科技大學(xué)浙江省
【文章頁(yè)數(shù)】:87 頁(yè)
【學(xué)位級(jí)別】:碩士
【部分圖文】:
圖2.4可編程控制器編程語(yǔ)言示例圖??2.2?ST語(yǔ)言程序結(jié)構(gòu)??結(jié)構(gòu)化文本(Structured?Text,?ST)編程語(yǔ)言是一種類似于PASCAL的高級(jí)編??
單詞符號(hào)的識(shí)別。該方法中采用GetNextChar〇方法獲取下一個(gè)單詞符號(hào)并進(jìn)行??識(shí)別操作,采用StringBuilder類型的變量builder作為字符緩沖區(qū),用于臨時(shí)保??存讀入的字符。GetNextToken()程序流程圖如圖3.2所示。??C?了)?丫或 ̄*?過濾注釋???n?[賄關(guān)?|??%空字?+字母或’,—沖區(qū)中,直到識(shí)—??I?lT不為鐘、齡或????符1,r??N???Y丫??獲取下-個(gè)字符,叫,H溫::1?|構(gòu)?臺(tái)鍵字|???直到curC'har不為空????Token??——^——n????新建1<—并初始化?_?Token??11數(shù)字、^?」構(gòu)造數(shù)值文字|???斷當(dāng)前?字符? ̄?lokcn??<^\scurChar//>??J?丨1?」構(gòu)造直接表|???H?接表^示童?Token??J ̄ ̄ ̄|?t|?構(gòu)造數(shù)組????H?為數(shù)組^1?Token??■?其他字符識(shí)別《????圖3.2?GetNextToken程序流程圖??圖中描述了不同類型Token的識(shí)別過程。其中,其他字符包括了單/雙字節(jié)??字符。若為單字節(jié)界符,則直接識(shí)別,類型為其ASCII碼。若為雙字節(jié)界符,??19??
?杭州電子科技大學(xué)碩士學(xué)位論文???(3)規(guī)則三:POU轉(zhuǎn)換規(guī)則??作為面向?qū)ο蟮木幊陶Z(yǔ)言,一個(gè)POU包含用于模塊化目的和結(jié)構(gòu)化的明確??定義的程序部分,本文所實(shí)現(xiàn)的POU包括程序、功能塊、函數(shù)。在ST語(yǔ)言轉(zhuǎn)??換過程中,全局/局部變量在C語(yǔ)言中仍為全局/局部變量,變量數(shù)據(jù)類型則根據(jù)??表3.4轉(zhuǎn)換為等價(jià)的數(shù)據(jù)類型。POU轉(zhuǎn)換細(xì)節(jié)如下:??1)P0U類型為程序:將程序轉(zhuǎn)換為void類型的函數(shù)FirstProgramSubO,該??函數(shù)為設(shè)備中運(yùn)行的主進(jìn)程函數(shù)。若定義功能塊實(shí)例,則轉(zhuǎn)換時(shí)需在C語(yǔ)言中??定義該實(shí)例的輸出變量,且為指針變量,命名格式為“實(shí)例名_輸出變量名”。程??序轉(zhuǎn)換示例如圖3.6所示。??
【參考文獻(xiàn)】:
期刊論文
[1]可編程控制器(PLC)新技術(shù)[J]. 嚴(yán)義. 自動(dòng)化博覽. 2018(06)
[2]基于狀態(tài)轉(zhuǎn)換的PLC程序模型構(gòu)建方法[J]. 常天佑,魏強(qiáng),耿洋洋. 計(jì)算機(jī)應(yīng)用. 2017(12)
[3]基于IEC61131-3標(biāo)準(zhǔn)的ST轉(zhuǎn)化為IL語(yǔ)言的設(shè)計(jì)與實(shí)現(xiàn)[J]. 張玉姣,卓懷忠,沈開奎,郭虎鋒,潘景霞. 自動(dòng)化與儀表. 2016(09)
[4]基于N叉樹的PLC功能塊向指令表的轉(zhuǎn)換算法研究[J]. 周偉,張得禮. 機(jī)電工程. 2015(12)
[5]基于普通Petri網(wǎng)的梯形圖中接通延時(shí)定時(shí)器的建模方法[J]. 溫世剛,羅繼亮,倪會(huì)娟,陳雪琨. 計(jì)算機(jī)科學(xué). 2014(07)
碩士論文
[1]面向工業(yè)控制器編程語(yǔ)言的中間語(yǔ)言研究[D]. 龐海萍.華東師范大學(xué) 2018
[2]ST語(yǔ)言編程平臺(tái)的設(shè)計(jì)及其到C語(yǔ)言的轉(zhuǎn)換[D]. 張吉.杭州電子科技大學(xué) 2016
[3]FBD平臺(tái)開發(fā)以及與梯形圖轉(zhuǎn)換的研究[D]. 李婧.杭州電子科技大學(xué) 2015
[4]梯形圖與腳本語(yǔ)言互換方法的研究[D]. 吳盼盼.杭州電子科技大學(xué) 2013
[5]開放式數(shù)控系統(tǒng)軟PLC運(yùn)行系統(tǒng)的研究與開發(fā)[D]. 王亞男.陜西科技大學(xué) 2012
[6]SFC到梯形圖的轉(zhuǎn)換算法設(shè)計(jì)與實(shí)現(xiàn)[D]. 吳松松.杭州電子科技大學(xué) 2011
[7]基于LMI的PLC功能塊圖和順序功能圖的相互轉(zhuǎn)換技術(shù)[D]. 許文靚.大連理工大學(xué) 2010
本文編號(hào):3474810
本文鏈接:http://sikaile.net/kejilunwen/ruanjiangongchenglunwen/3474810.html
最近更新
教材專著