0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

關(guān)于PLC編程該選擇那種IEC 61131-3編程語(yǔ)言最適合

jf_f8pIz0xS ? 來(lái)源:控制工程網(wǎng) ? 作者:Gary L. Pratt ? 2021-04-14 15:23 ? 次閱讀

編程邏輯控制器PLC)有很多編程語(yǔ)言可供選擇。有種說(shuō)法,標(biāo)準(zhǔn)的偉大之處在于有很多選擇!盡管這很諷刺,但在IEC 61131-3編程語(yǔ)言中,有多種語(yǔ)言標(biāo)準(zhǔn)可供選擇確實(shí)是一個(gè)優(yōu)勢(shì)。

在參加我的培訓(xùn)班時(shí),很多學(xué)生抱著這樣一種心態(tài):選擇最適合自己的語(yǔ)言,然后專門學(xué)習(xí)該語(yǔ)言。上課伊始,他們經(jīng)常會(huì)問(wèn)我會(huì)推薦適用哪種語(yǔ)言?;蛘撸白詈玫恼Z(yǔ)言是哪個(gè)?”

圖1:IEC 61131-3編程語(yǔ)言提供了適合特定需求的語(yǔ)言。

我沒(méi)有回答,問(wèn)他們一個(gè)問(wèn)題:“在阿拉伯?dāng)?shù)字中,哪個(gè)數(shù)字最好?”或“英語(yǔ)中,哪個(gè)詞最好?” 再比如:辦公室軟件中,哪個(gè)工具最好?是文檔編輯器、演示文稿編輯器,還是電子表格編輯器?雖然可以使用文檔編輯器創(chuàng)建演示文稿和電子表格,但這是正確的方法嗎?

圖2:該圖比較了在Codesys中實(shí)現(xiàn)復(fù)雜布爾邏輯的不同語(yǔ)言。

使用一種工具實(shí)現(xiàn)多種目的,需要學(xué)習(xí)各種技巧,這是否值得付出??jī)H學(xué)習(xí)該工具對(duì)工作有用的主要功能,是不是更有效?與辦公軟件一樣,為應(yīng)用選擇最佳編程語(yǔ)言是最有效的,可以避免很多麻煩。當(dāng)使用的IEC 61131-3編程語(yǔ)言能夠充分發(fā)揮其語(yǔ)言的優(yōu)勢(shì)時(shí),PLC的編程和維護(hù)功能就會(huì)得到加強(qiáng)。

梯形圖編程

梯形圖(LD)編程的歷史,可以追溯到大約100年前的繼電器梯形邏輯(RLL),它主要用于描述電氣元件系統(tǒng)(如繼電器、計(jì)時(shí)器和電動(dòng)機(jī))。在自動(dòng)化時(shí)代初期PLC逐步替換繼電器和計(jì)時(shí)器時(shí),創(chuàng)建一種用戶熟悉并與被替換的工具相似的編程語(yǔ)言非常重要。

不幸的是,控制器變得越來(lái)越強(qiáng)大,能夠?qū)崿F(xiàn)的功能也已經(jīng)遠(yuǎn)遠(yuǎn)超過(guò)繼電器和計(jì)時(shí)器,LD語(yǔ)言被用于各種新的場(chǎng)景,而這并不是LD所擅長(zhǎng)的,因此效果也不是特別理想。

圖3:該圖顯示了順序功能圖的編程組件。

PLC供應(yīng)商提供新的、更適合PLC和可編程自動(dòng)化控制器(PAC)應(yīng)用的語(yǔ)言的速度比較緩慢,使這種情況進(jìn)一步惡化。對(duì)于源自北美的控制器而言尤其如此,這可以解釋在全球范圍內(nèi),LD持久受歡迎的程度為什么會(huì)有所差異。

LD編程的優(yōu)勢(shì)是什么?為什么它能持久受歡迎?關(guān)鍵就是圖形化。而通常來(lái)說(shuō)工程師是更傾向于圖形化思維的。

