国产aaaa级全身裸体精油片_337p人体粉嫩久久久红粉影视_一区中文字幕在线观看_国产亚洲精品一区二区_欧美裸体男粗大1609_午夜亚洲激情电影av_黄色小说入口_日本精品久久久久中文字幕_少妇思春三a级_亚洲视频自拍偷拍

首頁 > 化工知識(shí) > PLC基礎(chǔ)篇之編程語言的魅力

PLC基礎(chǔ)篇之編程語言的魅力

時(shí)間:2020-09-25 來源:方正智芯 瀏覽:

微電子技術(shù)的發(fā)展使得集成芯片具有了一定程度的“智能”,微處理器(CPU)能夠按照預(yù)先設(shè)定好的“程序”來運(yùn)行,人們通過編寫“程序”代碼,達(dá)到與計(jì)算機(jī)(PC)溝通的目的。

 

在計(jì)算機(jī)技術(shù)發(fā)展的早期,“程序”代碼的編寫并不是一件簡(jiǎn)單的事情。由于計(jì)算機(jī)本身只能理解“0”和“1”組成的代碼,于是編程人員只能把“0”和“1” 的數(shù)字編成的程序代碼打在紙帶(“1”打孔,“0”不打孔)上,然后將紙帶放入計(jì)算機(jī)的輸入系統(tǒng)中,這樣計(jì)算機(jī)才能明白程序員讓它完成什么任務(wù)。程序員編程時(shí)要充分定義好每一個(gè)“位”的含義,然后按照某種邏輯將它們組合成代碼。這種由“0”和“1”組成的代碼十分地復(fù)雜,人類很難理解(不知道外星人看著好理解不?),給程序的編寫、修改和維護(hù)都帶來了很大的困難。下面這張圖片是十六進(jìn)制的機(jī)器代碼(不管你能不能看懂,我反正是看不懂)

 

為了提高程序編寫的效率,提高代碼的可讀性及可維護(hù)性,計(jì)算機(jī)科學(xué)家們發(fā)明了“匯編語言”。匯編語言使用特定的英文符號(hào)代替機(jī)器指令,大大增強(qiáng)了程序的可讀性,提高了編程的效率。

匯編語言的英文指令雖然便于人類理解,但微處理器(CPU)卻無法理解。于是科學(xué)家們?cè)O(shè)計(jì)出一個(gè)專門的程序,用來把匯編語言的英文指令,“翻譯”成微處理器(CPU)能夠執(zhí)行的機(jī)器代碼,這個(gè)翻譯程序,被稱為“編譯器”(編譯器也有個(gè)發(fā)展的過程,不深究)。那些用匯編語言寫成的代碼,被稱為“源代碼”。下面這張圖片,左邊是機(jī)器代碼,右邊是匯編語言寫的“源代碼”:

匯編語言編程與早期的紙帶打孔編程相比,程序的可讀性大大增強(qiáng)。但隨著微處理器技術(shù)的迅猛發(fā)展,用匯編語言來寫程序也逐漸不能滿足需求了,主要表現(xiàn)在兩個(gè)方面:

第一:隨著程序復(fù)雜性的提高,匯編語言編寫的代碼量顯著增加,編寫和維護(hù)的難度變大;

第二:匯編語言依賴于特定的微處理器,程序的跨平臺(tái)移植性很差,很多時(shí)候需要重新編寫;

于是,一種不需要記憶繁雜指令的、與硬件平臺(tái)無關(guān)的編程語言就成了程序員們夢(mèng)寐以求的東西。于是,計(jì)算機(jī)高級(jí)編程語言便順天應(yīng)地的誕生了,其典型代表是C語言。C語言用結(jié)構(gòu)化的語句代替了匯編語言中的指令,提供了豐富的數(shù)據(jù)類型和運(yùn)算符,支持指針功能,編寫的代碼簡(jiǎn)潔緊湊,自其誕生之初就受到了眾多程序員的追捧,被視為編程語言的經(jīng)典。時(shí)至今日C語言仍保持著強(qiáng)大的生命力,在單片機(jī)和嵌入式程序設(shè)計(jì)中有著不可替代的地位。

隨著微電子技術(shù)在工業(yè)控制領(lǐng)域的使用,PLC(可編程邏輯控制器)取代了傳統(tǒng)的繼電器控制系統(tǒng)。作為“可編程”邏輯控制器,編程語言必不可少。但是由于各大廠家的PLC產(chǎn)品自成一派,相互不兼容,編程語言的語法也各有所好,形形色色,PLC應(yīng)用和推廣帶來了不便。

為了規(guī)范PLC的編程語言,國(guó)際電工委員會(huì)(International Electrotechnical Commission)起草并頒布了工業(yè)自動(dòng)化領(lǐng)域編程語言的標(biāo)準(zhǔn)(IEC 61131-3),制定了五種在工控領(lǐng)域使用的語言,包括圖形式語言和文本式語言。圖形式語言包括:梯形圖(LD-Ladder Diagram)、功能塊圖(FBD - Function Block Diagram)和順序功能圖(SFC - Sequential Function Chart)。文本式語言包括:指令表(IL-Instruction List)和結(jié)構(gòu)化文本(ST-Strutured Text)。

為了進(jìn)一步推廣IEC61131-3語言標(biāo)準(zhǔn),1992年成立了PLCOpen國(guó)際組織,總部位于荷蘭。PLCOpen國(guó)際組織是獨(dú)立于生產(chǎn)商和產(chǎn)品的全球性機(jī)構(gòu),其宗旨是規(guī)范工業(yè)控制領(lǐng)域軟件的編程方法,推廣IEC61131-3語言標(biāo)準(zhǔn)。符合該標(biāo)準(zhǔn)的編程語言,給予頒發(fā)PLCOpen證書。

