中文字幕精品无码亚洲字精舞,爱丫爱丫影院在线观看免费,a片毛片免费看,337P日本欧洲亚洲大胆人人

為什么我離開了PLC編程行業(上)

2024/11/20 15:37:56 人評論 次瀏覽 分類:文化長廊  文章地址:http://www.wxmqjy.com/community/5854.html

這是一個20年前發生在我身上的故事,這些事情改變了我對我所從事的PLC自動化領域的看法,之后我決定進入(當時迅速發展的)IT網絡領域。

我擁有電子工程學位,并且已經做了十多年的網絡管理員。我原本打算進入自動化行業,但20世紀90年代末的我所遇到的事情改變了我對這個行業的看法。這里提供的信息是為了講述當時發生的事件,如果你考慮進入PLC編程領域,這篇文章所提供的信息可能會對你有所幫助。但在此之前請考慮到,經濟環境會隨時間變化,我曾經所遇到的問題可能并不適用于現如今你在這個領域的情況。


最初我是在軟件編程行業開始工作的,作為程序員工作了大約一年半。當我完成學業時,20世紀90年代初的經濟衰退終于開始消退,我的大多數前同學都已經找到了工作,我也一樣。我的第一個雇主提供的條件并不是最好的,但我認為在這份工作所獲得的經驗對我未來就業非常有利。所以當大多數前同學在一年內都離開了這個條件不是很好的領域,去尋找更好的機會時,我卻認為我在PLC自動化行業會更有發展,因為PLC編程是我在論文中做過的內容,而且我認為這會更容易一些。但事實證明這是一個錯誤。


我找到了一份新工作,作為PLC程序員。一開始,我接觸了兩個較小的項目,首先是對一個新落地的西門子S7系統進行增補,然后是一個全新的西門子S5系統。一個月后,我與一位資深自動化工程師一起,在一個大項目中裝配了一個S5程序。這個PLC的說明書是由另一家負責實施物理基礎設施(管道、裝配、容器)的工程公司通過分包提供的。我沒有被告知這個項目或與這家外部工程公司的任何其他項目的合同細節。他們每隔三四天就會給我們寄來一大包信封,里面裝滿了紙張,上面寫滿了需要控制的條件和執行器的狀態,所有這些都是以有限狀態機狀態的列表形式寫下來的。


PLC程序的結構非常簡單:它包含十幾個需要逐步執行的順序程序。這些順序程序中,每次只允許執行一個,并且每個步驟都有自己的步驟編號。西門子S5中有一種編程塊,稱為SB(Step
Block,或最初稱為Schritt Baustein),但在這個項目中并沒有使用這種編程方式。相反,采用了一種自定義的編程方案,即為每個步驟都指定了一個完整的FB(Function Block)。每個步驟或FB都包含3個網絡:一個網絡用于根據下一個步驟的條件將順序程序跳轉到下一步,一個網絡用于通過Set-bit將執行器設置為高電平,還有一個網絡用于通過Reset-bit將執行器復位。一個小的中央步進控制FB用于跳轉到正確的步驟,它基本上所做的就是通過“BMW 200, SPA FB 0”指令,使用加載在ACCU1中的步驟編號跳轉到正確的步驟FB。當通過下一個步驟的條件請求跳轉到下一步時,當前步驟FB中的執行器會使用Reset-bit進行復位,步驟計數器會增加,然后在同一個PLC掃描周期內,下一個步驟的FB會被Set-bit調用,以確保輸出中未更改的值不會切換其執行器。一個順序程序可能包含10個步驟(即10個FB)到20個步驟(即20個FB),大約有15個順序程序,每個步驟/FB中大約有70個執行器需要設置或復位。對這些進行簡單計算,結果顯示大約有15×15×70
=約16000個執行器需要編程到約220個FB中。所有步驟切換的條件以及設置 與/或 復位執行器的條件都提供在成捆的紙張上,這些紙張用訂書釘裝訂在一起,我必須將這些執行器的所有條件列表復制到FB中。

在編程了2個月后,我們發現提供的說明書中存在大量冗余,這些冗余是我們無法預見的,因為每3到4天才交付一個順序程序,而且我們花了大約1.5個月的時間才推斷出這些冗余在整個PLC程序中都存在,因此重寫將使之前的工作全部無效。我們在所有步驟中都有那些沒有更新但被重復的執行器。除此之外,實際上我們還發現,一個順序程序中的單個步驟與另一個順序程序中的其他步驟非常相似。這些程序只是彼此的變體。所有這些步驟幾乎都是相同的,如果我們事先知道這一點,整個PLC程序可以實施得更小。雖然在過程中我們實施了一些捷徑,但更多是事后才想到的。