起初,大多數(shù)LD編程的替代方法都是基于文本的語(yǔ)言,這些語(yǔ)言與工程師的圖形化思維不會(huì)產(chǎn)生共鳴,其結(jié)果就是不愿從LD轉(zhuǎn)向其它語(yǔ)言。幸運(yùn)的是,這種情況正在發(fā)生變化。

LD仍然是一門偉大的語(yǔ)言,它的初衷是執(zhí)行復(fù)雜的布爾邏輯。在這個(gè)領(lǐng)域內(nèi),LD邏輯易于設(shè)計(jì)且易于調(diào)試。要確定為什么結(jié)果與預(yù)期不符,有多容易?在LD語(yǔ)言中,只需要觀察藍(lán)色實(shí)心觸點(diǎn)的路徑在何處中斷就可以快速獲得答案。

順序功能圖編程

順序功能圖(SFC)是一種圖形語(yǔ)言,非常適合表示狀態(tài)機(jī)(state machine),并且像LD語(yǔ)言一樣,它吸引了工程師的圖形化思維天性。

圖4:基于Codesys連續(xù)功能圖語(yǔ)言,展示了一個(gè)基于塊的編程設(shè)計(jì)示例。

狀態(tài)機(jī)的歷史可以追溯到很多年前,但是直到最近才被用于工業(yè)編程。狀態(tài)機(jī)是表示系統(tǒng)行為的一種非常強(qiáng)大的方法,可用于表達(dá)行為取決于過(guò)去歷史記錄的系統(tǒng)邏輯,例如:

1.設(shè)置線圈或復(fù)位線圈;

2.封裝邏輯(布爾反饋);

3.由代碼設(shè)置的內(nèi)部標(biāo)志,用于決定未來(lái)的行為。

實(shí)際上,即使是簡(jiǎn)單的TON On-Timer和R-Trig one-shot都是狀態(tài)機(jī)。它們的下一個(gè)行為取決于先前的輸入和行為。與其它編碼技術(shù)相比,狀態(tài)機(jī)具有許多優(yōu)勢(shì):

1.它們易于設(shè)計(jì),因?yàn)樗宄孛枋隽讼到y(tǒng)可能的狀態(tài),系統(tǒng)如何在這些狀態(tài)之間轉(zhuǎn)換,系統(tǒng)在這些狀態(tài)下應(yīng)采取的行動(dòng)。

2.在運(yùn)行時(shí),可以很容易地確定系統(tǒng)處于什么狀態(tài),在該狀態(tài)下正在做什么,以及在什么條件下系統(tǒng)會(huì)切換到下一個(gè)狀態(tài)(或者過(guò)程中出了什么問(wèn)題,導(dǎo)致無(wú)法切換到下一個(gè)狀態(tài))。

3.促進(jìn)構(gòu)思周密且組織良好的設(shè)計(jì)。這樣可以確保所有可能的事件都已得到妥善處理(就不會(huì)有人半夜三更把你從床上叫起來(lái),去修復(fù)無(wú)法正確處理異常工況的代碼)。

4.易于確定是否已經(jīng)測(cè)試了所有可能事件。只需打印出SFC,并在執(zhí)檢查時(shí)劃掉每個(gè)狀態(tài)和切換條件即可。完成所有工作后,測(cè)試就完成了(程序員的置信度為100%)。

如何實(shí)現(xiàn)狀態(tài)機(jī)?

幾乎任何語(yǔ)言都可以實(shí)現(xiàn)狀態(tài)機(jī),但它們都需要特定的編碼技術(shù),包括步(step)、轉(zhuǎn)換(transition)、分支/跳轉(zhuǎn)(branch/jump)和動(dòng)作(action)。

步描述了系統(tǒng)可以駐留的狀態(tài);轉(zhuǎn)換指示系統(tǒng)何時(shí)應(yīng)從上一步轉(zhuǎn)移至下一步;分支和跳轉(zhuǎn)指示下一步應(yīng)該是什么;動(dòng)作指定在該步期間(進(jìn)入或退出該步)應(yīng)執(zhí)行的操作。

