03.04 PLC編程時變量太多,怎麼規劃地址和便於記憶?

道高龍虎俯


現在很多PLC都支持符號優先的編程方法了! 因此,在定義變量的時候用自己熟悉的符號+設備代號的表示方法是比較好的!

其實,每個人和每個單位的編輯符號的方法不同,但是隻要是在一個項目中是比較統一的,且便於編程人員快速讀懂程序內容的,都庫說是較好的方法!

而且,PLC控制的這些設備,大體上用的比較多的也就那麼幾類,比如,電機,閥門,氣缸,溫度信號,液位信號,流量信號等等!因此當你熟知這些設備需要採集的相關點之後,就可以來規劃了!

說一下我常用的規劃方法:

電機,比如Motor1,motor2,或者M#1,M#2,這樣就表示一個大的電機代號,而電機通常也就是啟動,停止,運行,故障這些,因此可以用:

Motor1_bRun來表示啟動,這裡的b就表示bool。

那麼Motor1_bStop表示停止,Motor_bOut表示輸出控制接觸器的線圈,Motor_bTrip表示熱繼電器跳閘的故障點信號!

當然,其實可以在前邊加上i或者o來表示是DI信號還是DO信號,也可以在結尾,比如:

oMotor_bOut表示這個是電機的輸出DO信號,iMotor_bTrip表示是電機的DI輸入熱故障信號!

像閥門的話,也是開關輸入信號和打開關閉的輸出信號,通常用valve這個英文字面意思直接表示,比如Valve1_bOut,Valve_bOpen,Valve_bClose,前邊或者後邊也可以加入i或者o表示是di或者do!

氣缸的話就是cylinder,因此氣缸前進應該是iCylinder1_bAdvance,氣缸後退應該是iCylinder1_bReturn這樣!

還有就是模擬量的,就以溫度傳感器來舉例,用TE表示溫度傳感器,比如TE_IntValue,因為模擬量信號輸入通常是16位的整數,因此這裡是Int,Value就是數值的意思!然後TE_bHAlrrm,這個是溫度高報警的一個bool變量,同樣,TE_bLAlarm就是溫度低報警信號!


就簡單說這麼多了,總之呢,你給變量定義的符號名已經是能讓你清晰的辨認出來這個變量的屬性的,比如是DI信號還是DO信號,是bool類型還是int類型,或者是實數real類型!---儘量的表述完整清晰,該用縮寫的時候用一些縮寫,免得太長了,這樣就差不多了!


希望能對你有點幫助,謝謝!


控制研究控


其實你問的這個,在我剛使用PLC的時候也會遇到,但是理解了PLC的編程思想後,尤其是使用SIEMENS的PLC後,不會有這樣的問題。

這裡針對SIEMENS的PLC來說吧。

SIEMENS有好多M,MB或者MD也可以使用。但是使用這些變量後,發現程序是雜亂無章的。包括輸入輸出點。

舉個例子:我的程序裡面用到了輸入輸出點,每一個人對輸入輸出點的名稱定義會有出入,例如有一個按鈕,輸入I1.0,是啟動按鈕。如果按照IT的那些命名規則,BtnStart,BtnStop。如果一個PLC裡面出現多個,程序很難規範。

針對這個問題,EPLAN給出了答案。

在EPLAN軟件,項目數據--PLC--地址/分配列表。裡面有完整的命名。如下圖:

尚未完成的項目。後面備註會是中文的名稱。

從中可以看出PLC的輸入點,PLC的輸出點也會是類似的。

這裡面有一個重要的信息。就是這個輸入點,對應的圖紙在哪裡。

對應的PLC程序也是一樣的。

對應的報警信息也是一樣的:

不僅僅是輸入輸出的PLC地址,其他總線過來的,例如相機,螺絲刀等,實際上是不需要用對應的IO地址的,會建立塊。這次用到一個Cognex相機,會封裝一下,對應的接口有總線起始地址,Ready,Running,Result,Start等都封裝成接口。一個相機對應一個FB塊,一個對應的DB背景塊。用到10個相機,就是10個DB背景塊。測試一個可以了,其他的也都可以了。

下面是用到的Schmersal帶鎖安全門程序塊。

氣缸作為常用的執行元件,會有輸入接口和輸出接口,手自動,運行報警燈。實際上也是不需要中間變量的,只要有背景塊就行了。

時間繼電器,自動運行也是需要封裝的。

在用到的時候,有一個項目是一條主的流水線,上面有托盤,托盤有RFID號。另外有一條支路,然後在一起裝配起來。

建立了UDT,DB塊集中這些UDT。如下:

可以看出,從頭到尾,壓根就沒有M變量,更不會有地址的規劃。

至於PLC FC塊、FB塊、DB塊每個公司都不一樣。最好的方法是按照EPLAN圖紙來。例如這個相機,圖紙的地址為=ST20.OP40+E-270A1,給相機的FC塊為FC270,相機的FB塊為FB270,背景塊為DB270,另外一個相機地址=ST20.OP40+E-271A1,背景塊地址為DB271.

至於圖紙,也是有規範的。

當你編程,不再為地址規劃,記憶發愁的時候,就算成功了!!



儒拉小鎮


我們在編寫PLC梯形圖時常常會遇到輸入信號量較多,特別是對大型複雜的梯形圖,梯形圖裡的變量涉及到十幾個甚至幾十個的時候我們會感到“力不從心”的感覺。那麼當遇到這種情況如何進行規劃地址呢?下面針對我編寫梯形圖時對變量地址的處理的經驗來談談我的是如何處理的。

