PLC在工業(yè)控制領(lǐng)域被廣泛應(yīng)用,他就像是機(jī)器的大腦一樣,控制著機(jī)器有序的工作。如何使得PLC這個大腦有序的工作,完全取決于PLC編程人員的能力。往往一個好的編程程序習(xí)慣可以讓事情事半功倍。用正確的邏輯思維和方法去寫程序,一方面可以減少出錯,另一方面就是方便檢查程序里出現(xiàn)的bug。下面由西安達(dá)泰電子的PLC無線通訊專家團(tuán)隊來為大家盤點一下,西門子PLC的一些編程小竅門和好的習(xí)慣:
1、程序結(jié)構(gòu)
一個完整的程序可分為幾個部分:
【初始化程序】:一般是上電時調(diào)用一次,用來初始化設(shè)備,簡單化的初始化程序需要在初始化的時候復(fù)位整個工藝設(shè)備到零位。復(fù)雜化的初始化程序需要在這里調(diào)用設(shè)備之前的執(zhí)行信息,即延續(xù)上次停機(jī)時的執(zhí)行過程。我們一般使用SM0.0(上電時保持一個周期的ON)來使能初始化程序。
【主程序】:主程序這里是用來循環(huán)執(zhí)行的,確保設(shè)備的正常工作。
【子程序】:子程序一般為設(shè)備執(zhí)行的不同工藝(工序)。供主程序調(diào)用。一些重復(fù)多次使用的代碼可以編寫為子程來調(diào)用。
【內(nèi)存分配】:內(nèi)存分配一般是用來規(guī)劃PLC的內(nèi)部寄存器的區(qū)域和適用范圍,方便編程和調(diào)取,同時方便上位機(jī)的通訊使用。
2、關(guān)于內(nèi)存分配技巧:
一般在編程時我們會將內(nèi)存分配為不同的區(qū)域段,例如:
【VW0-VW99】:通訊動態(tài)調(diào)用區(qū)域,寫一些中建變量等。
【VW100-VW199】:采集結(jié)果保存區(qū)域。溫度、壓力等。
【VW200-VW299】:通訊區(qū)域,部分為上位機(jī)讀取區(qū)域,部分為寫入?yún)^(qū)域或者可讀寫區(qū)域。
……
【VW2000-VW3000】:庫存儲區(qū),用于加載庫文件的存儲區(qū)域。
*說明:良好的內(nèi)存規(guī)劃習(xí)慣會使得編程特別便捷和明了。同時也提高了程序的可讀性。配合自定義的變量名使用會使得整個程序的二次讀寫性更好。
3、變量名規(guī)劃:
良好的變量名規(guī)劃可以高效的完成程序的編寫,例如:
VD100:WD1-f(浮點型溫度值1)
VD104:WD2-f(浮點型溫度值2)
VB108:ZT1-b(字節(jié)型狀態(tài)值1)
VW109:ZS1-w(字型轉(zhuǎn)速值1)
其他物理量類似。用戶也可使用英文名縮寫等……
在規(guī)劃變量時最好的方式是將相同類型的變量連續(xù)規(guī)劃。再者就是最好是以十為單位進(jìn)行區(qū)域段劃分這樣調(diào)用時比較清晰明了。例如:
【VD100-VD120】:WD1-f……WD5-f(多余部分可留作備用,一般都會預(yù)留備用點,一備程序后期擴(kuò)展使用)
【VB130-VB139】:ZT1-b……ZT10-b
4、關(guān)于西門子200系列PLC的內(nèi)存關(guān)系圖
位
| 字節(jié)
| 字
| 雙字
|
1位
| 8位
| 16位
| 32位
|
VB0.0
| VB0
| VW0
| VD0
|
VB0.1
|
VB0.2
|
VB0.3
|
VB0.4
|
VB0.5
|
VB0.6
|
VB0.7
|
VB1.0
| VB1
|
VB1.1
|
VB1.2
|
VB1.3
|
VB1.4
|
VB1.5
|
VB1.6
|
VB1.7
|
VB2.0
| VB2
| VW2
|
VB2.1
|
VB2.2
|
VB2.3
|
VB2.4
|
VB2.5
|
VB2.6
|
VB2.7
|
VB3.0
| VB3
|
VB3.1
|
VB3.2
|
VB3.3
|
VB3.4
|
VB3.5
|
VB3.6
|
VB3.7
|
更多關(guān)于PLC的知識,請持續(xù)關(guān)注微信公眾號“PLC無線通訊方案”
本文出處 [url]http://www.dataie.com/cases/detail/40/354.html[/url]