完美PLC程序什么樣子?PLC編程規(guī)范及建議28條

一矿卑、完美的PLC程序需滿足的設(shè)計要求

一套完整的PLC程序喉恋,并不僅僅是使系統(tǒng)能夠運(yùn)行起來這么簡單,它也需要完整的注釋母廷、精良的架構(gòu)轻黑、良好的可擴(kuò)展性、完備的報警保護(hù)系統(tǒng)琴昆、運(yùn)行前的模擬系統(tǒng)氓鄙。

1. 簡單性

使PLC程序盡可能簡單。簡單的含義就是盡可能的使用標(biāo)準(zhǔn)化的程序框架椎咧,盡可能使用簡單的指令玖详。

要想程序簡單,從大的方面講勤讽,要優(yōu)化程序結(jié)構(gòu)蟋座,用流程控制指令簡化程序,從小的方面講還要用功能強(qiáng)的指令取代功能單一的指令脚牍,以及注意指令的安排順序等向臀。

2. 可讀性

要求所設(shè)計的程序可讀性要好。這不僅便于程序設(shè)計者加深對程序的理解诸狭,便于調(diào)試券膀,而且君纫,還要便于別人讀懂你的程序,便于使用者維護(hù)芹彬。必要時蓄髓,也可使程序推廣。

要使程序可讀性好舒帮,所設(shè)計的程序就要盡可能清晰会喝。要注意層次,實現(xiàn)模塊化玩郊,以至于用面向?qū)ο蟮姆椒ㄟM(jìn)行設(shè)計肢执。要多用一些標(biāo)準(zhǔn)的設(shè)計。

如遇特殊情況下采用語言編程译红,多數(shù)情況下請使用梯形圖編程预茄,方便閱讀。

再就是I/O分配要有規(guī)律性侦厚,便于記憶與理解耻陕。必要時,還要做一些注釋工作。內(nèi)部器件的使用也要講規(guī)律性,不要隨便地拿來就用骑科。

可讀性在程序設(shè)計開始時就要注意弊琴。這不易完全做到。因為在程序調(diào)試的過程中,指令的增減,內(nèi)部器件的使用變化,可能使原較清晰的程序裁眯,變的有些亂。所以在設(shè)計時就對調(diào)試增減留有一定的余地讳癌,然后調(diào)試完畢后再做一下整理穿稳,這樣所設(shè)計的程序具有更高的質(zhì)量。

程序的注釋晌坤,起碼應(yīng)該有以下幾個方面:

A逢艘、系統(tǒng)注釋:整套程序的版權(quán)公司和此套程序用途

B、程序塊注釋:此程序塊的主要用途和作者

C骤菠、段注釋:此段代碼的用途

D它改、變量注釋:重要性無需多言,包含I/O注釋商乎、中間變量注釋

而至于保密性的考慮央拖,我覺得應(yīng)該在程序的加密算法或者塊的加密上考慮,而不應(yīng)該用減少注釋這種小聰明來實現(xiàn)。

3. 正確性

PLC的程序一定要正確鲜戒,并要經(jīng)過實際工作驗證专控,證明其能夠正確工作。這是對PLC程序的最根本的要求遏餐,若這一點(diǎn)做不到伦腐,其它的再好也沒有用。

要使程序正確失都,一定要準(zhǔn)確的使用指令蔗牡,正確的使用內(nèi)部器件。準(zhǔn)確的使用指令與準(zhǔn)確理解指令相聯(lián)系嗅剖,為此對指令含義和使用條件一定要弄清楚。必要時嘁扼,可編些小程序?qū)σ恍┎磺宄闹噶钭餍y試信粮。

同一指令,由于PLC的出廠批次不同或是PLC的系列型號的不同趁啸,一些指令細(xì)節(jié)有可能不一樣强缘,應(yīng)仔細(xì)查閱編程手冊。

內(nèi)部器件正確使用也是重要的不傅。如有的PLC有掉電保護(hù)旅掂,有的PLC沒有。一定要做到該掉電保護(hù)的一定要用掉電保護(hù)的器件访娶,反之則不能用商虐。

總之,要準(zhǔn)確的使用指令崖疤,正確使用內(nèi)部器件秘车,使所編的程序能正確要作,這是對PLC程序最根本的要求劫哼。

