(湖南省衡陽技師學院電氣工程系,湖南衡陽,421000)
西門子PLC的基本指令系統通常包含基本指令、順序控制指令和功能指令三大類。在簡單的小控制系統中,用基本指令或順控指令就能完成程序設計,但對于復雜的控制系統,往往就需要功能指令才能完成了。在往年的教學過程中,學生普遍覺得基本指令和順序控制指令容易理解和掌握,一旦涉及到功能指令應用時,學生就覺得難度大為增加,因此如何講解功能指令,使我們的學生掌握功能指令就是西門子PLC課程中的一個難點。在西門子PLC教學中,我將單一傳送指令作為功能指令的第一條指令來介紹和學習,通過采用編程軟件和仿真軟件的配套使用,直觀得來說明傳送指令的功能及應用。
在介紹單一傳送指令之前,首先要復習以下內容:1、常用的數據類型,如位、字節、字、雙字的相互關系;2、多個字節在進行組合時,應遵循“高地址,低字節;低地址,高字節”的原則;3、西門子PLC的13個編程元件及編號格式。
2.1指令功能及格式
單一傳送指令(Move)格式如圖1所示,它包括字節傳送、字傳送和雙字傳送。

其中,□可為B/W/DW/R
EN——使能輸入端 ENO——使能輸出端
IN——源操作數 OUT——目標操作數
功能描述:使能輸入EN接通時,把一個字節(字/雙字/實數)數據由IN傳送到OUT所指的存儲單元。
數據類型:IN/OUT數據長度保持一致,均為字節(字、雙字或實數)。
2.2選擇正確的數據類型
我們學生在應用功能指令時,經常出現的一個問題就是不會選擇正確的數據類型。下面我們通過習題來說明。
請幾個同學給圖2中的各個單一傳送指令應選擇正確的數據類型,同時在編程軟件下進行驗證是否正確。
在網絡1中,IN端為常數,OUT端為VB0,因此指令的數據類型應為保持一致,為字節B;(思考:OUT可不可以為常數呢?)
在網絡2中,IN端為小數1.23,OUT端為VD100,因此指令的數據類型應為保持一致,為實數R;(思考:OUT可不可以為字節或字呢?)
在網絡3中,IN端為VD300,OUT端為AC0,因此指令的數據類型應為保持一致,為雙字DW;
在網絡4中,IN端為C0,OUT端為VW10,因此指令的數據類型應為保持一致,為字W。(思考:這時IN為C0,取用的是C0的當前值還是位狀態?)

圖2 單一傳送指令數據類型選擇
2.3 在編程軟件下編寫圖3的程序,并導出到仿真軟件中。在仿真軟件里,執行下列操作,先閉合I0.0,觀察輸出指示燈的變化;接著斷開I0.0,觀察輸出指示燈是否有變化;然后閉合I0.1,觀察輸出指示燈的狀態。

圖3 8彩燈的PLC控制程序
通過觀察,我們發現在仿真軟件下,閉合I0.0,輸出指示燈Q0.0~Q0.7均亮;之后斷開I0.0,輸出指示燈Q0.0~Q0.7并沒有滅;之后閉合I0.1,輸出指示燈Q0.0~Q0.7同時熄滅。
當Q0.0~Q0.7同時點亮,即狀態都為1,如果QB0用二進制表示,則為2#1111 1111;如果QB0用十六進制表示,則為16#FF;如果QB0用十進制表示,則255。
經過以上的學習后,請幾位同學對單一傳送指令的使用做個小結,并由教師匯總歸納。
3.1 MOV指令的后綴為該指令的數據類型,其中B代表存取的是字節、W代表存取的是字、D(W)代表存取的是雙字、R代表存取的是實數。
3.2 IN、OUT和單一傳送指令MOV的數據長度應保持一致,但源操作數IN可以為常數,目標操作數OUT只能為存儲單元。
3.3 數據一經傳送成功后,即使之后EN端斷開,OUT的內容保持傳送后的結果,不會自動清0,這是和線圈輸出不同的地方。