柴 宇,欒 勇,王志成
(中國科學(xué)院沈陽計(jì)算技術(shù)研究所,沈陽 110168)
伺服系統(tǒng)是數(shù)控機(jī)床最重要的組成部分之一,其動態(tài)特性對數(shù)控機(jī)床的加工精度有重要的影響[1]。在傳統(tǒng)的伺服系統(tǒng)中,控制軟件被固化在伺服驅(qū)動中,已開發(fā)完成的應(yīng)用,基本不可能再做更改,隨著用戶需求的不斷變化,不能夠靈活的進(jìn)行升級更新。
為解決上述傳統(tǒng)伺服驅(qū)動的問題,組件技術(shù)被引入到了伺服驅(qū)動的設(shè)計(jì)當(dāng)中。采用基于組件[2]的軟件設(shè)計(jì)技術(shù),可以成功構(gòu)建一種可重構(gòu)的軟件系統(tǒng),各個模塊對象可以根據(jù)不同的需求組合在一起,并且當(dāng)對某模塊的需求發(fā)生變化時,只需要修改此軟件模塊,而不用對整個軟件系統(tǒng)進(jìn)行大量的重新設(shè)計(jì)。提高了系統(tǒng)的靈活性、可維護(hù)性,更加適應(yīng)了需求的快速發(fā)展[3]。
可重構(gòu)伺服驅(qū)動[4]的出現(xiàn)對調(diào)試工具提出了新的要求,其不再只需完成傳送參數(shù)等功能,而需要對伺服的各個模塊對象進(jìn)行管理、操作,并要求操作更加人性化、智能化。同時需要將控制參數(shù)備份到硬盤上,以供以后恢復(fù)系統(tǒng)或調(diào)試其它相同配置的系統(tǒng)使用?;诖苏{(diào)試工具的這些特點(diǎn),它容易被廣大調(diào)試人員掌握,能有效地提高伺服驅(qū)動器的特性,從而提高數(shù)控機(jī)床的加工精度。
根據(jù)可重構(gòu)伺服驅(qū)動器的需求,本設(shè)計(jì)具體包括通信協(xié)議的設(shè)計(jì)、驅(qū)動層的設(shè)計(jì)及調(diào)試工具的設(shè)計(jì)。
(1)驅(qū)動層:PC機(jī)與可重構(gòu)伺服驅(qū)動器通過USB線進(jìn)行連接,驅(qū)動層創(chuàng)建串口對象,實(shí)現(xiàn)上位機(jī)與伺服驅(qū)動的串口連接。
(2)通信協(xié)議:在PC機(jī)與伺服之間傳送的各幀,
都必須按照統(tǒng)一的格式發(fā)送,并且在接收到數(shù)據(jù)后按照固定的格式進(jìn)行解析,高效的通信協(xié)議的制定,能夠保證上位機(jī)與伺服驅(qū)動之間高效、穩(wěn)定的數(shù)據(jù)傳輸。
(3)調(diào)試工具:能夠?qū)λ欧?qū)動的各個模塊對象進(jìn)行管理、操作,本設(shè)計(jì)為方便用戶使用,將各個模塊對象圖形化,使用戶可以不需要理解某些復(fù)雜參數(shù)的含義,直接對圖形進(jìn)行操作,使操作更加人性化、智能化。同時可以將控制參數(shù)備份到硬盤上,以供以后恢復(fù)系統(tǒng)或調(diào)試其它相同配置的系統(tǒng)時使用。
整體結(jié)構(gòu)設(shè)計(jì)如圖1所示。
圖1 整體結(jié)構(gòu)設(shè)計(jì)
上位機(jī)與伺服驅(qū)動器通過串口進(jìn)行連接,具體實(shí)現(xiàn)方式為上位機(jī)與伺服驅(qū)動器通過USB線連接,在上位機(jī)上安裝USB轉(zhuǎn)串口的程序[5],實(shí)現(xiàn)二者之間的串口連接。圖2為上位機(jī)與伺服驅(qū)動器連接通信的示意圖。
圖2 上位機(jī)與伺服驅(qū)動器通信圖
調(diào)試工具通過串口與伺服進(jìn)行通信[6],驅(qū)動層需要創(chuàng)建串口對象,C#中的Serial Port類為串口的實(shí)現(xiàn)提供了良好的支持,可以方便的創(chuàng)建串口,初始化串口,對串口的各屬性,如波特率、奇偶校驗(yàn)位、停止位等進(jìn)行設(shè)置。圖3為串口屬性設(shè)置界面,用戶可以根據(jù)需求,對串口號、波特率、數(shù)據(jù)位、停止位、校驗(yàn)位進(jìn)行設(shè)置,從而生成不同的串口對象。
圖3 串口屬性設(shè)置界面
通信協(xié)議按照工業(yè)標(biāo)準(zhǔn)MODBUS協(xié)議標(biāo)準(zhǔn)[7]進(jìn)行設(shè)計(jì)。通信幀包括起始字節(jié)、數(shù)據(jù)長度、指令碼、數(shù)據(jù)內(nèi)容、校驗(yàn)碼、結(jié)束字節(jié)等字段,具備較好的擴(kuò)展性,通信幀的各字節(jié)含義如表1所示。上位機(jī)發(fā)送的命令幀以及數(shù)據(jù)幀采用協(xié)議規(guī)定的統(tǒng)一格式發(fā)送,起止字節(jié)均是一個字節(jié)AAH,幀中的第二個字節(jié)表示通信地址,占用一字節(jié),緊接著的一個字節(jié)表示整個幀的長度。不同類型的指令由指令碼標(biāo)示,占用一字節(jié),緊接著的n個字節(jié)表示不同指令碼的數(shù)據(jù)部分,具體內(nèi)容以及n的大小由各類型指令的不同內(nèi)容決定,不同類型的指令格式以及指令對應(yīng)的應(yīng)答幀格式也需事先約定好。本節(jié)所實(shí)現(xiàn)的協(xié)議采用16位的CRC冗余校驗(yàn)方法[8],校驗(yàn)范圍包括除起止字節(jié)以及結(jié)束碼以外的所有幀字節(jié),最后是結(jié)束碼。
表1 通信幀格式
調(diào)試工具主要包括類庫和對象庫管理、參數(shù)管理、調(diào)試、文件管理四部分。本軟件采用C#語言進(jìn)行開發(fā),圖4為調(diào)試工具的主界面。
圖4 調(diào)試工具的主界面
根據(jù)可重構(gòu)伺服驅(qū)動器的特點(diǎn),要求調(diào)試軟件能夠建立類庫,其中類具有類版本號、輸入引腳數(shù)、輸出引腳數(shù)、一類參數(shù)個數(shù)、二類參數(shù)個數(shù)、三類參數(shù)個數(shù)等屬性,用戶可以輸入這些屬性值來創(chuàng)建類。
可針對每個類生成不同對象號的對象??芍貥?gòu)伺服驅(qū)動器平臺以組件的思想進(jìn)行設(shè)計(jì),可以創(chuàng)建多個組件對象,對象之間利用參數(shù)進(jìn)行互連,從而實(shí)現(xiàn)整個系統(tǒng)的可重構(gòu)。每個對象都對應(yīng)一個唯一ID號,范圍為1~255,分為系統(tǒng)對象和通用對象兩類。在調(diào)試軟件中,對象庫中對象的創(chuàng)建具有兩種方式。一種是,通過類來實(shí)例生成,輸入對象的對象號,即可通過類生成該對象,該對象就具備了此類的版本號、輸入輸出引腳數(shù)、各類參數(shù)個數(shù)等屬性值。另一種方式是通過向伺服驅(qū)動器發(fā)送查詢命令,對1-255這255個對象號依次進(jìn)行查詢,判斷伺服驅(qū)動器中是否具有該對象號的對象,從而獲取伺服中的各對象,實(shí)現(xiàn)對象庫的更新,也保證了對象庫中的對象與伺服中對象的一致性。
對象含有 p1、p2、p3、pi、po 五類參數(shù),軟件提供了對各類參數(shù)進(jìn)行設(shè)置初值的功能,并可通過向伺服傳遞命令參數(shù),對各類參數(shù)進(jìn)行上載及下載,并可以選擇將參數(shù)保存在伺服EEPROM或本地文件中。圖5為參數(shù)管理的界面。用戶可以向伺服發(fā)送參數(shù)讀取指令,讀取該對象的參數(shù),顯示到對象的屬性表中,也可向伺服發(fā)送參數(shù)寫指令,將屬性表中的各參數(shù),傳輸?shù)剿欧ο螽?dāng)中去。
圖5 參數(shù)表
電機(jī)控制包括對伺服電機(jī)的復(fù)位、上電、下電、速度JOG等操作。調(diào)試軟件通過串口向伺服傳遞各命令參數(shù),伺服按照通信協(xié)議進(jìn)行解析,從而實(shí)現(xiàn)上述各操作。
圖6為速度JOG操作界面。選用的伺服驅(qū)動電機(jī)為沈陽高精數(shù)控公司生產(chǎn)的永磁同步電機(jī),具體實(shí)物連接如圖7所示。手動部分用戶可以設(shè)定手動速度,當(dāng)一直按下“+”時,電機(jī)將實(shí)現(xiàn)以設(shè)定速度正轉(zhuǎn),當(dāng)一直按下“-”時,電機(jī)將實(shí)現(xiàn)以設(shè)定速度反轉(zhuǎn),當(dāng)鼠標(biāo)抬起時,電機(jī)停轉(zhuǎn)。自動部分可以輸入轉(zhuǎn)動時間及每分鐘轉(zhuǎn)數(shù),點(diǎn)擊開始后電機(jī)即可按照輸入數(shù)據(jù)轉(zhuǎn)動。同時在界面中顯示當(dāng)前速度、當(dāng)前位置信息,并提供異常報(bào)警顯示。
圖6 速度JOG操作界面
圖7 調(diào)試工具的實(shí)物仿真圖
文件管理包括類庫文件、對象庫文件及配置文件的創(chuàng)建及保存[9]。對于文件的存儲,采取XML技術(shù)。將每個類庫、對象庫、配置信息分別存儲成一個XML文件[10],可以使用該軟件打開 xml文件,從而打開相應(yīng)的類庫、對象庫及配置信息。其中配置信息的存儲包括對工作區(qū)中的調(diào)試操作記錄的保存,例如各對象的連接關(guān)系,各參數(shù)值等,都將被存儲到XML文件中,以方便以后調(diào)用。對于相同配置的伺服驅(qū)動器,可通過拷貝、打開已有的類庫、對象庫、及配置文件,就可以快速獲得相應(yīng)的類庫、對象庫的信息、數(shù)據(jù),以及之前的操作記錄等,用戶可以在打開的操作記錄的基礎(chǔ)上,繼續(xù)進(jìn)行操作、調(diào)試,使調(diào)試工作更加快速、便捷,實(shí)現(xiàn)了伺服的快速調(diào)試。
本文針對可重構(gòu)伺服驅(qū)動器的特點(diǎn),對其相應(yīng)的調(diào)試工具進(jìn)行了設(shè)計(jì)與實(shí)現(xiàn),能夠?qū)λ欧?qū)動的各個模塊對象進(jìn)行管理、操作,并將各個模塊對象圖形化,使用戶可以不需理解某些復(fù)雜參數(shù)的含義,直接對圖形進(jìn)行操作,同時可以將控制參數(shù)備份到硬盤上,使用戶能夠?qū)λ欧?qū)動器進(jìn)行快速、方便的調(diào)試,容易被廣大調(diào)試人員掌握,有一定的應(yīng)用價值。
[1]楊國棟,何紅欣.數(shù)控機(jī)床伺服調(diào)整在機(jī)床調(diào)試中的重要性[J].制造技術(shù)與機(jī)床,2010(5):132-135.
[2]Shi Jiyuan.Software Reuse and component technology[J].Third International Symposium on Information Processing.2010:499-501.
[3]杜少華,于東,胡毅,等.組件技術(shù)在開放式控制系統(tǒng)中的研究[J].小型微型計(jì)算機(jī)系統(tǒng),2009(4):623-627.
[4]陳桂.開放式可重構(gòu)伺服系統(tǒng)研究與設(shè)計(jì)[J].現(xiàn)代雷達(dá),2011,33(11):66 -69.
[5]張克非.Windows環(huán)境下的USB設(shè)備驅(qū)動程序設(shè)計(jì)[J].計(jì)算機(jī)與現(xiàn)代化,2004(7):5-8.
[6]夏羅生,朱樹紅.西門子交流伺服驅(qū)動器性能的調(diào)試與優(yōu)化[J].機(jī)床電器,2011(5):19-21.
[7]李葉松,黃恒,尹泉.應(yīng)用MODBUS協(xié)議的交流伺服系統(tǒng)通訊功能設(shè)計(jì)[J].電氣傳動和自動控制,2004,26(1):24-26.
[8]朱小超,徐雪春.基于Modbus協(xié)議的上位機(jī)與單片機(jī)通信的實(shí)現(xiàn)與仿真[J].儀表技術(shù)與傳感器,2011(6):65-68.
[9]劉洋,胡育文,黃文新,等.交流伺服系統(tǒng)調(diào)試軟件設(shè)計(jì)[J].伺服控制,2008(1):60-63.
[10]王洪,龍文星.XML存儲模型研究[J].科技廣場,2010(1):70-72.