基于Modbus RTU通信協(xié)議的伺服電機(jī)聯(lián)動(dòng)控制系統(tǒng)
點(diǎn)擊:1967
A+ A-
所屬頻道:新聞中心
工業(yè)控制已從單機(jī)控制走向集中監(jiān)控、集散控制,如今已進(jìn)入網(wǎng)絡(luò)時(shí)代,工業(yè)控制器連網(wǎng)也為網(wǎng)絡(luò)管理提供了方便。Modbus就是工業(yè)控制器的網(wǎng)絡(luò)協(xié)議中的一種,通過此協(xié)議,控制器相互之間、控制器經(jīng)由網(wǎng)絡(luò)(例如以太網(wǎng))和其它設(shè)備之間可以通信。基于上述原理,文中設(shè)計(jì)了一套伺服電機(jī)聯(lián)動(dòng)控制系統(tǒng),采用Modbus RTU通信協(xié)議進(jìn)行數(shù)據(jù)通信,達(dá)到能夠同時(shí)對2臺(tái)電機(jī)聯(lián)動(dòng)控制的目的。
1 系統(tǒng)構(gòu)成以及原理
在工業(yè)控制過程中,電機(jī)是控制系統(tǒng)一個(gè)重要組成部分。一般通過微處理器控制電機(jī)繼而達(dá)到實(shí)現(xiàn)自動(dòng)控制的目的。而上位機(jī)通過串行或者并行通信協(xié)議控制微處理器,來實(shí)現(xiàn)遠(yuǎn)程控制。
文中提出了一種新的伺服電機(jī)聯(lián)動(dòng)控制系統(tǒng)的設(shè)計(jì)方案,采用Modbus RTU協(xié)議,使上位機(jī)(PC)直接可以和伺服放大器進(jìn)行通信,本設(shè)計(jì)上位機(jī)采用一般PC即可,最好帶RS485接口。伺服放大器選用富士公司RYH201F5-VV2,伺服電機(jī)選用富士公司GYS201D5-RC2。由于系統(tǒng)設(shè)計(jì)過程中節(jié)省了微處理器,所以不僅在數(shù)值處理運(yùn)算和數(shù)據(jù)傳送上運(yùn)行速度快,實(shí)時(shí)性強(qiáng),而且簡化了系統(tǒng)復(fù)雜度,降低了成本。
由于有的PC不自帶RS485接口,因此上位機(jī)不能利用Modbus通信協(xié)議來控制伺服放大器。雖然市場沒有專門接口轉(zhuǎn)換電路,但是由于一般上位機(jī)(PC或者工控機(jī)等)都自帶USB接口,自己根據(jù)Modbus協(xié)議和實(shí)驗(yàn)室現(xiàn)有器件,自行設(shè)計(jì)接口轉(zhuǎn)換電路。
2 Modbus RTU協(xié)議及實(shí)現(xiàn)
2.1 Modbus協(xié)議
Modbus是OSI模型第7層上的應(yīng)用層報(bào)文傳輸協(xié)議,它在連接至不同類型總線或網(wǎng)絡(luò)的設(shè)備之間提供客戶機(jī)/服務(wù)器通信。標(biāo)準(zhǔn)的Modbus口是使用RS-232C兼容串行接口,它定義了連接口的針腳、電纜、信號(hào)位、傳輸波特率、奇偶校驗(yàn)??刂破髂苤苯踊蚪?jīng)由Modem組網(wǎng)??刂破魍ㄐ攀褂弥?從技術(shù),即僅一設(shè)備(主設(shè)備)能初始化傳輸(查詢)。其它設(shè)備(從設(shè)備)根據(jù)主設(shè)備查詢提供的數(shù)據(jù)做出相應(yīng)反應(yīng)。典型的主設(shè)備:主機(jī)和可編程儀表。典型的從設(shè)備:可編程控制器。本系統(tǒng)中主設(shè)備指上位機(jī),從設(shè)備主要指伺服放大器。
上位機(jī)可單獨(dú)和伺服放大器通信,也能以廣播方式和所有放大器通信。如果單獨(dú)通信,伺服放大器返回一消息作為回應(yīng),如果是以廣播方式查詢的,則不作任何回應(yīng)。Modbus協(xié)議建立了上位機(jī)查詢的格式:設(shè)備(或廣播)地址、功能代碼、所有要發(fā)送的數(shù)據(jù)、一錯(cuò)誤檢測域。伺服放大器回應(yīng)消息也由Modbus協(xié)議構(gòu)成,包括確認(rèn)要行動(dòng)的域、任何要返回的數(shù)據(jù)和一錯(cuò)誤檢測域。如果在消息接收過程中發(fā)生一錯(cuò)誤,或不能執(zhí)行其命令,伺服放大器將建立一錯(cuò)誤消息并把它作為回應(yīng)發(fā)送出去。
通信過程主要分查詢和響應(yīng)。查詢指從上位機(jī)通過功能代碼告之被選中的伺服放大器要執(zhí)行的何種功能;響應(yīng)指伺服放大器對查詢信息功能代碼的回應(yīng)。通信是由來自上位機(jī)的查詢開始的。伺服放大器之間不能進(jìn)行查詢。
控制器能設(shè)置為兩種傳輸模式(ASCII或RTU)之中的任意一種標(biāo)準(zhǔn)進(jìn)行通信。文中選用RTU(遠(yuǎn)程終端設(shè)備)模式,還包括設(shè)置其他串口通信參數(shù)(波特率,校驗(yàn)方式等)。需要注意的是,在同一個(gè)Modbus網(wǎng)絡(luò)上所有的設(shè)備都必須有相同的傳輸模式和串口參數(shù)。RTU模式下,數(shù)據(jù)幀格式是:地址+功能代碼+信息+CRC-16校驗(yàn)。CRC校驗(yàn)的全稱是循環(huán)冗余校驗(yàn),其特點(diǎn)是:檢錯(cuò)能力極強(qiáng),花費(fèi)CPU開銷小。
2.2 參數(shù)編輯
2.2.1 參數(shù)綁定
設(shè)計(jì)中伺服電機(jī)采用定位數(shù)據(jù)運(yùn)行,默認(rèn)最多15點(diǎn)定位數(shù)據(jù),AD3~AD0分別對應(yīng)1~15點(diǎn)定位數(shù)據(jù)。
在伺服放大器上通過參數(shù)綁定,一一對應(yīng)到伺服放大器輸出端子,然后通過調(diào)整輸出端子的邏輯值(0或者1),進(jìn)而改變AD3~AD0的數(shù)值,最后決定選取的定位數(shù)據(jù)編號(hào)。其中部分參數(shù)綁定信息。
例如:AD3~AD0分別對應(yīng)1~15點(diǎn)定位數(shù)據(jù),輸出端子分別選用PA3-9~PA3-12,設(shè)定值分別為60~63,
2.2.2 參數(shù)編輯
通過參數(shù)編輯,改變定位數(shù)據(jù)編號(hào),最終改變運(yùn)行狀態(tài)和運(yùn)行結(jié)束停止位置。參數(shù)編輯信息見表2。
例如:定位數(shù)據(jù)編號(hào)選擇01,此時(shí)AD3~AD0分別為0001
2.2.3 定位數(shù)據(jù)編輯
通過定位數(shù)據(jù)編輯,可以設(shè)置一組定位數(shù)據(jù),包括相對位置/絕對位置,定位結(jié)束停止位置,運(yùn)行速度(轉(zhuǎn)速),加/減速時(shí)間和M代碼等。其中相對位置以上次運(yùn)行結(jié)束坐標(biāo)為參考系;絕對位置以原點(diǎn)為參考系。定位結(jié)束停止位置表示定位結(jié)束時(shí)候停止的位置,是數(shù)字量。運(yùn)行速度表示運(yùn)行過程中的轉(zhuǎn)速,單位是轉(zhuǎn)/分。加/減速時(shí)間表示從上次運(yùn)行速度更新到設(shè)定速度變化所需要的時(shí)間,單位是0.1 ms。通過查詢M代碼可以查詢伺服系統(tǒng)運(yùn)行的定位數(shù)據(jù)編號(hào),設(shè)置值為00~FF。
例如:定位數(shù)據(jù)1:(絕對位置(ABS),停止位置100000,轉(zhuǎn)速120轉(zhuǎn)/分,加減速時(shí)間都是0.1 ms,不輸出M代碼)
2.3 運(yùn)行狀態(tài)圖
按照來自Modbus通信的指令,進(jìn)行定位運(yùn)行。定位結(jié)束[INP]ON時(shí),設(shè)定要運(yùn)行的定位數(shù)據(jù)編號(hào),若將自動(dòng)起動(dòng)[START]ON(起動(dòng))則執(zhí)行相應(yīng)定位數(shù)據(jù)編號(hào)的定位,具體運(yùn)行狀態(tài)圖如圖5所示。由此可見,START信號(hào)是上升沿有效信號(hào)。
2.4 連續(xù)運(yùn)行實(shí)現(xiàn)
系統(tǒng)可以設(shè)置1~15號(hào)定位數(shù)據(jù)持續(xù)運(yùn)行,每次運(yùn)行先要設(shè)定運(yùn)行的定位數(shù)據(jù)編號(hào),然后將自動(dòng)起動(dòng)[START]1 ON(起動(dòng))。但是,運(yùn)行到最后一個(gè)定位數(shù)據(jù)編號(hào)結(jié)束之后,系統(tǒng)就會(huì)自動(dòng)停止運(yùn)動(dòng)。
根據(jù)運(yùn)行狀態(tài)圖,可以設(shè)置其他編號(hào)定位數(shù)據(jù)運(yùn)行后不輸出M代碼。當(dāng)最后一個(gè)定位數(shù)據(jù)運(yùn)行完成后輸出一個(gè)M代碼。實(shí)時(shí)查詢M代碼,如果查詢到設(shè)定的M代碼,表明系統(tǒng)設(shè)定最后一個(gè)定位數(shù)據(jù)編號(hào)已經(jīng)執(zhí)行完成,然后立即通過軟件開啟START。由于[START]信號(hào)是上升沿有效信號(hào),因此,每次將[START]ON之后,要置于OFF,方便下一次ON時(shí)有上升沿。
3 上位機(jī)軟件系統(tǒng)設(shè)計(jì)
上位機(jī)采用LabView 2010軟件編譯。當(dāng)按下啟動(dòng)按鈕,定位運(yùn)行,此時(shí)定位指針指向設(shè)定初始定位數(shù)據(jù)編號(hào),然后自動(dòng)啟動(dòng)信號(hào)[STA RT]置于ON,此時(shí),系統(tǒng)開始運(yùn)行;然后,將[SFART]置于OFF,方便下一次啟動(dòng)。系統(tǒng)此時(shí)開始檢測是否有急?;蛘咄V拱粹o,如果有,就立即停止,如果沒有,就每隔300 ms查詢M代碼狀態(tài)。如果正好是設(shè)定的M代碼,就表明最后一個(gè)定位數(shù)據(jù)編號(hào)運(yùn)行結(jié)束,將定位指針指向初始定位數(shù)據(jù)編號(hào);如果不是設(shè)定的M代碼或者沒有M代碼輸出,就返回。
Labview軟件設(shè)計(jì)部分程序,設(shè)置波特率是9 600,偶校驗(yàn),停止位是1位。由于采用隊(duì)列操作,并且根據(jù)數(shù)據(jù)流小的特點(diǎn),設(shè)置Modbus通信等待時(shí)間是150 ms,大大提高運(yùn)算速度和程序效率。
4 結(jié)束語
文中介紹的基于Modbus RTU通信協(xié)議的伺服電機(jī)聯(lián)動(dòng)控制系統(tǒng),不僅通信可靠性高,運(yùn)算速度快,實(shí)時(shí)性強(qiáng),而且硬件結(jié)構(gòu)簡單。最大的創(chuàng)新之處在于根據(jù)伺服放大器功能和原理,進(jìn)行巧妙的軟件設(shè)計(jì),實(shí)現(xiàn)了系統(tǒng)連續(xù)運(yùn)行的目的。此外,在復(fù)雜控制系統(tǒng)中利用此設(shè)計(jì)思路,能更加體現(xiàn)出設(shè)計(jì)優(yōu)勢,降低系統(tǒng)成本和復(fù)雜度,相信一定會(huì)被用到更多的工業(yè)現(xiàn)場。
(審核編輯: 智匯張瑜)
分享