三菱FX系列PLC中有可以改變地址的變址寄存器,V和Z,在編程過程中可以通過變址寄存器改變要應用的地址,下面對變址寄存器及應用做下簡單介紹。 變址寄存器是除了可與數(shù)據(jù)寄存器的使用方法相同以外,還可以通過在應用指令的操作數(shù)中組合使用其他的軟元件編號和數(shù)值,從而在程序中更改軟元件的編號和數(shù)值內容的特殊寄存器。在寄存器中,被稱為變址(修飾)用的有V、Z兩種寄存器。 FX1S和FXIN有兩個變址寄存器V和Z,F(xiàn)X2N 和FX2NC 及FX3G、FX3U有16個變址寄存器V0~V7和Z0~Z7, 1、 變址寄存器的編號 變址寄存器[V、Z]的編號如下表所示。(編號以10進制數(shù)分配) 僅僅指定變址寄存器V或是Z的時候,分別作為V0、Z0處理。 1*. 關于停電保持的特性可以通過參數(shù)進行變更。 2、 功能和構造 2.1. 16位 變址寄存器具有和數(shù)據(jù)寄存器相同的結構。
2.2. 32位 在使用32位的應用指令中的軟元件時,或者及處理超出16位范圍的數(shù)值時必須使用Z0~Z7。將軟元件號相同的V、Z(例如V2、Z2)合并使用,Z為低位,如圖: 
如圖所示的V、Z組合,由于FX可編程控制器將Z側作為32位寄存器的低位側動作,所以即使指定了高位側的V0~V7也不會執(zhí)行修飾。
此外,作為32位指定時,會同時參考V(高位)、Z(低位),因此一旦V(高位)側中留存有別的用途中的數(shù)值時,會變成相當大的數(shù)值,從而出現(xiàn)運算錯誤。 即使32位應用指令中使用的變址值沒有超出16位數(shù)值范圍,也請按照上圖所示在對Z進行數(shù)值的寫入時,使用DMOV指令等的32位運算指令,同時改寫V(高位)、Z(低位)。 3、 軟元件的修飾
可以被修飾的軟元件,其修飾的內容如下所示: 10進制數(shù)軟元件·數(shù)值: M、S、T、C、D、R、KnM、KnS、P、K 例如,V0=K8,執(zhí)行D6V0時,對軟元件編號為D14(D6+8)的執(zhí)行指令。 此外,還可以修飾常數(shù),指定K30V0時,被執(zhí)行指令的是作為10進制的數(shù)值K38(30+8)。 8進制數(shù)軟元件: X、Y、KnX、KnY 例如,Z1=K9,執(zhí)行X0Z1時,對軟元件編號為X11(X0+9: 8進制數(shù)加法)的執(zhí)行指令。 注:對軟元件編號為8進制數(shù)的軟元件進行變址修飾時,V、Z的內容也會被換算成8進制數(shù)后進行加法運算。 因此,假定Z1=K10,Y0Z1被指定為Y12,請務必注意此時不是Y10。 16進制數(shù)值: H 例如,V5=K30,指定常數(shù)H30V5時,被視為H4E(30H+K30)。此外,V5=H30,指定常數(shù)H30V5時,被視為H60(30H+30H)。 4、 變址修正 4.1.基本指令的變址修正
位軟元件的情況 LD、LDI、AND、ANI、OR、ORI、OUT、SET、RST、PLS、PLF指令中使用的位軟元件[X、Y、M(特殊輔助繼電器除外)]、T、C(0~199)]都可以進行變址修飾。 下面舉在變址寄存器Z(0)中,對LD指令的X000和M0進行修正的例子來說明動作。

將K5或K10事先傳送到變址寄存器Z(0)中。 當Z(0)=5時,如果[X(0+5)=X005]后X005為ON,則輸出(ON)Y000、如果[M(0+5)= M5]后X5為ON,則輸出(ON)Y001。 此外,當Z(0)=10時,如果[X(0+10)=X012*1]后X012*1為ON,則輸出(ON)Y000。如果[M(0+10)=M10]后M10為ON,則輸出(ON)Y001。 在進行修飾的變址寄存器中,可以使用Z0~Z7、V0~V7。 對于定時器、計數(shù)器的 OUT 指令,可以修正定時器編號、計數(shù)器編號和設定值中指定的軟元件。 注意: 1) 32位計數(shù)器和特殊輔助繼電器不能進行變址修正。 2) 16位計數(shù)器進行變址修飾后,不能作為32位的計數(shù)器處理。 3) 變址修正X、Y的8進制數(shù)軟元件編號的時候,對軟元件編號進行變址修正的內容以8進制數(shù)換算進行加法運算。例如,在輸入X000 上附加的變址修正值呈K0,K8,K16 變化的情況下,輸入X000 也會按照[X(000+0)=X000]、[X(000+8)=X10]、[X(000+16)=X20]和8進制數(shù)換算后,對軟元件編號進行加法運算后改變。
字軟元件、常數(shù)的情況
變址修飾在OUT指令中使用的字軟元件[T,C(0~199)]的設定值。 下面例舉在變址寄存器V2中,修飾OUT指令TO的設定值D0的例子進行說明。(如圖)

