如何學(xué)會(huì)三菱PLC,簡(jiǎn)單又好用的傳送指令功能!
吳翠萍
發(fā)布于2020-10-09 15:50
19
2
標(biāo)簽:三菱PLC,PLC傳送指令,功能指令
【點(diǎn)擊領(lǐng)取】三菱案例 | 西門(mén)子案例 | 電工手冊(cè) | 工具箱 軟件
【點(diǎn)擊獲取】三菱PLC例程117個(gè)|西門(mén)子PLC例程777個(gè)
【點(diǎn)擊下載】2020新電工仿真軟件
PLC的各種功能指令中,傳送指令的使用非常頻繁,且相對(duì)簡(jiǎn)單。一說(shuō)到簡(jiǎn)單,我猜已經(jīng)有很多人蠢蠢欲動(dòng),迫不及待地想征服這個(gè)傳送指令了。那么,廢話不多說(shuō),我們開(kāi)始這次的學(xué)習(xí)分享吧!
在學(xué)習(xí)各種傳送指令之前,我們得先了解什么是傳送指令!
一、傳送指令是什么
區(qū)別于信息傳遞中的數(shù)據(jù)通信,我們今天講的PLC中的數(shù)據(jù)傳送指令是針對(duì)PLC內(nèi)部軟元件之間的數(shù)據(jù)傳送?;谥八鶎W(xué)的各種軟元件,確切地說(shuō),傳送指令是應(yīng)用于各種字元件之間的數(shù)據(jù)傳送。
每個(gè)字元件都存有自己的數(shù)據(jù),有的字元件非常霸道,想把自己的數(shù)據(jù)霸占別的字元件,在別的字元件上也存上自己的數(shù)據(jù),這個(gè)霸占的過(guò)程就是通過(guò)傳送指令實(shí)現(xiàn)的。傳送指令就像是各個(gè)字元件之間數(shù)據(jù)戰(zhàn)爭(zhēng)的武器,你霸占我,我霸占你,槍林彈雨,烽火連天。
在三菱FX 2N中,傳送指令有 MOV、SMOV、CML、BMOV、FMOV五種,它們傳送數(shù)據(jù)的形式各不相同。那到底有哪些不同呢?我們接著往下看。
二、MOV傳送指令
從編程手冊(cè)中可以看到,MOV指令的操作數(shù)源址(S·)可以適用于所有的字元件,即S可以是任何的字元件,包括各種組合位元件、常數(shù)K、H等,而操作數(shù)終址(D·)除了不能是KnX、K、H外,可適用于其他字元件。且源址和終址都可進(jìn)行變址尋址。
當(dāng)驅(qū)動(dòng)條件X0成立時(shí),PLC將源址S中的數(shù)據(jù)傳送到終址D中,此時(shí)S的內(nèi)容不變,而D的內(nèi)容變得和S一樣。這就像我上文提到了,霸道S將自己的數(shù)據(jù)硬塞給D,并把D原來(lái)的數(shù)據(jù)給擠掉了,簡(jiǎn)直是欺元件太甚!
MOV指令比較簡(jiǎn)單,它是功能指令中應(yīng)用多的基本功能指令。MOV指令可以通過(guò)組合位元件的形式對(duì)各種位元件進(jìn)行清零和置位,或者對(duì)各種字元件進(jìn)行讀寫(xiě)操作。
如下圖所示,執(zhí)行MOV K15 K2Y0后,將K15用二進(jìn)制數(shù)表示,并控制Y0~Y7的狀態(tài)。此時(shí)Y0~Y3的狀態(tài)變?yōu)?(ON),Y4~Y7的狀態(tài)變?yōu)?(OFF)。
再如MOV D10 D20,將D10的內(nèi)容傳送到D20中,若D10的內(nèi)容為(H98),則執(zhí)行該指令后D20的內(nèi)容也變?yōu)?H98)。
依次類(lèi)推,MOV C0 D10 、MOV T0 D20、DMOV D0 D5等指令的理解相信難不倒大家,例如MOV T0 D20:將定時(shí)器T0的當(dāng)前值傳送到D20中……
MOV指令更多的應(yīng)用,還是要結(jié)合實(shí)際的案例分析才能深刻體會(huì),本身該該指令的理解也不難,所以,在這里我不再過(guò)多闡述。
三、SMOV數(shù)位傳送指令
所謂數(shù)位(digit),就是以4個(gè)二進(jìn)制數(shù)組成的數(shù)據(jù)量,類(lèi)似于字節(jié)由8位二進(jìn)制數(shù)組成,字由16為二進(jìn)制數(shù)組成。顯然,一個(gè)字節(jié)可以由兩個(gè)數(shù)位組成,一個(gè)字可以由4個(gè)數(shù)位組成。
基于對(duì)數(shù)位的理解,SMOV數(shù)位傳送指令就是將數(shù)據(jù)按數(shù)位為單位進(jìn)行傳送。從編程手冊(cè)中可以看到,SMOV指令的動(dòng)作為SMOV S· m1 m2 D· n,其中S、D是數(shù)據(jù)傳送的源址和終址,這個(gè)和MOV指令類(lèi)似。
上文提到,一個(gè)字可以由4個(gè)數(shù)位組成,依此將這4個(gè)數(shù)位從右到左排列,編號(hào)分別為K1、K2、K3、K4,如上圖所示。
這樣我們就可以很快地解讀SMOV指令。如SMOV D0 K4 K2 D10 K2 : 將D0寄存器按數(shù)位劃分,從K4開(kāi)始的連續(xù)2個(gè)數(shù)位的內(nèi)容傳送到D10的K2、K1兩個(gè)數(shù)位中,如下圖所示。所以,在傳送數(shù)據(jù)的時(shí)候,連續(xù)數(shù)位是按從左到右排的,當(dāng)m1=K4時(shí),多可以傳送4個(gè)連續(xù)數(shù)位K4、K3、K2、K1的內(nèi)容;當(dāng)m1=K3時(shí),多可以傳送3個(gè)連續(xù)數(shù)位K3、K2、K1的內(nèi)容,依次類(lèi)推。
顯然,m1、m2、n之間有著一定的約束關(guān)系,即只有當(dāng)m1≥m2,n≥m2,SMOV指令才有意義。例如SMOV S· m1 m2 D· n 中,若m1=K2,對(duì)S而言,只有K2、K1的內(nèi)容可以傳送,K4、K3的內(nèi)容無(wú)法傳送。
另外,SMOV指令執(zhí)行有兩種模式:BCD碼執(zhí)行模式和十六進(jìn)制數(shù)執(zhí)行模式。當(dāng)特殊繼電器M8168=OFF時(shí),SMOV指令執(zhí)行BCD碼模式;當(dāng)特殊繼電器M8168=ON時(shí),SMOV指令執(zhí)十六進(jìn)制數(shù)模式。
所謂BCD碼其實(shí)就是十進(jìn)制數(shù),如上圖所示,當(dāng)M8168=OFF時(shí),將D0的內(nèi)容(K9864)中的“986”傳送到D10中。顯然,此時(shí)D0的內(nèi)容只能為K0000~K9999。只有當(dāng)SMOV指令執(zhí)行十六進(jìn)制數(shù)執(zhí)行模式時(shí),D0中的內(nèi)容可以為H0000~HFFFF。
SMOV數(shù)位傳送指令的理解也不難,在應(yīng)用的過(guò)程中注意m1、m2、n的大小就行了。
四、CML取反傳送指令
CML取反傳送指令,顧名思義,就是將數(shù)據(jù)取反后再傳送。所謂取反,就是將“1”變?yōu)椤?”,將“0”變?yōu)椤?”,如下圖所示,執(zhí)行指令CML D0 D10,若D0的內(nèi)容為(K13),將K13轉(zhuǎn)換為二進(jìn)制數(shù)后取反,再傳送到D10中。
CML
反傳送指令更為簡(jiǎn)單,在這里我也不再過(guò)多講解。
五、BMOV成批傳送指令
BMOV成批傳送指令,和上文的幾種傳送指令有比較大的區(qū)別,因?yàn)樗鶄魉偷臄?shù)據(jù)比較多,是用于多個(gè)字元件之間數(shù)據(jù)傳送。簡(jiǎn)單理解就是將首地址為S的n個(gè)字元件的數(shù)據(jù)傳送到以D為首地址的字元件中,其中n是傳送字元件的個(gè)數(shù),n≤512。
例如BMOV D0 D10 K10:將D9~D0的數(shù)據(jù)分別傳送到D19~D10中。
在應(yīng)用BMOV指令時(shí)要注意的兩點(diǎn),一是字元件的編號(hào)重復(fù)問(wèn)題。如下圖所示,執(zhí)行指令BMOV D10 D11 K5,若按編號(hào)小的元件開(kāi)始傳送,先是D10的內(nèi)容傳送到D11中,然后D11的內(nèi)容傳送到D12中,D12的內(nèi)容傳送到D13中……顯然,傳送完畢后D15~D10的內(nèi)容相同,均為D10的內(nèi)容。
根據(jù)以上字元件編號(hào)重復(fù)的問(wèn)題,在三菱FX 2N中,作出以下規(guī)定:
(1)當(dāng)源址編號(hào)大于終址編號(hào)時(shí),其傳送順序從編號(hào)小的到編號(hào)大的;
(2)當(dāng)源址編號(hào)小于終址編號(hào)時(shí),其傳送順序從編號(hào)大的到編號(hào)小的;
所以上圖的指令BMOV D10 D11 K5中,源址D10小于終址D11,其傳送順序從編號(hào)大的開(kāi)始,也就是先把D14的內(nèi)容傳送到D15中,然后把D13的內(nèi)容傳送到D14中……這樣就不會(huì)造成D11~D14的內(nèi)容無(wú)法傳送的問(wèn)題。
在應(yīng)用BMOV指令時(shí)要注意的另外一點(diǎn)是數(shù)據(jù)傳送方向的問(wèn)題。BMOV指令不僅可以將源址的數(shù)據(jù)傳送給終址,也可以調(diào)轉(zhuǎn)方向,將終址的數(shù)據(jù)傳送給源址,也就是說(shuō)BMOV指令可以雙向傳送數(shù)據(jù)。
BMOV指令的數(shù)據(jù)傳送方向是由特殊繼電器M8024的狀態(tài)決定的,當(dāng)M8024=OFF時(shí),傳送方向是從源址傳向終址;當(dāng)M8024=ON時(shí),傳送方向是從終址傳向源址。
六、FMOV多點(diǎn)傳送指令
知道了BMOV成批傳送指令后,再來(lái)看FMOV多點(diǎn)傳送指令會(huì)簡(jiǎn)單很多,如果說(shuō)MOV指令是一對(duì)一、BMOV指令是多對(duì)多,那么FMOV指令就是一對(duì)多。
如上圖的編程手冊(cè)所示,當(dāng)驅(qū)動(dòng)條件X0成立時(shí),將字元件S的內(nèi)容傳送到起始地址為D的n個(gè)字元件中。像上文所說(shuō)的,數(shù)據(jù)的傳送就像是字元件之間的相互霸占,而各種指令就是數(shù)據(jù)傳送的武器。MOV指令就像是手槍?zhuān)缘繱通過(guò)MOV指令只能將自己的數(shù)據(jù)傳送給一個(gè)D,把D原來(lái)的數(shù)據(jù)給擠掉;FMOV指令就像是M416步槍?zhuān)缘繱通過(guò)FMOV指令將自己的數(shù)據(jù)傳送給一批D,把n個(gè)D原來(lái)的數(shù)據(jù)都給擠掉??梢?jiàn)FMOV指令的威力有多大。
不管是什么傳送指令,其歸根結(jié)底也就是數(shù)據(jù)的傳送,我們只有在理解了這些指令的含義之后,才能理解它們?cè)谔菪螆D中的作用。另外,我所分享的內(nèi)容也只不是皮毛,想要熟練掌握這些傳送指令,還是要結(jié)合實(shí)際程序案例分析。
那么,這次的學(xué)習(xí)分享就到這里啦,共勉!
注:本文章內(nèi)容都是基于三菱FX PLC所寫(xiě)
選自《三菱FX系列PLC功能指令詳解》第二章第12~16課時(shí)
(技成培訓(xùn)網(wǎng)原創(chuàng),作者:楊思慧,未經(jīng)授權(quán)不得轉(zhuǎn)載,違者必究)

技成培訓(xùn)
微信公眾號(hào):jcpeixun
|

技成電工課堂
微信公眾號(hào):jcdgkt
|

技成PLC課堂
微信公眾號(hào):jc-plc
|