1 引言
絕對值位置控制系統(tǒng)對于經(jīng)常使用的點(diǎn)位控制系統(tǒng)來說,是一種非常方便實(shí)用的位置控制方式,。一旦原點(diǎn)設(shè)置后,,完畢每次停電后開機(jī)時(shí),這種系統(tǒng)不需要回原點(diǎn),,大大方便了操作,。三菱mr-j2s-a系列的伺服系統(tǒng)和三菱fx2n系列plc是在實(shí)際中經(jīng)常用到的伺服系統(tǒng)和控制器,本文討論在某些特殊的應(yīng)用場合,,如何應(yīng)用它們來構(gòu)建一個(gè)絕對值位置控制系統(tǒng),。
2 控制任務(wù)簡介
這是一個(gè)實(shí)際使用的控制任務(wù),參見圖1示意,。a點(diǎn)是設(shè)備的原始位置,,b點(diǎn)是設(shè)備的工作位置。開始工作后,,設(shè)備以位置控制方式移到工作位置b,,然后,設(shè)備從b以速度控制方式點(diǎn)向a點(diǎn)移動(dòng),。在移動(dòng)過程中,,執(zhí)行一些其他的任務(wù),當(dāng)這些任務(wù)完成后在a與b之間的任一位置c點(diǎn)停止,。然后以位置控制方式回到原始位置a點(diǎn),,這樣整個(gè)工作循環(huán)結(jié)束。
圖1 控制任務(wù)
2.1 控制平臺(tái)
三菱j2s-a系列的伺服系統(tǒng)和三菱fx2n系列plc的功能和特性:三菱mr-j2s-a系列的伺服系統(tǒng)中伺服電機(jī)的編碼器為每轉(zhuǎn)為131072線的絕對值編碼器,,伺服驅(qū)動(dòng)器能夠在停電情況下記住伺服電機(jī)的當(dāng)前位置,。該伺服系統(tǒng)有位置控制、速度控制和轉(zhuǎn)矩控制三種運(yùn)行方式,。同時(shí)該伺服系統(tǒng)內(nèi)置絕對位置專用傳輸協(xié)議,,如果菱mr-j2s-a系列的伺服系統(tǒng)工作在位置方式,則可配合fx2n系列plc的dabs(讀絕對位置)指令,,在伺服驅(qū)動(dòng)器通電后伺服on(son信號(hào))有效時(shí),,plc中讀出伺服電機(jī)的當(dāng)前位置。但僅在son信號(hào)接通時(shí)的上升沿開始傳輸當(dāng)前伺服電機(jī)位置一次,,在son信號(hào)接通以后將不再傳輸伺服電機(jī)的當(dāng)前絕對位置,。伺服電機(jī)的當(dāng)前絕對位置由位置控制裝置(如fx2n-1pg模塊)根據(jù)發(fā)出的脈沖數(shù)來確定。這實(shí)際上是一個(gè)開環(huán)控制系統(tǒng),。在不發(fā)生報(bào)警或者脈沖傳輸不受到干擾的情況下,,整個(gè)位置控制系統(tǒng)的位置將不會(huì)丟失。如果工作在速度控制方式則不能在son接通時(shí)讀取伺服電機(jī)的絕對位置,在整個(gè)工作過程中,,也無法確定取伺服電機(jī)的絕對位置,。圖2是典型的位置控制系統(tǒng)配置圖。
圖2 系統(tǒng)配置
2.2 任務(wù)分析
在本任務(wù)中,,伺服驅(qū)動(dòng)器將工作在位置控制和速度控制兩種方式,。a點(diǎn)和b點(diǎn)的定位操作,要求控制系統(tǒng)必需記住伺服電機(jī)的位置,,但由于b點(diǎn)與c點(diǎn)之間的速度運(yùn)行方式,,使得傳統(tǒng)的控制系統(tǒng)不能獲知伺服電機(jī)的位置。因?yàn)楸M管在位置方式位置控制器能確定伺服電機(jī)的位置,,但在伺服驅(qū)動(dòng)器從位置方式轉(zhuǎn)變?yōu)樗俣确绞胶?,位置控制器將不起作用,所以也無法確定伺服電機(jī)的位置,。由于在整個(gè)控制過程中,,既有位置控制方式,又有速度控制方式,,所以典型的傳統(tǒng)控制配置將不能滿足本控制任務(wù),,必須采用一種新的控制方式來實(shí)現(xiàn)控制。
3 控制方案的硬件配置
上述問題的基本解決思路是通過plc與伺服驅(qū)動(dòng)器的通訊方式,,來實(shí)時(shí)讀取伺服電機(jī)的當(dāng)前實(shí)際位置,,這樣不管伺服系統(tǒng)處于位置控制方式,還是在速度控制方式,,控制系統(tǒng)都能知道伺服電機(jī)的當(dāng)前位置,,從而使系統(tǒng)能正確地定位在a點(diǎn)和b點(diǎn)。通過查閱資料,,我們了解到三菱j2s系列伺服系統(tǒng)除了內(nèi)置絕對位置專用傳輸協(xié)議外,,還內(nèi)置了三菱伺服通訊協(xié)議;三菱fx2n系列內(nèi)置了無協(xié)議通訊指令(rs指令),,所以我們可使用rs指令根據(jù)伺服驅(qū)動(dòng)器的通訊協(xié)議來讀取電機(jī)當(dāng)前位置,。圖3是控制系統(tǒng)框圖。
圖3 系統(tǒng)框圖
在圖3中,,fx2n系列plc為主控制器,,擴(kuò)展特殊模塊fx2n-1pg為定位模塊,其輸出為頻率和脈沖數(shù)可控的定位脈沖,。當(dāng)plc主系統(tǒng)通過通訊方式獲得伺服電機(jī)當(dāng)前位置的前提下,,能在定位指令的驅(qū)動(dòng)下,驅(qū)動(dòng)伺服電機(jī)到給定位置,;擴(kuò)展特殊模塊fx2n-4da模擬量輸出模塊,,其輸出為0到正負(fù)10v的電壓信號(hào),;fx2n-485bd為485通訊卡,它和mr-j2s-a伺服驅(qū)動(dòng)器的rs-422相連,;fx2n主機(jī)通過485bd-rs422口與伺服驅(qū)動(dòng)器進(jìn)行通信,,讀取伺服電機(jī)的當(dāng)前絕對位置。當(dāng)處于位置控制方式時(shí),,電機(jī)由fx2n-1pg定位模塊發(fā)出的定位脈沖來控制,包括其運(yùn)轉(zhuǎn)速度和目標(biāo)位置,。當(dāng)位置/速度切換信號(hào)有效時(shí),,伺服驅(qū)動(dòng)器切換為速度控制方式,由模擬量模塊輸出的0到正負(fù)10v來控制其速度大小和運(yùn)動(dòng)方向,。安裝在plc主機(jī)上的485通訊卡與伺服驅(qū)動(dòng)器上rs-422口進(jìn)行通訊,,隨時(shí)讀取伺服電機(jī)的當(dāng)前絕對位置值。
4 控制軟件編制
在本控制系統(tǒng)的軟件中,,主要是通訊程序的編制,。其他一些如定位控制、位置速度控制方式的切換,、模擬量速度控制等程序比較普通,,在此不予介紹,我們著重介紹plc主機(jī)如何通過485通訊卡來讀取伺服驅(qū)動(dòng)器中伺服電機(jī)的當(dāng)前絕對位置的控制軟件,。
4.1 三菱mr-j2s-a伺服系統(tǒng)通訊協(xié)議
該伺服系統(tǒng)具有rs422串行通訊功能,,伺服系統(tǒng)作為從站,控制器作為主站,。主控制器通過該通訊功能可實(shí)現(xiàn)對伺服驅(qū)動(dòng)器的運(yùn)行控制,、參數(shù)的修改讀取、伺服驅(qū)動(dòng)器當(dāng)前運(yùn)動(dòng)狀態(tài)的讀取等,。我們在這里只需要讀取伺服電機(jī)的當(dāng)前絕對位置值,。
(1)通訊格式:
?。?)通訊協(xié)議:三菱j2s系列伺服系統(tǒng)的通訊協(xié)議大致分為四種格式:從控制器向伺服驅(qū)動(dòng)器發(fā)送數(shù)據(jù),、控制器從伺服驅(qū)動(dòng)器接送數(shù)據(jù)、通訊超時(shí)處理,、通訊重試,。在這里我們主要使用第二種格式的通訊協(xié)議,即控制器從伺服驅(qū)動(dòng)器接送數(shù)據(jù)的通訊協(xié)議,。該種格式的通訊協(xié)議:
在上述協(xié)議中,,所有報(bào)文均以ascii碼表示。在主站控制器發(fā)出的報(bào)文中,,soh(通訊開始),、stx(報(bào)文開始)和etx(報(bào)文結(jié)束)的ascii碼分別為01h,、02h和03h。讀絕對位置的指令為02,,則對應(yīng)的ascii碼為30h,、31h,絕對位置值(指令脈沖單位)對應(yīng)的數(shù)據(jù)號(hào)為91,,對應(yīng)的ascii碼為39h,、31h。站號(hào)是在伺服驅(qū)動(dòng)器中設(shè)置的站號(hào),,假如設(shè)置為0時(shí),,則對應(yīng)的ascii碼為30h。其校驗(yàn)和的計(jì)算范圍為站號(hào)到etx,,將其每一位數(shù)據(jù)的ascii碼進(jìn)行求和,,得到結(jié)果的低二位即為校驗(yàn)和數(shù)據(jù)。在主站控制器收到的報(bào)文中,,stx,、站號(hào)、etx與前面一樣,,不再重復(fù)了,。當(dāng)通訊正常時(shí),錯(cuò)誤代碼為a(伺服不報(bào)警時(shí))或a(伺服報(bào)警時(shí)),,當(dāng)通訊不正常時(shí),,則錯(cuò)誤代碼不等于a或a,而是其他字符,。數(shù)據(jù)即為絕對位置數(shù)據(jù),,長度為8幀。其校驗(yàn)和的計(jì)算范圍也是為站號(hào)到etx,,也是取每位ascii碼計(jì)算和的低二位,。
(3)相關(guān)的驅(qū)動(dòng)器參數(shù):p#16參數(shù)用于設(shè)置波特率,、rs232/rs422通訊選擇,、通訊等待時(shí)間。我們選用波特率為19200pbs,rs422通訊口,,通訊等待時(shí)間有效,,則p#16=1101。
p#15參數(shù)用于設(shè)置站號(hào),,在本案中設(shè)為0,。
4.2 fx2n系列plc無協(xié)議通訊指令(rs指令)
fx2n系列plc內(nèi)置串行數(shù)據(jù)傳送指令,可以通過rs-232或rs-422通訊口與其它設(shè)備進(jìn)行串行通訊,。其通訊協(xié)議可根據(jù)所要與其進(jìn)行通訊的設(shè)備的通訊協(xié)議進(jìn)行編制,。
?。?)通訊格式:串行數(shù)據(jù)傳送rs指令的通訊格式通過plc的特殊數(shù)據(jù)寄存器d8120來設(shè)置。在最新的fx3u系列plc中可通過設(shè)置plc參數(shù)來設(shè)置,,而在fx2n中只能通過plc程序來設(shè)置,。本案中d8120的b15-b8只能設(shè)置為00001100,在此不作介紹,。b7-b0用于設(shè)置傳輸?shù)牟ㄌ芈?、?shù)據(jù)長度等,這些參數(shù)必須與j2s伺服驅(qū)動(dòng)器的通訊參數(shù)相一致,。當(dāng)b7-b4=1001時(shí),,對應(yīng)的傳輸波特率為19200
bps;當(dāng)b3=0時(shí),,對應(yīng)停止位為1位,;當(dāng)b2b1=11時(shí),,對應(yīng)奇偶校驗(yàn)為偶校驗(yàn),;當(dāng)b0=1時(shí),對應(yīng)的數(shù)據(jù)長度為8位,。所以d8120=0000110010000111,,即h0c97。
?。?)串行數(shù)據(jù)傳送rs指令:rs指令的指令格式為 rs d10 k10 d20 k14,;其中d10為發(fā)送數(shù)據(jù)首地址,k10為
發(fā)送數(shù)據(jù)的個(gè)數(shù)(在本案中為10),,d20為接收數(shù)據(jù)存放的首地址,,k14為接收數(shù)據(jù)的個(gè)數(shù)(在本案中為14)。
4.3 plc和伺服驅(qū)動(dòng)器的通訊程序
在了解了伺服驅(qū)動(dòng)器的通訊協(xié)議和plc的通訊指令后,,編制相應(yīng)的通訊程序,,目標(biāo)是實(shí)時(shí)讀取伺服驅(qū)動(dòng)器的絕對位置。該通訊程序大致可分為通訊實(shí)現(xiàn)和通訊錯(cuò)誤判斷兩個(gè)部分,。
?。?)報(bào)文構(gòu)成:據(jù)前述的通訊協(xié)議,我們知道,,讀電機(jī)絕對位置時(shí)的協(xié)議格式為:
轉(zhuǎn)換成ascii碼,,則為:
校驗(yàn)和的計(jì)算范圍為站號(hào)到etx的7個(gè)幀,計(jì)算方法是將其轉(zhuǎn)化成ascii碼的數(shù)加起來取其低二位,。具體計(jì)算如下:
30h+30h+32h+02h+39h+31h+03h=101h,,取其低二位,則位01,。再取其對應(yīng)的ascii碼,,得30h,、31h。該值即位發(fā)送報(bào)文中的校驗(yàn)和值,。所以,,讀絕對位置要發(fā)送的報(bào)文即為01h 30h 30h 32h 02h 39h 31h 03h 30h 31h
(2)主通訊程序:圖4是通訊主程序,,通過這段程序可得到儲(chǔ)存在d50中伺服電機(jī)絕對位置值,。程序段a是在plc開始運(yùn)行時(shí),將根據(jù)伺服系統(tǒng)的通訊協(xié)議編制的報(bào)文寫入發(fā)送數(shù)據(jù)塊,。程序段b選擇8位數(shù)據(jù)模式,。程序段c激活通訊指令。程序段d每100毫秒對發(fā)送標(biāo)志m8122置位,,發(fā)送完成后自動(dòng)復(fù)位,。在程序段e,當(dāng)接收完成時(shí),,接收完成標(biāo)志m8123置1,,將接收到的數(shù)據(jù)送到d30—d43中,并同時(shí)將m8123復(fù)位,。程序段f,,將14幀接收數(shù)據(jù)中的位置數(shù)據(jù)(從第4幀到第11幀)通過轉(zhuǎn)換指令hex轉(zhuǎn)換成16進(jìn)制數(shù)據(jù),最后將位置數(shù)據(jù)送入d50。
圖4 通訊程序
?。?)通訊出錯(cuò)檢測程序:為了保證讀入的位置數(shù)據(jù)的正確性,,必須對整個(gè)通訊過程進(jìn)行出錯(cuò)檢測。在這里我們主要核對讀入數(shù)據(jù)的校驗(yàn)和的方法來進(jìn)行通訊錯(cuò)誤校驗(yàn),。前面我們介紹過,,計(jì)算接收報(bào)文數(shù)據(jù)校驗(yàn)和的計(jì)算范圍為stx之后的11幀數(shù)據(jù)。所以具體做法是,,根據(jù)讀入的數(shù)據(jù)計(jì)算stx之后的11幀的校驗(yàn)和,,再與接收到報(bào)文中校驗(yàn)和(最后兩幀)進(jìn)行比較。在圖5的通訊出錯(cuò)檢測程序段中,,指令h用于計(jì)算從伺服驅(qū)動(dòng)器接收到數(shù)據(jù)的校驗(yàn)和,。指令i用于取計(jì)算得到的校驗(yàn)的低二位,指令j用于將接收到的校驗(yàn)和轉(zhuǎn)換成16進(jìn)制,。指令k用于比較實(shí)際計(jì)算得到的校驗(yàn)和與接收到的校驗(yàn)和進(jìn)行比較,,若不相等,則通訊出錯(cuò),。通訊出錯(cuò)后處理,,限于篇幅,在此不作介紹,。
圖5 檢測程序
5 結(jié)束語
通過上述硬件和軟件兩方面的結(jié)合,,整個(gè)控制系統(tǒng)就能滿足本文開始時(shí)所描述的控制任務(wù)要求,。plc控制伺服系統(tǒng)進(jìn)行定位控制是一種典型的控制模式,而應(yīng)用通訊技術(shù)實(shí)現(xiàn)伺服系統(tǒng)的絕對位置檢測和控制更是一種實(shí)用的技術(shù),。本文所討論的三菱fx2n系列plc實(shí)時(shí)讀取三菱mr-j2s-a系列伺服系統(tǒng)當(dāng)前位置的實(shí)現(xiàn)方式,,不僅對類似的控制場合具有借鑒意義,而且對plc與其他設(shè)備的通訊程序編制也有啟發(fā)意義,。