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