我必須使用實際的S5
AWL代碼進行所有編程。外部項目工程公司已經完成了所有步驟的布局以及輸入、輸出和條件的分配決策。我不需要做任何輸入,只是枯燥地復制了+1000頁文本上提供的無數條件和執行器的列表。這項極其無聊的工作花了3.5到4個月的時間才完成,其中包括了SCADA屏幕的開發。

現在,你們中的一些人可能會想,“誰還會用這種方式工作?為什么外部項目工程公司不雇用自己的PLC工程師?”這個問題我也曾有過:我唯一能給出的合理解釋是,外部項目工程公司沒有資源提供公司所需的全天候24×7支持,因此將支持外包給了我們,而且我們必須以一種非常工具化的方式來實現這些程序,以便能夠在不考慮實際程序具體細節的情況下進行故障排除。這并不是他們告訴我的原因,他們告訴我他們這樣工作的原因是,當公司發出需要工程師的支持請求時,支持工程師不需要花時間去理解PLC程序。而在我申請這份工作時,并沒有人提前告訴我這種工作方式。


當所有編程代碼的輸入完成后,部門負責人和高級PLC工程師將在工廠現場部署PLC程序。我被指定為一個規模較小但類似的安裝項目部署一個類似的程序,不僅要輸入一個類似但更短的有限狀態機狀態列表,這次只涉及大約70個步驟和較少量的執行器。我被要求以類似的方式實施,使用與之前項目中相同的FB。由于程序規模較小,我在幾周內就完成了提供的表格的輸入,并開始與外部項目工程公司的一名(女性)工程師在現場實施。


在現場,首先出現了一個小問題,即控制面板使用的通信FB與中央步進控制FB內部使用的MB發生了重疊:當控制面板啟用時,程序沒有按預期工作。這個問題很簡單就解決了,只需將步進控制FB的MB移動到另一個區域即可。從MB
250-253區域移動到MB 240-243區域或類似區域,功能仍然相同,但我必須更新每個步驟FB中對應的條件跳轉,這花費了一些時間。

然后出現了一個更嚴重的問題。中央步驟控制FB出現了問題:當前一個程序完成后啟動一個新的順序程序時,PLC跳到了前一個程序的最后一步,而不是新啟動程序的第一步。這個標準的中央步驟控制FB不是應該沒有錯誤嗎?這讓人很困惑。我生成了整個PLC程序的交叉引用,開始驗證中央步驟控制FB的各個標記,以確保沒有沖突。我調試了代碼,步驟控制FB的AWL代碼非常不直觀,因為它結合了字操作、字移位操作、使用掩碼操作的布爾字以及單個位操作,使其非常緊湊。作為最終測試,我禁用了除了這個FB之外的所有程序,結果證明問題確實是由步驟控制FB本身引起的,而不是由我的某些代碼引起的。然后我打電話給在魯汶的現場高級工程師解釋了這個問題。他聽到這個問題后非常驚訝,并回復說這個中央控制被廣泛使用,從未遇到過任何問題……


在調試該模塊時,我發現中央步進FW的標記在程序最后一步結束后沒有被重置,導致下一個程序從最后一步開始。為什么呢?我將我的項目與我之前用作參考的項目進行了比較,沒有發現任何錯誤,一切都相同。為了繼續測試實現,我不得不在每個順序程序的中央步進控制FB之后采用條件重置。這將允許進行測試,并且在外部項目公司的項目經理忙于自己事務的空檔期,我可以對中央步驟控制FB的代碼進行故障排除。

《為什么我離開了PLC編程行業(上)》到此結束,歡迎大家繼續關注《為什么我離開了PLC編程行業(下)

作者:Jurgen Kobierczynski

相關儀表推薦

共有訪客發表了評論 網友評論

  客戶姓名:
郵箱或QQ:
驗證碼: 看不清楚?
主站蜘蛛池模板: 安丘市| 白山市| 保山市| 萝北县| 定日县| 磐石市| 南雄市| 云浮市| 榆林市| 厦门市| 苗栗县| 增城市| 德兴市| 陆良县| 汾西县| 盐边县| 弋阳县| 邯郸县| 灵宝市| 长海县| 西乡县| 德庆县| 周口市| 伊川县| 临夏市| 彝良县| 贵溪市| 滨海县| 即墨市| 石嘴山市| 鄂托克前旗| 麻城市| 乌什县| 柯坪县| 岢岚县| 二连浩特市| 都昌县| 长岛县| 平山县| 张家口市| 临漳县|