尹水紅,朱永超
(中國船舶重工集團公司第七一三研究所,河南 鄭州 450015)
電磁發射技術[1]是利用電磁力驅動發射物體將其加速到超高速的新型發射技術。電磁彈射器與傳統蒸汽彈射器相比,具有輸出推力大、可控性好、能量轉換率高等優點,在軍事、民用和工業領域具有廣泛的應用前景。
某武器發射裝置由直線電機、儲能裝置、驅動設備和控制上位機等組成,為實現發射過程中快速、精確控制以及短時內大量狀態數據的實時監控,上位機與驅動設備需選擇合適的通信方式,以確保監控系統的性能。CAN總線由于其突出的可靠性、實時性和靈活性,在工業自動化、汽車、船舶等領域得到廣泛應用,基于CAN應用層的CANopen協議具有實時高效、組網靈活等特點,其標準化、統一的系統通信模式,使得設計開發更高效與規范。
本文提出了基于CANopen協議的直線電機監控主站設計方案,介紹了監控主站的協議設計與軟件實現,通過應用測試驗證了監控系統的性能。
CANopen協議[2]是由CIA組織開發的基于CAN總線的應用層高層協議,它主要提供設備間的互操作性,標準化、統一的系統通訊模式,設備描述方式和網絡功能以及網絡節點功能的任意擴展,在工業控制中具有良好的應用前景。
CAN總線上的信息以固定格式的報文進行傳輸,這些數據分為數據幀、遠程幀、錯誤幀和過載幀4種。與用戶編程有關的數據幀和遠程幀,幀格式如下:
在以上數據結構中,仲裁場、控制場和數據場由軟件編程配置CAN總線控制器完成,幀起始、CRC段和應答場由CAN總線控制器完成。

表 1 CAN數據幀格式Tab. 1 Format of Can data frame
CANopen總線的物理層與數據鏈路層,完全按照CAN總線的標準,在應用層,為應對不同制造商設備之間的互操作性和設備互換性的要求,將標識符和傳輸數據進行預設,確定不同的優先級,實現數據高效傳輸與管理。
CANopen采用面向對象的方式進行通信。一個CANopen設備模塊可以分為通信接口、對象詞典與應用程序3個部分。
通信接口由CAN收發器、CAN控制器等組成,提供在總線上收發通信對象的服務。通信對象(COB)由過程數據對象(PDO)、服務數據對象(SDO)、預定義對象(同步、時間和緊急報文)和網絡管理對象(NMT和心跳、啟動報文)組成。SDO對對象詞典進行訪問,主要用于在設備配置過程中傳遞參數或大的數據。PDO用于傳輸實時數據,NMT用于對設備狀態進行監控和管理。
CANopen應用層描述了各種不同的通信對象(COB),這些通信對象都是由一個或多個CAN報文來實現的。通信對象分為以下4種類型:
過程數據對象(PDO),傳輸實時數據;
服務數據對象(SDO),讀寫其他CANopen設備的對象字典;
預定義對象(同步、時間和緊急報文);
網絡管理對象,控制NMT狀態和監測設備。
1)過程數據對象PDO
過程數據對象PDO分為接收過程對象(RPDO)和發送過程對象(TPDO),其優先級由對應的CAN標識符決定。通過設定PDO的傳輸類型,選擇事件驅動、遠程觸發、同步傳輸等通信方式,適用于不同的應用場合。
2)服務數據對象SDO
服務數據對象SDO為用戶提供了一種訪問內部設備數據的標準途徑,設備數據由固定結構——對象詞典管理。1個CANopen設備需提供至少1個SDO服務器,通過SDO客戶端實現數據的交換。
對象詞典是通信接口和應用程序之間的接口,描述CANopen設備的全部功能,是所有數據的集合。對象詞典的對象可以通過一個已知的16位索引來識別。對象可以是一個變量、一個數組或一種結構;數組和結構中的單元又可以通過8位子索引進行訪問。
CANopen協議將對象詞典進行分配,用戶可以通過同一索引和子索引獲得設備中的通信對象,制造商相關的屬性則保留在事先規定的索引范圍內。對象詞典保存了節點信息、通信參數和所有過程數據,是CANopen節點的核心數據結構。
本控制系統由上位機、驅動裝置、儲能裝置、直線電機等組成。上位機為監控主站,儲能柜和驅動柜為從站。主站與從站之間通過CANopen協議通信。主站發送充放電、供電、電流電壓限制等報文到儲能柜,實時接收儲能柜狀態信息;主站發送電機正反轉、參數設置等命令報文到驅動柜,實時監控驅動柜狀態信息。總體結構[3]如圖3所示。
CANopen通信協議是本方案的核心部分,本協議基于CiA301標準[4],通過4對PDO、SDO、NMT(網絡管理)、Emergency(緊急處理)、節點保護等報文實現通信。上位機節點號為0x01,儲能柜節點號為0x29,驅動柜節點號為0x22。
通信協議[5–7]分為儲能柜和驅動柜2部分。
2.2.1 儲能柜通信協議
本系統中,儲能柜與上位機之間的通信信息包括充放電、參數設置、電壓電流等參數,通過簡化通信協議,采用3對PDO主動上傳狀態,1個PDO發送命令的形式,本文不再詳細介紹。
2.2.2 驅動柜通信協議
驅動柜與上位機之間通信信息除了電機正反轉、復位、預勵磁等命令、還有電機參數、矢量控制參數、保護參數、通信參數等眾多參數和實時的運行狀態需要監控,因此,驅動柜與上位機協議是本文重點,下面進行詳細介紹。
驅動柜與上位機之間通信對象的ID劃分及在本系統中定義見表2。
本系統使用索引范圍1 000 h~1FFF h實現對制造商相關屬性、服務數據對象等數據的定義。其中索引1 000 h~1 018 h定義了設備類型、制造商信息產品代碼等信息;索引1 200 h定義了SDO的COB-ID;索引1 400 h~1 403 h定義了4個PDO發送的通訊參數,其子索引包括COB-ID、傳輸類型、事件定時器,反應了主站到從站的通信參數;索引1 600 h~1 603 h定義了4個PDO發送的映射參數,為主站對變頻器的設定值。索引1 800 h~1 803 h定義了4個PDO接收的通訊參數,其子索引包括COB-ID、傳輸類型、禁止時間和事件定時器,定義了從站到主站的通信參數;索引1A00 h~1A03 h定義了4個PDO接收的映射參數,為從站回復的過程變量。
驅動柜參數通過地址映射,在驅動柜中,每一個參數有一個唯一的地址,通過改變PDO的映射參數可以讀寫驅動柜的任意參數。例如,本系統中PDO2發送的默認映射參數有4個,在索引1601h的子索引1~4下,映射參數為0x21010010、0x21010310、0x21010410、0x21010510,分別對應目標頻率、正轉速度限制、反轉速度限制和制動位置限制。若將索引1601h的子索引1~4的映射參數設置為0x21010610、0x21010710、0x21010810、0x21010910,則 PDO2 發送對應的驅動柜的參數為正轉電流限制、反轉電流限制、正轉轉矩限制、反轉轉矩限制。CANopen協議支持最多127個從站,使得數據傳輸與處理更為高效。