由于其圖形化屬性和工作的專業(yè)性,SFC語(yǔ)言是狀態(tài)機(jī)最自然的選擇。對(duì)于那些需求異常復(fù)雜或要求特別靈活的系統(tǒng),狀態(tài)機(jī)也可以用基于文本的語(yǔ)言來(lái)實(shí)現(xiàn)。對(duì)于只能使用LD的企業(yè),狀態(tài)機(jī)甚至可以在LD中實(shí)現(xiàn),方法是為每個(gè)狀態(tài)使用一個(gè)線圈,轉(zhuǎn)移邏輯為每個(gè)線圈通電/斷電,將系統(tǒng)從一個(gè)狀態(tài)轉(zhuǎn)移到下一個(gè)狀態(tài),以及利用使用狀態(tài)線圈的獨(dú)立邏輯來(lái)執(zhí)行動(dòng)作。

一些供應(yīng)商還可以用統(tǒng)一建模語(yǔ)言(UML)來(lái)實(shí)現(xiàn)狀態(tài)圖,作為SFC的更強(qiáng)大、更靈活的替代方法,但這需要更長(zhǎng)的學(xué)習(xí)曲線,而且在工業(yè)控制領(lǐng)域中的接受度有限。

對(duì)于狀態(tài)機(jī),語(yǔ)言的選擇是次要的,所用技術(shù)的選擇更重要。在SFC中,該語(yǔ)言強(qiáng)制使用狀態(tài)機(jī)技術(shù)。在其它語(yǔ)言中,使用的技術(shù)取決于工程師制定的規(guī)則。

圖5:結(jié)構(gòu)引腳可以減少不必要的細(xì)節(jié)和混亂,從而增強(qiáng)了圖表的可讀性。

功能塊圖編程

功能塊圖(FBD)是一種圖形語(yǔ)言,符合工程師的圖形化思維。來(lái)自Codesys(以前被稱為3S-Smart Software Solutions)的集成開發(fā)環(huán)境提供了兩種FBD,即傳統(tǒng)的IEC 61131-3 FBD和類似但更靈活的連續(xù)功能塊圖(CFC),CFC還沒(méi)有正式成為IEC 61131-3的一部分。CFC是FBD的超集,具有兩大優(yōu)勢(shì):

1.基于塊的功能編程(執(zhí)行布爾和數(shù)學(xué)運(yùn)算);

2.分層設(shè)計(jì)(調(diào)用其它功能和功能塊)。

·基于塊的編程

基于塊的設(shè)計(jì)由預(yù)定義功能組件組成,這些組件連接在一起執(zhí)行布爾邏輯、數(shù)學(xué)計(jì)算或二者兼而有之。當(dāng)輸出是輸入的函數(shù)時(shí)(換句話說(shuō),當(dāng)沒(méi)有狀態(tài)變量,例如布爾反饋、設(shè)置/復(fù)位線圈或標(biāo)志時(shí)),CFC塊編程非常出色。當(dāng)同時(shí)使用無(wú)狀態(tài)功能和基于狀態(tài)的功能時(shí),請(qǐng)結(jié)合使用CFC和SFC。

因?yàn)檫B接性是用功能塊之間的線來(lái)表示的,所以很容易理解信息流以及信息是如何沿著其路徑進(jìn)行修改的。如果功能開始變得復(fù)雜,則應(yīng)將其分為較小的、更易于管理的子塊。如果塊之間存在大量連接,則可以將這些線連接至數(shù)據(jù)結(jié)構(gòu)類型的引腳。

結(jié)構(gòu)引腳(structure pin)具有3個(gè)優(yōu)點(diǎn):

1.在層次化結(jié)構(gòu)設(shè)計(jì)中,每個(gè)層次都消除了不必要的細(xì)節(jié),更清晰易于理解;

2.保持較小的功能塊,可以在一頁(yè)上查看整個(gè)信息流;

3.允許信息流向上游和下游,以進(jìn)一步減少不必要的細(xì)節(jié)。