將K0或K10事先傳送到變址寄存器V1中。 X001為ON,V1=0的時候,如果[D(0+0)=D0],設定值為D0,則T0動作。 此外,V1=10的時候,如果[D(0+10)=D10],設定值為D10,則T0動作。 注意: 1) OUT指令為32位計數(shù)器的時候,不能變址修正設定值。 4.2. 應用指令的變址修飾
變址修飾應用指令的標明方法 在應用指令說明中,可以進行變址修飾的操作數(shù)的表示方法如下圖所示,通過在源操作數(shù) 或是目標操作數(shù)符號 中加上[·],以此和不帶修飾功能的操作數(shù)進行區(qū)別。 
位軟元件的情況 用變址寄存器V1對CMP(FNC 10)的比較結果進行修飾,以此為例說明。(見圖) 
V1=0 V1=10 D0>D1 , M0=ON M10=ON D0=D1 , M1=ON M11=ON D0<D1 , M2=ON M12=ON 當X02為ON,V1=0的時候,則[M(0+0)=M0],比較結果輸出到M0~M2中。 此外,V1=10時,則[M(0+10)=M10],比較結果輸出到M10~M12中。 注:在進行修飾的變址寄存器中,可以使用Z0~Z7、V0~V7。 字軟元件的情況 1). 16位指令的操作數(shù)修飾 用變址寄存器V3中對MOV指令的傳送目標D0進行修飾,以此為例說明。

V3=0時,K500傳到D0 V3=10時,K500傳到D10 將K0或K10事先傳送到變址寄存器V3中。 X003為ON,V3=0時,則[D(0+0)=D0],將K500傳送至D0中。 此外,當V3=10時,則[D(0+10)=D10],將K500傳送至D10中。 2). 32位指令的操作數(shù)修飾 32位指令的場合,指令中使用的變址寄存器也需要以32 位進行指定。在32位指令中指定變址寄存器為Z側(Z0~Z7)后,即包含了與Z側成組的V側(V0~V7),一起作為32位寄存器運行。 用變址寄存器[V4,Z4]修飾DMOV指令的傳送目標[D1,D0]以此為例說明。

V4Z4=0時, K69000傳到D0D1 V4Z4=10時,K69000傳到D10D11
將K0或K10預先傳送到變址寄存器[V4,Z4]中。 X005為ON,[V4,Z4]=0時,則[D(1+0),D(0+0)]=[D1,D0],將K69000傳送至[D1,D0]中。 此外,[V4,Z4]=10時,則[D(1+10),D(0+10)]=[D11,D10],將K69000傳送至[D11,D10]中。 注意: 1) 即使寫入變址寄存器的數(shù)值沒有超出16位的數(shù)值范圍(0~32767),也必須使用32位指令對V、Z都進行改 寫。如僅僅改寫了Z側,V側中會存有其他的數(shù)值,從而變成相當大的數(shù)值,出現(xiàn)運算錯誤。 2) 對16位計數(shù)器變址修飾后,不可以作為32位的計數(shù)器使用。 如果變址修飾的結果需要是32位計數(shù)器的情況下,請對計數(shù)器C200以后的計數(shù)器加Z0~Z7。 3) 變址寄存器 不能對V、Z本身進行變址修飾。 4) 特殊功能模塊/單元的緩沖存儲區(qū)的直接指定 緩沖存儲區(qū)的直接指定U□\G□其緩沖存儲區(qū)的編號可以被變址修飾。 模塊號不能被變址修飾。(U0\G0Z0有效,U0Z0\G0不可) 5) 位數(shù)指定的變址修飾 指定位數(shù)用的中Kn的“n”不能進行變址修飾。(K4M0Z0有效、K0Z0M0不可) 6) 輸入輸出繼電器(8進制軟元件編號)的變址修飾 對X、Y、KnX、KnY的8進制軟元件編號進行變址修飾時,對軟元件編號進行變址修飾的的變址寄存器內容會被換算成8進制數(shù)后再進行加法運算。
應用舉例:
1、在圖中的例子中,使用MOV指令輸出Y007~Y000,通過變址修飾后可以將該輸入切換成X007~X000、X017~X010、X027~X020。 通過將變址值改寫成K0、K8、K16,[X000+0=X000]、[X000+8=X10]、[X000+16=X20]在8進制數(shù)換算后,再加在軟元件編號上,使作為源操作數(shù)的輸入端子改變。

V3=0時,X7 ~ X 0 → Y7~Y0 V3=8時,X17~X10 → Y7~Y0 V3=16時,X27~X20 → Y7~Y0 2、定時器當前值的顯示示例 可以使用變址寄存器編寫顯示定時器T0~T9當前值用的順控程序。 

對應Z0=0~9,則T0Z0=T0~T 9。 3、常數(shù)的情況 用變址寄存器V6修飾MOV指令的發(fā)送源,以此為例說明。 
V6=0, K8(8+0) → D20 V6=20, K28(8+20) → D20
將K0或K20事先傳送到變址寄存器V6中。 X005為ON,V6=0時,則[K(8+0)=K8],將K8傳送至D10中。 此外,V6=20時,則[K(8+20)=K28],將K28傳送至D10中。 4、使用次數(shù)受限制的指令的變址修飾實例
如果用變址寄存器V、Z修飾對象軟元件的編號,那么可通過程序改變對象軟元件的編號。如果對有使用次數(shù)限制的指令使用這一功能的話,則可 以得到與多次使用該指令編程相同的效果。
使用TKY指令(FNC 70)的修飾實例 
將2組0~9為止的鍵(數(shù)字鍵)輸入的輸入數(shù)據(jù)保存到D0、D2中。 TKY指令(FNC 70)是在程序中只能使用一次的指令,但是通過對輸入數(shù)據(jù)的起始軟元件編號、輸入數(shù)據(jù)的保存軟元件編號、使按鍵信息為ON的起始軟元件編號進行修飾,可輸入2組0~9的鍵(數(shù)字鍵)輸入。 此外,在該指令執(zhí)行過程中,即使改變V,切換也無效。如果要想使該變更有效,請使指令的驅動OFF一次。
|