4 控製軟件編製
在本控製係統的軟件中,主要是通訊程序的編製。其他一些如定位控製、位置速度控製方式的切換、模擬量速度控製等程序比較普通,在此不予介紹,我們(men) 著重介紹plc主機如何通過485通訊卡來讀取伺服驅動器中伺服電機的當前絕對位置的控製軟件。
4.1 三菱mr-j2s-a伺服係統通訊協議
該伺服係統具有rs422串行通訊功能,伺服係統作為(wei) 從(cong) 站,控製器作為(wei) 主站。主控製器通過該通訊功能可實現對伺服驅動器的運行控製、參數的修改讀取、伺服驅動器當前運動狀態的讀取等。我們(men) 在這裏隻需要讀取伺服電機的當前絕對位置值。
(1)通訊格式:

(2)通訊協議:三菱j2s係列伺服係統的通訊協議大致分為(wei) 四種格式:從(cong) 控製器向伺服驅動器發送數據、控製器從(cong) 伺服驅動器接送數據、通訊超時處理、通訊重試。在這裏我們(men) 主要使用第二種格式的通訊協議,即控製器從(cong) 伺服驅動器接送數據的通訊協議。該種格式的通訊協議:

在上述協議中,所有報文均以ascii碼表示。在主站控製器發出的報文中,soh(通訊開始)、stx(報文開始)和etx(報文結束)的ascii碼分別為(wei) 01h、02h和03h。讀絕對位置的指令為(wei) 02,則對應的ascii碼為(wei) 30h、31h,絕對位置值(指令脈衝(chong) 單位)對應的數據號為(wei) 91,對應的ascii碼為(wei) 39h、31h。站號是在伺服驅動器中設置的站號,假如設置為(wei) 0時,則對應的ascii碼為(wei) 30h。其校驗和的計算範圍為(wei) 站號到etx,將其每一位數據的ascii碼進行求和,得到結果的低二位即為(wei) 校驗和數據。在主站控製器收到的報文中,stx、站號、etx與(yu) 前麵一樣,不再重複了。當通訊正常時,錯誤代碼為(wei) a(伺服不報警時)或a(伺服報警時),當通訊不正常時,則錯誤代碼不等於(yu) a或a,而是其他字符。數據即為(wei) 絕對位置數據,長度為(wei) 8幀。其校驗和的計算範圍也是為(wei) 站號到etx,也是取每位ascii碼計算和的低二位。
(3)相關(guan) 的驅動器參數:p#16參數用於(yu) 設置波特率、rs232/rs422通訊選擇、通訊等待時間。我們(men) 選用波特率為(wei) 19200pbs,rs422通訊口,通訊等待時間有效,則p#16=1101。
p#15參數用於(yu) 設置站號,在本案中設為(wei) 0。
4.2 fx2n係列plc無協議通訊指令(rs指令)
fx2n係列plc內(nei) 置串行數據傳(chuan) 送指令,可以通過rs-232或rs-422通訊口與(yu) 其它設備進行串行通訊。其通訊協議可根據所要與(yu) 其進行通訊的設備的通訊協議進行編製。
(1)通訊格式:串行數據傳(chuan) 送rs指令的通訊格式通過plc的特殊數據寄存器d8120來設置。在最新的fx3u係列plc中可通過設置plc參數來設置,而在fx2n中隻能通過plc程序來設置。本案中d8120的b15-b8隻能設置為(wei) 00001100,在此不作介紹。b7-b0用於(yu) 設置傳(chuan) 輸的波特率、數據長度等,這些參數必須與(yu) j2s伺服驅動器的通訊參數相一致。當b7-b4=1001時,對應的傳(chuan) 輸波特率為(wei) 19200
bps;當b3=0時,對應停止位為(wei) 1位;當b2b1=11時,對應奇偶校驗為(wei) 偶校驗;當b0=1時,對應的數據長度為(wei) 8位。所以d8120=0000110010000111,即h0c97。
(2)串行數據傳(chuan) 送rs指令:rs指令的指令格式為(wei) rs d10 k10 d20 k14;其中d10為(wei) 發送數據首地址,k10為(wei)
#p#分頁標題#e#
發送數據的個(ge) 數(在本案中為(wei) 10),d20為(wei) 接收數據存放的首地址,k14為(wei) 接收數據的個(ge) 數(在本案中為(wei) 14)。
4.3 plc和伺服驅動器的通訊程序
在了解了伺服驅動器的通訊協議和plc的通訊指令後,編製相應的通訊程序,目標是實時讀取伺服驅動器的絕對位置。該通訊程序大致可分為(wei) 通訊實現和通訊錯誤判斷兩(liang) 個(ge) 部分。
(1)報文構成:據前述的通訊協議,我們(men) 知道,讀電機絕對位置時的協議格式為(wei) :
轉換成ascii碼,則為(wei) :