對(duì)于以前采用LD實(shí)施基于塊或分層功能的PLC程序員來(lái)講,CFC提供了一種更為簡(jiǎn)潔和靈活的方法。CFC的開發(fā)速度更快,而且對(duì)于將來(lái)負(fù)責(zé)維護(hù)或改進(jìn)代碼的工程師來(lái)說(shuō),也更容易理解。

·分層設(shè)計(jì)

分層設(shè)計(jì)是一種從很多簡(jiǎn)單的構(gòu)建塊層層設(shè)計(jì)的實(shí)踐。與傳統(tǒng)的扁平化設(shè)計(jì)相比,分層設(shè)計(jì)具有許多優(yōu)點(diǎn):

1.定制;

2.創(chuàng)建;

3.測(cè)試與完善;

4.理解和維護(hù);

5.易于復(fù)用。

構(gòu)建塊技術(shù)支持并鼓勵(lì)在層次結(jié)構(gòu)的每個(gè)級(jí)別上,展現(xiàn)同等程度的細(xì)節(jié),這就使塊技術(shù)更易于設(shè)計(jì)和理解。這樣,在較高層次的設(shè)計(jì)中,不必因?yàn)檎宫F(xiàn)細(xì)節(jié)而被弄得雜亂無(wú)章,這些細(xì)節(jié)只在較低層的設(shè)計(jì)中很重要。在層次結(jié)構(gòu)的每個(gè)級(jí)別上,分層CFC設(shè)計(jì)應(yīng)都具有統(tǒng)一的細(xì)節(jié)展示。

使用LD作為構(gòu)建塊語(yǔ)言的傳統(tǒng)方法會(huì)存在2個(gè)弊端:

1.信息的低密度導(dǎo)致LD設(shè)計(jì)可能會(huì)分布到數(shù)10頁(yè)上,很難或不可能看到和理解全局;

2.不同層次的細(xì)節(jié)混雜在同一層次上會(huì)十分混亂,這使設(shè)計(jì)難以理解和維護(hù)。

而使用結(jié)構(gòu)化文本的CFC分層設(shè)計(jì)可以解決這兩個(gè)問(wèn)題,同時(shí)保持了LD的圖形特性。這是個(gè)兩全其美的解決方案。

分層設(shè)計(jì)是面向?qū)ο蟮墓I(yè)編程(OOIP)的關(guān)鍵功能。在部署和配置用戶自定義的功能塊以后,CFC編程開始與分布式控制系統(tǒng)DCS)的編程/組態(tài)有點(diǎn)類似,但使用IEC 61131-3程序員可以控制底層的塊。如果某個(gè)塊需要較小的改進(jìn),程序員就可以執(zhí)行此操作,而無(wú)需費(fèi)時(shí)費(fèi)力的請(qǐng)DCS供應(yīng)商介入。

完整的分層PLC設(shè)計(jì),可以看作是一棵由分層CFC構(gòu)成主干和分支的樹?;趬K的CFC、SFC、LD和ST填充樹葉所處位置的詳細(xì)功能設(shè)計(jì)。IEC 61131-3語(yǔ)言共同構(gòu)成了一個(gè)團(tuán)隊(duì),該團(tuán)隊(duì)比其各個(gè)部分的功能更強(qiáng)大。

結(jié)構(gòu)化文本編程

盡管LD、SFC和FBD/CFC語(yǔ)言可以出色的完成其任務(wù),但有些運(yùn)算并不適合使用圖形化語(yǔ)言。

一些支持使用結(jié)構(gòu)化文本(ST)語(yǔ)言編程的運(yùn)算包括:

1.迭代運(yùn)算,例如For、While和Repeat;

2.復(fù)雜條件和選擇,例如IF-THEN和CASE;

3.位運(yùn)算,例如按位與、移位、旋轉(zhuǎn);

4.文本字符串運(yùn)算;

5.具有特殊要求或特別復(fù)雜的狀態(tài)機(jī);

6.純粹的面向?qū)ο缶幊蹋ㄕ{(diào)用方法,設(shè)置屬性等)。