舉個簡單的例子叮趴,西門子的上升沿和下降沿需要使用帶存儲功能的變量作為中間變量,比如M點(diǎn)或者DB點(diǎn)权烧,如果使用FC的temp變量就會出問題的眯亦。

4. 可靠性

程序不僅要正確,還要可靠般码∑蘼剩可靠反映著PLC程序的穩(wěn)定性,這也是對PLC程序的基本要求侈询。

有的PLC程序舌涨,在正常的工作條件下或合法操作時能正確工作,而出現(xiàn)非正常工作條件(如臨時停電,又很快再通電)或進(jìn)行非法操作(如一些按鈕不按順序按囊嘉,或同時按若干按鈕)后温技,程序就不能正常工作了。這種程序扭粱,就不大可靠舵鳞,或說不穩(wěn)定,就是不好的程序琢蛤。

好的PLC程序?qū)Ψ钦9ぷ鳁l件出現(xiàn)蜓堕,能予以識別,并能使其與正常條件銜接博其,可使程序適應(yīng)于多種情況套才。好的PLC程序?qū)Ψ欠ú僮髂苡枰跃芙^,且不留下“痕跡”慕淡。只接受合法操作背伴。

聯(lián)鎖是拒絕非法操作常用的手段,繼電電路常用這個方法峰髓,PLC也可繼承這個方法傻寂。

5. 易改性

要使程序易改,也就是要便于修改携兵。

PLC的特點(diǎn)之一就是方便疾掰,可靈活地適用于各種情況。其辦法就是靠修改或重新設(shè)計程序徐紧。

重新設(shè)計程序用于改變PLC工藝的用途要求的情況静檬,不僅程序重編,而且I/O也要重新分配并级。多數(shù)情況下不需要重編程序巴柿,作一些修改就可以了。這就要求程序具有易性死遭,便于修改广恢。

易改也就是彈性,要求只要作很少的改動呀潭,即可達(dá)到改變參數(shù)或理改動作的目的钉迷。

6. 擴(kuò)展性

許多程序可能在進(jìn)現(xiàn)場之前都已經(jīng)編好,但是到了現(xiàn)場钠署,可能還需要添加另外的程序糠聪,為了避免打亂整套系統(tǒng)的結(jié)構(gòu),需要在每個功能區(qū)預(yù)留一定的空間作為備用谐鼎。

硬件上留出足夠的余量舰蟆,軟件在編寫的時候把手動,自動,半自動考慮好身害,位置留出來味悄。

7. 完備報警系統(tǒng)

PLC系統(tǒng)往往用于工業(yè)環(huán)境中,每一次的事故都會造成或大或小的損失塌鸯,為了做到事故預(yù)處理或者在事故中將損失降到最小侍瑟,必須重視PLC的報警和保護(hù),在此將其摘出來作為系統(tǒng)的一個重要組成部分丙猬。

8. 程序模擬

為了保證現(xiàn)場的調(diào)試進(jìn)度或者給客戶展示涨颜,往往在進(jìn)現(xiàn)場之前,要對自己的程序進(jìn)行全自動的模擬茧球。為此需要在程序中加入模擬程序部分庭瑰,模擬程序部分在正常現(xiàn)場運(yùn)行之后斷開抢埋。為了使程序具備模擬功能见擦,需要做以下工作:

(1)、將實際的PLC的I/O點(diǎn)轉(zhuǎn)換為PLC的中間變量或者數(shù)據(jù)塊變量羹令;

(2)、根據(jù)工藝要求編寫各個設(shè)備的模擬程序损痰。

在設(shè)計PLC程序的過程中福侈,能夠滿足以上幾個方面的要求的就能稱的上是一個好程序了。

二卢未、PLC程序設(shè)計規(guī)范

1肪凛、選擇合適的PLC型號及I/O點(diǎn)數(shù),有特殊功能需求時選擇特殊功能模塊辽社。

2伟墙、熟悉所選擇的PLC編程指令及編譯軟件。

3滴铅、進(jìn)行軟元件規(guī)劃戳葵,包括內(nèi)部繼電器、保持繼電器汉匙、數(shù)據(jù)寄存器拱烁、定時器、計數(shù)器等噩翠。

