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