在PLC控製係統中,特殊功能模塊一般作為(wei) PLC的擴展單元使用,模塊的控製與(yu) 檢測需要通過PLC的程序進行。
為(wei) 了能夠方便地實現PLC對特殊功能模塊的控製,並減少應用指令的條數,統一應用指令的格式,在三菱PLC的特殊功能模塊中設置了專(zhuan) 門用於(yu) PLC與(yu) 模塊間進行信息交換的緩衝(chong) 存儲(chu) 器(Buffer Memory,簡稱BFM)。緩衝(chong) 存儲(chu) 器數據中包括了模塊控製信號位、模塊參數等控製條件,以及模塊的工作狀態信息、運算與(yu) 處理結果、出錯信息等內(nei) 容。
PLC對模塊的控製,隻需要通過PLC的數據輸出(TO)指令在模塊緩衝(chong) 存儲(chu) 器的對應控製數據位中寫(xie) 入控製信息即可。同樣PLC對模塊的狀態檢測,也隻需要通過PLC的數據閱讀(FROM)指令讀出對應的模塊緩衝(chong) 存儲(chu) 器數據即可。
因此,對於(yu) 所有的特殊功能模塊,PLC的編程事實上隻是不斷利用PLC的TO與(yu) FROM指令對模塊緩衝(chong) 存儲(chu) 器進行讀/寫(xie) 操作而已。為(wei) 此,正確使用PLC的TO與(yu) FROM指令,是特殊功能模塊編程的前提條件。
一、特殊功能模塊的位置編號
當多個(ge) 特殊模塊與(yu) PLC相連時,PLC對模塊進行的讀/寫(xie) 操作必須正確區分是對哪一個(ge) 模塊進行操作。這就產(chan) 生了區分不同模塊的位置編號。
當多個(ge) 模塊相連時,PLC特殊模塊位置編號是這樣確定的:從(cong) 基本單元最近的模塊算起,由近到遠分別是0#,1#,2#,…,7#特殊模塊編號,如下圖所示。
但當其中如果含有擴展單元時,擴展模塊不算入編號,特殊模塊編號則跳過擴展單元,仍由近到遠從(cong) 0#編起,如圖下所示。
一個(ge) PLC的基本單元最多能夠連接8個(ge) 特殊單元模塊,編號從(cong) 0#~7#。FX2N PLC的I/O點數最多是256點,它包含了基本單元的I/O點數、擴展單元的I/O點數和特殊模塊所占用的I/O點數。特殊模塊所占用的I/O點數可查詢手冊(ce) 得到。FX2N的模擬量模塊一般占用8個(ge) I/O點,計算在輸入點、輸出點均可。
二、緩衝(chong) 存儲(chu) 器緩衝(chong) 存儲(chu) 器BFM
每個(ge) 特殊功能模塊裏麵有若幹個(ge) 16位存儲(chu) 器,手冊(ce) 上麵稱緩衝(chong) 存儲(chu) 器BFM。緩衝(chong) 存儲(chu) 器BFM是PLC與(yu) 外部模擬量進行信息交換的中間單元。輸入時,由模擬量輸入模塊將外部模擬量轉換成數字量後先暫存在BFM內(nei) ,再由PLC進行讀取,送入PLC的字軟元件進行處理。輸出時,PLC將數字量送入輸出模塊的BFM內(nei) ,再由輸出模塊自動轉換成模擬量送入外部控製器或執行器中,這是模擬量模塊BFM的主要功能。除此之外,BFM還具有如下功能。
1)模塊應用設置功能:模擬量模塊在具體(ti) 應用時,要求對其進行選擇性設置,如通道的選擇、轉換速度、采樣等,這些都是針對BFM不同單元的內(nei) 容設置來進行的。
2)識別和差錯功能:每個(ge) 模擬量模塊都是一個(ge) 識別碼,固化在某個(ge) BFM單元裏,用於(yu) 進行模塊識別。當模塊發生故障時,BFM的某個(ge) 單元會(hui) 存在故障狀態信息。
3)標定調整功能:當模塊的標定不能夠滿足實際生產(chan) 需要時,可以通過修改某些BFM單元數值建立新的標定關(guan) 係。
特殊模塊的BFM數量並不相同,但FX2N模擬量模塊大多為(wei) 32個(ge) BFM緩衝(chong) 存儲(chu) 單元,他們(men) 的編號是BFM#0~BFM#31。每個(ge) BFM緩衝(chong) 存儲(chu) 單元都是一個(ge) 16位的二進製存儲(chu) 器。在數字技術中,16位二進製位數一個(ge) “字”,因此,每個(ge) BFM存儲(chu) 單元都是一個(ge) “字”單元。在介紹模擬量的BFM功能時,常常把某些BFM存儲(chu) 單元的內(nei) 容稱為(wei) “XX”字,如通道字、狀態字等。
對特殊功能模塊的學習(xi) 和應用,除了選型、模擬量信號的輸入/輸出接線和它的位置編號外,對其BFM存儲(chu) 單元的學習(xi) 是個(ge) 關(guan) 鍵,是學習(xi) 特殊功能模塊的難點和重點。實際上,學習(xi) 這些模塊的應用就是學習(xi) 這些存儲(chu) 器的內(nei) 容跟它的讀/寫(xie) 。推廣來說,不管學習(xi) 哪種模塊,其核心都是BFM的內(nei) 容及其讀寫(xie) 。
PLC與(yu) 特殊模塊的信息交換是通過讀指令FROM和寫(xie) 指令TO的程序編製來完成的。
一、FROM指令
PLC的FROM指令的作用是將特殊功能模塊緩衝(chong) 存儲(chu) 器(BFM)的內(nei) 容讀入到PLC中。指令的功能代碼為(wei) FNC78,指令格式如下:
指令中各元件、操作數代表的意義(yi) 依次如下。
X0:指令執行啟動條件,當X0為(wei) “1”時,執行本指令。啟動觸點可以是輸入X、輸出Y、內(nei) 部繼電器M等。
FROM:指令代碼,其中FROM為(wei) 基本指令代碼,代表特殊功能模塊緩衝(chong) 存儲(chu) 器(BFM)。
閱讀指令,帶“□”的前綴D與(yu) 帶後綴P可以根據情況選擇使用,可有可無,前綴D表示32位操作指令,後綴P代表觸點上升沿驅動。各種組合所代表的意義(yi) 如下。
-
FROM(無前綴D和後綴P):利用觸點X0.啟動的16位數據閱讀指令。
-
DFROM(有前綴D,無後綴P):利用觸點X0啟動的32位數據閱讀指令。
-
FROMP(無前綴D,有後綴P):利用觸點X0的上升沿啟動的16位數據閱讀指令。
-
DFROMP(有前綴D,有後綴P):利用觸點X0的上升沿啟動的32位數據閱讀指令。
K1:模塊地址常數,用來選擇與(yu) 指定特殊功能模塊。如在FX係列PLC中,從(cong) 基本單元開始,依次向右的第1、2、3…..個(ge) 特殊功能模塊,對應的模塊地址依次為(wei) K0、K1、K2、……,在指令的這一區域隻能輸入常數。
K29:模塊緩衝(chong) 存儲(chu) 器的地址(數據源),K29代表模塊緩衝(chong) 存儲(chu) 器的地址為(wei) BFM#29。在指令這一區域隻能輸出常數,具體(ti) 參數號取決(jue) 於(yu) 指令需要閱讀的內(nei) 容。
K40M0:指定從(cong) 緩衝(chong) 存儲(chu) 器讀取到的數據在PLC中的存儲(chu) 位置(目標位置)。K4代表需要閱讀的二進製位數,以4位(bit)二進製為(wei) 單位,K4代表16位,允許輸入的值為(wei) K1~K8。M0代表數據在PLC中存儲(chu) 區域的首地址,在16位數據閱讀時,若輸入M0,代表讀入的數據存儲(chu) 於(yu) PLC的內(nei) 部繼電器M0~M15中。存儲(chu) 位置也可以是16位數據寄存器D(常用),這時不需要前綴K4。
K1:需要傳(chuan) 送的點數,采用FROM、FROMP格式時,以16位二進製為(wei) 單位,K1代表閱讀16點,K2代表32點等。采用DFROM、DFROMP格式時,以32位二進製為(wei) 單位,K1代表閱讀32點,K2代表64點。允許輸入的值為(wei) K1~K32767。
FROM指令也可以32位應用,這時傳(chuan) 送數據個(ge) 數為(wei) 2K1個(ge) 。
下麵通過具體(ti) 例子來具體(ti) 說明指令功能。
【例子1】試說明下列指令執行功能含義(yi) 。
1)FROM K1 K30 D0 K1
把1#模塊的BFM#30單元內(nei) 容複製到PLC的D0單元中。
2)FROM K0 K50 D100 K4
把0#模塊的(BFM#5~BFM#8)4個(ge) 單元內(nei) 容複製到PLC的(D10~D13)單元中。其對應關(guan) 係是:(BFM#5)→(D10)、(BFM#6)→(D11)、(BFM#7)→(D12)、(BFM#8)→(D13)。
3)FROM K1 K29 K4M10 K1
用1#模塊BFM#29的位值控製PLC的M10~M25繼電器狀態。位值為(wei) 0,M斷開;位值為(wei) 1,M閉合。例如,BFM#29中的數值是1000 0000 0000 0111,那麽(me) 它所對應的繼電器M10、M11、M12和M25是閉合的,其餘(yu) 繼電器都是斷開的。
4)DFROM K0 K5 D100 K1
這是FROM指令的32位應用,注意這個(ge) K1表示傳(chuan) 送兩(liang) 個(ge) 數據,指令執行功能含義(yi) 是把0#模塊(BFM#5)→(D100)、(BFM#6)→(D101)。
【例子2】說明下圖程序各指令的意義(yi)
指令①的作用是:當X0為(wei) “1”時,將安裝於(yu) 基本單元右側(ce) 的第1個(ge) 特殊功能模塊的緩衝(chong) 存儲(chu) 器的參數BFM#29讀入到PLCM0~M15的16點內(nei) 部及繼電器中。
指令②的作用是:在X0為(wei) “1”的瞬間,利用X0的上升沿,將安裝於(yu) 基本單元右側(ce) 的第1個(ge) 特殊功能模塊的緩衝(chong) 存儲(chu) 器的參數BFM#29讀入到PLC的M0~M15的16點內(nei) 部繼電器中。
指令③的作用是:當X0為(wei) “1”時,將安裝於(yu) 基本單元右側(ce) 的第一個(ge) 特殊功能模塊的緩衝(chong) 存儲(chu) 器的參數BFM#29、BFM#30讀入到PLC的16位數據存儲(chu) 器D0中。
指令④的作用是:當X0為(wei) “1”時,將安裝於(yu) 基本單元右側(ce) 的第一個(ge) 特殊功能模塊的緩衝(chong) 存儲(chu) 器的參數BFM#29、BFM#30讀入到PLC的16位數據存儲(chu) 器D0、D1中(32位閱讀指令)。
指令⑤的作用是:當X0為(wei) “1”時,將安裝於(yu) 基本單元右側(ce) 第一個(ge) 特殊功能模塊的緩衝(chong) 存儲(chu) 器的參數BFM#29、BFM#30讀入到PLC的16位數據寄存器D0、D1中(16位閱讀指令,但傳(chuan) 送點數為(wei) 連續32點)。
指令⑥指令作用是:當X0為(wei) “1”時,將安裝於(yu) 基本單元右側(ce) 第一個(ge) 特殊功能模塊的緩衝(chong) 存儲(chu) 器的參數BFM#29、BFM#30、BFM#31、BFM#32讀入到PLC的16位數據存儲(chu) 器D0、D1、D2、D3中(32位閱讀指令,傳(chuan) 送點數為(wei) 連續64點)。
二、TO指令
TO指令的作用是將PLC中指定的內(nei) 容寫(xie) 入特殊功能模塊的緩衝(chong) 存儲(chu) 器(BFM)中,指令的功能代號為(wei) FNC79,指令格式如下:
指令中各元件、操作代表的意義(yi) 依次如下。
X0:指令執行啟動條件。
TO:指令代碼,其中TO為(wei) 基本指令代碼,代表特殊功能代碼緩衝(chong) 存儲(chu) 器(BFM)寫(xie) 入指令,前綴D表示32位操作指令,後綴P表示觸點上升沿驅動。
K1:模塊地址常數,用來選擇和指定特殊功能模塊。
K29:模塊緩衝(chong) 存儲(chu) 器的數據地址常數,在TO指令中目標位置,K29代表模塊緩衝(chong) 存儲(chu) 器的參數BFM#29。
K4M0:源數據在PLC中的存儲(chu) 位置指定。K4代表需要寫(xie) 入的二進製位數,以4位(bit)二進製為(wei) 單位,K4代表16位,允許輸入的值為(wei) K1~K8。M0代表源數據在PLC中存儲(chu) 區域的首地址。源數據也可以是16位數據寄存器D(常用),這時不需要前綴K4。
K1:需要傳(chuan) 送的點數,允許輸入的值為(wei) K1~K32767。TO指令也可32位應用,這時傳(chuan) 送數據個(ge) 數為(wei) 2K1個(ge) 。
指令中各操作數的含義(yi) 和要求與(yu) FROM指令一致。
【例子3】試說明指令執行功能含義(yi) 。
1)TOP K1 K0 H3300 K1
把十六進製數H3300複製到1#模塊的BFM#0單元中。
2)TOP K0 K5 D10 K4
把PLC的(D10~D13)4個(ge) 單元的內(nei) 容寫(xie) 入位置編號為(wei) 0#模塊的(BFM#5~BFM#8)4個(ge) 單元中。其對應關(guan) 係是(D10)→(BFM#5)、(D11)→(BFM#6)、(D12)→(BFM#7)、(D13)→(BFM#8)。
3)TOP K1 K4 K4M10 K1
把PLC的M10~M25繼電器的狀態所表示的16位數據的內(nei) 容寫(xie) 入位置編號為(wei) 1#模塊BFM#4緩衝(chong) 存儲(chu) 器中。M斷開,位值為(wei) 0;M閉合,位值為(wei) 1。
4)DTOP K0 K5 D100 K1
這是TO指令的32位應用,注意這個(ge) K1表示傳(chuan) 送兩(liang) 個(ge) 數據,指令執行功能含義(yi) 是把PLC的(D100)、(D101)單元中的內(nei) 容複製到位置編號為(wei) 0#模塊的(BFM#5)、(BFM#6)緩衝(chong) 存儲(chu) 器中。