現在的PLC編程軟件都是具有設置變量表的功能,例如三菱PLC的編程軟件GX-WORKS2、西門子(SIEMENS)的博圖TIA(PORTAL)軟件以及施耐德的SoMachine編程軟件都具有建立變量表的功能,我以自己正在使用的施耐德SoMachine可編程控制器編程軟件為例來說明如何來規劃變量地址。

當我們接到控制任務編制梯形圖時,我們都要根據控制要求創建控制變量,這種變量一般設置局部變量和全局變量兩種類型,若設置局部變量時就會在程序組織單元(POU)中創建變量表格,在這個變量表格中會有變量(VAR)的範圍、變量的名稱、變量地址、變量數據類型以及對變量的註釋等。在這種軟件中變量的地址我們只要變量的範圍前綴(I、Q、M)、長度前綴(X、B、W、D)和地址偏移量就可以了,我們的主要工作是為了便於對變量的記憶要給變量定義名稱,變量定義名稱的原則是“看名知其意”。我們以最熟悉的電機正反轉程序為例,我們要在POU中創建6個局部變量,分別給這些變量起名稱為PosButton(正轉按鈕)、NegButton(反轉按鈕)、 StopButton(停止按鈕)、EmergencyStop(急停按鈕)、PosRun(正轉運行控制)、NegRun(反轉運行控制),這些變量名稱都符合“看名知其意”的原則。通過對這樣的變量命名不管變量有多少都能夠很好的記憶。變量命名後只要與相關PLC物理地址相關聯就可以對外部負載進行控制了,所以這種軟件對變量的命名非常之靈活,不像以前的PLC軟件對變量的命名有固定的格式要求很呆板。

通過變量與PLC的物理地址向關聯後,我們可以給變量進行註釋,如上圖所示的那樣,然後在梯形圖中顯示出註釋,這樣能夠進一步對理解記憶變量所對應PLC的物理地址有好處。

以上就是我對這個問題的回答,歡迎大家參與這個話題的討論,敬請關注電子及工控技術。


電子及工控技術


輔助繼電器M有兩類,普通的和掉電保存的,根據需要來選擇,在規劃地址的時候一段程序或者功能塊使用連續的M,從編號0、10、20等開始,中間留有部分以備補充,比如這段用到M206,下一段就從M210或者M220開始。對於並聯輸出的,LD M72 OR M82 OR M92 OUT Y1,這樣把編號的最後弄成統一的便於記憶也方便我們在最後調試的時候好檢查。

定時器有不同單位的時間如1ms、10ms、100ms的,也有普通型和累計型的,也是根據需求來選擇,向M一樣可以根據使用的地方進行規劃地址編號。計數器也有普通計數器和高速計數器、16位和32位之分,也有保持型計數器等,同樣根據需要來確定,一般高速計數器的使用都是固定的,對應的輸入都有固定的計數器。

地址的規劃和選擇首先要根據需要、功能來決定,然後在PLC編程中所表達的動作進行統一編號,對於PLC的順控程序,我們儘量在編程時進行段的聲明、註釋準確如下圖,把整個PLC程序分成好幾個小段寫,每個小段可以寫特定的動作組合、部分、功能、意義等,然後地址的規劃在每段進行排列,第一段用M0~M100,第二段用M100~M200等等設計,方便我們尋找元件變量,對編程和後期的調試都很有幫助。


還有就是為了便於記憶,我們也可以採用標籤對軟件變量進行標記,免去註釋,比如X0的標籤是開始,Y0的標籤是指示燈,以後我們就可以直接用“ LD 原點 OUT 指示燈”來表示 LD X0 OUT Y0了,這樣就更方便了,PLC中每個變量都可以做標籤進行聲明。

以上就是在PLC編程時對變量地址進行規劃需要注意的幾方面,希望能幫到你!


工控人


一種最佳實踐是文檔化,提前把不同範圍、不同用途的變量規劃好,可以參考網絡上現成的一些企業編程的實踐和規範。如果地址空間充裕,可以在不同分區之間提前留好充足的空間。最後,兩個可以改進的手段,一是地址空間重構,大部分plc現在都支持一鍵修改所有變量名/地址的功能(至少西門子有),在編程之後可以集中檢查把不規範的地址重新分配,而不是一次一次姑息縱容。二是迭代改進,下一次編程前回顧一下上一次不合理的地方,持續改進。


魏智勇


其實呢plc編程時,小的程序不用怎麼規劃變量!但是呢如果要養成好的編程習慣,我們看完圖紙之後就應該規劃變量,變量一般要分區來做,一般存儲區的話一般用v區或者db數據塊的區,中間變量我喜歡用m點,也是要分段的,有的m段就用中間變量,有的m段專門用作報警!

總而言之,要規劃好點位的使用!並且還要有一定的預留,這樣方便以後完善程序!如果做一條程序設置一箇中間變量,完全沒有規律而言,自己看著都蒙圈!

我們分區分段的好處,在於自己能大概知道這個m是起什麼作用的,也方便程序的梳理!

當然了也有人喜歡都用m區或者v區,那麼更需要規劃了!


電氣PLC系統教學


根據功能去劃分


自動化便利店


早就有不用規劃內存的PLC了!看看施耐德電氣的So Machine 平臺吧。根本不用管理變量存儲空間,支持結構化變量,面向對象編程,讓你脫離低層次的編程方式,不再煩心於地址記不住,讓你完全進入算法研究,工藝流程,瞬間感覺進入了自由空間!


凹凸美神


這也簡單,舉個例,0-100用來做伺服數據,200-400用來做保存,500-700用來做其它數據,不是很好記憶嗎


分享到:


相關文章: