在使用三菱PLC特殊功能模塊時,CPU除了為模塊分配輸入輸出地址(輸入X和輸出Y)外,還在模塊內(nèi)存 中為模塊分配了一塊數(shù)據(jù)緩沖區(qū)(BFM)來做為和CPU通訊之用。如下所示為高速計數(shù)器模塊A1SD62的輸入輸出地址和緩沖區(qū)的地址及含義:
圖1 A1SD62的輸入信號
圖2 A1SD62的輸出信號
圖3 A1SD62的緩沖區(qū)定義
注:模塊的輸入輸出為占32位,其具體定義和模塊在基板的位置有關(guān),表中定義的X00~X1F及Y00~Y1F是模塊占用第一個模塊位置時的定義,而緩沖區(qū)的地址則可以在指令使用。
三菱有專門兩條指令實現(xiàn)對模塊緩沖區(qū)BFM的讀寫,即:TO指令和FROM指令,其它指令都是這兩個指令的變形,如:DTO表示32位操作指令(無D時,表示16位操作指令),TOP表示在控制命令的上升沿時執(zhí)行對BFM的寫入,可以根據(jù)實際情況分別使用,F(xiàn)ROM也同樣。下面對這兩種指令的使用方法做一下簡要介紹。
1、FROM指令(FNC78)
FROM指令的功能是實現(xiàn)對特殊模塊緩沖區(qū)BFM定位的讀取操作。指令格式如下:
指令中各軟元件、操作數(shù)代表的意義如下:
CC:FROM指令執(zhí)行的啟動條件。啟動指令可以是X、Y、內(nèi)部繼電器M等。
Kn1:模塊地址的高位,K代表模塊地址的高位用十進(jìn)制數(shù)表示,也可以用十進(jìn)制數(shù)來表示。如: 當(dāng)高速計數(shù)器模塊A1SD62的輸入輸出地址分別是XA0F~XB1F及YA0F~YB1F時,此值可以是K10,也可以是HA。實際上此值是特殊模塊在基板上的位置,在實際設(shè)置時,也可按每個位置為16點來計算得到此值(如一個模塊占32點則為兩個位置)。
Kn2:為要讀取的緩沖區(qū)的地址,可以是十進(jìn)制數(shù)(以K打頭),也可以是十六進(jìn)制數(shù)(以H打頭)。此地址只和模塊有關(guān),和模塊在基板的位置無關(guān)。
Kn3Mn4:讀取的數(shù)據(jù)在PLC CPU中的存儲地址(目標(biāo)地址)。
Kn3代表從特殊模塊BFM讀取的二進(jìn)制的位數(shù),以4位(bit)為單位,n3允許值為1~8。如:
K4代表16位(bit)。
Mn4代表數(shù)據(jù)在PLC存儲區(qū)域的首地址。
M代表中間繼電器,表示讀取的數(shù)據(jù)存儲于中間繼電器。存儲位置也可以是數(shù)據(jù)寄存器(常用),此時就不需要前綴Kn3了。
Kn5:需要傳送的點數(shù)。采用FROM、FROMP格式時,以16位二進(jìn)制為單位,K1代表讀取16點,K2代表32點等。采用DFROM、DFROMP格式時,以32位二進(jìn)制為單位,K1代表讀取32點,K2代表64點等。n5的范圍為1~32767。
舉例:
說明:
0行:當(dāng)X0=1時,讀取1號(第1個K1)模塊緩沖區(qū)地址29(K29)的數(shù)據(jù)保存到M0~M15的16點(K4)中間繼電器中。
10行:在X0的上升沿,讀取1號(第1個K1)模塊緩沖區(qū)地址29(K29)的數(shù)據(jù)保存到M0~M15的16點(K4)中間繼電器中。
20行:當(dāng)X0=1時,讀取1號(第1個K1)模塊緩沖區(qū)地址29(K29)的數(shù)據(jù)保存到寄存器D0中。
30行:當(dāng)X0=1時,讀取1號(第1個K1)模塊緩沖區(qū)地址29(K29)和30中的數(shù)據(jù)保存到寄存器D0和D1中。
40行:當(dāng)X0=1時,讀取1號(第1個K1)模塊緩沖區(qū)地址29(K29)和30中的數(shù)據(jù)保存到寄存器D0和D1中。
50行:當(dāng)X0=1時,讀取1號(第1個K1)模塊緩沖區(qū)地址29(K29)~32中的數(shù)據(jù)保存到寄存器D0~D3中。
60行:當(dāng)X0=1時,讀取第10個模塊緩沖區(qū)H160,H161的數(shù)據(jù)到X700~X711中。
2、TO指令(FNC79)
TO指令是將PLC中的數(shù)據(jù)寫入到特殊模塊的緩沖區(qū)內(nèi)。其指令格式如下:
指令中各軟元件、操作數(shù)代表的意義如下:
(D) TO(P):指令代碼,其中D代表32位操作指令,P代表觸點上升沿觸發(fā)TO指令。
Kn1:同F(xiàn)ROM指令。
Kn2:要寫入數(shù)據(jù)的模塊緩沖區(qū)地址(目標(biāo)地址)。
Kn3Mn4:源數(shù)據(jù)在PLC中的存儲地址。Kn3代表需要寫入的二進(jìn)制位數(shù),以4位(bit)為單位,如K4代表16位,允許輸入的值為K1~K8。Mn4代表源數(shù)據(jù)在PLC中的存儲地址。源數(shù)據(jù)也可以是16位數(shù)據(jù)寄存器D(常用),此時就不需要前綴Kn3了。
Kn5:需要傳送的點數(shù)。允許的值為K1~K32767。
舉例:
含義:在X0的上升沿,把D120中的數(shù)據(jù)寫入到第8個模塊地址為6的緩沖區(qū)中。