IEC61131-3語言標(biāo)準(zhǔn)頒布后,各大PLC廠家紛紛表示支持,對(duì)自己的產(chǎn)品進(jìn)行了修正,下圖是西門子公司S7產(chǎn)品編程語言與IEC61131-3語言標(biāo)準(zhǔn)的對(duì)比:

 

下面我們來聊聊這五種編程語言:

在各種PLC的編程語言中,使用最多的梯形圖(LD-Ladder Diagram)語言。梯形圖是從早期繼電器控制系統(tǒng)原理圖演變而來,與繼電器電路圖相似,直觀易懂,保留了繼電器電路圖的風(fēng)格和習(xí)慣,是熟悉繼電器控制系統(tǒng)人員最容易接受和使用的語言。下圖是一個(gè)簡(jiǎn)單的梯形圖代碼:

梯形圖雖然容易上手,但是在編寫大型系統(tǒng)程序的時(shí)候會(huì)很吃力。很多書都建議初學(xué)者學(xué)習(xí)梯形圖,我不敢茍同,除非你接觸的都是些簡(jiǎn)單邏輯控制。當(dāng)你感到需要控制的邏輯系統(tǒng)變得復(fù)雜,想換一種語言的時(shí)候,基本還是要從頭學(xué)起。所以我建議初學(xué)者學(xué)習(xí)功能塊圖(FBD - Function Block Diagram)。

功能塊圖(FBD)使用數(shù)字電路的邏輯符號(hào)(“與”、“或”、“非”)來表達(dá)控制邏輯,在編寫大型復(fù)雜系統(tǒng)的時(shí)候也能保證邏輯清晰。下圖是功能塊圖(FBD)的簡(jiǎn)單示例:

 

結(jié)構(gòu)化文本(ST-Strutured Text)編程語言,在西門子PLC編程中被稱為SCL(Structure Language),先給你看看我在某項(xiàng)目中使用SCL編寫的程序代碼的截圖:

 

是不是和計(jì)算機(jī)編程很相似?SCL的語法類似VB(PASCAL)等高級(jí)語言,接近人類的思維方式,程序的可讀性很強(qiáng)。在西門子Step7 5.x平臺(tái)下可以使用插入源文件的方式進(jìn)行編程,在博途平臺(tái)下可以直接編寫。SCL可以說是工控領(lǐng)域里“高大上”的編程語言,它的源代碼編譯后的效率也很高,如果你之前接觸過計(jì)算機(jī)高級(jí)語言編程,強(qiáng)烈建議深入學(xué)習(xí)下SCL語言。

指令表(IL),在西門子PLC中稱為語句表(STL)。它類似于匯編語言,對(duì)編程人員要求較高,需要熟悉PLC內(nèi)部的各種寄存器、狀態(tài)字等等,需要熟悉各種指令,并清楚某指令執(zhí)行后會(huì)對(duì)哪些寄存器產(chǎn)生影響。語言表(STL)編寫的程序可讀性相對(duì)較低,但其執(zhí)行效率在所有的語言中是最高的。有些特殊的功能使用其它語言(比如梯形圖)表達(dá)很困難,或者根本無法表達(dá),語言表(STL)可能幾行代碼就完成了。下圖是一段簡(jiǎn)單的STL代碼的截圖:

順序功能圖(SFC- Sequential Function Chart)語言,在西門子PLC中稱為S7-GRAPH。該語言非常適合生產(chǎn)過程的順利控制,它把整個(gè)生產(chǎn)過程分成若干“步”,每一“步”都有某些動(dòng)作要完成,當(dāng)某個(gè)條件滿足后,可以跳到下一“步”,也就是所謂的“順序控制”。下圖是S7-GRAPH代碼的示意圖:

 

IEC61131-3推薦的五種語言,在不同的工控場(chǎng)合下均有使用,作為初學(xué)者,建議學(xué)習(xí)功能塊圖(FBD)語言。如果你有計(jì)算機(jī)高級(jí)語言編程的基礎(chǔ),建議學(xué)習(xí)下SCL語言。當(dāng)然,無論學(xué)哪種語言,都首先要理解PLC本身,要知道PLC內(nèi)部資源是如何存儲(chǔ)?程序是如何調(diào)用?知道了這些后,你才清楚程序應(yīng)該怎樣寫,以及為什么這樣寫。

本來我只想寫一篇介紹PLC語言的基礎(chǔ)文章,想到這些語言編寫的代碼其實(shí)都需要編譯成機(jī)器代碼,后來又聯(lián)想到計(jì)算機(jī)編程語言,于是就想從源頭給大家介紹下語言的演變過程,于是乎就寫了這么多,希望能幫你更好的理解計(jì)算機(jī)和PLC編程語言,在你以后的程序編寫過程中,感受編程語言的魅力。就先寫到這里吧,相關(guān)參考文章:

PLC基礎(chǔ)篇之PLC的誕生及工作原理

S7-1200硬件篇之讀懂CPU的內(nèi)部存儲(chǔ)區(qū)

S7-1200硬件篇之重新認(rèn)識(shí)CPU

版權(quán):如無特殊注明,文章轉(zhuǎn)載自網(wǎng)絡(luò),侵權(quán)請(qǐng)聯(lián)系cnmhg168#163.com刪除!文件均為網(wǎng)友上傳,僅供研究和學(xué)習(xí)使用,務(wù)必24小時(shí)內(nèi)刪除。
相關(guān)推薦