尹水紅,朱永超
(中國船舶重工集團(tuán)公司第七一三研究所,河南 鄭州 450015)
電磁發(fā)射技術(shù)[1]是利用電磁力驅(qū)動發(fā)射物體將其加速到超高速的新型發(fā)射技術(shù)。電磁彈射器與傳統(tǒng)蒸汽彈射器相比,具有輸出推力大、可控性好、能量轉(zhuǎn)換率高等優(yōu)點,在軍事、民用和工業(yè)領(lǐng)域具有廣泛的應(yīng)用前景。
某武器發(fā)射裝置由直線電機(jī)、儲能裝置、驅(qū)動設(shè)備和控制上位機(jī)等組成,為實現(xiàn)發(fā)射過程中快速、精確控制以及短時內(nèi)大量狀態(tài)數(shù)據(jù)的實時監(jiān)控,上位機(jī)與驅(qū)動設(shè)備需選擇合適的通信方式,以確保監(jiān)控系統(tǒng)的性能。CAN總線由于其突出的可靠性、實時性和靈活性,在工業(yè)自動化、汽車、船舶等領(lǐng)域得到廣泛應(yīng)用,基于CAN應(yīng)用層的CANopen協(xié)議具有實時高效、組網(wǎng)靈活等特點,其標(biāo)準(zhǔn)化、統(tǒng)一的系統(tǒng)通信模式,使得設(shè)計開發(fā)更高效與規(guī)范。
本文提出了基于CANopen協(xié)議的直線電機(jī)監(jiān)控主站設(shè)計方案,介紹了監(jiān)控主站的協(xié)議設(shè)計與軟件實現(xiàn),通過應(yīng)用測試驗證了監(jiān)控系統(tǒng)的性能。
CANopen協(xié)議[2]是由CIA組織開發(fā)的基于CAN總線的應(yīng)用層高層協(xié)議,它主要提供設(shè)備間的互操作性,標(biāo)準(zhǔn)化、統(tǒng)一的系統(tǒng)通訊模式,設(shè)備描述方式和網(wǎng)絡(luò)功能以及網(wǎng)絡(luò)節(jié)點功能的任意擴(kuò)展,在工業(yè)控制中具有良好的應(yīng)用前景。
CAN總線上的信息以固定格式的報文進(jìn)行傳輸,這些數(shù)據(jù)分為數(shù)據(jù)幀、遠(yuǎn)程幀、錯誤幀和過載幀4種。與用戶編程有關(guān)的數(shù)據(jù)幀和遠(yuǎn)程幀,幀格式如下:
在以上數(shù)據(jù)結(jié)構(gòu)中,仲裁場、控制場和數(shù)據(jù)場由軟件編程配置CAN總線控制器完成,幀起始、CRC段和應(yīng)答場由CAN總線控制器完成。
表 1 CAN數(shù)據(jù)幀格式Tab. 1 Format of Can data frame
CANopen總線的物理層與數(shù)據(jù)鏈路層,完全按照CAN總線的標(biāo)準(zhǔn),在應(yīng)用層,為應(yīng)對不同制造商設(shè)備之間的互操作性和設(shè)備互換性的要求,將標(biāo)識符和傳輸數(shù)據(jù)進(jìn)行預(yù)設(shè),確定不同的優(yōu)先級,實現(xiàn)數(shù)據(jù)高效傳輸與管理。
CANopen采用面向?qū)ο蟮姆绞竭M(jìn)行通信。一個CANopen設(shè)備模塊可以分為通信接口、對象詞典與應(yīng)用程序3個部分。
通信接口由CAN收發(fā)器、CAN控制器等組成,提供在總線上收發(fā)通信對象的服務(wù)。通信對象(COB)由過程數(shù)據(jù)對象(PDO)、服務(wù)數(shù)據(jù)對象(SDO)、預(yù)定義對象(同步、時間和緊急報文)和網(wǎng)絡(luò)管理對象(NMT和心跳、啟動報文)組成。SDO對對象詞典進(jìn)行訪問,主要用于在設(shè)備配置過程中傳遞參數(shù)或大的數(shù)據(jù)。PDO用于傳輸實時數(shù)據(jù),NMT用于對設(shè)備狀態(tài)進(jìn)行監(jiān)控和管理。
CANopen應(yīng)用層描述了各種不同的通信對象(COB),這些通信對象都是由一個或多個CAN報文來實現(xiàn)的。通信對象分為以下4種類型:
過程數(shù)據(jù)對象(PDO),傳輸實時數(shù)據(jù);
服務(wù)數(shù)據(jù)對象(SDO),讀寫其他CANopen設(shè)備的對象字典;
預(yù)定義對象(同步、時間和緊急報文);
網(wǎng)絡(luò)管理對象,控制NMT狀態(tài)和監(jiān)測設(shè)備。
1)過程數(shù)據(jù)對象PDO
過程數(shù)據(jù)對象PDO分為接收過程對象(RPDO)和發(fā)送過程對象(TPDO),其優(yōu)先級由對應(yīng)的CAN標(biāo)識符決定。通過設(shè)定PDO的傳輸類型,選擇事件驅(qū)動、遠(yuǎn)程觸發(fā)、同步傳輸?shù)韧ㄐ欧绞?,適用于不同的應(yīng)用場合。
2)服務(wù)數(shù)據(jù)對象SDO
服務(wù)數(shù)據(jù)對象SDO為用戶提供了一種訪問內(nèi)部設(shè)備數(shù)據(jù)的標(biāo)準(zhǔn)途徑,設(shè)備數(shù)據(jù)由固定結(jié)構(gòu)——對象詞典管理。1個CANopen設(shè)備需提供至少1個SDO服務(wù)器,通過SDO客戶端實現(xiàn)數(shù)據(jù)的交換。
對象詞典是通信接口和應(yīng)用程序之間的接口,描述CANopen設(shè)備的全部功能,是所有數(shù)據(jù)的集合。對象詞典的對象可以通過一個已知的16位索引來識別。對象可以是一個變量、一個數(shù)組或一種結(jié)構(gòu);數(shù)組和結(jié)構(gòu)中的單元又可以通過8位子索引進(jìn)行訪問。
CANopen協(xié)議將對象詞典進(jìn)行分配,用戶可以通過同一索引和子索引獲得設(shè)備中的通信對象,制造商相關(guān)的屬性則保留在事先規(guī)定的索引范圍內(nèi)。對象詞典保存了節(jié)點信息、通信參數(shù)和所有過程數(shù)據(jù),是CANopen節(jié)點的核心數(shù)據(jù)結(jié)構(gòu)。
本控制系統(tǒng)由上位機(jī)、驅(qū)動裝置、儲能裝置、直線電機(jī)等組成。上位機(jī)為監(jiān)控主站,儲能柜和驅(qū)動柜為從站。主站與從站之間通過CANopen協(xié)議通信。主站發(fā)送充放電、供電、電流電壓限制等報文到儲能柜,實時接收儲能柜狀態(tài)信息;主站發(fā)送電機(jī)正反轉(zhuǎn)、參數(shù)設(shè)置等命令報文到驅(qū)動柜,實時監(jiān)控驅(qū)動柜狀態(tài)信息??傮w結(jié)構(gòu)[3]如圖3所示。
CANopen通信協(xié)議是本方案的核心部分,本協(xié)議基于CiA301標(biāo)準(zhǔn)[4],通過4對PDO、SDO、NMT(網(wǎng)絡(luò)管理)、Emergency(緊急處理)、節(jié)點保護(hù)等報文實現(xiàn)通信。上位機(jī)節(jié)點號為0x01,儲能柜節(jié)點號為0x29,驅(qū)動柜節(jié)點號為0x22。
通信協(xié)議[5–7]分為儲能柜和驅(qū)動柜2部分。
2.2.1 儲能柜通信協(xié)議
本系統(tǒng)中,儲能柜與上位機(jī)之間的通信信息包括充放電、參數(shù)設(shè)置、電壓電流等參數(shù),通過簡化通信協(xié)議,采用3對PDO主動上傳狀態(tài),1個PDO發(fā)送命令的形式,本文不再詳細(xì)介紹。
2.2.2 驅(qū)動柜通信協(xié)議
驅(qū)動柜與上位機(jī)之間通信信息除了電機(jī)正反轉(zhuǎn)、復(fù)位、預(yù)勵磁等命令、還有電機(jī)參數(shù)、矢量控制參數(shù)、保護(hù)參數(shù)、通信參數(shù)等眾多參數(shù)和實時的運(yùn)行狀態(tài)需要監(jiān)控,因此,驅(qū)動柜與上位機(jī)協(xié)議是本文重點,下面進(jìn)行詳細(xì)介紹。
驅(qū)動柜與上位機(jī)之間通信對象的ID劃分及在本系統(tǒng)中定義見表2。
本系統(tǒng)使用索引范圍1 000 h~1FFF h實現(xiàn)對制造商相關(guān)屬性、服務(wù)數(shù)據(jù)對象等數(shù)據(jù)的定義。其中索引1 000 h~1 018 h定義了設(shè)備類型、制造商信息產(chǎn)品代碼等信息;索引1 200 h定義了SDO的COB-ID;索引1 400 h~1 403 h定義了4個PDO發(fā)送的通訊參數(shù),其子索引包括COB-ID、傳輸類型、事件定時器,反應(yīng)了主站到從站的通信參數(shù);索引1 600 h~1 603 h定義了4個PDO發(fā)送的映射參數(shù),為主站對變頻器的設(shè)定值。索引1 800 h~1 803 h定義了4個PDO接收的通訊參數(shù),其子索引包括COB-ID、傳輸類型、禁止時間和事件定時器,定義了從站到主站的通信參數(shù);索引1A00 h~1A03 h定義了4個PDO接收的映射參數(shù),為從站回復(fù)的過程變量。
驅(qū)動柜參數(shù)通過地址映射,在驅(qū)動柜中,每一個參數(shù)有一個唯一的地址,通過改變PDO的映射參數(shù)可以讀寫驅(qū)動柜的任意參數(shù)。例如,本系統(tǒng)中PDO2發(fā)送的默認(rèn)映射參數(shù)有4個,在索引1601h的子索引1~4下,映射參數(shù)為0x21010010、0x21010310、0x21010410、0x21010510,分別對應(yīng)目標(biāo)頻率、正轉(zhuǎn)速度限制、反轉(zhuǎn)速度限制和制動位置限制。若將索引1601h的子索引1~4的映射參數(shù)設(shè)置為0x21010610、0x21010710、0x21010810、0x21010910,則 PDO2 發(fā)送對應(yīng)的驅(qū)動柜的參數(shù)為正轉(zhuǎn)電流限制、反轉(zhuǎn)電流限制、正轉(zhuǎn)轉(zhuǎn)矩限制、反轉(zhuǎn)轉(zhuǎn)矩限制。CANopen協(xié)議支持最多127個從站,使得數(shù)據(jù)傳輸與處理更為高效。
表 2 通信對象ID定義Tab. 2 Definition of communication object ID
本監(jiān)控主站軟件的任務(wù)是控制直線電機(jī)以一定速度正反轉(zhuǎn),監(jiān)控運(yùn)行過程中電機(jī)的母線電壓、電流、位置、速度等參數(shù)。監(jiān)控主站軟件設(shè)計基于Windows操作系統(tǒng),編程開發(fā)環(huán)境為Visual C6.0。VC開發(fā)平臺[8]具有良好的兼容性,基于MFC面向?qū)ο蟮目梢暬幊滔到y(tǒng),使得用戶界面程序的開發(fā)更加簡化。
監(jiān)控主站軟件[9–10]的流程如圖4所示。
主站程序由系統(tǒng)設(shè)置模塊、CANopen通信模塊、操作界面處理模塊、狀態(tài)數(shù)據(jù)處理模塊4個部分組成。其中系統(tǒng)設(shè)置模塊完成對從站通信參數(shù)(包括波特率、傳輸類型等)、PDO映射地址、儲能柜參數(shù)、電機(jī)運(yùn)行參數(shù)(包括速度限制值、最大電流、母線電壓極限等)的初始化設(shè)置。CANopen通信模塊包括CANopen通道初始化、數(shù)據(jù)發(fā)送、數(shù)據(jù)接收等函數(shù)。
本系統(tǒng)中,儲能柜的命令實時檢測,通過1個TPDO定時中斷發(fā)送;狀態(tài)數(shù)據(jù)則通過4個RPDO主動上傳。驅(qū)動柜則通過4個PDO實現(xiàn)與上位機(jī)運(yùn)行中的命令和參數(shù)的交互。PDO1通過功能碼(對應(yīng)參數(shù)地址)實現(xiàn)對所有參數(shù)的讀寫與更改;TPDO2,TPDO3,TPDO4存放控制命令字和常用的運(yùn)行參數(shù),包括目標(biāo)頻率、速度限制、電流限制等;RPDO2,RPDO3,RPDO4存放電機(jī)運(yùn)行狀態(tài),包括當(dāng)前運(yùn)行速度、母線電壓、輸出電流、電機(jī)溫度等。RPDO2,RPDO3,RPDO4的狀態(tài)信息實時性強(qiáng),因此采用主動上傳的方式。為提高數(shù)據(jù)處理效率,本系統(tǒng)中CAN數(shù)據(jù)接收通過2個接收線程實現(xiàn)儲能柜和驅(qū)動柜的數(shù)據(jù)接收。
為了驗證CANopen協(xié)議在本系統(tǒng)的應(yīng)用,將主從站系統(tǒng)按照圖3方式進(jìn)行連接,系統(tǒng)運(yùn)行后,得到運(yùn)行中監(jiān)控曲線如圖5所示。
試驗結(jié)果表明,基于CANopen協(xié)議的直線電機(jī)監(jiān)控系統(tǒng)主站與從站能進(jìn)行良好的數(shù)據(jù)交換,各個報文均能實現(xiàn)快速、準(zhǔn)確地接收與發(fā)送,CANopen主站具有實時性好、可靠性高的特點,其技術(shù)方案值得在電機(jī)控制等應(yīng)用場合推廣。