三菱FX系列PLC中有可以改變地址的變址寄存器,V和Z,,在編程過程中可以通過變址寄存器改變要應(yīng)用的地址,,下面對(duì)變址寄存器及應(yīng)用做下簡(jiǎn)單介紹。 變址寄存器是除了可與數(shù)據(jù)寄存器的使用方法相同以外,,還可以通過在應(yīng)用指令的操作數(shù)中組合使用其他的軟元件編號(hào)和數(shù)值,,從而在程序中更改軟元件的編號(hào)和數(shù)值內(nèi)容的特殊寄存器。在寄存器中,,被稱為變址(修飾)用的有V,、Z兩種寄存器。 FX1S和FXIN有兩個(gè)變址寄存器V和Z,,F(xiàn)X2N 和FX2NC 及FX3G,、FX3U有16個(gè)變址寄存器V0~V7和Z0~Z7,, 1、 變址寄存器的編號(hào) 變址寄存器[V,、Z]的編號(hào)如下表所示,。(編號(hào)以10進(jìn)制數(shù)分配) 僅僅指定變址寄存器V或是Z的時(shí)候,分別作為V0,、Z0處理,。 1*. 關(guān)于停電保持的特性可以通過參數(shù)進(jìn)行變更。 2,、 功能和構(gòu)造 2.1. 16位 變址寄存器具有和數(shù)據(jù)寄存器相同的結(jié)構(gòu),。
2.2. 32位 在使用32位的應(yīng)用指令中的軟元件時(shí),或者及處理超出16位范圍的數(shù)值時(shí)必須使用Z0~Z7,。將軟元件號(hào)相同的V,、Z(例如V2、Z2)合并使用,,Z為低位,,如圖: 如圖所示的V、Z組合,,由于FX可編程控制器將Z側(cè)作為32位寄存器的低位側(cè)動(dòng)作,,所以即使指定了高位側(cè)的V0~V7也不會(huì)執(zhí)行修飾。
此外,,作為32位指定時(shí),,會(huì)同時(shí)參考V(高位)、Z(低位),,因此一旦V(高位)側(cè)中留存有別的用途中的數(shù)值時(shí),,會(huì)變成相當(dāng)大的數(shù)值,從而出現(xiàn)運(yùn)算錯(cuò)誤,。 即使32位應(yīng)用指令中使用的變址值沒有超出16位數(shù)值范圍,,也請(qǐng)按照上圖所示在對(duì)Z進(jìn)行數(shù)值的寫入時(shí),使用DMOV指令等的32位運(yùn)算指令,,同時(shí)改寫V(高位),、Z(低位)。 3,、 軟元件的修飾
可以被修飾的軟元件,,其修飾的內(nèi)容如下所示: 10進(jìn)制數(shù)軟元件·數(shù)值: M、S,、T,、C、D、R,、KnM,、KnS、P,、K 例如,,V0=K8,執(zhí)行D6V0時(shí),,對(duì)軟元件編號(hào)為D14(D6+8)的執(zhí)行指令,。 此外,還可以修飾常數(shù),,指定K30V0時(shí),被執(zhí)行指令的是作為10進(jìn)制的數(shù)值K38(30+8),。 8進(jìn)制數(shù)軟元件: X,、Y、KnX,、KnY 例如,,Z1=K9,執(zhí)行X0Z1時(shí),,對(duì)軟元件編號(hào)為X11(X0+9: 8進(jìn)制數(shù)加法)的執(zhí)行指令,。 注:對(duì)軟元件編號(hào)為8進(jìn)制數(shù)的軟元件進(jìn)行變址修飾時(shí),V,、Z的內(nèi)容也會(huì)被換算成8進(jìn)制數(shù)后進(jìn)行加法運(yùn)算,。 因此,假定Z1=K10,,Y0Z1被指定為Y12,,請(qǐng)務(wù)必注意此時(shí)不是Y10。 16進(jìn)制數(shù)值: H 例如,,V5=K30,,指定常數(shù)H30V5時(shí),被視為H4E(30H+K30),。此外,,V5=H30,指定常數(shù)H30V5時(shí),,被視為H60(30H+30H),。 4、 變址修正 4.1.基本指令的變址修正
位軟元件的情況 LD,、LDI,、AND、ANI、OR,、ORI,、OUT、SET,、RST,、PLS、PLF指令中使用的位軟元件[X,、Y,、M(特殊輔助繼電器除外)]、T,、C(0~199)]都可以進(jìn)行變址修飾,。 下面舉在變址寄存器Z(0)中,對(duì)LD指令的X000和M0進(jìn)行修正的例子來說明動(dòng)作,。
將K5或K10事先傳送到變址寄存器Z(0)中,。 當(dāng)Z(0)=5時(shí),如果[X(0+5)=X005]后X005為ON,,則輸出(ON)Y000,、如果[M(0+5)= M5]后X5為ON,則輸出(ON)Y001,。 此外,,當(dāng)Z(0)=10時(shí),如果[X(0+10)=X012*1]后X012*1為ON,,則輸出(ON)Y000,。如果[M(0+10)=M10]后M10為ON,則輸出(ON)Y001,。 在進(jìn)行修飾的變址寄存器中,,可以使用Z0~Z7、V0~V7,。 對(duì)于定時(shí)器,、計(jì)數(shù)器的 OUT 指令,可以修正定時(shí)器編號(hào),、計(jì)數(shù)器編號(hào)和設(shè)定值中指定的軟元件,。 注意: 1) 32位計(jì)數(shù)器和特殊輔助繼電器不能進(jìn)行變址修正。 2) 16位計(jì)數(shù)器進(jìn)行變址修飾后,,不能作為32位的計(jì)數(shù)器處理,。 3) 變址修正X、Y的8進(jìn)制數(shù)軟元件編號(hào)的時(shí)候,,對(duì)軟元件編號(hào)進(jìn)行變址修正的內(nèi)容以8進(jìn)制數(shù)換算進(jìn)行加法運(yùn)算,。例如,,在輸入X000 上附加的變址修正值呈K0,K8,,K16 變化的情況下,,輸入X000 也會(huì)按照[X(000+0)=X000]、[X(000+8)=X10],、[X(000+16)=X20]和8進(jìn)制數(shù)換算后,,對(duì)軟元件編號(hào)進(jìn)行加法運(yùn)算后改變。
字軟元件,、常數(shù)的情況
變址修飾在OUT指令中使用的字軟元件[T,C(0~199)]的設(shè)定值,。 下面例舉在變址寄存器V2中,修飾OUT指令TO的設(shè)定值D0的例子進(jìn)行說明,。(如圖)
將K0或K10事先傳送到變址寄存器V1中,。 X001為ON,V1=0的時(shí)候,,如果[D(0+0)=D0],,設(shè)定值為D0,則T0動(dòng)作,。 此外,,V1=10的時(shí)候,,如果[D(0+10)=D10],,設(shè)定值為D10,則T0動(dòng)作,。 注意: 1) OUT指令為32位計(jì)數(shù)器的時(shí)候,,不能變址修正設(shè)定值。 4.2. 應(yīng)用指令的變址修飾
變址修飾應(yīng)用指令的標(biāo)明方法 在應(yīng)用指令說明中,,可以進(jìn)行變址修飾的操作數(shù)的表示方法如下圖所示,,通過在源操作數(shù) 或是目標(biāo)操作數(shù)符號(hào) 中加上[·],以此和不帶修飾功能的操作數(shù)進(jìn)行區(qū)別,。 位軟元件的情況 用變址寄存器V1對(duì)CMP(FNC 10)的比較結(jié)果進(jìn)行修飾,,以此為例說明。(見圖) V1=0 V1=10 D0>D1 , M0=ON M10=ON D0=D1 , M1=ON M11=ON D0<D1 , M2=ON M12=ON 當(dāng)X02為ON,,V1=0的時(shí)候,,則[M(0+0)=M0],比較結(jié)果輸出到M0~M2中,。 此外,,V1=10時(shí),則[M(0+10)=M10],,比較結(jié)果輸出到M10~M12中,。 注:在進(jìn)行修飾的變址寄存器中,,可以使用Z0~Z7、V0~V7,。 字軟元件的情況 1). 16位指令的操作數(shù)修飾 用變址寄存器V3中對(duì)MOV指令的傳送目標(biāo)D0進(jìn)行修飾,,以此為例說明。
V3=0時(shí),,K500傳到D0 V3=10時(shí),,K500傳到D10 將K0或K10事先傳送到變址寄存器V3中。 X003為ON,,V3=0時(shí),,則[D(0+0)=D0],將K500傳送至D0中,。 此外,,當(dāng)V3=10時(shí),則[D(0+10)=D10],,將K500傳送至D10中,。 2). 32位指令的操作數(shù)修飾 32位指令的場(chǎng)合,指令中使用的變址寄存器也需要以32 位進(jìn)行指定,。在32位指令中指定變址寄存器為Z側(cè)(Z0~Z7)后,,即包含了與Z側(cè)成組的V側(cè)(V0~V7),一起作為32位寄存器運(yùn)行,。 用變址寄存器[V4,Z4]修飾DMOV指令的傳送目標(biāo)[D1,D0]以此為例說明,。
V4Z4=0時(shí), K69000傳到D0D1 V4Z4=10時(shí),,K69000傳到D10D11
將K0或K10預(yù)先傳送到變址寄存器[V4,Z4]中,。 X005為ON,[V4,Z4]=0時(shí),,則[D(1+0),,D(0+0)]=[D1,D0],將K69000傳送至[D1,D0]中,。 此外,,[V4,Z4]=10時(shí),則[D(1+10),,D(0+10)]=[D11,D10],,將K69000傳送至[D11,D10]中。 注意: 1) 即使寫入變址寄存器的數(shù)值沒有超出16位的數(shù)值范圍(0~32767),,也必須使用32位指令對(duì)V,、Z都進(jìn)行改 寫。如僅僅改寫了Z側(cè),,V側(cè)中會(huì)存有其他的數(shù)值,,從而變成相當(dāng)大的數(shù)值,,出現(xiàn)運(yùn)算錯(cuò)誤。 2) 對(duì)16位計(jì)數(shù)器變址修飾后,,不可以作為32位的計(jì)數(shù)器使用,。 如果變址修飾的結(jié)果需要是32位計(jì)數(shù)器的情況下,請(qǐng)對(duì)計(jì)數(shù)器C200以后的計(jì)數(shù)器加Z0~Z7,。 3) 變址寄存器 不能對(duì)V,、Z本身進(jìn)行變址修飾。 4) 特殊功能模塊/單元的緩沖存儲(chǔ)區(qū)的直接指定 緩沖存儲(chǔ)區(qū)的直接指定U□\G□其緩沖存儲(chǔ)區(qū)的編號(hào)可以被變址修飾,。 模塊號(hào)不能被變址修飾,。(U0\G0Z0有效,U0Z0\G0不可) 5) 位數(shù)指定的變址修飾 指定位數(shù)用的中Kn的“n”不能進(jìn)行變址修飾,。(K4M0Z0有效,、K0Z0M0不可) 6) 輸入輸出繼電器(8進(jìn)制軟元件編號(hào))的變址修飾 對(duì)X、Y,、KnX,、KnY的8進(jìn)制軟元件編號(hào)進(jìn)行變址修飾時(shí),對(duì)軟元件編號(hào)進(jìn)行變址修飾的的變址寄存器內(nèi)容會(huì)被換算成8進(jìn)制數(shù)后再進(jìn)行加法運(yùn)算,。
應(yīng)用舉例:
1,、在圖中的例子中,使用MOV指令輸出Y007~Y000,,通過變址修飾后可以將該輸入切換成X007~X000,、X017~X010、X027~X020,。 通過將變址值改寫成K0,、K8,、K16,,[X000+0=X000]、[X000+8=X10],、[X000+16=X20]在8進(jìn)制數(shù)換算后,,再加在軟元件編號(hào)上,使作為源操作數(shù)的輸入端子改變,。
V3=0時(shí),,X7 ~ X 0 → Y7~Y0 V3=8時(shí),X17~X10 → Y7~Y0 V3=16時(shí),,X27~X20 → Y7~Y0 2,、定時(shí)器當(dāng)前值的顯示示例 可以使用變址寄存器編寫顯示定時(shí)器T0~T9當(dāng)前值用的順控程序。 對(duì)應(yīng)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時(shí),,則[K(8+0)=K8],,將K8傳送至D10中。 此外,,V6=20時(shí),,則[K(8+20)=K28],將K28傳送至D10中,。 4,、使用次數(shù)受限制的指令的變址修飾實(shí)例
如果用變址寄存器V、Z修飾對(duì)象軟元件的編號(hào),,那么可通過程序改變對(duì)象軟元件的編號(hào),。如果對(duì)有使用次數(shù)限制的指令使用這一功能的話,則可 以得到與多次使用該指令編程相同的效果,。
使用TKY指令(FNC 70)的修飾實(shí)例 將2組0~9為止的鍵(數(shù)字鍵)輸入的輸入數(shù)據(jù)保存到D0,、D2中。 TKY指令(FNC 70)是在程序中只能使用一次的指令,,但是通過對(duì)輸入數(shù)據(jù)的起始軟元件編號(hào),、輸入數(shù)據(jù)的保存軟元件編號(hào)、使按鍵信息為ON的起始軟元件編號(hào)進(jìn)行修飾,,可輸入2組0~9的鍵(數(shù)字鍵)輸入,。 此外,在該指令執(zhí)行過程中,,即使改變V,,切換也無效。如果要想使該變更有效,,請(qǐng)使指令的驅(qū)動(dòng)OFF一次,。
|