4戏自、進(jìn)行程序規(guī)劃,一般以故障提取伤锚、故障處理擅笔、手動處理、自動處理、輸出處理這樣的順序進(jìn)行編程猛们。比較大型的工程或設(shè)備按功能單元分段念脯、分塊進(jìn)行處理,如一條自動化生產(chǎn)線中有提升機(jī)阅懦、移行和二、頂起旋轉(zhuǎn)裝置等,則應(yīng)按上述單元分段分塊編程耳胎。

5惯吕、在分段分塊編寫的程序前應(yīng)加上簡短的段注釋,說明此段程序的功能怕午,如有必要可以注明相應(yīng)的工藝流程废登。分塊或分段的程序再總體程序的位置順序應(yīng)基本上按工藝流程順序排列,便于程序的可讀性郁惜。

6堡距、在程序設(shè)計之前,應(yīng)對設(shè)備進(jìn)行抽象兆蕉,對如停止羽戒、急停、過載虎韵、超限易稠、超時、安全光幕包蓝、碰停驶社、門開關(guān)等共用因子進(jìn)行提取,放在啟動回路或啟動主控测萎、連鎖回路亡电,作為整個程序結(jié)構(gòu)的大前提,在此基礎(chǔ)下硅瞧,再將程序分為自動份乒、手動兩大功能區(qū)。

7腕唧、將程序結(jié)構(gòu)手動功能區(qū)共用因子冒嫡,如手動、危及設(shè)備人身安全等因數(shù)因子進(jìn)行提取四苇,放在手動主控孝凌、連鎖回路,對手動控制進(jìn)行保護(hù)月腋、屏蔽蟀架、報警瓣赂。

8、將程序結(jié)構(gòu)自動功能區(qū)共用因子片拍,如自動煌集、超限、超時等因數(shù)因子進(jìn)行提取捌省,放在自動主控苫纤、連鎖回路,對自動控制下設(shè)備進(jìn)行保護(hù)纲缓、屏蔽卷拘、報警。一個總的原則就是祝高,在確保安全的前提下栗弟,嚴(yán)格限制設(shè)備的進(jìn),寬松限制設(shè)備的出工闺。

9乍赫、程序設(shè)計時應(yīng)設(shè)計程序總復(fù)位功能,便于使用者在設(shè)備出現(xiàn)故障情況下陆蟆,可以方便盡快恢復(fù)設(shè)備正常工作雷厂。總復(fù)位應(yīng)充分考慮在復(fù)位過程中設(shè)備和人員的安全叠殷。

10改鲫、自動模式切換到手動模式時,程序應(yīng)清除自動模式下的輸出和中間狀態(tài)溪猿。特別是在自動模式使用SET指令時,必須在手動模式用RESET指令予以清除纫塌。

11诊县、嚴(yán)禁在編制程序中使用雙輸出,即同一條輸出語句或同一個輸出線圈在程序中出現(xiàn)2次及以上措左。在不同模式條件下的對同一輸出點(diǎn)的輸出使用中間繼電器進(jìn)行中轉(zhuǎn)依痊,最后集中到一起并列到輸出點(diǎn)。

12怎披、使用觸摸屏?xí)r胸嘁,對觸摸屏和PLC公用的控制區(qū)和狀態(tài)區(qū),不得做其他功能方面的編程使用凉逛。

13性宏、對PLC的特殊模塊,在使用之前状飞,應(yīng)先查明其控制區(qū)和狀態(tài)區(qū)是否占用工作字毫胜,若占用书斜,不得將這些工作字做其他方面的編程。

14酵使、PLC的輸入荐吉、輸出、中間繼電器口渔、定時器样屠、計數(shù)器、數(shù)據(jù)寄存器等都要加中文注釋缺脉。輸入痪欲、輸出還要有元器件名稱位號。對應(yīng)的輸入點(diǎn)枪向,一般情況下默認(rèn)為外圍開關(guān)連接的是NO觸點(diǎn)勤揩,對于需要接NC觸點(diǎn)的須在注釋中標(biāo)明。所有注釋應(yīng)當(dāng)清晰明了秘蛔,不易產(chǎn)生誤解陨亡,盡量少使用泛指。