表 2 通信對象ID定義Tab. 2 Definition of communication object ID
本監控主站軟件的任務是控制直線電機以一定速度正反轉,監控運行過程中電機的母線電壓、電流、位置、速度等參數。監控主站軟件設計基于Windows操作系統,編程開發環境為Visual C6.0。VC開發平臺[8]具有良好的兼容性,基于MFC面向對象的可視化編程系統,使得用戶界面程序的開發更加簡化。
監控主站軟件[9–10]的流程如圖4所示。
主站程序由系統設置模塊、CANopen通信模塊、操作界面處理模塊、狀態數據處理模塊4個部分組成。其中系統設置模塊完成對從站通信參數(包括波特率、傳輸類型等)、PDO映射地址、儲能柜參數、電機運行參數(包括速度限制值、最大電流、母線電壓極限等)的初始化設置。CANopen通信模塊包括CANopen通道初始化、數據發送、數據接收等函數。
本系統中,儲能柜的命令實時檢測,通過1個TPDO定時中斷發送;狀態數據則通過4個RPDO主動上傳。驅動柜則通過4個PDO實現與上位機運行中的命令和參數的交互。PDO1通過功能碼(對應參數地址)實現對所有參數的讀寫與更改;TPDO2,TPDO3,TPDO4存放控制命令字和常用的運行參數,包括目標頻率、速度限制、電流限制等;RPDO2,RPDO3,RPDO4存放電機運行狀態,包括當前運行速度、母線電壓、輸出電流、電機溫度等。RPDO2,RPDO3,RPDO4的狀態信息實時性強,因此采用主動上傳的方式。為提高數據處理效率,本系統中CAN數據接收通過2個接收線程實現儲能柜和驅動柜的數據接收。
為了驗證CANopen協議在本系統的應用,將主從站系統按照圖3方式進行連接,系統運行后,得到運行中監控曲線如圖5所示。
試驗結果表明,基于CANopen協議的直線電機監控系統主站與從站能進行良好的數據交換,各個報文均能實現快速、準確地接收與發送,CANopen主站具有實時性好、可靠性高的特點,其技術方案值得在電機控制等應用場合推廣。