本發(fā)明涉及工業(yè)自動(dòng)控制技術(shù)領(lǐng)域,尤其涉及一種基于虛擬機(jī)的61131-3程序運(yùn)行環(huán)境。
背景技術(shù):
隨著工業(yè)的不斷發(fā)展,plc憑借其自身的特性,受到越來(lái)越多的廠商重視。但是傳統(tǒng)的plc有很多缺點(diǎn),例如價(jià)格比較高、通用性差,移植困難,缺乏開(kāi)放的體系,需要受制于plc廠商。
目前已有一些克服上述缺陷的專利出現(xiàn),例如,中國(guó)發(fā)明專利申請(qǐng)?zhí)?01610064750.4公開(kāi)了一種在fpga平臺(tái)實(shí)現(xiàn)plc控制的方法及裝置,該發(fā)明一種在fpga平臺(tái)實(shí)現(xiàn)plc控制的方法及裝置,該方法是由st2fp解析器轉(zhuǎn)換成veriloghdl程序,不僅能正確實(shí)現(xiàn)plc的輸入輸出邏輯,而且程序可以在fpga平臺(tái)并行運(yùn)行,從根本上改變了傳統(tǒng)plc的只能順序掃描執(zhí)行程序的方式,plc程序執(zhí)行的時(shí)間與程序的大小沒(méi)有關(guān)系,只和程序的依賴層次有關(guān)系,fpga-plc程序執(zhí)行效率是傳統(tǒng)plc無(wú)法比擬的;該裝置將iec-61131-3標(biāo)準(zhǔn)應(yīng)用在了fpga-plc上,克服了傳統(tǒng)plc的封閉性和兼容性差等缺點(diǎn),有利于打破高端plc廠家壟斷局面,還利用fpga并行執(zhí)行程序的特性,使得該發(fā)明fpga-plc能并行執(zhí)行plc程序,大幅提升了plc的實(shí)時(shí)性,fpga的處理是純硬件的實(shí)現(xiàn)過(guò)程,使得fpga-plc系統(tǒng)具有很高的穩(wěn)定性。
再者,在一般工廠中,傳感器和執(zhí)行器通過(guò)自動(dòng)化總線連接到plc,傳統(tǒng)的方法是使用總線系統(tǒng)主導(dǎo),而今,更強(qiáng)大、靈活的自動(dòng)化網(wǎng)絡(luò)的出現(xiàn)可以讓成千上萬(wàn)的傳感器和執(zhí)行器連接到同一網(wǎng)絡(luò),而且可以達(dá)到自動(dòng)控制所要求的實(shí)時(shí)性。這就使得將61131-3應(yīng)用程序從現(xiàn)場(chǎng)級(jí)別部署到計(jì)算設(shè)備上變成了可能。這些計(jì)算設(shè)備擁有強(qiáng)大的計(jì)算能力和靈活性,可以快速地適應(yīng)應(yīng)用程序的不斷變化。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明旨在解決在一般計(jì)算設(shè)備上運(yùn)行iec61131-3程序的問(wèn)題。
本發(fā)明的主要目的在于提供一種將iec61131-3程序翻譯成一般高級(jí)語(yǔ)言的方法。
本發(fā)明的另一目的在于提供一種可以運(yùn)行iec61131-3程序的虛擬機(jī)環(huán)境。
為達(dá)到上述目的,本發(fā)明的技術(shù)方案具體是這樣實(shí)現(xiàn)的:
一種基于虛擬機(jī)的程序運(yùn)行方法,包括:
步驟一:使用開(kāi)發(fā)工具將iec61131-3程序?qū)С鰹閤ml格式文件。
步驟二:使用程序翻譯器將xml格式文件翻譯成高級(jí)語(yǔ)言程序。
步驟三:將可運(yùn)行高級(jí)程序的虛擬機(jī)部署到多平臺(tái)設(shè)備上。
步驟四:使用高級(jí)語(yǔ)言編譯器將高級(jí)語(yǔ)言程序編譯為可執(zhí)行文件。
步驟五:將需要控制的多平臺(tái)設(shè)備通過(guò)總線或網(wǎng)絡(luò)與通用計(jì)算設(shè)備相連。
所述步驟一中的iec61131-3程序?yàn)榉膇ec61131-3標(biāo)準(zhǔn)的梯形圖、功能塊圖、順序功能圖、指令表結(jié)構(gòu)化文本程序。
所述步驟二中的程序翻譯器是基于高級(jí)語(yǔ)言的,可以將plcopenxml翻譯成高級(jí)語(yǔ)言程序。
所述步驟二中的程序翻譯器將plcopenxml中的configurations,pou,task等屬性翻譯成高級(jí)語(yǔ)言的字段和函數(shù)。
所述步驟二中的xml格式為服從iec61131-3標(biāo)準(zhǔn)的plcopenxml格式。
所述步驟三中的高級(jí)語(yǔ)言程序可為java,c++,c,c#,.net。
所述步驟三中的虛擬機(jī)為java虛擬機(jī),clr虛擬機(jī)。
所述步驟三中的虛擬機(jī)保證允許實(shí)現(xiàn)程序掃描循環(huán)執(zhí)行,并允許實(shí)時(shí)調(diào)度與iec61131-3pou相關(guān)的任務(wù)和相關(guān)執(zhí)行。
所述步驟三中相應(yīng)多平臺(tái)為windows,linux及l(fā)inux衍生平臺(tái)。
所述步驟五中通用計(jì)算設(shè)備為通用計(jì)算機(jī)和集群設(shè)備。
由上述本發(fā)明提供的技術(shù)方案可以看出,本發(fā)明提供了一種基于虛擬機(jī)的61131-3程序運(yùn)行環(huán)境,使得可以在普通計(jì)算設(shè)備上運(yùn)行iec61131-3程序,進(jìn)而可以代替?zhèn)鹘y(tǒng)的plc,克服了傳統(tǒng)plc的通用性差,價(jià)格高,移植困難的缺點(diǎn)。同時(shí)一般計(jì)算設(shè)備的強(qiáng)大計(jì)算能力和優(yōu)秀的網(wǎng)絡(luò)環(huán)境使得iec61131-3程序具有更高的穩(wěn)定性和實(shí)時(shí)性。
附圖說(shuō)明
通過(guò)閱讀下文優(yōu)選實(shí)施方式的詳細(xì)描述,各種其他的優(yōu)點(diǎn)和益處對(duì)于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實(shí)施方式的目的,而并不認(rèn)為是對(duì)本發(fā)明的限制。而且在整個(gè)附圖中,用相同的參考符號(hào)表示相同的部件。在附圖中:
附圖1示出了根據(jù)本發(fā)明實(shí)施方式的基于虛擬機(jī)的程序運(yùn)行方法流程圖。
附圖2示出了根據(jù)本發(fā)明實(shí)施方式的基于虛擬機(jī)的程序運(yùn)行環(huán)境的工作原理圖。
具體實(shí)施方式
下面將參照附圖更詳細(xì)地描述本公開(kāi)的示例性實(shí)施方式。雖然附圖中顯示了本公開(kāi)的示例性實(shí)施方式,然而應(yīng)當(dāng)理解,可以以各種形式實(shí)現(xiàn)本公開(kāi)而不應(yīng)被這里闡述的實(shí)施方式所限制。相反,提供這些實(shí)施方式是為了能夠更透徹地理解本公開(kāi),并且能夠?qū)⒈竟_(kāi)的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。
實(shí)施例1
本發(fā)明構(gòu)造了一種基于虛擬機(jī)的61131-3程序運(yùn)行環(huán)境,主要包括:使用開(kāi)發(fā)工具將iec61131-3程序?qū)С鰹閤ml格式文件,再使用程序翻譯器將xml格式文件翻譯成高級(jí)語(yǔ)言程序,將可運(yùn)行高級(jí)程序的虛擬機(jī)部署到多平臺(tái)設(shè)備上,最后使用高級(jí)語(yǔ)言編譯器將高級(jí)語(yǔ)言程序編譯為可執(zhí)行文件,然后部署到相應(yīng)普通計(jì)算設(shè)備上。通過(guò)本發(fā)明可以使得在普通計(jì)算設(shè)備上運(yùn)行iec61131-3程序,進(jìn)而可以代替?zhèn)鹘y(tǒng)的plc,克服了傳統(tǒng)plc的通用性差,價(jià)格高,移植困難的缺點(diǎn)。同時(shí)一般計(jì)算設(shè)備的強(qiáng)大計(jì)算能力和優(yōu)秀的網(wǎng)絡(luò)環(huán)境使得iec61131-3程序具有更高的穩(wěn)定性和實(shí)時(shí)性。
如圖1所示,本發(fā)明提供一種基于虛擬機(jī)的61131-3程序運(yùn)行方法,包括如下步驟:
s1:使用開(kāi)發(fā)工具將iec61131-3程序?qū)С鰹閤ml格式文件。所述iec61131-3程序?yàn)榉膇ec61131-3標(biāo)準(zhǔn)的梯形圖、功能塊圖、順序功能圖、指令表、結(jié)構(gòu)化文本程序。所述開(kāi)發(fā)工具指的是61131-3plc開(kāi)發(fā)工具,如codesys,twincat,kw等。
s2:使用程序翻譯器將xml格式文件翻譯成高級(jí)語(yǔ)言程序。所述xml格式為服從iec61131-3標(biāo)準(zhǔn)的plcopenxml格式。所述程序翻譯器是基于高級(jí)語(yǔ)言的,可以將plcopenxml翻譯成高級(jí)語(yǔ)言程序。程序翻譯器將plcopenxml中的configurations,pou,task等屬性翻譯成高級(jí)語(yǔ)言的字段和函數(shù)。所述高級(jí)語(yǔ)言程序可為java,c++,c,c#,.net。
s3:將可運(yùn)行高級(jí)程序的虛擬機(jī)部署到多平臺(tái)設(shè)備上。所述虛擬機(jī)為java虛擬機(jī),clr虛擬機(jī)。虛擬機(jī)保證允許實(shí)現(xiàn)程序掃描循環(huán)執(zhí)行,并允許實(shí)時(shí)調(diào)度與iec61131-3pou相關(guān)的任務(wù)和相關(guān)執(zhí)行。所述相應(yīng)多平臺(tái)為windows,linux及l(fā)inux衍生平臺(tái)。
s4:使用高級(jí)語(yǔ)言編譯器將高級(jí)語(yǔ)言程序編譯為可執(zhí)行文件。
s5:將需要控制的多平臺(tái)設(shè)備通過(guò)總線或網(wǎng)絡(luò)與通用計(jì)算設(shè)備相連。所述通用計(jì)算設(shè)備為通用計(jì)算機(jī)和集群設(shè)備。
如圖2所示,本發(fā)明的工作原理如下:
首先將寫(xiě)好的服從iec61131-3的plc程序?qū)С鰹閜lcopenxml文件,得到的plcopenxml文件中包含了configurations,pou,task等plc程序組件,以便下一步翻譯程序。
然后使用基于高級(jí)語(yǔ)言的程序翻譯器將得到的plcopenxml翻譯成高級(jí)語(yǔ)言程序,plcopenxml中的不同屬性對(duì)應(yīng)高級(jí)程序中的不同類型字段,每個(gè)task對(duì)應(yīng)一個(gè)無(wú)限循環(huán)執(zhí)行的函數(shù)。
為了實(shí)現(xiàn)與plc相同行為的實(shí)時(shí)運(yùn)行環(huán)境,可以使用基于javavm或clrvm等虛擬機(jī)實(shí)現(xiàn),保證允許實(shí)現(xiàn)程序掃描循環(huán)執(zhí)行,并允許實(shí)時(shí)調(diào)度與iec61131-3pou相關(guān)的任務(wù)和相關(guān)執(zhí)行。將虛擬機(jī)部署到需要的windows,linux平臺(tái)或其他linux衍生平臺(tái)上。
再使用高級(jí)程序編譯器將得到的高級(jí)程序編譯成可執(zhí)行文件,并部署到虛擬機(jī)中。
最后將需要控制的上述多平臺(tái)設(shè)備通過(guò)總線或網(wǎng)絡(luò)與通用計(jì)算設(shè)備相連,從而達(dá)到使用通用計(jì)算設(shè)備代替plc的效果。
由上述本發(fā)明提供的技術(shù)方案可以看出,本發(fā)明提供了一種基于虛擬機(jī)的61131-3程序運(yùn)行環(huán)境,使得可以在普通計(jì)算設(shè)備上運(yùn)行iec61131-3程序,進(jìn)而可以代替?zhèn)鹘y(tǒng)的plc,克服了傳統(tǒng)plc的通用性差,價(jià)格高,移植困難的缺點(diǎn)。同時(shí)一般計(jì)算設(shè)備的強(qiáng)大計(jì)算能力和優(yōu)秀的網(wǎng)絡(luò)環(huán)境使得iec61131-3程序具有更高的穩(wěn)定性和實(shí)時(shí)性。
在本說(shuō)明書(shū)的描述中,參考術(shù)語(yǔ)“一個(gè)實(shí)施例”、“一些實(shí)施例”、“示例”、“具體示例”、或“一些示例”等的描述意指結(jié)合該實(shí)施例或示例描述的具體特征、結(jié)構(gòu)、材料或者特點(diǎn)包含于本發(fā)明的至少一個(gè)實(shí)施例或示例中。在本說(shuō)明書(shū)中,對(duì)上述術(shù)語(yǔ)的示意性表述不一定指的是相同的實(shí)施例或示例。而且,描述的具體特征、結(jié)構(gòu)、材料或者特點(diǎn)可以在任何的一個(gè)或多個(gè)實(shí)施例或示例中以合適的方式結(jié)合。
以上所述,僅為本發(fā)明較佳的具體實(shí)施方式,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)以所述權(quán)利要求的保護(hù)范圍為準(zhǔn)。