15深员、工程調(diào)試完成后负蠕,系統(tǒng)必須保留最終軟件程序,保存的文件名應(yīng)包含項目編號/作者/日期信息/版本號等倦畅。

16遮糖、關(guān)于程序加密:對于加密程序的密碼必須有專門的文件予以保存,并注明相應(yīng)的用戶名+密碼+權(quán)限叠赐,分發(fā)給至少兩個人以上了解密碼欲账,防止密碼丟失帶來無法打開程序的情況。

三芭概、編程建議

1赛不、PLC和上位機(jī)(或觸摸屏)組成監(jiān)控系統(tǒng)時,在畫面上很多時候需要有“手動”、“自動”等控制模式(一般都是多個只能一個時)罢洲。在程序里面可以用“MOV”指令踢故。如:當(dāng)選擇“手動”就將常數(shù)1 MOV到一個寄存器VB10里面,當(dāng)選擇“自動”就將2 MOV到同一寄存器VB10。只要判斷寄存器的數(shù)據(jù)是多少惹苗,就知道系統(tǒng)是那種控制方式殿较。這樣的思路好處是容易理解,不需要互鎖之類的麻煩程序桩蓉。

2淋纲、程序有模擬量控制時,如果讀取的模擬量基本上沒誤差院究,可以采取時間濾波的方式帚戳,延時一段時間玷或。如果讀取的數(shù)據(jù)誤差很大,就需要采取其它的濾波方式片任,如算平均值等偏友。可以查閱相關(guān)的資料对供。

3位他、在程序調(diào)試過程中(特別是設(shè)備改造時,你的程序是加入到原來設(shè)備的程序中時)产场,當(dāng)程序語句中出現(xiàn)條件滿足鹅髓,而輸出線圈不接通時,可以檢查你的這段程序是否是在這樣的語句之間,如JUMP\go to\等語句京景。還有一種可能就是在中斷程序之后窿冯,條件滿足而沒輸出不接通,一般都是這段的程序不被掃描确徙。

4醒串、在順序控制程序時,即一個動作完成后鄙皇,進(jìn)入到下一個動作芜赌,等類似的順序控制,采用+10+10控制模式伴逸,本人覺得很方便缠沈。其思路是:預(yù)置一個寄存器,在初始化時值為0,當(dāng)系統(tǒng)啟動后错蝴,對它+10洲愤,此時寄存器為10,寄存器等于10時可以做第一個動作顷锰;第一個動作完成后柬赐,再對寄存器+10,此時寄存器等于20馍惹,可以做第二個動作躺率,第二個動作完成后又+10玛界,此時寄存器等于30万矾,這樣只要判斷寄存器里面數(shù)據(jù)為多少,就知道要完成那個動作慎框。當(dāng)需要跳躍動作時良狈,可以不再+10,可以加+20\+30....笨枯,看實際的需要而定薪丁。

為什么加10而不是加1遇西,因為加10之后,如果插入一段严嗜,只要在這10個空余的地方隨便選擇一個位置就可以了粱檀。

5、在設(shè)計程序的時候漫玄,當(dāng)出現(xiàn)工藝上的故障(非控制系統(tǒng)控制)茄蚯,最好將故障現(xiàn)象保持,并有燈光聲音報警睦优。直到操作工復(fù)位渗常,以讓其知道系統(tǒng)出現(xiàn)了故障。不然停機(jī)了汗盘,別人還認(rèn)為你的程序問題皱碘。一般都是在設(shè)計一個新系統(tǒng)時,要注意到這些隐孽。

6癌椿、對于經(jīng)常調(diào)用的子程序,可以做成子模塊缓醋,頻繁調(diào)用如失。

7、由于生產(chǎn)機(jī)械在工作循環(huán)中的各工步運(yùn)動在執(zhí)行時需要一定的時間送粱,且這些時間都有一定的限度褪贵,因此可以以這些時間為參考,在要檢測的工步動作開始的同時抗俄,起動一個定時器脆丁,定時器的時間設(shè)定值比正常情況下該動作要持續(xù)的時間長20%~30%,而定時器的輸出信號可以用于報警或自動停機(jī)裝置动雹。當(dāng)生產(chǎn)機(jī)械某工步動作的時間超過規(guī)定時間槽卫,達(dá)到對應(yīng)的定時器預(yù)置時間,還未轉(zhuǎn)入下一工步動作時定時器發(fā)出故障信號胰蝠,該信號停止正常工作循環(huán)程序歼培,起動報警或停機(jī)程序,這就是我們常說的超節(jié)拍保護(hù)茸塞。