有許多很好的教程,可指導(dǎo)工程師從其它基于文本的語(yǔ)言過(guò)渡到ST。對(duì)于那些完全不熟悉基于文本的語(yǔ)言的人來(lái)說(shuō),Visual Basic教程是一個(gè)很好的起點(diǎn)。盡管結(jié)構(gòu)化文本基于Pascal編程語(yǔ)言,但它與VB有非常相似,因此可以參考應(yīng)用更廣泛的VB教程。

圖6:此處的分層設(shè)計(jì)是在連續(xù)功能圖編程中實(shí)現(xiàn)的。

使用最合適的語(yǔ)言編程

要?jiǎng)?chuàng)建有效的工業(yè)控制程序,掌握合適的編程語(yǔ)言并知道如何有效使用這些語(yǔ)言非常重要。有很多語(yǔ)言可供PLC選擇,IEC 61131-3編程語(yǔ)言標(biāo)準(zhǔn)也提供了多種選擇。充分利用每種語(yǔ)言的優(yōu)勢(shì)效率會(huì)更高,而不是學(xué)習(xí)一種語(yǔ)言的各種技巧和變通方法來(lái)使其適用于所有應(yīng)用。程序員應(yīng)為應(yīng)用選擇最佳語(yǔ)言。

“為了創(chuàng)建有效的工業(yè)控制程序,掌握合適的語(yǔ)言,并知道如何有效使用這些語(yǔ)言非常重要?!?br /> 編輯:lyn

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • IEC
    IEC
    +關(guān)注

    關(guān)注

    2

    文章

    200

    瀏覽量

    28908
  • PLC編程
    +關(guān)注

    關(guān)注

    46

    文章

    246

    瀏覽量

    37473
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    三菱PLC編程語(yǔ)言解析

    三菱電機(jī)(Mitsubishi Electric)是全球知名的自動(dòng)化和制造解決方案供應(yīng)商,其PLC(可編程邏輯控制器)產(chǎn)品廣泛應(yīng)用于工業(yè)自動(dòng)化領(lǐng)域。三菱PLC編程
    的頭像 發(fā)表于 12-26 17:36 ?277次閱讀

    如何選擇適合自己的編程語(yǔ)言

    在當(dāng)今這個(gè)技術(shù)日新月異的時(shí)代,編程語(yǔ)言選擇對(duì)于軟件開發(fā)者來(lái)說(shuō)至關(guān)重要。不同的編程語(yǔ)言有著不同的優(yōu)勢(shì)和適用場(chǎng)景,因此,
    的頭像 發(fā)表于 11-15 09:37 ?410次閱讀

    plc編程語(yǔ)言編程相關(guān)技巧有哪些

    PLC(可編程邏輯控制器)編程語(yǔ)言及相關(guān)編程技巧是工業(yè)自動(dòng)化領(lǐng)域中不可或缺的知識(shí)。 一、PLC
    的頭像 發(fā)表于 10-21 16:56 ?364次閱讀

    plc編程語(yǔ)言有哪幾種

    編程邏輯控制器(PLC)是一種廣泛應(yīng)用于工業(yè)自動(dòng)化領(lǐng)域的電子設(shè)備,用于實(shí)現(xiàn)對(duì)生產(chǎn)過(guò)程的控制和管理。PLC編程語(yǔ)言是實(shí)現(xiàn)控制邏輯的關(guān)鍵工具
    的頭像 發(fā)表于 08-25 10:07 ?493次閱讀

    plc編程st語(yǔ)言怎么編

    PLC(可編程邏輯控制器)編程中的ST(Structured Text)語(yǔ)言是一種高級(jí)編程語(yǔ)言
    的頭像 發(fā)表于 08-25 10:05 ?1271次閱讀

    PLC編程方式及編程語(yǔ)言

    在工業(yè)自動(dòng)化領(lǐng)域,PLC(Programmable Logic Controller,可編程邏輯控制器)因其強(qiáng)大的控制功能和靈活的編程方式而得到了廣泛應(yīng)用。PLC
    的頭像 發(fā)表于 06-27 14:08 ?776次閱讀

    PLC編程語(yǔ)言和C語(yǔ)言的區(qū)別

    在工業(yè)自動(dòng)化和計(jì)算機(jī)編程領(lǐng)域中,PLC(可編程邏輯控制器)編程語(yǔ)言和C語(yǔ)言各自扮演著重要的角色。
    的頭像 發(fā)表于 06-14 17:11 ?2890次閱讀

    PLC常用編程語(yǔ)言有哪些

    語(yǔ)言多種多樣,每種語(yǔ)言都有其獨(dú)特的特點(diǎn)和適用場(chǎng)景。本文將詳細(xì)介紹PLC常用的編程語(yǔ)言,包括梯形圖(LD)、指令表(IL)、功能模塊圖(FBD
    的頭像 發(fā)表于 06-14 16:58 ?1501次閱讀

    如何選擇最適合你的UV LED固化機(jī)?

    在現(xiàn)代化的工業(yè)生產(chǎn)中,UV LED固化機(jī)以其高效、環(huán)保、節(jié)能等諸多優(yōu)點(diǎn),逐漸成為了固化工藝的首選設(shè)備。然而,市場(chǎng)上的UV LED固化機(jī)種類繁多,性能各異,如何選擇最適合自己需求的固化機(jī)呢?本文將為您
    的頭像 發(fā)表于 05-18 14:19 ?426次閱讀
    如何<b class='flag-5'>選擇</b><b class='flag-5'>最適合</b>你的UV LED固化機(jī)?

    PLC順序功能圖(SFC)編程深入解析

    稱為順序功能圖 (SFC) 的圖形編程語(yǔ)言IEC 61131-3 標(biāo)準(zhǔn)化。圖表從上到下閱讀,塊用于表示步驟、轉(zhuǎn)換和功能。這種
    發(fā)表于 03-21 11:45 ?1w次閱讀
    <b class='flag-5'>PLC</b>順序功能圖(SFC)<b class='flag-5'>編程</b>深入解析

    高清視頻編碼器選購(gòu)指南:如何選擇最適合你的編碼器

    高清視頻編碼器作為視頻處理與傳輸?shù)暮诵脑O(shè)備,對(duì)于保證視頻質(zhì)量和提升用戶體驗(yàn)至關(guān)重要。然而,市面上的高清視頻編碼器種類繁多,功能各異,如何選擇最適合自己的編碼器成為了一個(gè)關(guān)鍵問(wèn)題。本文將為你提供一份
    的頭像 發(fā)表于 02-20 15:19 ?1165次閱讀

    plc編程語(yǔ)言與c語(yǔ)言的聯(lián)系 c語(yǔ)言PLC有什么區(qū)別

    PLC編程語(yǔ)言與C語(yǔ)言的聯(lián)系 PLC(可編程邏輯控制器)是一種針對(duì)自動(dòng)化控制系統(tǒng)的特殊計(jì)算機(jī)。
    的頭像 發(fā)表于 02-05 14:21 ?4187次閱讀

    plc編程入門基礎(chǔ)知識(shí) plc編程語(yǔ)言有幾種

    PLC(Programmable Logic Controller)是可以根據(jù)預(yù)設(shè)邏輯程序自動(dòng)控制工業(yè)過(guò)程的電子設(shè)備。PLC編程語(yǔ)言是與PLC
    的頭像 發(fā)表于 02-04 15:55 ?1674次閱讀

    plc編程語(yǔ)言有幾種,一般常用有哪些

    PLC(可編程邏輯控制器)是一種用于自動(dòng)化控制系統(tǒng)的電子設(shè)備,它使用特定的編程語(yǔ)言來(lái)控制和監(jiān)視機(jī)器或過(guò)程。常見的PLC
    的頭像 發(fā)表于 02-01 14:31 ?3767次閱讀

    plc常見的編程語(yǔ)言有哪幾種

    PLC(可編程邏輯控制器)常見的編程語(yǔ)言有五種,被稱為IEC 61131-3標(biāo)準(zhǔn)
    的頭像 發(fā)表于 01-24 17:59 ?5903次閱讀