校驗和的計算範圍為(wei) 站號到etx的7個(ge) 幀,計算方法是將其轉化成ascii碼的數加起來取其低二位。具體(ti) 計算如下:

30h+30h+32h+02h+39h+31h+03h=101h,取其低二位,則位01。再取其對應的ascii碼,得30h、31h。該值即位發送報文中的校驗和值。所以,讀絕對位置要發送的報文即為(wei) 01h 30h 30h 32h 02h 39h 31h 03h 30h 31h
(2)主通訊程序:圖4是通訊主程序,通過這段程序可得到儲(chu) 存在d50中伺服電機絕對位置值。程序段a是在plc開始運行時,將根據伺服係統的通訊協議編製的報文寫(xie) 入發送數據塊。程序段b選擇8位數據模式。程序段c激活通訊指令。程序段d每100毫秒對發送標誌m8122置位,發送完成後自動複位。在程序段e,當接收完成時,接收完成標誌m8123置1,將接收到的數據送到d30—d43中,並同時將m8123複位。程序段f,將14幀接收數據中的位置數據(從(cong) 第4幀到第11幀)通過轉換指令hex轉換成16進製數據,最後將位置數據送入d50。

圖4 通訊程序
(3)通訊出錯檢測程序:為(wei) 了保證讀入的位置數據的正確性,必須對整個(ge) 通訊過程進行出錯檢測。在這裏我們(men) 主要核對讀入數據的校驗和的方法來進行通訊錯誤校驗。前麵我們(men) 介紹過,計算接收報文數據校驗和的計算範圍為(wei) stx之後的11幀數據。所以具體(ti) 做法是,根據讀入的數據計算stx之後的11幀的校驗和,再與(yu) 接收到報文中校驗和(最後兩(liang) 幀)進行比較。在圖5的通訊出錯檢測程序段中,指令h用於(yu) 計算從(cong) 伺服驅動器接收到數據的校驗和。指令i用於(yu) 取計算得到的校驗的低二位,指令j用於(yu) 將接收到的校驗和轉換成16進製。指令k用於(yu) 比較實際計算得到的校驗和與(yu) 接收到的校驗和進行比較,若不相等,則通訊出錯。通訊出錯後處理,限於(yu) 篇幅,在此不作介紹。#p#分頁標題#e#

圖5 檢測程序
5 結束語
通過上述硬件和軟件兩(liang) 方麵的結合,整個(ge) 控製係統就能滿足本文開始時所描述的控製任務要求。plc控製伺服係統進行定位控製是一種典型的控製模式,而應用通訊技術實現伺服係統的絕對位置檢測和控製更是一種實用的技術。本文所討論的三菱fx2n係列plc實時讀取三菱mr-j2s-a係列伺服係統當前位置的實現方式,不僅(jin) 對類似的控製場合具有借鑒意義(yi) ,而且對plc與(yu) 其他設備的通訊程序編製也有啟發意義(yi) 。
轉載請注明出處。







相關文章
熱門資訊
精彩導讀



















關注我們

