可編程控制器原理與實(shí)踐(三菱FX2N系列)-第2章指令.ppt
《可編程控制器原理與實(shí)踐(三菱FX2N系列)-第2章指令.ppt》由會員分享,可在線閱讀,更多相關(guān)《可編程控制器原理與實(shí)踐(三菱FX2N系列)-第2章指令.ppt(152頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。
1、第3章 三菱FX2N指令系統(tǒng)計(jì),教學(xué)提示:本章概述了三菱FX2N系列的內(nèi)部組件,主要介紹三菱FX2N系列的23條基本指令以及實(shí)際應(yīng)用。介紹了步進(jìn)指令及其編程方法,簡要闡述了單流程SFC的結(jié)構(gòu)流程,有關(guān)狀態(tài)轉(zhuǎn)移的編制方法將在第4章詳細(xì)闡述。同時(shí)PLC還有強(qiáng)大的功能指令,本章還將對常用功能指令的格式、類型以及每條功能指令的使用要素進(jìn)行介紹 。 教學(xué)目標(biāo):通過本章的學(xué)習(xí),要求能應(yīng)用基本指令解決一般的繼電接觸控制問題;能熟練設(shè)計(jì)步進(jìn)梯形圖并應(yīng)用步進(jìn)指令解決復(fù)雜問題;掌握各類功能指令及運(yùn)用功能指令編程的方法 。,3.1 概 述,3.2 FX2N系列PLC內(nèi)部組件,3.3 三菱FX系列基本指令,3.5 三
2、菱FX系列功能指令,3.4 步進(jìn)指令與狀態(tài)編程,3.1 概述,三菱公司是日本生產(chǎn)PLC的主要廠家之一。先后推出的PLC系列有F(F1、F2)、FX(FX0、FX0N、FX2、FX2C、FX1S、FX1N、FX2N、FX2NC、FX3U、FX3G)、A(A1、A2、A3)和Q等系列。F系列現(xiàn)已停產(chǎn),取而代之的是FX系列。其中FX2N是有代表性的小型PLC,在小型化、高速度、高性能等方面都是FX系列中較高檔次的小型可編程序控制器。而目前FX3U、FX3G也已面市。FX2N的運(yùn)行控制方法是通過儲存的程序周期運(yùn)轉(zhuǎn),I/O控制方法是當(dāng)執(zhí)行END指令時(shí)批次處理方法(I/O指令可以刷新)。 FX2N基
3、本指令的運(yùn)轉(zhuǎn)處理時(shí)間是0.08S/指令,應(yīng)用指令的運(yùn)轉(zhuǎn)處理時(shí)間是1.52至幾百S/指令。FX2N的編程語言是邏輯梯形圖和指令清單(使用步進(jìn)梯形圖能生成SFC類型程序)。FX2N的程序容量是8000步內(nèi)置(使用附加寄存器盒可擴(kuò)展到16000步)。FX2N可用的指令數(shù)目分別是基本指令27條,步進(jìn)梯形指令2條,應(yīng)用指令128條(最大可用298條)。其I/O配置按用戶的選擇最大硬體I/O配置點(diǎn)256,最大軟件可設(shè)定地址輸入256、輸出256。,FX2N基本性能: 如下表所示,,,,3.2 FX2N系列PLC內(nèi)部組件,FX2N系列產(chǎn)品,它內(nèi)部的編程元件,也就是支持該機(jī)型編程語言的軟元件,按通俗叫法分別稱
4、為繼電器、定時(shí)器、計(jì)數(shù)器等,但它們與真實(shí)元件有很大的差別,一般稱它們?yōu)椤败浝^電器”。這些編程用的繼電器,它的工作線圈沒有工作電壓等級、功耗大小和電磁慣性等問題;觸點(diǎn)沒有數(shù)量限制、沒有機(jī)械磨損和電蝕等問題。它在不同的指令操作下,其工作狀態(tài)可以無記憶,也可以有記憶,還可以作脈沖數(shù)字元件使用。一般情況下,X代表輸入繼電器,Y代表輸出繼電器,M代表輔助繼電器,SPM代表專用輔助繼電器,T代表定時(shí)器,C代表計(jì)數(shù)器,S代表狀態(tài)繼電器,D代表數(shù)據(jù)寄存器, MOV代表傳輸?shù)取?1. 輸入繼電器X(X0X177) PLC的輸入端子是從外部開關(guān)接受信號的窗口,PLC內(nèi)部與輸入端子連接的輸入繼電器X是用光電隔離
5、的電子繼電器,它們的編號與接線端子編號一致(按八進(jìn)制編號),最多為128個點(diǎn),線圈的吸合或釋放只取決于PLC外部觸點(diǎn)的狀態(tài)。內(nèi)部有常開/常閉兩種觸點(diǎn)供編程時(shí)隨時(shí)使用,且使用次數(shù)不限。輸入電路的時(shí)間常數(shù)一般小于10ms。各基本單元都是八進(jìn)制輸入的地址,輸入為X000X007,X010X017,X020X027,。它們一般位于機(jī)器的上端。,圖3.1 輸入、輸出繼電器等效電路圖,2. 輸出繼電器Y(Y0Y177) PLC的輸出端子是向外部負(fù)載輸出信號的窗口。輸出繼電器的線圈由程序控制,輸出繼電器的外部輸出主觸點(diǎn)接到PLC的輸出端子上供外部負(fù)載使用,其余常開/常閉觸點(diǎn)供內(nèi)部程序使用。輸出繼電器的電
6、子常開/常閉觸點(diǎn)使用次數(shù)不限。輸出電路的時(shí)間常數(shù)是固定的。PLC的輸出繼電器是無源的,因此需要外接電源。FX2N系列的輸出繼電器也是采用八進(jìn)制,輸出為Y000Y007,Y010Y017,Y020Y027,,最多為128點(diǎn)。它們一般位于機(jī)器的下端。 需要注意的是,F(xiàn)X系列PLC中除了輸入/輸出繼電器采用八進(jìn)制地址外,其余軟組件都是采用十進(jìn)制地址。另外,輸出繼電器的初始狀態(tài)為斷開狀態(tài)。,3. 輔助繼電器M PLC內(nèi)有很多的輔助繼電器,其線圈與輸出繼電器一樣,由PLC內(nèi)各軟元件的觸點(diǎn)驅(qū)動。作用相當(dāng)于繼電器控制系統(tǒng)中的中間繼電器,用于狀態(tài)暫存、輔助一位運(yùn)算及特殊功能等。輔助繼電器沒有向外的任
7、何聯(lián)系,只供內(nèi)部編程使用。它的電子常開/常閉觸點(diǎn)使用次數(shù)不受限制。但是,這些觸點(diǎn)不能直接驅(qū)動外部負(fù)載,外部負(fù)載的驅(qū)動必須通過輸出繼電器來實(shí)現(xiàn)。如圖3.2中的M300,它只起到一個自鎖的功能。,圖3.2 輔助繼電器的使用,輔助繼電器的地址編號是采用十進(jìn)制的,共分為三類:通用型輔助繼電器、斷電保持型輔助繼電器和特殊用途型輔助繼電器。其中通用型從M0M499共500點(diǎn);斷電保持型分為可修改和專用,可修改從M500M1023共524點(diǎn),專用從M1024M3071共2048點(diǎn);特殊用途型從M8000M8255共256點(diǎn)。 (1) 通用型輔助繼電器(M0M499) 共有500點(diǎn)通用輔助繼電器,用作狀態(tài)
8、暫存、中間過渡等。特點(diǎn)是線圈通電,觸點(diǎn)動作,線圈斷電,觸點(diǎn)復(fù)位,沒有斷電保持功能。如果在PLC運(yùn)行時(shí)突然斷電,這些繼電器將全部變?yōu)镺FF狀態(tài)。若再次通電之后,除了因外部輸入信號而變?yōu)镺N狀態(tài)的以外,其余的仍將保持為OFF狀態(tài)。,(2) 斷電保持型輔助繼電器(M500M3071) 不少控制系統(tǒng)要求繼電器能夠保持?jǐn)嚯娝查g的狀態(tài)。斷電保持輔助繼電器就是用于這種場合的,斷電保持由PLC內(nèi)裝鋰電池支持。FX2N系列有M500M1023共524個斷電保持輔助繼電器。當(dāng)PLC斷電并再次通電之后,這些繼電器會保持?jǐn)嚯娭暗臓顟B(tài)。其他特性與通用輔助繼電器完全一樣。 此外,還有M1024M3071共204
9、8個斷電保持專用輔助繼電器,它與斷電保持輔助繼電器的區(qū)別是斷電保持輔助繼電器可用參數(shù)來設(shè)定,可變更非斷電保持區(qū)域。而斷電保持專用輔助繼電器的斷電保持特性無法用參數(shù)來改變。,(3) 特殊功能輔助繼電器(M8000M8255) 從M8000到M8255這256個輔助繼電器區(qū)間是不連續(xù)的,也就是說有一些輔助繼電器是根本不存在的,對這些沒有定義的繼電器無法進(jìn)行有意義的操作。有定義的特殊功能輔助繼電器可分為兩大類。 觸點(diǎn)利用型 這類是反映PLC的工作狀態(tài),接點(diǎn)的通或斷的狀態(tài)直接由PLC自動驅(qū)動。在編制用戶程序時(shí),用戶只能使用其接點(diǎn),不能對其驅(qū)動。 例如,M8000:為運(yùn)行監(jiān)控用,PLC運(yùn)行時(shí)
10、,M8000始終被接通。這樣在運(yùn)行過程中,其常開觸點(diǎn)始終“閉合”,常閉觸點(diǎn)始終“斷開”。用戶在編制用戶程序時(shí),可以根據(jù)不同的需要,使用M8000的常開觸點(diǎn)或常閉觸點(diǎn)。,M8002:僅在PLC投入運(yùn)行開始瞬間接通一個掃描周期的初始脈沖。 M8013:每秒發(fā)出一個脈沖信號,即自動地每秒ON一次。 M8020:加減運(yùn)算結(jié)果為零時(shí)狀態(tài)為ON,否則為OFF。 M8060:F0地址出錯時(shí)置位(ON)。例如對不存在的X或Y進(jìn)行了操作。 線圈驅(qū)動型 這類是可控制的特殊功能輔助繼電器,驅(qū)動這些繼電器之后,PLC將做一些特定的操作。例如,M8034: ON時(shí)禁止所有輸出。 M8030: ON時(shí)熄滅電池
11、欠電壓指示燈。 M8050: ON時(shí)禁止I0中斷。,4. 狀態(tài)組件S 狀態(tài)組件是構(gòu)成狀態(tài)轉(zhuǎn)移圖的重要器件,與步進(jìn)順控指令配合使用。常開常閉觸點(diǎn)的使用次數(shù)不受限制。不用于步進(jìn)順控指令時(shí),狀態(tài)組件也可以作為輔助繼電器使用。FX2N系列共有1000點(diǎn)狀態(tài)組件,地址號和功能見表3.9 。,5. 定時(shí)器T(T0T255) 定時(shí)器相當(dāng)于繼電器系統(tǒng)中的時(shí)間繼電器,可在程序中用于延時(shí)控制,PLC里的定時(shí)器都是通電延時(shí)型。定時(shí)器工作是將PLC內(nèi)的1ms、10ms、100ms等時(shí)鐘脈沖相加,當(dāng)它的當(dāng)前值等于設(shè)定值時(shí),定時(shí)器的輸出觸點(diǎn)(常開或常閉)動作,即常開觸點(diǎn)接通,常閉觸點(diǎn)斷開。定時(shí)器觸點(diǎn)使用次數(shù)
12、不限。定時(shí)器的設(shè)定值可由常數(shù)(K)或數(shù)據(jù)寄存器(D)中的數(shù)值設(shè)定。使用數(shù)據(jù)寄存器設(shè)定定時(shí)器設(shè)定值時(shí),一般使用具有掉電保持功能的數(shù)據(jù)寄存器,這樣在斷電時(shí)不會丟失數(shù)據(jù)。定時(shí)器按工作方式不同可分為普通定時(shí)器和積算定時(shí)器兩類 。定時(shí)器的地址號及設(shè)定時(shí)間范圍如下: 100ms普通定時(shí)器T0T199,共200點(diǎn),設(shè)定值:0.13276.7s。 10ms普通定時(shí)器T200TT245,共46點(diǎn),設(shè)定值:0.01327.67s。 1ms積算定時(shí)器 T246T249,共4點(diǎn),執(zhí)行中斷保持,設(shè)定值:0.00132.767s。 100ms積算定時(shí)器T250T255,共6點(diǎn),定時(shí)中斷保持,設(shè)定值:0.13276.7s。
13、,(1) 普通定時(shí)器(T0T245) 普通定時(shí)器在梯形圖中的使用和動作時(shí)序如圖3.3(a)所示:,(a) 普通定時(shí)器 (b) 積算定時(shí)器 圖3.3 定時(shí)器的使用及動作時(shí)序,當(dāng)X000接通時(shí),T0線圈被驅(qū)動,T0的當(dāng)前值計(jì)數(shù)器對100ms的時(shí)鐘脈沖進(jìn)行累積計(jì)數(shù),當(dāng)前值與設(shè)定值K12相等時(shí),定時(shí)器的輸出接點(diǎn)動作,即輸出觸點(diǎn)是在驅(qū)動線圈后的1.2秒(100ms12=1.2s)時(shí)才動作,當(dāng)T0觸點(diǎn)吸合后,Y000就有輸出。當(dāng)輸入X000斷開或發(fā)生停電時(shí),定時(shí)器就復(fù)位,輸出觸點(diǎn)也復(fù)位。,(2) 積算定時(shí)器(T246T255) 積算定時(shí)器在梯形圖中的使用和動作時(shí)序如圖3.3(b)所示。定時(shí)器
14、線圈T250的驅(qū)動輸入X001接通時(shí),T250的當(dāng)前值計(jì)數(shù)器對100ms的時(shí)鐘脈沖進(jìn)行累積計(jì)數(shù),當(dāng)該值與設(shè)定值K345相等時(shí),定時(shí)器的輸出觸點(diǎn)動作。計(jì)數(shù)中途即使X1斷開或斷電,T250線圈失電,當(dāng)前值也能保持。輸入X001再次接通或復(fù)電時(shí),計(jì)數(shù)繼續(xù)進(jìn)行,直到累計(jì)延時(shí)到34.5s(100ms345=34.5s)時(shí)觸點(diǎn)動作。任何時(shí)刻只要復(fù)位輸入X002接通,定時(shí)器就復(fù)位,輸出觸點(diǎn)也復(fù)位。一般情況下,從定時(shí)條件采樣輸入到定時(shí)器延時(shí)輸出控制,其延時(shí)最大誤差為2TC,TC為一個程序掃描周期。,6. 計(jì)數(shù)器C(C0C255) 計(jì)數(shù)器在程序中用作計(jì)數(shù)控制,F(xiàn)X2N系列提供了256個計(jì)數(shù)器。當(dāng)計(jì)數(shù)器的當(dāng)前
15、值和設(shè)定值相等時(shí),觸點(diǎn)動作。計(jì)數(shù)器的觸點(diǎn)可以無限次使用。根據(jù)計(jì)數(shù)方式和工作特點(diǎn)可分為內(nèi)部信號計(jì)數(shù)器和高速計(jì)數(shù)器。,(1) 內(nèi)部信號計(jì)數(shù)器 在執(zhí)行掃描操作時(shí),對內(nèi)部器件X、Y、M、S、T和C的信號(通/斷)進(jìn)行計(jì)數(shù)。其接通時(shí)間和斷開時(shí)間應(yīng)比PLC的掃描周期稍長。內(nèi)部信號計(jì)數(shù)器按工作方式有可分為以下幾種類型。 16位增計(jì)數(shù)器 FX2N中的16位增計(jì)數(shù)器,是16位二進(jìn)制加法計(jì)數(shù)器,它是在計(jì)數(shù)信號的上升沿進(jìn)行計(jì)數(shù),計(jì)數(shù)設(shè)定值為K1K32767,設(shè)定值K0和K1的含義相同,均在第一次計(jì)數(shù)時(shí),其輸出觸點(diǎn)就動作。計(jì)數(shù)器又分通用型和斷電保持型,其中C0C99共100點(diǎn)是通用型16位加法計(jì)數(shù)器,C
16、100C199共100點(diǎn)是斷電保持型16位加法計(jì)數(shù)器。當(dāng)切斷PLC的電源時(shí),普通型計(jì)數(shù)器當(dāng)前值自動清除,而斷電保持型計(jì)數(shù)器則可存儲停電前的計(jì)數(shù)器數(shù)值,當(dāng)再次通電時(shí),計(jì)數(shù)器可按上一次數(shù)值累積計(jì)數(shù)。圖3.4是加法計(jì)數(shù)器的動作過程。,,圖3.4 16位增計(jì)數(shù)器的動作過程,X1是計(jì)數(shù)器輸入信號,每接通一次,計(jì)數(shù)器C0當(dāng)前值加1,當(dāng)前值與設(shè)定值相等時(shí),即當(dāng)前值為8時(shí),計(jì)數(shù)器輸出觸點(diǎn)動作,即常開觸點(diǎn)接通,常閉觸點(diǎn)斷開。當(dāng)C0觸點(diǎn)吸合后,Y000就有輸出。之后即使X1再接通,計(jì)數(shù)器的當(dāng)前值保持不變。當(dāng)復(fù)位輸入X0接通時(shí),執(zhí)行RST復(fù)位指令,計(jì)數(shù)器C0被復(fù)位,當(dāng)前值變?yōu)?,輸出觸點(diǎn)斷開。 計(jì)數(shù)器的設(shè)定值除了用
17、常數(shù)K設(shè)定外,也可由數(shù)據(jù)寄存器來指定,這要用到后述的功能指令MOV。, 32位增/減雙向計(jì)數(shù)器 32位增/減雙向計(jì)數(shù)器的計(jì)數(shù)設(shè)定值為- 2147483648+2147483647。雙向計(jì)數(shù)器也有兩種類型,即通用型C200C219共20點(diǎn),斷電保持型C220C234共15點(diǎn)。增/減計(jì)數(shù)由特殊輔助繼電器M8200M8234設(shè)定。對應(yīng)的特殊輔助繼電器接通(ON)時(shí),為減計(jì)數(shù);反之為加計(jì)數(shù)。32位增/減雙向計(jì)數(shù)器對應(yīng)切換的特殊輔助繼電器見表3.10。,與16位計(jì)數(shù)器一樣,可直接用常數(shù)K或間接用數(shù)據(jù)寄存器D的內(nèi)容作為設(shè)定值,設(shè)定值可正、可負(fù)。間接設(shè)定時(shí),數(shù)據(jù)寄存器將連號的內(nèi)容變?yōu)橐粚?,作?2位雙向計(jì)
18、數(shù)器的設(shè)定值。如在指定D0時(shí),D1與D0兩項(xiàng)作為32位設(shè)定值處理。 圖3.5是32位雙向計(jì)數(shù)器的動作過程。其中X12為計(jì)數(shù)方向設(shè)定信號,X13為計(jì)數(shù)器復(fù)位信號,X14為計(jì)數(shù)器輸入信號。在計(jì)數(shù)器的當(dāng)前值由-4到-3增加時(shí),輸出觸點(diǎn)接通(置ON),由-3到-4減小時(shí),輸出觸點(diǎn)斷開(復(fù)位)。當(dāng)復(fù)位輸入X13接通時(shí),計(jì)數(shù)器的當(dāng)前值就為0,輸出觸點(diǎn)也復(fù)位。若計(jì)數(shù)器從+2147483647起再進(jìn)行加計(jì)數(shù),當(dāng)前值就變成-2147483648,同樣從-2147483648再減,當(dāng)前值就變成+2147483647,稱為循環(huán)計(jì)數(shù)。,圖3.5 32位雙向計(jì)數(shù)器的動作過程,(2) 高速計(jì)數(shù)器 高速計(jì)數(shù)器是對外
19、部輸入的高速脈沖信號(周期小于掃描周期)進(jìn)行計(jì)數(shù),可以執(zhí)行數(shù)千赫的計(jì)數(shù)。高速計(jì)數(shù)器共21點(diǎn),其地址號為C235C255。適用于高速計(jì)數(shù)器輸入端只有6點(diǎn),X000X005,即高速脈沖信號只允許從這6個端子上引入,其它端子不能對高速脈沖進(jìn)行處理。高速計(jì)數(shù)器的計(jì)數(shù)頻率較高,它們的輸入信號的頻率受二方面的限制。一是輸入端的響應(yīng)速度。二是全部高速計(jì)數(shù)器的處理時(shí)間。因它們采用中斷方式,所以計(jì)數(shù)器用的越少,則可計(jì)數(shù)頻率就越高。單獨(dú)使用單相C235、C236、C246最高可以對60kHz高速脈沖進(jìn)行計(jì)數(shù);C251(雙相)最高頻率為30kHz。當(dāng)多個高速計(jì)數(shù)、脈沖輸出同時(shí)使用時(shí),頻率會降低,不超過一定的總計(jì)頻率
20、數(shù)。X006和X007也是高速輸入,但只能用作啟動信號而不能用于高速計(jì)數(shù)。,高速計(jì)數(shù)器的選擇并不是任意的,它取決于所需高速計(jì)數(shù)器的類型及高速輸入端子。高速計(jì)數(shù)器的類型可分為: (1) 1相無啟動/復(fù)位高速計(jì)數(shù)器C235C240; (2) 1相帶啟動/復(fù)位高速計(jì)數(shù)器C241C245; (3) 1相2輸入(雙向)高速計(jì)數(shù)器C246C250; (4) 2相輸入(A-B相型)高速計(jì)數(shù)器C251C255。具體見表3.11。,7. 數(shù)據(jù)寄存器D 數(shù)據(jù)寄存器是計(jì)算機(jī)必不可少的元件,用于存放各種數(shù)據(jù)。FX2N中每一個數(shù)據(jù)寄存器都是16bit(最高位為正、負(fù)符號位),也可用兩個數(shù)據(jù)寄存器合并起來存儲32bi
21、t數(shù)據(jù)(最高位為正、負(fù)符號位)。 (1) 通用數(shù)據(jù)寄存器D 通道分配:D0D199,共200點(diǎn)。 只要不寫入其他數(shù)據(jù),已寫入的數(shù)據(jù)不會變化。但是,由RUNSTOP時(shí),全部數(shù)據(jù)均清零。(若特殊輔助繼電器M8033已被驅(qū)動,則數(shù)據(jù)不被清零)。,(2) 停電保持用寄存器 通道分配:D200D511,共312點(diǎn),或D200D999,共800點(diǎn)(由機(jī)器的具體型號定)。 功能基本與通用數(shù)據(jù)寄存器相同。除非改寫,否則原有數(shù)據(jù)不會丟失,不論電源接通與否,PLC運(yùn)行與否,其內(nèi)容也不變化。然而在二臺PLC作點(diǎn)對點(diǎn)的通信時(shí),D490D509被用作通信操作。 (3) 文件寄存器 通道分配:D100
22、0D2999,共2000點(diǎn)。 文件寄存器是在用戶程序存儲器(RAM、EEPROM、EPROM)內(nèi)的一個存儲區(qū),以500點(diǎn)為一個單位,最多可在參數(shù)設(shè)置時(shí)到2000點(diǎn)。用外部設(shè)備口進(jìn)行寫入操作。在PLC運(yùn)行時(shí),可用BMOV指令讀到通用數(shù)據(jù)寄存器中,但是不能用指令將數(shù)據(jù)寫入文件寄存器。用BMOV將數(shù)據(jù)寫入RAM后,再從RAM中讀出。將數(shù)據(jù)寫入EEPROM盒時(shí),需要花費(fèi)一定的時(shí)間,務(wù)必請注意。,(4) RAM文件寄存器 通道分配:D6000D7999,共2000點(diǎn)。 驅(qū)動特殊輔助繼電器M8074,由于采用掃描被禁止,上述的數(shù)據(jù)寄存器可作為文件寄存器處理,用BMOV指令傳送數(shù)據(jù)(寫入或讀出)。
23、(5) 特殊用寄存器 通道分配:D8000D8255,共256點(diǎn)。 是寫入特定目的的數(shù)據(jù)或已經(jīng)寫入數(shù)據(jù)寄存器,其內(nèi)容在電源接通時(shí),寫入初始化值(一般先清零,然后由系統(tǒng)ROM來寫入)。,8. 指針P/I (1) 分支指令用指針 P標(biāo)號共有128點(diǎn),從P0P62,P64P127,P63結(jié)束跳轉(zhuǎn)用,不能隨意指定,P63相當(dāng)于END。用來指定跳轉(zhuǎn)指令CJ或子程序調(diào)用指令CALL等分支指令的跳轉(zhuǎn)目標(biāo)。P標(biāo)號在整個程序中只允許出現(xiàn)一次,但可以多次引用。 P標(biāo)號用在跳轉(zhuǎn)指令中,使用格式:CJ P0 CJ P62 P標(biāo)號用在子程序調(diào)用指令中,使用格式: CALL P0 CALL P63 (2)
24、 中斷用指針 標(biāo)號專用于中斷服務(wù)程序的入口地址,有15點(diǎn),其中I000I500共六點(diǎn)用于外中斷,由輸入繼電器X0X5引起中斷。I600I800共三點(diǎn)用于插入計(jì)數(shù)。余下的六點(diǎn), I010I060用于計(jì)數(shù)器中斷。,9. 常數(shù)K/H 常數(shù)也作為器件對待,它在存儲器中占有一定的空間,PLC最常用的是兩種常數(shù)K、H。K表示十進(jìn)制,如:K30表示十進(jìn)制的30。H表示十六進(jìn)制,如:H64就是對應(yīng)十進(jìn)制的100。常數(shù)一般用于定時(shí)器、計(jì)數(shù)器的設(shè)定值或數(shù)據(jù)操作。,3.3 三菱FX系列基本指令,3.3.1 LD、LDI、OUT指令,3.3.2 AND、ANI指令,3.3.3 OR、ORI指令,3.3.4 L
25、DP、LDF、ANDP、ANDF、ORP、ORF指令,3.3.5 串聯(lián)電路塊并聯(lián)指令ORB和并聯(lián)電路塊串聯(lián)指令A(yù)NB,3.3.6 MPS、MRD、MPP指令,3.3.10基本指令應(yīng)用舉例,3.3.7 置位指令SET和復(fù)位指令RST,3.3.8 取反指令I(lǐng)NV,3.3.9 空操作指令NOP和結(jié)束指令END,3.3.1 LD、LDI、OUT指令 LD(Load)取指令。用于將常開觸點(diǎn)接到母線上。另外,與后述的ANB、ORB指令組合,在分支起點(diǎn)處也可使用。 LDI(Load Inverse)取反指令。與LD的用法相同,只是LDI是對常閉觸點(diǎn)。 OUT(Out)輸出指令,也叫線圈驅(qū)動指令。是對輸
26、出繼電器、輔助繼電器、狀態(tài)繼電器、定時(shí)器、計(jì)數(shù)器的線圈驅(qū)動,對于輸入繼電器不能使用。OUT指令用于并行輸出,在梯形圖中相當(dāng)于線圈是并聯(lián)的。OUT指令能連續(xù)使用多次,不能串聯(lián)使用。 LD、LDI、OUT三條指令的指令說明見表3.12。,表3.12 指令說明,LD、LDI是一個程序步指令,一個程序步即是一個字;OUT是多程序步指令,要視目標(biāo)元件而定。當(dāng)對定時(shí)器T、計(jì)數(shù)器C使用OUT指令時(shí),必須設(shè)置常數(shù)K,K值設(shè)定范圍與步數(shù)值如表3.13。,表3.13 常數(shù)K的設(shè)定范圍與步數(shù)值,圖3.8 LD、LDI、OUT指令的使用,3.3.2 AND、ANI指令 AND(And)與指令。用于單個常開觸點(diǎn)的串聯(lián)
27、。 ANI(And Inverse)與非指令。用于單個常閉觸點(diǎn)的串聯(lián)。 AND、ANI的指令說明見表3.14。,表3.14 AND、ANI指令說明,AND、ANI都是一個程序步指令,串聯(lián)觸點(diǎn)個數(shù)沒有限制,該指令可以連續(xù)多次使用。如果有兩個以上的觸點(diǎn)并聯(lián)連接,并將這種并聯(lián)回路與其他回路串聯(lián)連接時(shí),要采用后述的ANB指令。OUT指令后,通過觸點(diǎn)對其他線圈使用OUT指令實(shí)現(xiàn)縱接輸出時(shí),如圖3.9中的OUT Y2,如果順序不錯,可以重復(fù)連續(xù)使用。,圖3.9 AND、ANI指令的使用,3.3.3 OR、ORI指令 OR(Or)或指令。用于單個常開觸點(diǎn)的并串聯(lián)。 ORI(Or Inverse)或非指令。用
28、于單個常閉觸點(diǎn)的并聯(lián)。 OR、ORI的指令說明見表3.15。,表3.15 OR、ORI指令說明,OR、ORI都是一個程序步指令,并聯(lián)觸點(diǎn)個數(shù)沒有限制,該指令可以連續(xù)多次使用。如果有兩個以上的觸點(diǎn)串聯(lián)連接,并將這種串聯(lián)回路與其他回路并聯(lián)連接時(shí),要采用后述的ORB指令。指令使用如圖3.11。,圖3.11 OR、ORI指令的使用,3.3.4 LDP、LDF、ANDP、ANDF、ORP、ORF指令 LDP取脈沖上升沿指令。用來作上升沿檢測,在輸入信號的上升沿接通一個掃描周期。 LDF取脈沖下降沿指令。用來作下降沿檢測,在輸入信號的下降沿接通一個掃描周期。 ANDP與脈沖上升沿指令。用來作上升沿檢測。
29、ANDF與脈沖下降沿指令。用來作下降沿檢測。 ORP或脈沖上升沿指令。用來作上升沿檢測。 ORF或脈沖下降沿指令。用來作下降沿檢測。 指令說明如表3.16。,表3.16 指令說明,這是一組與LD、AND、OR指令相對應(yīng)的脈沖式觸點(diǎn)指令。指令中P對應(yīng)上升沿脈沖,F(xiàn)對應(yīng)下降沿脈沖。指令中的觸點(diǎn)僅在操作元件有上升沿/下降沿時(shí)導(dǎo)通一個掃描周期。LDP、LDF的使用如圖3.12所示,使用LDP指令,Y0僅在X0的上升沿時(shí)接通一個掃描周期。使用LDF指令,Y1僅在X1的下降沿時(shí)接通一個掃描周期。,圖3.12 LDP、LDF指令的使用,ANDP、ANDF指令的使用如圖3.13所示,使用ANDP指令,在X2接
30、通后,M0僅在X3的上升沿時(shí)接通一個掃描周期。使用ANDF指令,在X4接通后,Y2僅在X5的下降沿時(shí)接通一個掃描周期。,圖3.13 ANDP、ANDF指令的使用,ORP、ORF指令的使用如圖3.14所示,使用ORP指令, M1僅在X10或X11的上升沿時(shí)接通一個掃描周期。使用ORF指令,Y3僅在X12或X13的下降沿時(shí)接通一個掃描周期。,圖3.14 ORP、ORF指令的使用,3.3.5 串聯(lián)電路塊并聯(lián)指令ORB和并聯(lián)電路塊串聯(lián)指令A(yù)NB ORB串聯(lián)電路塊或。將兩個或兩個以上串聯(lián)電路塊并聯(lián)連接的指令。 ANB并聯(lián)電路塊與。將并聯(lián)電路塊的始端與前面電路串聯(lián)連接的指令。 ORB、ANB的指令說明見表
31、3.17。,表3.17 ORB、ANB指令說明,兩個或兩個以上的觸點(diǎn)串聯(lián)連接的電路叫串聯(lián)電路塊。串聯(lián)電路塊并聯(lián)連接時(shí),分支開始用LD、LDI指令,分支結(jié)束用ORB指令。ORB指令不帶操作元件,其后不跟任何軟組件編號。使用時(shí)如果有多個串聯(lián)電路塊按順序與前面的電路并聯(lián)時(shí),對每個電路塊使用ORB,指令如圖3.15(b),則對并聯(lián)的回路個數(shù)沒有限制。如果集中使用ORB指令并聯(lián)連接多個串聯(lián)電路塊時(shí),如圖3.15(c),由于LD、LDI指令的重復(fù)次數(shù)限制在8次以下,因此這種電路塊并聯(lián)的的個數(shù)限制在8個以下。一般不推薦集中使用ORB指令的方式。使用舉例如圖3.15。。,圖3.15 ORB指令的使用,兩個或兩
32、個以上觸點(diǎn)并聯(lián)的電路稱為并聯(lián)電路塊。并聯(lián)電路塊串聯(lián)連接時(shí),分支的起點(diǎn)用LD、LDI指令,并聯(lián)電路塊結(jié)束后用ANB指令與前面電路串聯(lián)。ANB指令不帶操作元件,其后不跟任何軟組件編號。若有多個并聯(lián)電路塊按順序與前面的電路串聯(lián)時(shí),對每個電路塊使用ANB指令,則對串聯(lián)的回路個數(shù)沒有限制。而若成批集中使用ANB指令串聯(lián)連接多個并聯(lián)電路塊時(shí),由于LD、LDI指令的重復(fù)次數(shù)限制在8次以下,因此這種電路塊串聯(lián)的的個數(shù)限制在8個以下。ANB指令使用如圖3.16。,圖3.16 ANB指令的使用,3.3.6 MPS、MRD、MPP指令 MPS(Push)進(jìn)棧指令。 MRD(Read)讀棧指令。 MPP(Pop)出棧
33、指令。 這三條指令都是無目標(biāo)元件指令,都為一個程序步長,這組指令多用于多輸出電路。 指令說明見表3.18。,表3.18 MPP、MRD、MPP指令說明,PLC中有11個存儲中間運(yùn)算結(jié)果的存儲區(qū)域被稱為棧存儲器。棧存儲器采用先進(jìn)后出的數(shù)據(jù)存取方式。如圖3.17。,圖3.17 棧操作示意,使用一次MPS指令就將此時(shí)的運(yùn)算結(jié)果送入棧存儲器的第一層進(jìn)行存儲。再使用MPS指令,又將此時(shí)的運(yùn)算結(jié)果送入棧存儲器的第一層進(jìn)行存儲,而將原先存入的數(shù)據(jù)依次移到棧存儲器的下一層。 MRD是讀出最上層所存的最新數(shù)據(jù)的專用指令。讀出時(shí),棧內(nèi)數(shù)據(jù)不發(fā)生移動,仍然保持在棧內(nèi)的位置不變。 使用MPP指令,各層數(shù)據(jù)依次向上移動
34、,將最上端的數(shù)據(jù)讀出后,該數(shù)據(jù)就從棧存儲器中消失。 MPS指令用于存儲電路中有分支處的邏輯運(yùn)算結(jié)果。MPS、MPP必須成對使用,連續(xù)使用的次數(shù)應(yīng)小于11。MRD可以多次使用,但最終輸出回路必須采用MPP指令,從而在讀出存儲數(shù)據(jù)的同時(shí)將它復(fù)位。 MPS、MRD、MPP指令的使用如圖3.18一層堆棧,圖3.19二層堆棧。圖3.20是一個四層堆棧梯形圖,如改為圖3.21,則不必使用MPS指令,編程也方便。,圖3.18 一層堆棧梯形圖,圖3.19 二層堆棧梯形圖,圖3.20 四層堆棧梯形圖,圖3.21 不用MPS指令的圖3.20等效梯形圖,3.3.7 置位指令SET和復(fù)位指令RST SET置位指令。
35、使動作保持。 RST復(fù)位指令。消除動作保持,當(dāng)前值及寄存器清零。 SET指令的操作目標(biāo)元件為Y,M,S,而RST指令的操作元件為Y、M、S、T、C、D、V、Z。這兩條指令是13程序步。指令說明見表3.19。,表3.19 SET、RST指令說明,SET和RST指令的使用沒有順序限制,也可以多次使用,并且SET和RST之間可以插入別的程序,但最后執(zhí)行的一條有效。具體使用如圖3.22。,圖3.22 SET、RST的使用,RST指令的操作元件除了與SET指令相同的Y,M,S外,還有T,C,D。即對數(shù)據(jù)寄存器D和變址寄存器V、Z的清零操作,以及對定時(shí)器T(包括累計(jì)定時(shí)器)和計(jì)數(shù)器C的復(fù)位,使它們的當(dāng)
36、前計(jì)時(shí)值和計(jì)數(shù)值清零。如圖3.23,C0對X1的上升沿次數(shù)進(jìn)行增計(jì)數(shù),當(dāng)達(dá)到設(shè)定值K10時(shí),輸出觸點(diǎn)C0動作。此后,X1即使再有上升沿的變化,計(jì)數(shù)器的當(dāng)前值不變,輸出觸點(diǎn)仍保持動作。為了將此清除,讓X0接通,對計(jì)數(shù)器復(fù)位,使輸出觸點(diǎn)復(fù)位。,圖3.23 對計(jì)數(shù)器的復(fù)位使用,3.3.8 取反指令I(lǐng)NV INV指令是將INV指令執(zhí)行之前的運(yùn)算結(jié)果取反的指令,即執(zhí)行INV指令前的運(yùn)算結(jié)果為OFF,執(zhí)行INV指令后的運(yùn)算為ON。該指令不能直接與母線連接,也不能單獨(dú)使用。該指令是一個無操作元件指令,占一個程序步。指令說明見表3.20。,表3.20 INV指令說明,INV的使用如圖3.24所示,當(dāng)X0斷開
37、時(shí),Y0為ON,如果X0接通,則Y0為OFF。,圖3.24 INV指令的使用,3.3.9 空操作指令NOP和結(jié)束指令END NOP空操作指令??找粭l指令(或用于刪除一條指令)。 END程序結(jié)束指令。 指令說明見表3.21。,表3.21 NOP、END指令說明,在普通的指令加入NOP指令,對程序執(zhí)行結(jié)果沒有影響。但是將已寫入的指令換成NOP,則被換的程序被刪除,程序發(fā)生變化。所以可用NOP指令對程序進(jìn)行編輯。比如,AND和ANI指令改為NOP,相當(dāng)于串聯(lián)接點(diǎn)被短路。OR和ORI指令改為NOP,相當(dāng)于并連接點(diǎn)被開路。變化見圖3.25。如用NOP指令修改后的電路不合理,梯形圖將出錯。執(zhí)行程序全清操作
38、后,全部步指令都變?yōu)镹OP。,圖3.25 NOP指令的使用,END是程序結(jié)束指令,在程序的最后寫入END指令,則END以后的程序不再執(zhí)行。如果程序結(jié)束不用END,在程序執(zhí)行時(shí)會掃描完整個用戶存儲器,延長程序的執(zhí)行時(shí)間,有時(shí)PLC會提示程序出錯,程序不能運(yùn)行。在程序調(diào)試階段,在各程序段插入END指令,可依次檢查各程序段的動作,確認(rèn)前面的程序動作無誤后,依次刪去END指令,有助于程序的調(diào)試。,3.3.10 基本指令應(yīng)用舉例 綜合以上所學(xué)的基本指令,本節(jié)將舉例說明基本指令的應(yīng)用。 1. 保持電路 如圖3.27所示,將輸入信號加以保持記憶。當(dāng)X000接通,輔助繼電器M0接通并保持,Y000有輸出。X0
39、00斷開后,Y000仍有輸出.只有當(dāng)X001接通,其常閉觸點(diǎn)斷開,才能使M0斷開,使Y000無輸出。,圖3.27 保持電路,2. 延時(shí)斷開電路 如圖3.28所示,當(dāng)X000接通,Y000有輸出且觸點(diǎn)自鎖保持,當(dāng)X000斷開后,啟動內(nèi)部定時(shí)器T0,定時(shí)5s后,定時(shí)器常閉觸點(diǎn)斷開,輸出Y000斷開。,圖3.28 延時(shí)斷開電路,(a) 梯形圖,(b) 指令表,(c) 時(shí)序圖,3. 振蕩電路 如圖3.29所示,當(dāng)X000接通,輸出Y000閃爍,接通與斷開交替運(yùn)行,接通時(shí)間為1s由定時(shí)器T0設(shè)定,斷開時(shí)間為2s由定時(shí)器T1設(shè)定。,圖3.29 振蕩電路,,3.4 步進(jìn)指令與狀態(tài)編程,在編程中對于一
40、個復(fù)雜的控制系統(tǒng),尤其是順序控制系統(tǒng),由于內(nèi)部的聯(lián)鎖、互動關(guān)系極其復(fù)雜,其梯形圖往往長達(dá)數(shù)百行,編制的難度較大,而且這類程序的可讀性也大大降低。運(yùn)用SFC語言編制復(fù)雜的順控程序,初學(xué)者可以很容易掌握。另外也為調(diào)試、試運(yùn)行帶來方便。SFC語言是一種通用的流程圖語言,三菱PLC在基本邏輯指令之外增加了兩條簡單的步進(jìn)順控指令(STL,意為Step Ladder),同時(shí)輔之以大量狀態(tài)元件,就可以用類似于SFC語言的狀態(tài)轉(zhuǎn)移圖方式編程。,3.4.1 步進(jìn)指令STL、RET,3.4.2 單流程SFC與步進(jìn)梯形圖編程,3.4.3 單流程狀態(tài)轉(zhuǎn)移圖(步進(jìn)梯形圖)的編程舉例,3.4.1 步進(jìn)指令STL、RET
41、 PLC有專門用于編制順序控制程序的步進(jìn)指令及編程元件。STL和RET是一對步進(jìn)指令,STL是步進(jìn)開始指令,后面的操作元件只能是狀態(tài)組件S,在梯形圖中直接與母線相連,表示每一步的開始。RET是步進(jìn)結(jié)束指令,后面沒有操作數(shù),是指狀態(tài)流程結(jié)束,用于返回主程序(母線)。指令說明見表3.22。,表3.22 步進(jìn)指令說明,STL只能與狀態(tài)組件S配合時(shí)才具有步進(jìn)功能。FX2N系列的狀態(tài)組件中有900點(diǎn)(S0S899)可用于構(gòu)成狀態(tài)轉(zhuǎn)移圖,其中S0S9用于初始步,S10S19用于返回原點(diǎn)。使用STL指令的狀態(tài)組件的常開觸點(diǎn)稱為STL觸點(diǎn),用符號 表示,沒有常閉的STL觸點(diǎn)。 指令使用如圖3.30所示。,
42、圖3.30 STL指令使用,,從圖中可以看出狀態(tài)轉(zhuǎn)移圖與梯形圖之間的關(guān)系。在梯形圖中引入步進(jìn)接點(diǎn)和步進(jìn)返回指令后,就可以從狀態(tài)轉(zhuǎn)移圖轉(zhuǎn)換成相應(yīng)的步進(jìn)梯形圖和指令表。對應(yīng)圖3.32(a)的狀態(tài)轉(zhuǎn)移圖的步進(jìn)梯形圖和指令表如圖3.30(b)(c)。狀態(tài)組件代表狀態(tài)轉(zhuǎn)移圖各步,每一步都具有三種功能:負(fù)載的驅(qū)動處理、指定轉(zhuǎn)換條件和指定轉(zhuǎn)換目標(biāo)。 STL指令的執(zhí)行過程為:當(dāng)步S20為活動步時(shí),S20的STL觸點(diǎn)接通,負(fù)載Y0有輸出。如果轉(zhuǎn)換條件X0滿足,后續(xù)步S21被置位變成活動步,同時(shí)前級步S20自動斷開變成不活動步,輸出Y0斷開。 STL指令的使用特點(diǎn): (1) 使用STL指令使新的狀態(tài)置位,
43、前一狀態(tài)自動復(fù)位。當(dāng)STL觸點(diǎn)接通后,與此相連的電路被執(zhí)行;當(dāng)STL觸點(diǎn)斷開時(shí),與此相連的電路停止執(zhí)行。若要保持普通線圈的輸出,可使用具有自保持功能的SET和RST指令。,,(2) STL觸點(diǎn)與左母線相連,與STL觸點(diǎn)右側(cè)相連的觸點(diǎn)要使用LD、LDI指令。也就是說,步進(jìn)指令STL有建立子母線的功能,當(dāng)某個狀態(tài)被激活時(shí),步進(jìn)梯形圖上的母線就移到子母線上,所有操作均在子母線上進(jìn)行。 (3) 使用RET指令使LD、LDI點(diǎn)返回左母線。 (4) 同一狀態(tài)組件的STL觸點(diǎn)只能使用一次(單流程狀態(tài)轉(zhuǎn)移)。 (5) 梯形圖中同一元件的線圈可以被不同的STL觸點(diǎn)驅(qū)動,也就是說使用STL指令時(shí)允許雙線圈輸出。
44、(6) STL觸點(diǎn)可以直接驅(qū)動或通過別的觸點(diǎn)驅(qū)動Y、M、S、T等元件的線圈和功能指令。 (7) STL指令后不能直接使用入棧(MPS)指令。在STL和RET指令之間不能使用MC、MCR指令。 (8) STL指令僅對狀態(tài)組件有效,當(dāng)狀態(tài)組件不作為STL指令的目標(biāo)元件時(shí),就具有一般輔助繼電器的功能。,,3.4.2 單流程SFC與步進(jìn)梯形圖編程,1. 單流程SFC 單流程SFC是狀態(tài)轉(zhuǎn)移圖中的最基本的結(jié)構(gòu)流程。如圖3.31所示就是一個單流程的結(jié)構(gòu)。是由順序排列、依次有效的狀態(tài)序列組成,每個狀態(tài)的后面只跟一個轉(zhuǎn)移條件,每個轉(zhuǎn)移條件后面也只連接一個狀態(tài)。,圖3.31 單流程的SFC流程,圖中,當(dāng)狀態(tài)
45、S20有效時(shí),若轉(zhuǎn)移條件X001接通,狀態(tài)將從S20轉(zhuǎn)移到S21,一旦轉(zhuǎn)移完成,S20同時(shí)復(fù)位。同樣,當(dāng)狀態(tài)S21有效時(shí),若轉(zhuǎn)移條件X002接通,狀態(tài)將從S21轉(zhuǎn)移到S22,一旦轉(zhuǎn)移完成,S21同時(shí)復(fù)位。以此類推,直至流程中的最后一個狀態(tài)。 2. 狀態(tài)編程的特點(diǎn) (1) 狀態(tài)轉(zhuǎn)移圖和步進(jìn)梯形圖表達(dá)的都是同一個程序,優(yōu)點(diǎn)是讓用戶每次只考慮一個狀態(tài),而不必考慮其他的狀態(tài),從而使編程更容易,而且還可以減少指令的程序步數(shù)。 (2) 狀態(tài)轉(zhuǎn)移圖中的一個狀態(tài)表示順序控制過程中的一個工步,因此步進(jìn)梯形圖也特別適用于時(shí)間和位移等順序的控制過程,也能形象、直觀地表示順控過程。 (3) 狀態(tài)編程開始時(shí),必須用ST
46、L指令使STL接點(diǎn)接通,從而使主母線與子母線接通,連在子母線上的狀態(tài)電路才能執(zhí)行,這時(shí)狀態(tài)就被激活。,,(4) 狀態(tài)的三個功能是在子母線上實(shí)現(xiàn)的,所以只有STL接點(diǎn)接通,該狀態(tài)的負(fù)載驅(qū)動和狀態(tài)轉(zhuǎn)移才能被掃描執(zhí)行。反之,STL接點(diǎn)斷開,對應(yīng)狀態(tài)就未被激活,則負(fù)載驅(qū)動和狀態(tài)轉(zhuǎn)移就不可能執(zhí)行,該電路將不被掃描而跳過。因此,除初始狀態(tài)外,其他所有狀態(tài)只有在轉(zhuǎn)移條件成立時(shí)才能被前一狀態(tài)置位而激活,一旦下一狀態(tài)激活,前一狀態(tài)就自動關(guān)閉?;谶@一特點(diǎn),使各狀態(tài)之間的關(guān)系十分清晰單純,不相鄰狀態(tài)間的連鎖關(guān)系將不復(fù)存在,只需集中考慮實(shí)現(xiàn)本狀態(tài)的三大功能即可。 (5) 使程序的可讀性更好、更便于理解,也使程序的調(diào)
47、試、故障排除變得相對簡單。 (6) 狀態(tài)編程的最后,必須使用步進(jìn)返回指RET,從子母線返回主母線。若沒有RET指令,會將后面的所有程序還看成是當(dāng)前狀態(tài)中的指令,由于PLC程序是循環(huán)掃描的,也包括了最開始處的指令,這就會引起程序出錯而不能運(yùn)行。,,3. 狀態(tài)編程的規(guī)則 從圖3.32狀態(tài)轉(zhuǎn)移圖中S20的狀態(tài)來看,每個狀態(tài)具有驅(qū)動負(fù)載、指定轉(zhuǎn)移方向和指定轉(zhuǎn)移條件三個功能。其中指定轉(zhuǎn)移方向和指定轉(zhuǎn)移條件是必不可少的,而負(fù)載驅(qū)動則視具體情況,沒有負(fù)載的狀態(tài)就不必進(jìn)行負(fù)載驅(qū)動。在圖中當(dāng)STL接點(diǎn)接通,S20狀態(tài)有效時(shí),先是用OUT指令驅(qū)動輸出線圈Y0,然后才是用“SET S21”指令決定轉(zhuǎn)移方向,轉(zhuǎn)向
48、下一相鄰狀態(tài)S21。單流程中的其他狀態(tài)的編程就參照此模板進(jìn)行。狀態(tài)編程的規(guī)則如下。 (1) 初始狀態(tài)的編程。初始狀態(tài)一般是指一個順控工藝過程最開始的狀態(tài)。狀態(tài)轉(zhuǎn)移圖起始位置的狀態(tài)就是初始狀態(tài),初始狀態(tài)編程必須在其他狀態(tài)之前。狀態(tài)組件中S0S9共10個狀態(tài)組件專用作初始狀態(tài)。程序首次開始運(yùn)行時(shí),初始狀態(tài)必須用其他方法預(yù)先驅(qū)動,使它處于工作狀態(tài),否則狀態(tài)流程就不可能進(jìn)行,一般利用系統(tǒng)的初始條件實(shí)現(xiàn)如可由PLC從STOPRUN切換瞬間的初始脈沖使特殊輔助繼電器接通來驅(qū)動初始狀態(tài),如圖3.32就是用這一方法來驅(qū)動初始狀態(tài)S0,使其置1。開始運(yùn)行后,初始狀態(tài)可由其他狀態(tài)來驅(qū)動。,每一個初始狀態(tài)下面的分支
49、數(shù)總和不能超過16個,這是對總分支數(shù)的限制,而對總狀態(tài)數(shù)則沒有限制。從每一個分支點(diǎn)上引出的分支不能超過8個,所以超過8個的分支不能集中在一個分支點(diǎn)上引出。初始狀態(tài)編程也可用后面的IST指令。 (2) 一般狀態(tài)的編程。除了初始狀態(tài)外,一般狀態(tài)組件必須在其他狀態(tài)后加入STL指令來進(jìn)行驅(qū)動,也就是說不能用除狀態(tài)組件之外的其他方式驅(qū)動。一般狀態(tài)編程時(shí),必須先負(fù)載驅(qū)動,后轉(zhuǎn)移處理。狀態(tài)組件不可重復(fù)使用。 (3) 相鄰的兩個狀態(tài)中不能使用同一個定時(shí)器,否則會導(dǎo)致定時(shí)器沒有復(fù)位機(jī)會,而引起混亂。在非相鄰的狀態(tài)中可以使用同一個定時(shí)器。 (4) 連續(xù)轉(zhuǎn)移用SET,非連續(xù)轉(zhuǎn)移用OUT。若狀態(tài)向相鄰的下一狀態(tài)連續(xù)轉(zhuǎn)
50、移使用SET指令,但若向非相鄰的狀態(tài)轉(zhuǎn)移,則應(yīng)改用OUT指令。 (5) 在STL與RET指令之間不能使用MC、MCR等指令。MPS指令也不能緊接著STL后使用。在子程序或中斷服務(wù)程序中,不能使用STL。,圖3.32 初始狀態(tài)S0的驅(qū)動梯形圖,3.4.3 單流程狀態(tài)轉(zhuǎn)移圖(步進(jìn)梯形圖)的編程舉例,例3.2 圖3.33是自動臺車控制示意圖,臺車在啟動前位于導(dǎo)軌的中部。一個工作周期的控制工藝如下: 1) 按下啟動按鈕SB,臺車電動機(jī)M正轉(zhuǎn),臺車前進(jìn),碰到限位開關(guān)SQ1后,臺車電動機(jī)M反轉(zhuǎn),臺車后退。 2) 臺車后退碰到限位開關(guān)SQ2后,臺車電動機(jī)M停轉(zhuǎn),臺車停車,停5s,第二次前進(jìn),碰到限位開關(guān)SQ
51、3,再次后退。 3) 當(dāng)后退再次碰到限位開關(guān)SQ2時(shí),臺車停止。 為設(shè)計(jì)本控制系統(tǒng)的梯形圖,先安排輸入、輸出口及機(jī)內(nèi)器件。臺車由電動機(jī)M驅(qū)動,正轉(zhuǎn)(前進(jìn))由PLC的輸出點(diǎn)Y1控制,反轉(zhuǎn)(后退)由Y2控制。為了解決延時(shí)5s,選用定時(shí)器T0。啟動按鈕SB及限位開關(guān)SQ1、SQ2、SQ3分別接到X0、X1、X2、X3。,狀態(tài)轉(zhuǎn)移圖解決順控問題的方法步驟如下: (1) 將整個控制系統(tǒng)過程按任務(wù)要求分解,臺車自動往返控制系統(tǒng)流程圖見圖3.34。 從圖3.34可以看出該圖的特點(diǎn): 將復(fù)雜的任務(wù)或過程分解成若干個工序(狀態(tài))。無論多么復(fù)雜的過程均能分化為小的工序,這非常有利于程序的結(jié)構(gòu)化設(shè)計(jì)。,圖3.3
52、3 自動臺車示意圖,, 相對于某一具體的工序來說,控制任務(wù)實(shí)現(xiàn)了簡化,給局部程序的編制帶來了方便。 整體程序是局部程序的綜合,只要弄清各工序成立的條件、工序轉(zhuǎn)移的條件和轉(zhuǎn)移的方向,就可進(jìn)行這類圖形的設(shè)計(jì)。 狀態(tài)轉(zhuǎn)移流程圖可讀性強(qiáng)、容易理解,能清晰地反映工藝控制全過程。 將圖中的“工序”更換為“狀態(tài)”,“準(zhǔn)備”更換為“初始狀態(tài)”,就得到了狀態(tài)轉(zhuǎn)移圖。狀態(tài)轉(zhuǎn)移圖是狀態(tài)編程的重要工具。狀態(tài)編程的一般思想為:將一個復(fù)雜的控制過程分解為若干個工作狀態(tài),弄清各狀態(tài)的工作內(nèi)容(狀態(tài)的功能、轉(zhuǎn)移條件和轉(zhuǎn)移方向),根據(jù)總的控制順序要求,將各獨(dú)立狀態(tài)聯(lián)系起來,形成狀態(tài)轉(zhuǎn)移圖,進(jìn)行繪制梯形圖程序,寫出語句表。,
53、(2) 分配、確定狀態(tài)器元件,弄清每個被分配狀態(tài)器的功能,見表3.23。 需注意的是S20與S23、S21與S24功能相同,但它們是狀態(tài)轉(zhuǎn)移圖中的不同工序,也就是不同狀態(tài),故編號也不相同。,圖3.34 臺車自動往返狀態(tài)轉(zhuǎn)換流程圖,,表3.23 工序與狀態(tài)器及功能對應(yīng)表,(3) 找出每個狀態(tài)的轉(zhuǎn)移條件。狀態(tài)轉(zhuǎn)移圖就是狀態(tài)和狀態(tài)轉(zhuǎn)移條件及轉(zhuǎn)移方向構(gòu)成的流程圖,所以弄清轉(zhuǎn)移條件是十分必要的。本例中各狀態(tài)的轉(zhuǎn)移條件是: S20轉(zhuǎn)移條件SB (X0) S21轉(zhuǎn)移條件SQ1 (X1) S22轉(zhuǎn)移條件SQ2 (X2) S23轉(zhuǎn)移條件定時(shí)器(T0) S24轉(zhuǎn)移條件SQ3 (X3) (4) 由以上分析,可以得
54、到臺車往返控制的順控狀態(tài)轉(zhuǎn)移圖,見圖3.35(a)。 (5) 與SFC對應(yīng)的步進(jìn)梯形圖,見圖3.35(b)。 (6) 根據(jù)狀態(tài)轉(zhuǎn)移圖和梯形圖寫出指令語句表,見圖3.35(c)。,【例2】設(shè)計(jì)三只彩燈(HL1、HL2、HL3)自動閃爍的程序,并寫出指令語句表。 控制工藝要求: 1) HL1亮1s后,HL2亮,同時(shí)HL1滅;HL2亮1s后,HL3亮,同時(shí)HL2滅;HL3亮1s后,三只燈一齊亮1s,滅1s,再一齊亮1s,回到起始點(diǎn)。 2) 用一只點(diǎn)動按鈕SB控制三彩燈閃爍。 (1) PLC控制的I/O端口分配見表3.24。,表3.24 彩燈自動閃爍控制I/O分配表,(2) 彩燈自動閃爍狀態(tài)轉(zhuǎn)移圖如圖
55、3.36。 (3) 步進(jìn)梯形圖如圖3.37。 (4) 指令表如圖3.38。,(a) 狀態(tài)轉(zhuǎn)移圖,(b) 梯形圖,(c) 指令表,圖3.35 臺車自動往返控制,,(a) 狀態(tài)轉(zhuǎn)移圖,圖3.36 彩燈自動閃爍狀態(tài)轉(zhuǎn)移圖,,,圖3.37 彩燈自動閃爍步進(jìn)梯形圖,,圖3.38 彩燈自動閃爍指令表,3.5 三菱FX系列功能指令,PLC的基本指令是基于繼電器、定時(shí)器、計(jì)數(shù)器類等軟元件,主要用于邏輯處理的指令。作為工業(yè)控制計(jì)算機(jī),PLC僅有基本指令是遠(yuǎn)遠(yuǎn)不夠的?,F(xiàn)代工業(yè)控制在許多場合需要數(shù)據(jù)處理,因而PLC制造商在PLC中引入應(yīng)用指令,也稱功能指令。 FX系列PLC除了基本指令、步進(jìn)指令外,還有200多條功
56、能指令??煞譃槌绦蛄飨蚩刂啤?shù)據(jù)傳送與比較、算術(shù)與邏輯運(yùn)算、數(shù)據(jù)移位與循環(huán)、數(shù)據(jù)處理、高速處理、方便指令、外部設(shè)備通信(I/O模塊、功能模塊)、浮點(diǎn)運(yùn)算、定位運(yùn)算、時(shí)鐘運(yùn)算、觸點(diǎn)比較等幾大類。功能指令實(shí)際上就是許多功能不同的子程序。,圖3.39 功能指令格式,圖3.39這條程序的意思是:當(dāng)X0為ON時(shí),把常數(shù)K123送到數(shù)據(jù)寄存器D20中去。其中X0是執(zhí)行條件,MOV是傳送功能指令,K123是源操作數(shù),D20是目標(biāo)操作數(shù)。,3.5.1 指令的基本規(guī)則,3.5.2 傳送指令MOV,3.5.3 移位傳送指令SMOV,3.5.4 取反傳送指令CML,3.5.5 傳送指令BMOV,3.5.6 多點(diǎn)傳送
57、指令FMOV,3.5.7 數(shù)據(jù)交換指令XCH,3.5.8 比較指令CMP,3.5.9 間比較指令ZCP,3.5.10 二進(jìn)制碼轉(zhuǎn)換指令BIN,3.5.11 BCD碼轉(zhuǎn)換指令,3.5.12 BIN加1指令I(lǐng)NC,3.5.13 BIN減1指令DEC,3.5.14 區(qū)間復(fù)位指令ZRST,3.5.15 七段解碼指令SEGD,3.5.16 位右移指令SFTR,3.5.17 位左移指令SFTL,3.5.1 功能指令的基本規(guī)則 1. 功能指令的表示方法 功能指令由指令助記符、功能號、操作數(shù)等組成。在簡易編程器中,輸入功能指令時(shí)以功能號輸入功能指令;在編程軟件中,輸入功能指令時(shí)以指令助記符輸入功能指令。功能
58、指令的表式形式見表3.25。,表3.25 功能指令的表示形式,說明如下: (1) 每一條功能指令有一個功能號和一個助記符,兩者嚴(yán)格對應(yīng)。由表3.25可見,助記符MEAN(求平均值)對應(yīng)的功能號為FNC45。 (2) 操作數(shù)(或稱操作元件) 有些功能指令只有助記符而無操作數(shù),但大多數(shù)功能指令在助記符之后還必須有15個操作數(shù)。組成部分有: S表示源操作數(shù),若使用變址寄存器,表示為S,多個源操作數(shù)用S1S2或者S1S2 表示。 D表示目標(biāo)操作數(shù),若使用變址寄存器,表示為D,多個目標(biāo)操作數(shù)用D1D2或者D1D2 表示。 n表示其他操作數(shù),常用于表示常數(shù)或?qū)和D的補(bǔ)充說明。有多個時(shí)用n1、n2表示。
59、表示常數(shù)時(shí),K表示十進(jìn)制數(shù),H表示十六進(jìn)制數(shù)。,(3) 程序步。在程序中,每條功能指令占用一定的程序步數(shù),功能號和助記符占一步,每個操作數(shù)占2步或4步(16位操作數(shù)是2步,32位操作數(shù)是4步)。 (4) 功能指令助記符前加D,表示處理32位數(shù)據(jù);指令前不加D,表示處理16位數(shù)據(jù)。 2. 功能指令的執(zhí)行方式 功能指令執(zhí)行方式有連續(xù)執(zhí)行和脈沖執(zhí)行兩種方式。由表3.25可見,在指令的助記符后加符號(P)表示脈沖執(zhí)行方式。助記符后不加(P)則為連續(xù)執(zhí)行方式。如圖3.40所示,在X0從OFFON變化時(shí),該指令執(zhí)行一次。當(dāng)執(zhí)行條件X1為ON時(shí),每個掃描周期都要執(zhí)行一次。,對某些功能指令如INC、DEC等
60、,用連續(xù)執(zhí)行方式在實(shí)用中可能會帶來問題。如圖4.41所示,是一條INC指令,是對目標(biāo)組件D10進(jìn)行加1操作的。假設(shè)該指令以連續(xù)方式工作的話,那么只要X000是接通的,則每個掃描周期都會對目標(biāo)組件加1,而這在許多實(shí)際的控制中是不允許的。為了解決這類問題,在指令助記符的后面加符號(P),設(shè)置了指令的脈沖執(zhí)行方式。,,圖3.40 指令執(zhí)行形式,INC(P)指令的含義:每當(dāng)X000從斷開變?yōu)榻油〞r(shí),目標(biāo)組件就被加1一次。也就是說,每當(dāng)X000來了一個上升沿,才會執(zhí)行加1。而在其他情況下,即使X000始終是接通的,都不會執(zhí)行加1指令。 由此可見,在不需要每個掃描周期都執(zhí)行指令時(shí),可以采用脈沖執(zhí)行方式的
61、指令,這樣還能縮短程序的執(zhí)行時(shí)間。,,圖3.41 脈沖執(zhí)行方式的INC 指令,3. 位元件 只處理ON/OFF兩種狀態(tài),用一個二進(jìn)制位表達(dá)的元件稱位元件。如X、Y、M、S都是位元件。位元件可以組合起來進(jìn)行數(shù)字處理,方法是將多個位組件按4位一組的原則來組合,即用4位BCD碼來表示1位十進(jìn)制數(shù),這樣就能在程序中使用十進(jìn)制數(shù)據(jù)了。 組合方法的助記符是:Kn+最低位位組件號。如KnX、KnY、KnM、即是位組件組合,其中“K”表示后面跟的是十進(jìn)制數(shù),“n”表示4位一組的組數(shù),16位數(shù)據(jù)用K1K4,32位數(shù)據(jù)用K1K8。數(shù)據(jù)中的最高位是符號位。如K2M0表示由M0M3和M4M7兩位組件組成一個8位數(shù)據(jù),
62、其中M7是最高位,M0是最低位。同樣,K4M10表示由M10M25四位位組件組成一個16位數(shù)據(jù),其中M25是最高位,M10是最低位。 當(dāng)一個16位數(shù)據(jù)傳送到目標(biāo)組件K1M0K3M0時(shí),由于目標(biāo)組件不到16位,所以將只傳送16位數(shù)據(jù)中的相應(yīng)低位數(shù)據(jù),相應(yīng)高位數(shù)據(jù)將不傳送。32位數(shù)據(jù)傳送也一樣。 在作16位數(shù)據(jù)操作時(shí),參與操作的位元件由K1K4指定。若僅有K1K3時(shí),不足16位的高位均作0處理。這樣最高位的符號位必然是0,也就是說只能是正數(shù)(符號位的判別是:正0負(fù)1)。如執(zhí)行圖3.42所示指令時(shí),數(shù)據(jù)源只有12位,而目標(biāo)寄存器D20是16位的,傳送結(jié)果D20的高4位自動添0,如圖3.43所示。,被
63、組合的位元件的最低位位組件號習(xí)慣上采用以0結(jié)尾的元件,例如K2X0、K4Y10、K3M0、K4S20等。,,圖3.42 源數(shù)據(jù)不足16位,圖3.43 高4位自動添0,4. 字元件與雙字元件 (1) 字元件:處理數(shù)據(jù)的元件稱字元件,如T、C、D等。字元件是FX2系列PLC數(shù)據(jù)類組件的基本結(jié)構(gòu),1個字元件是由16位的存儲單元構(gòu)成,其最高位(第15位)為符號位,第014位為數(shù)值位。符號位的判別是:正數(shù)0,負(fù)數(shù)1。圖3.44所示為16位數(shù)據(jù)寄存器D0。,圖3.44 字元件,(2) 雙字元件:可以使用兩個字元件組成雙字元件,以組成32位數(shù)據(jù)操作數(shù)。雙字元件是由相鄰的寄存器組成,如圖3.45中由D11和D
64、10組成。,圖3.45 雙字元件,由圖可見,低位組件D10中存儲了32位數(shù)據(jù)的低16位,高位組件D11中存儲了32位數(shù)據(jù)的高16位,也就是說,存放原則是:“低對低,高對高”。雙字元件中第31位為符號位,第030位為數(shù)值位。要注意,在指令中使用雙字元件時(shí),一般只用其低位地址表示這個組件,但高位組件也將同時(shí)被指令使用。雖然取奇數(shù)或偶數(shù)地址作為雙字元件的低位是任意的,但為了減少組件安排上的錯誤,建議用偶數(shù)作為雙字元件的地址。功能指令中的操作數(shù)是指操作數(shù)本身或操作數(shù)的地址。功能指令能夠處理16位或32位的數(shù)據(jù)。,,5. 功能指令中的數(shù)據(jù)長度 因?yàn)閹缀跛屑拇嫫鞯亩M(jìn)制位數(shù)都是16位,所以功能指令中1
65、6位的數(shù)據(jù)都是以默認(rèn)形式給出的。如圖3.46所示為一條16位MOV指令。,圖3.46 16位MOV指令,上述指令含義:當(dāng)X000接通時(shí),將十進(jìn)制數(shù)100傳送到16位的數(shù)據(jù)寄存器D10中去。當(dāng)X000斷開時(shí),該指令被跳過不執(zhí)行,源和目的內(nèi)容都不變。,,功能指令除了可以處理16位數(shù)據(jù),也可以處理32位數(shù)據(jù)。只要在助記符前加符號(D),例如在傳送指令MOV前加(D)符號時(shí),表示該指令處理32位數(shù)據(jù),如圖3.47所示。,圖3.47 32位MOV指令,,該指令含義:當(dāng)X000接通時(shí),將由D11和D10組成的32位源數(shù)據(jù)傳送到由D13和D12組成的目標(biāo)地址中去。當(dāng)X000為斷開時(shí),該指令被跳過不執(zhí)行,源和
66、目的內(nèi)容都不變。從這里可以看出,32位數(shù)據(jù)是由兩個相鄰寄存器構(gòu)成的,但在指令中寫出的是低位地址,高位地址被隱藏了,源和目都是這樣表達(dá)的。指令中源地址是由D11和D10組成,但只寫出低位地址D10,而目標(biāo)地址由D12和D11組成,但只寫出低位地址D12。因此,在32位數(shù)據(jù)指令中應(yīng)避免出現(xiàn)如圖3.48的錯誤。所以建議32位雙字元件的首地址都用偶地址就是這個道理。,圖3.48 錯誤的32位MOV指令,特別指出32位計(jì)數(shù)器C200C255不能用作指令的16位操作數(shù)。,,6. 變址寄存器(V、Z) 變址寄存器V和Z是兩個16位的寄存器,除了和通用數(shù)據(jù)寄存器一樣用作數(shù)值數(shù)據(jù)讀、寫之外,主要還用于運(yùn)算操作數(shù)地址的修改。在傳送、比較等指令中用來改變操作對象的組件地址,變址方法是將V、Z放在各種寄存器的后面,充當(dāng)操作數(shù)地址的偏移量。操作數(shù)的實(shí)際地址就是寄存器的當(dāng)前值與V或Z內(nèi)容相加后的和。如圖3.49所示。,圖3.47 32位MOV指令,,,當(dāng)各邏輯行滿足條件時(shí),K10送到V,K20送到Z,所以V、Z的內(nèi)容分別為10、20。當(dāng)執(zhí)行ADD加法指令,即執(zhí)行(D5V)+(D15Z)(D40Z)時(shí),此時(shí)D5
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。