吳守宇
摘 要:隨著制造業(yè)的發(fā)展,設備自動化程度越來越高,自動化生產(chǎn)越來越被大家所青睞,應用越來越廣,自動化設備的優(yōu)點是依靠編程控制,實現(xiàn)工藝的自動化生產(chǎn),本文主要介紹西門子PLC編程技術(shù),幫助從業(yè)人員快速掌握PLC編程。
關(guān)鍵詞:STEP 7編程語言 ;數(shù)據(jù)類型;尋址方式
0? 前言
早期的PLC是用來替代繼電器、接觸器控制的。它主要用于順序控制,只能實現(xiàn)邏輯運算。因此,被稱為可編程邏輯控制器(Programmable logic controller,略寫 PLC )
隨著電子技術(shù)、計算機技術(shù)的迅速發(fā)展,可編程控制器的功能已遠遠超出了順序控制的范圍。被稱為可編程控制器(Programmable controller,略寫PC)。為區(qū)別于Personal Computer (PC),故沿用PLC 這個略寫。
1? STEP 7編程語言
1.1? STL(語句表)
由STL(語句表)是一種類似于計算機匯編語言的一種文本編程語言,由多條語句組成一個程序段。語句表可供習慣匯編語言的用戶使用,在運行時間和要求的存儲空間方面最優(yōu)。在設計通信、數(shù)學運算等高級應用程序時建議使用語句表。
1.2 LAD(梯形圖)
LAD(梯形圖)是一種圖形語言,比較形象直觀,容易掌握,用得最多,堪稱用戶第一編程語言。梯形圖與繼電器控制電路圖的表達方式極為相似,適合于熟悉繼電器控制電路的用戶使用,特別適用于數(shù)字量邏輯控制。
1.3 GRAPH(順序控制)
GRAPH類似于解決問題的流程圖,適用于順序控制的編程。利用S7-GRAPH編程語言,可以清楚快速地組織和編寫S7 PLC系統(tǒng)的順序控制程序。它根據(jù)功能將控制任務分解為若干步,其順序用圖形方式顯示出來并且可形成圖形和文本方式的文件。
1.4 SCL(結(jié)構(gòu)化控制語言)
S7-SCL(Structured Control Language:結(jié)構(gòu)控制語言)是一種類似于PASCAL的高級文本編輯語言,用于S7-300/400和C7的編程,可以簡化數(shù)學計算、數(shù)據(jù)管理和組織工作。S7-SCL具有PLC公開的基本標準認證,符合IEC 1131-3 (結(jié)構(gòu)化文本)標準。
2? 數(shù)據(jù)類型
2.1? 基本數(shù)據(jù)類型
2.2復雜數(shù)據(jù)類型
2.2.1數(shù)組(ARRAY)
數(shù)組是由一組同一類型的數(shù)據(jù)組合在一起而形成的復雜數(shù)據(jù)類型。數(shù)組的維數(shù)最大可以到6維;數(shù)組中的元素可以是基本數(shù)據(jù)類型或者復雜數(shù)據(jù)類型中的任一數(shù)據(jù)類型(Array類型除外,即數(shù)組類型不可以嵌套);數(shù)組中每一維的下標取值范圍是-32768~32767,要求下標的下限必須小于下標的上限。
2.2.2結(jié)構(gòu)(STRUCT)
結(jié)構(gòu)是由一組不同類型(結(jié)構(gòu)的元素可以是基本的或復雜的數(shù)據(jù)類型)的數(shù)據(jù)組合在一起而形成的復雜數(shù)據(jù)類型。
2.2.3字符串(STRING)
字符串是最多有254個字符(CHAR)的一維數(shù)組,最大長度為256個字節(jié)(其中前兩個字節(jié)用來存儲字符串的長度信息)。字符串常量用單引號括起來。
2.2.4日期和時間(DATE_AND_TIME)
用于存儲年、月、日、時、分、秒、毫秒和星期,占用8個字節(jié),用BCD格式保存。星期天的代碼為1,1~6的代碼為2~7。
2.2.5用戶定義的數(shù)據(jù)類型(UDT)
用戶定義數(shù)據(jù)類型表示自定義的結(jié)構(gòu),存放在UDT塊中(UDT1~UDT65535),在另一個數(shù)據(jù)類型中作為一個數(shù)據(jù)類型“模板”。當輸入數(shù)據(jù)塊時,如果需要輸入幾個相同的結(jié)構(gòu),利用UDT可以節(jié)省輸入時間。
2.2.6功能塊類型(FB、SFB)
這種數(shù)據(jù)類型僅可以在FB的靜態(tài)變量區(qū)定義,用于實現(xiàn)多背景DB。
3 尋址方式
所謂尋址方式就是指令執(zhí)行時獲取操作數(shù)的方式,可以直接或間接方式給出操作數(shù)。
3.1立即尋址
立即尋址是對常數(shù)或常量的尋址方式,其特點是操作數(shù)直接表示在指令中,或以惟一形式隱含在指令中。其中“//”后面的內(nèi)容為指令的注釋部分,對指令沒有任何影響。
3.2存儲器直接尋址
存儲器直接尋址,簡稱直接尋址。該尋址方式在指令中直接給出操作數(shù)的存儲單元地址。存儲單元地址可用符號地址(如SB1、KM等)或絕對地址(如I0.0、Q4.1等)。
3.3存儲器間接尋址
存儲器間接尋址,簡稱間接尋址。該尋址方式在指令中以存儲器的形式給出操作數(shù)所在存儲器單元的地址,也就是說該存儲器的內(nèi)容是操作數(shù)所在存儲器單元的地址。該存儲器一般稱為地址指針,在指令中需寫在方括號“[]”內(nèi)。地址指針可以是字或雙字,對于地址范圍小于65535的存儲器可以用字指針;對于其他存儲器則要使用雙字指針。
3.4寄存器間接尋址
寄存器間接尋址,簡稱寄存器尋址。該尋址方式在指令中通過地址寄存器和偏移量間接獲取操作數(shù),其中的地址寄存器及偏移量必須寫在方括號“[]”內(nèi)。在S7-300中有兩個地址寄存器AR1和AR2,用地址寄存器的內(nèi)容加上偏移量形成地址指針,并指向操作數(shù)所在的存儲器單元。地址寄存器的地址指針有兩種格式,其長度均為雙字,指針格式如圖所示。
第一種地址指針格式適用于在確定的存儲區(qū)內(nèi)尋址,即
區(qū)內(nèi)寄存器間接尋址。
第二種地址指針格式適用于區(qū)域間寄存器間接尋址。
第一種地址指針格式包括被尋址數(shù)據(jù)所在存儲單元地址的字節(jié)編號和位編號,至于對哪個存儲區(qū)尋址,則必須在指令中明確給出。這種格式適用于在確定的存儲區(qū)內(nèi)尋址,即區(qū)內(nèi)寄存器間接尋址。
第二種地址指針格式包含了數(shù)據(jù)所在存儲區(qū)的說明位(存儲區(qū)域標識位),可通過改變標識位實現(xiàn)跨區(qū)域?qū)ぶ?,區(qū)域標識由位26~24確定。這種指針格式適用于區(qū)域間寄存器間接尋址。
4 總結(jié)
西門子PLC編程時需要注意事項:
a)選用自己最熟悉的編程語言
b)數(shù)據(jù)類型填寫要和實際對應,避免出錯
c)尋址時注意尋址方式書寫格式
d)盡量采用結(jié)構(gòu)化編程或模塊化編程
參考文獻
[1]張鳳珊,電氣控制及可編程控制器,中國輕工業(yè)出版社
[2]馬志溪,電氣工程設計,機械工業(yè)出版社
[3]? IEC61131標準中的1-4部分