8躲庄、一些安全用檢測開關(guān)(如急停按鈕、安全光幕钾虐、極限開關(guān)等)實用常閉(NC)輸入噪窘。

9、為安全效扫、節(jié)能考慮倔监,盡量將輸出設(shè)計成需要動作時才動作直砂,一旦到位就停止輸出,而不要設(shè)計成平時一直輸出浩习,需要停止時才讓輸出斷開静暂。

10、執(zhí)行元件的動作原則應(yīng)當(dāng)是寧可不動谱秽,也不要亂動籍嘹!

11、單臺設(shè)備控制:單臺設(shè)備必須有軟手操/自動切換以及軟手操時可以啟/停功能弯院,由自動切換到軟手操時辱士,設(shè)備不能停機(jī);由軟手操切換到自動時听绳,設(shè)備啟/停取決于自動程序颂碘。

12、單臺設(shè)備(泵椅挣、風(fēng)機(jī)及其它大型設(shè)備)運(yùn)行滿24小時必須進(jìn)行輪換头岔,且必須有運(yùn)行時間累計,如果由上位機(jī)設(shè)定啟/停順序除外鼠证,操作人員自行設(shè)定峡竣。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市量九,隨后出現(xiàn)的幾起案子适掰,更是在濱河造成了極大的恐慌,老刑警劉巖荠列,帶你破解...
    沈念sama閱讀 217,509評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件类浪,死亡現(xiàn)場離奇詭異,居然都是意外死亡肌似,警方通過查閱死者的電腦和手機(jī)费就,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評論 3 394
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來川队,“玉大人力细,你說我怎么就攤上這事」潭睿” “怎么了眠蚂?”我有些...
    開封第一講書人閱讀 163,875評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長对雪。 經(jīng)常有香客問我河狐,道長米绕,這世上最難降的妖魔是什么瑟捣? 我笑而不...
    開封第一講書人閱讀 58,441評論 1 293
  • 正文 為了忘掉前任馋艺,我火速辦了婚禮,結(jié)果婚禮上迈套,老公的妹妹穿的比我還像新娘捐祠。我一直安慰自己,他們只是感情好桑李,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,488評論 6 392
  • 文/花漫 我一把揭開白布踱蛀。 她就那樣靜靜地躺著,像睡著了一般贵白。 火紅的嫁衣襯著肌膚如雪率拒。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,365評論 1 302
  • 那天禁荒,我揣著相機(jī)與錄音猬膨,去河邊找鬼。 笑死呛伴,一個胖子當(dāng)著我的面吹牛勃痴,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播热康,決...
    沈念sama閱讀 40,190評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼沛申,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了姐军?” 一聲冷哼從身側(cè)響起铁材,我...
    開封第一講書人閱讀 39,062評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎奕锌,沒想到半個月后衫贬,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,500評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡歇攻,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,706評論 3 335
  • 正文 我和宋清朗相戀三年固惯,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片缴守。...
    茶點(diǎn)故事閱讀 39,834評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡葬毫,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出屡穗,到底是詐尸還是另有隱情贴捡,我是刑警寧澤,帶...
    沈念sama閱讀 35,559評論 5 345
  • 正文 年R本政府宣布村砂,位于F島的核電站烂斋,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜汛骂,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,167評論 3 328
  • 文/蒙蒙 一罕模、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧帘瞭,春花似錦淑掌、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,779評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至媒殉,卻和暖如春担敌,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背廷蓉。 一陣腳步聲響...
    開封第一講書人閱讀 32,912評論 1 269
  • 我被黑心中介騙來泰國打工柄错, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人苦酱。 一個月前我還...
    沈念sama閱讀 47,958評論 2 370
  • 正文 我出身青樓售貌,卻偏偏與公主長得像,于是被迫代替她去往敵國和親疫萤。 傳聞我的和親對象是個殘疾皇子颂跨,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,779評論 2 354

推薦閱讀更多精彩內(nèi)容