用心回復(fù)
大道至簡
級別: 家園?
精華主題: 0
發(fā)帖數(shù)量: 376 個
工控威望: 772 點
下載積分: 1744 分
在線時間: 132(小時)
注冊時間: 2017-03-08
最后登錄: 2024-11-12
查看用心回復(fù)的 主題 / 回貼
樓主  發(fā)表于: 2020-04-07 14:50
    PLC在工業(yè)控制領(lǐng)域被廣泛應(yīng)用,他就像是機器的大腦一樣,控制著機器有序的工作。如何使得PLC這個大腦有序的工作,完全取決于PLC編程人員的能力。往往一個好的編程程序習慣可以讓事情事半功倍。用正確的邏輯思維和方法去寫程序,一方面可以減少出錯,另一方面就是方便檢查程序里出現(xiàn)的bug。下面由西安達泰電子的PLC無線通訊專家團隊來為大家盤點一下,西門子PLC的一些編程小竅門和好的習慣:

1、程序結(jié)構(gòu)

一個完整的程序可分為幾個部分:
【初始化程序】:一般是上電時調(diào)用一次,用來初始化設(shè)備,簡單化的初始化程序需要在初始化的時候復(fù)位整個工藝設(shè)備到零位。復(fù)雜化的初始化程序需要在這里調(diào)用設(shè)備之前的執(zhí)行信息,即延續(xù)上次停機時的執(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)取,同時方便上位機的通訊使用。
2、關(guān)于內(nèi)存分配技巧:

一般在編程時我們會將內(nèi)存分配為不同的區(qū)域段,例如:
VW0-VW99】:通訊動態(tài)調(diào)用區(qū)域,寫一些中建變量等。
VW100-VW199】:采集結(jié)果保存區(qū)域。溫度、壓力等。
VW200-VW299:通訊區(qū)域,部分為上位機讀取區(qū)域,部分為寫入?yún)^(qū)域或者可讀寫區(qū)域。
……
VW2000-VW3000】:庫存儲區(qū),用于加載庫文件的存儲區(qū)域。
*說明:良好的內(nèi)存規(guī)劃習慣會使得編程特別便捷和明了。同時也提高了程序的可讀性。配合自定義的變量名使用會使得整個程序的二次讀寫性更好。
3、變量名規(guī)劃:
良好的變量名規(guī)劃可以高效的完成程序的編寫,例如:
VD100WD1-f(浮點型溫度值1)
VD104WD2-f(浮點型溫度值2)
VB108ZT1-b(字節(jié)型狀態(tài)值1)
VW109ZS1-w(字型轉(zhuǎn)速值1)
其他物理量類似。用戶也可使用英文名縮寫等……
在規(guī)劃變量時最好的方式是將相同類型的變量連續(xù)規(guī)劃。再者就是最好是以十為單位進行區(qū)域段劃分這樣調(diào)用時比較清晰明了。例如:
VD100-VD120】:WD1-f……WD5-f(多余部分可留作備用,一般都會預(yù)留備用點,一備程序后期擴展使用)
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] 
微信公眾號:DTD110HF
PLC無線通訊方案