本申請涉及通信領域,特別涉及一種CANopen網絡通信仿真測試方法及相關設備。
背景技術:
CAN(控制器局域網絡,Controller Area Network)總線作為嵌入式系統(tǒng)和工業(yè)控制常用到的一種現(xiàn)場總線,常常需要對CAN總線上的CANopen(架構在CAN總線上的應用層通訊協(xié)議)設備進行功能測試或對CAN總線上的各種控制系統(tǒng)與檢測、執(zhí)行機構間的數(shù)據(jù)傳輸、總線分析和協(xié)議解析等功能進行測試。
目前常采用工業(yè)控制計算機集成CANopen網絡通信板卡,作為CAN網絡通信仿真設備,仿真具有CANopen功能(如管理CAN總線上節(jié)點和收發(fā)數(shù)據(jù))的真實節(jié)點,在CAN總線上收發(fā)數(shù)據(jù),來實現(xiàn)對CAN總線上被測CANopen設備進行功能測試或對CAN總線上的各種控制系統(tǒng)與檢測、執(zhí)行機構間的數(shù)據(jù)傳輸、總線分析和協(xié)議解析等功能進行測試。其中,CAN網絡通信仿真設備的CANopen功能是人工通過C語言編寫相關CANopen功能算法實現(xiàn)的。
但是人工通過C語言編寫相關CANopen功能算法的編寫時間較長,導致CAN網絡通信仿真設備的CANopen功能的實現(xiàn)周期長。
技術實現(xiàn)要素:
為解決上述技術問題,本申請實施例提供一種CANopen網絡通信仿真測試方法及相關設備,以達到縮短可執(zhí)行代碼生成的時間,從而縮短CAN網絡通信仿真設備的CANopen功能的實現(xiàn)周期的目的,技術方案如下:
一種CANopen網絡通信仿真測試方法,應用于CANopen網絡通信仿真設備中的仿真計算機,包括:
接收上位機發(fā)送的模型程序,所述模型程序為在Simulink模型框架中Simulink驅動模塊與CANopen卡數(shù)據(jù)交互程序進行集成后,自動生成的可執(zhí)行代碼,所述Simulink驅動模塊為所述上位機在所述Simulink模型框架中搭建出的當前CANopen網絡通信仿真測試任務對應的模塊;
運行所述模型程序,以執(zhí)行CANopen網絡通信仿真設備中的CANopen卡在CAN總線上收發(fā)數(shù)據(jù)的過程。
優(yōu)選的,所述Simulink驅動模塊包括:Simulink Setup模塊、Simulink Send模塊和Simulink Receive模塊;
所述Simulink Setup模塊,用于解析CANopen卡配置文件,得到解析文件結果,并調用所述CANopen卡數(shù)據(jù)交互程序中的CANopen卡驅動程序初始化函數(shù),以按照所述解析文件結果對所述CANopen卡中的驅動程序進行配置;
所述Simulink Send模塊,用于調用所述CANopen卡數(shù)據(jù)交互程序中的CANopen卡數(shù)據(jù)發(fā)送函數(shù),以發(fā)送攜帶有第一CANopen數(shù)據(jù)的發(fā)送命令至所述CANopen卡,以使所述CANopen卡通過CAN總線接口發(fā)送所述第一CANopen數(shù)據(jù)至CAN總線;
所述Simulink Receive模塊,用于調用所述CANopen卡數(shù)據(jù)交互程序中的CANopen卡數(shù)據(jù)接收函數(shù),以接收所述CANopen卡從所述CAN總線上獲取到的第二CANopen數(shù)據(jù)。
優(yōu)選的,所述CANopen網絡通信仿真設備中的CANopen卡在CAN總線上收發(fā)數(shù)據(jù)的過程,包括:
解析所述上位機發(fā)送的CANopen卡配置文件,得到解析文件結果;
調用所述CANopen卡數(shù)據(jù)交互程序中的CANopen卡驅動程序初始化函數(shù),以按照所述解析文件結果對所述CANopen卡中的驅動程序進行配置;
在所述CANopen卡運行所述CANopen卡中完成配置的驅動程序后,調用所述CANopen卡數(shù)據(jù)交互程序中的CANopen卡數(shù)據(jù)發(fā)送函數(shù),以發(fā)送攜帶有第一CANopen數(shù)據(jù)的發(fā)送命令至所述CANopen卡,以使所述CANopen卡通過CAN總線接口發(fā)送所述第一CANopen數(shù)據(jù)至CAN總線;
在所述CANopen卡運行所述CANopen卡中完成配置的驅動程序后,調用所述CANopen卡數(shù)據(jù)交互程序中的CANopen卡數(shù)據(jù)接收函數(shù),以接收所述CANopen卡從所述CAN總線上獲取到的第二CANopen數(shù)據(jù)。
優(yōu)選的,所述CANopen卡配置文件包括端口組子配置文件和數(shù)據(jù)組子配置文件;
所述端口組子配置文件至少包括:節(jié)點ID配置信息,節(jié)點上通信對象的ID配置信息,通信對象傳輸類型配置信息,通信對象的最小傳輸時間間隔配置信息和通信對象的周期性發(fā)送時間間隔配置信息;
所述數(shù)據(jù)組子配置文件用于定義所述CANopen卡待收發(fā)的CAN報文中8字節(jié)數(shù)據(jù)的含義。
優(yōu)選的,所述調用所述CANopen卡數(shù)據(jù)交互程序中的CANopen卡數(shù)據(jù)發(fā)送函數(shù),以發(fā)送攜帶有第一CANopen數(shù)據(jù)的發(fā)送命令至所述CANopen卡,包括:
調用所述CANopen卡數(shù)據(jù)交互程序中的CANopen卡數(shù)據(jù)發(fā)送函數(shù),以發(fā)送不同的發(fā)送命令至所述CANopen卡,以使所述CANopen卡的不同CAN總線接口發(fā)送不同的第一CANopen數(shù)據(jù)至所述CAN總線,其中,不同的發(fā)送命令攜帶的第一CANopen數(shù)據(jù)不同;
所述調用所述CANopen卡數(shù)據(jù)交互程序中的CANopen卡數(shù)據(jù)接收函數(shù),以接收所述CANopen卡從所述CAN總線上獲取到的第二CANopen數(shù)據(jù)的過程,包括:
調用所述CANopen卡數(shù)據(jù)交互程序中的CANopen卡數(shù)據(jù)接收函數(shù),以接收所述CANopen卡的不同CAN總線接口從所述CAN總線上獲取到的不同的第二CANopen數(shù)據(jù)。
優(yōu)選的,在運行所述模型程序之后,還包括:
將運行所述模型程序的過程及結果發(fā)送至所述CANopen網絡通信仿真設備中的顯示器進行顯示。
一種仿真計算機,用于接收上位機發(fā)送的模型程序,以及運行所述模型程序,以執(zhí)行CANopen網絡通信仿真設備中的CANopen卡在CAN總線上收發(fā)數(shù)據(jù)的過程;
所述模型程序為在Simulink模型框架中Simulink驅動模塊與CANopen卡數(shù)據(jù)交互程序進行集成后,自動生成的可執(zhí)行代碼,所述Simulink驅動模塊為所述上位機在所述Simulink模型框架中搭建出的當前CANopen網絡通信仿真測試任務對應的模塊。
優(yōu)選的,所述仿真計算機具體用于運行所述模型程序,以執(zhí)行以下CANopen網絡通信仿真設備中的CANopen卡在CAN總線上收發(fā)數(shù)據(jù)的過程:
解析所述上位機發(fā)送的CANopen卡配置文件,得到解析文件結果;
調用所述CANopen卡數(shù)據(jù)交互程序中的CANopen卡驅動程序初始化函數(shù),以按照所述解析文件結果對所述CANopen卡中的驅動程序進行配置;
在所述CANopen卡運行所述CANopen卡中完成配置的驅動程序后,調用所述CANopen卡數(shù)據(jù)交互程序中的CANopen卡數(shù)據(jù)發(fā)送函數(shù),以發(fā)送攜帶有第一CANopen數(shù)據(jù)的發(fā)送命令至所述CANopen卡,以使所述CANopen卡通過CAN總線接口發(fā)送所述第一CANopen數(shù)據(jù)至CAN總線;
在所述CANopen卡運行所述CANopen卡中完成配置的驅動程序后,調用所述CANopen卡數(shù)據(jù)交互程序中的CANopen卡數(shù)據(jù)接收函數(shù),以接收所述CANopen卡從所述CAN總線上獲取到的第二CANopen數(shù)據(jù)。
優(yōu)選的,所述仿真計算機具體用于運行所述模型程序,以執(zhí)行以下CANopen網絡通信仿真設備中的CANopen卡在CAN總線上收發(fā)數(shù)據(jù)的過程:
解析所述上位機發(fā)送的CANopen卡配置文件,得到解析文件結果;
調用所述CANopen卡數(shù)據(jù)交互程序中的CANopen卡驅動程序初始化函數(shù),以按照所述解析文件結果對所述CANopen卡中的驅動程序進行配置;
在所述CANopen卡運行所述CANopen卡中完成配置的驅動程序后,調用所述CANopen卡數(shù)據(jù)交互程序中的CANopen卡數(shù)據(jù)發(fā)送函數(shù),以發(fā)送不同的發(fā)送命令至所述CANopen卡,以使所述CANopen卡的不同CAN總線接口發(fā)送不同的第一CANopen數(shù)據(jù)至所述CAN總線,其中,不同的發(fā)送命令攜帶的第一CANopen數(shù)據(jù)不同;
在所述CANopen卡運行所述CANopen卡中完成配置的驅動程序后,調用所述CANopen卡數(shù)據(jù)交互程序中的CANopen卡數(shù)據(jù)接收函數(shù),以接收所述CANopen卡的不同CAN總線接口從所述CAN總線上獲取到的不同的第二CANopen數(shù)據(jù)。
一種CANopen網絡通信仿真設備,包括:轉接板卡、CANopen卡和如上述任意一項所述的仿真計算機;
所述仿真計算機由處理器和仿真計算機機箱組成,其中,所述處理器通過CPCI總線與所述仿真計算機機箱相連;
所述CANopen卡通過所述轉接板卡與所述仿真計算機機箱相連;
所述CANopen卡,用于運行所述CANopen卡中完成配置的驅動程序,并在運行所述CANopen卡中完成配置的驅動程序后,接收所述處理器發(fā)送的攜帶有第一CANopen數(shù)據(jù)的發(fā)送命令,并通過CAN總線接口發(fā)送所述第一CANopen數(shù)據(jù)至CAN總線,以及從所述CAN總線上獲取第二CANopen數(shù)據(jù),并將所述第二CANopen數(shù)據(jù)發(fā)送至所述處理器;
所述CANopen卡中完成配置的驅動程序為所述處理器解析上位機發(fā)送的CANopen卡配置文件,得到解析文件結果,并按照所述解析文件結果對所述CANopen卡中的驅動程序進行配置后的程序。
與現(xiàn)有技術相比,本申請的有益效果為:
在本申請中,CANopen網絡通信仿真設備中的仿真計算機通過接收并運行上位機發(fā)送的模型程序,以執(zhí)行在CAN總線上收發(fā)數(shù)據(jù)的過程,來實現(xiàn)對CAN總線上被測CANopen設備進行功能測試或對CAN總線上的各種控制系統(tǒng)與檢測、執(zhí)行機構間的數(shù)據(jù)傳輸、總線分析和協(xié)議解析等功能進行測試。
由于Simulink驅動模塊為所述上位機在所述Simulink模型框架中搭建出的當前CANopen網絡通信仿真測試任務對應的模塊,模型程序為在Simulink模型框架中Simulink驅動模塊與CANopen卡數(shù)據(jù)交互程序進行集成后,自動生成的可執(zhí)行代碼,因而在Simulink模型框架中無需大量書寫程序,而只需要通過簡單直觀的鼠標操作,就可構造出當前CANopen網絡通信仿真測試任務對應的模塊即Simulink驅動模塊,并將Simulink驅動模塊與CANopen卡數(shù)據(jù)交互程序進行集成后,自動生成的可執(zhí)行代碼,因此縮短了可執(zhí)行代碼生成的時間,從而縮短了CAN網絡通信仿真設備的CANopen功能的實現(xiàn)周期。
附圖說明
為了更清楚地說明本申請實施例中的技術方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本申請的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1是本申請?zhí)峁┑腃ANopen網絡通信仿真測試方法的一種流程圖;
圖2是本申請?zhí)峁┑腃ANopen網絡通信仿真測試方法的一種子流程圖;
圖3是本申請?zhí)峁┑腃ANopen網絡通信仿真測試方法的另一種流程圖;
圖4是本申請?zhí)峁┑腃ANopen網絡通信仿真設備的一種硬件結構示意圖。
具體實施方式
下面將結合本申請實施例中的附圖,對本申請實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本申請一部分實施例,而不是全部的實施例?;诒旧暾堉械膶嵤├绢I域普通技術人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本申請保護的范圍。
實施例一
在本實施例中,提供了一種CANopen網絡通信仿真測試方法,應用于CANopen網絡通信仿真設備中的仿真計算機。
請參見圖1,其示出了本申請?zhí)峁┑腃ANopen網絡通信仿真測試方法的一種流程圖,可以包括以下步驟:
步驟S11:接收上位機發(fā)送的模型程序,所述模型程序為在Simulink模型框架中Simulink驅動模塊與CANopen卡數(shù)據(jù)交互程序進行集成后,自動生成的可執(zhí)行代碼,所述Simulink驅動模塊為所述上位機在所述Simulink模型框架中搭建出的當前CANopen網絡通信仿真測試任務對應的模塊。
在本實施例中,上位機生成模型程序,并下載到仿真計算機。仿真計算機則接收上位機發(fā)送的模型程序。
在本實施例中,Simulink是MATLAB最重要的組件之一,它提供一個動態(tài)系統(tǒng)建模、仿真和綜合分析的集成環(huán)境。在該環(huán)境中,無需大量書寫程序,而只需要通過簡單直觀的鼠標操作,就可構造出復雜的系統(tǒng)。Simulink具有適應面廣、結構和流程清晰及仿真精細、貼近實際、效率高、靈活等優(yōu)點。
在本實施例中,上位機在所述Simulink模型框架中搭建出當前CANopen網絡通信仿真測試任務對應的模塊的過程具體為:在Simulink模型框架中選取當前CANopen網絡通信仿真測試任務所需的模塊,對當前CANopen網絡通信仿真測試任務所需的模塊進行連接及參數(shù)設置,得到當前CANopen網絡通信仿真測試任務對應的模塊。
當前CANopen網絡通信仿真測試任務對應的模塊用于實現(xiàn)CANopen卡在CAN總線上收發(fā)數(shù)據(jù)。
步驟S12:運行所述模型程序,以執(zhí)行CANopen網絡通信仿真設備中的CANopen卡在CAN總線上收發(fā)數(shù)據(jù)的過程。
在本申請中,CANopen網絡通信仿真設備中的仿真計算機通過接收上位機發(fā)送的模型程序,以執(zhí)行在CAN總線上收發(fā)數(shù)據(jù)的過程,來實現(xiàn)對CAN總線上被測CANopen設備進行功能測試或對CAN總線上的各種控制系統(tǒng)與檢測、執(zhí)行機構間的數(shù)據(jù)傳輸、總線分析和協(xié)議解析等功能進行測試。
由于Simulink驅動模塊為所述上位機在所述Simulink模型框架中搭建出的當前CANopen網絡通信仿真測試任務對應的模塊,模型程序為在Simulink模型框架中Simulink驅動模塊與CANopen卡數(shù)據(jù)交互程序進行集成后,自動生成的可執(zhí)行代碼,因而在Simulink模型框架中無需大量書寫程序,而只需要通過簡單直觀的鼠標操作,就可構造出當前CANopen網絡通信仿真測試任務對應的模塊即Simulink驅動模塊,并將Simulink驅動模塊與CANopen卡數(shù)據(jù)交互程序進行集成后,自動生成的可執(zhí)行代碼,因此縮短了可執(zhí)行代碼生成的時間,從而縮短了CAN網絡通信仿真設備的CANopen功能的實現(xiàn)周期。
進一步的,由于在Simulink模型框架中無需大量書寫程序,而只需要通過簡單直觀的鼠標操作,因此通過Simulink模型框架生成模型程序相比于人工通過C語言代碼編寫相關功能算法,更加靈活,且在對模型程序進行維護時,在Simulink模型框架中對當前CANopen網絡通信仿真測試任務對應的模塊進行修改即可,降低了維護難度。
在本實施例中,當前CANopen網絡通信仿真測試任務對應的模塊具體可以包括:Simulink Setup模塊、Simulink Send模塊和Simulink Receive模塊。
其中,所述Simulink Setup模塊,用于解析CANopen卡配置文件,得到解析文件結果,并調用所述CANopen卡數(shù)據(jù)交互程序中的CANopen卡驅動程序初始化函數(shù),以按照所述解析文件結果對所述CANopen卡中的驅動程序進行配置。
所述Simulink Send模塊,用于調用所述CANopen卡數(shù)據(jù)交互程序中的CANopen卡數(shù)據(jù)發(fā)送函數(shù),以發(fā)送攜帶有第一CANopen數(shù)據(jù)的發(fā)送命令至所述CANopen卡。
所述Simulink Receive模塊,用于調用所述CANopen卡數(shù)據(jù)交互程序中的CANopen卡數(shù)據(jù)接收函數(shù),以接收所述CANopen卡從所述CAN總線上獲取到的第二CANopen數(shù)據(jù)。
在本實施例中,上述CANopen網絡通信仿真設備中的CANopen卡在CAN總線上收發(fā)數(shù)據(jù)的過程具體可以參見圖2,可以包括以下步驟:
步驟S21:解析所述上位機發(fā)送的CANopen卡配置文件,得到解析文件結果。
在本實施例中,CANopen卡配置文件具體包括端口組子配置文件和數(shù)據(jù)組子配置文件。
所述端口組子配置文件至少包括:節(jié)點ID配置信息,節(jié)點上通信對象的ID(COBID)配置信息,通信對象傳輸類型(Transmission Type)配置信息,通信對象的最小傳輸時間間隔(inhibit time)配置信息和通信對象的周期性發(fā)送時間間隔(event time)配置信息。
所述數(shù)據(jù)組子配置文件用于定義所述CANopen卡待收發(fā)的CAN報文中8字節(jié)數(shù)據(jù)的含義。
其中,上位機可以通過CANopen卡配置文件定義CANopen網絡通信仿真設備為主站或從站,以使CANopen網絡通信仿真設備在CAN總線上充當不同的功能節(jié)點。在CANopen網絡通信仿真設備為主站時,在CAN總線上收發(fā)數(shù)據(jù)的過程與在CANopen網絡通信仿真設備為從站時,在CAN總線上收發(fā)數(shù)據(jù)的過程相同,只是收發(fā)的具體數(shù)據(jù)不同。
步驟S22:調用所述CANopen卡數(shù)據(jù)交互程序中的CANopen卡驅動程序初始化函數(shù),以按照所述解析文件結果對所述CANopen卡中的驅動程序進行配置。
在本實施例中,解析所述上位機發(fā)送的CANopen卡配置文件,得到解析文件結果和調用所述CANopen卡數(shù)據(jù)交互程序中的CANopen卡驅動程序初始化函數(shù)的過程即運行Simulink Setup模塊而實現(xiàn)的過程。
步驟S23:在所述CANopen卡運行所述CANopen卡中完成配置的驅動程序后,調用所述CANopen卡數(shù)據(jù)交互程序中的CANopen卡數(shù)據(jù)發(fā)送函數(shù),以發(fā)送攜帶有第一CANopen數(shù)據(jù)的發(fā)送命令至所述CANopen卡,以使所述CANopen卡通過CAN總線接口發(fā)送所述第一CANopen數(shù)據(jù)至CAN總線。
在本實施例中,仿真計算機會接收上位機發(fā)送的驅動程序運行命令,并將上位機發(fā)送的驅動程序運行命令轉發(fā)至CANopen卡,CANopen卡按照上位機發(fā)送的驅動程序運行命令開始運行驅動程序。
在本實施例中,調用所述CANopen卡數(shù)據(jù)交互程序中的CANopen卡數(shù)據(jù)發(fā)送函數(shù)即運行Simulink Send模塊而實現(xiàn)的過程。
在CANopen卡通過CAN總線接口發(fā)送所述第一CANopen數(shù)據(jù)至CAN總線后,上位機則根據(jù)第一CANopen數(shù)據(jù)在CAN總線上的傳輸情況,對CAN總線上被測CANopen設備進行功能測試或對CAN總線上的各種控制系統(tǒng)與檢測、執(zhí)行機構間的數(shù)據(jù)傳輸、總線分析和協(xié)議解析等功能進行測試。
步驟S24:在所述CANopen卡運行所述CANopen卡中完成配置的驅動程序后,調用所述CANopen卡數(shù)據(jù)交互程序中的CANopen卡數(shù)據(jù)接收函數(shù),以接收所述CANopen卡從所述CAN總線上獲取到的第二CANopen數(shù)據(jù)。
CANopen卡在運行所述CANopen卡中完成配置的驅動程序后,會按照CANopen配置文件從CAN總線上獲取相應的CANopen數(shù)據(jù)(即第二CANopen數(shù)據(jù)),并將獲取到的第二CANopen數(shù)據(jù)發(fā)送至CANopen網絡通信仿真設備中的仿真計算機,仿真計算機則將第二CANopen數(shù)據(jù)轉發(fā)至上位機,以使上位機根據(jù)第二CANopen數(shù)據(jù)對CAN總線上被測CANopen設備進行功能測試或對CAN總線上的各種控制系統(tǒng)與檢測、執(zhí)行機構間的數(shù)據(jù)傳輸、總線分析和協(xié)議解析等功能進行測試。
在本實施例中,其中,對CAN總線上被測CANopen設備進行功能測試或對CAN總線上的各種控制系統(tǒng)與檢測、執(zhí)行機構間的數(shù)據(jù)傳輸、總線分析和協(xié)議解析等功能進行測試的原理與現(xiàn)有技術中進行功能測試的原理相同,在此不再贅述。
在本實施例中,調用所述CANopen卡數(shù)據(jù)交互程序中的CANopen卡數(shù)據(jù)接收函數(shù)即運行Simulink Receive模塊而實現(xiàn)的過程。
在本實施例中,上述調用所述CANopen卡數(shù)據(jù)交互程序中的CANopen卡數(shù)據(jù)發(fā)送函數(shù),以發(fā)送攜帶有第一CANopen數(shù)據(jù)的發(fā)送命令至所述CANopen卡,以使所述CANopen卡發(fā)送所述第一CANopen數(shù)據(jù)至CAN總線的過程,具體可以為:調用所述CANopen卡數(shù)據(jù)交互程序中的CANopen卡數(shù)據(jù)發(fā)送函數(shù),以發(fā)送不同的發(fā)送命令至所述CANopen卡,以使所述CANopen卡的不同CAN總線接口發(fā)送不同的第一CANopen數(shù)據(jù)至所述CAN總線,其中,不同的發(fā)送命令攜帶的第一CANopen數(shù)據(jù)不同。
上述調用所述CANopen卡數(shù)據(jù)交互程序中的CANopen卡數(shù)據(jù)接收函數(shù),以接收所述CANopen卡從所述CAN總線上獲取到的第二CANopen數(shù)據(jù)的過程,具體可以為:
調用所述CANopen卡數(shù)據(jù)交互程序中的CANopen卡數(shù)據(jù)接收函數(shù),以接收所述CANopen卡的不同CAN總線接口從所述CAN總線上獲取到的不同的第二CANopen數(shù)據(jù)。
發(fā)送不同的發(fā)送命令至所述CANopen卡,以使所述CANopen卡的不同CAN總線接口發(fā)送不同的第一CANopen數(shù)據(jù)至所述CAN總線,及接收所述CANopen卡的不同CAN總線接口從所述CAN總線上獲取到的不同的第二CANopen數(shù)據(jù),使CANopen網絡通信仿真設備可以模擬CAN總線上的多個功能節(jié)點(即在模擬不同的功能節(jié)點時發(fā)送不同的CANopen數(shù)據(jù)至CAN總線或從CAN總線上接收不同的CANopen數(shù)據(jù))。
實施例二
在本實施例中,在圖1示出的CANopen網絡通信仿真測試方法的基礎上擴展出另外一種CANopen網絡通信仿真測試方法,請參見圖3,可以包括以下步驟:
步驟S31:接收上位機發(fā)送的模型程序,所述模型程序為在Simulink模型框架中Simulink驅動模塊與CANopen卡數(shù)據(jù)交互程序進行集成后,自動生成的可執(zhí)行代碼,所述Simulink驅動模塊為所述上位機在所述Simulink模型框架中搭建出的當前CANopen網絡通信仿真測試任務對應的模塊。
步驟S32:運行所述模型程序,以執(zhí)行CANopen網絡通信仿真設備中的CANopen卡在CAN總線上收發(fā)數(shù)據(jù)的過程。
步驟S31至步驟S32的過程與圖1示出的CANopen網絡通信仿真測試方法的步驟S11至步驟S12相同,在此不再贅述。
步驟S33:將運行所述模型程序的過程及結果發(fā)送至所述CANopen網絡通信仿真設備中的顯示器進行顯示。
在本實施例中,將運行所述模型程序的過程及結果發(fā)送至所述CANopen網絡通信仿真設備中的顯示器進行顯示,可以方便用戶對通信情況進行觀測。
實施例三
與上述方法實施例相對應,本實施例提供了一種仿真計算機,用于接收上位機發(fā)送的模型程序,所述模型程序為在Simulink模型框架中Simulink驅動模塊與CANopen卡數(shù)據(jù)交互程序進行集成后,自動生成的可執(zhí)行代碼,所述Simulink驅動模塊為所述上位機在所述Simulink模型框架中搭建出的當前CANopen網絡通信仿真測試任務對應的模塊,以及運行所述模型程序,以執(zhí)行CANopen網絡通信仿真設備中的CANopen卡在CAN總線上收發(fā)數(shù)據(jù)的過程。
其中,仿真計算機運行所述模型程序,以執(zhí)行CANopen網絡通信仿真設備中的CANopen卡在CAN總線上收發(fā)數(shù)據(jù)的過程具體為:仿真計算機運行所述模型程序,以執(zhí)行以下過程:
解析所述上位機發(fā)送的CANopen卡配置文件,得到解析文件結果;
調用所述CANopen卡數(shù)據(jù)交互程序中的CANopen卡驅動程序初始化函數(shù),以按照所述解析文件結果對所述CANopen卡中的驅動程序進行配置;
在所述CANopen卡運行所述CANopen卡中完成配置的驅動程序后,調用所述CANopen卡數(shù)據(jù)交互程序中的CANopen卡數(shù)據(jù)發(fā)送函數(shù),以發(fā)送攜帶有第一CANopen數(shù)據(jù)的發(fā)送命令至所述CANopen卡,以使所述CANopen卡通過CAN總線接口發(fā)送所述第一CANopen數(shù)據(jù)至CAN總線;
在所述CANopen卡運行所述CANopen卡中完成配置的驅動程序后,調用所述CANopen卡數(shù)據(jù)交互程序中的CANopen卡數(shù)據(jù)接收函數(shù),以接收所述CANopen卡從所述CAN總線上獲取到的第二CANopen數(shù)據(jù)。
具體的,仿真計算機運行所述模型程序,以執(zhí)行CANopen網絡通信仿真設備中的CANopen卡在CAN總線上收發(fā)數(shù)據(jù)的過程具體可以為:
解析所述上位機發(fā)送的CANopen卡配置文件,得到解析文件結果;
調用所述CANopen卡數(shù)據(jù)交互程序中的CANopen卡驅動程序初始化函數(shù),以按照所述解析文件結果對所述CANopen卡中的驅動程序進行配置;
在所述CANopen卡運行所述CANopen卡中完成配置的驅動程序后,調用所述CANopen卡數(shù)據(jù)交互程序中的CANopen卡數(shù)據(jù)發(fā)送函數(shù),以發(fā)送不同的發(fā)送命令至所述CANopen卡,以使所述CANopen卡的不同CAN總線接口發(fā)送不同的第一CANopen數(shù)據(jù)至所述CAN總線,其中,不同的發(fā)送命令攜帶的第一CANopen數(shù)據(jù)不同;
在所述CANopen卡運行所述CANopen卡中完成配置的驅動程序后,調用所述CANopen卡數(shù)據(jù)交互程序中的CANopen卡數(shù)據(jù)接收函數(shù),以接收所述CANopen卡的不同CAN總線接口從所述CAN總線上獲取到的不同的第二CANopen數(shù)據(jù)。
實施例四
在本實施例中,提供了一種CANopen網絡通信仿真設備,請參見圖4,CANopen網絡通信仿真設備包括:仿真計算機41、轉接板卡42和CANopen卡43。
仿真計算機41由處理器411和仿真計算機機箱412組成,其中,所述處理器411通過CPCI總線與所述仿真計算機機箱412相連。
處理器411的具體功能與實施例三示出的仿真計算機的功能相同,在此不再贅述。
所述CANopen卡43通過所述轉接板卡42與所述仿真計算機機箱412相連。
具體的,CANopen卡43通過PCI104總線與轉接板卡42相連,轉接板卡42通過CPCI總線與仿真計算機機箱412相連。
在本實施例中,處理器411與仿真計算機機箱412相連,組成仿真計算機。在本實施例中,處理器411與仿真計算機機箱412可以拆卸,使仿真計算機機箱412可以連接不同的處理器411,組成不同的仿真計算機,使CANopen網絡通信仿真設備的組成更加靈活。
所述CANopen卡43,用于運行所述CANopen卡中完成配置的驅動程序,并在運行所述CANopen卡中完成配置的驅動程序后,接收所述處理器411發(fā)送的攜帶有第一CANopen數(shù)據(jù)的發(fā)送命令,并通過CAN總線接口發(fā)送所述第一CANopen數(shù)據(jù)至CAN總線,以及從所述CAN總線上獲取到的第二CANopen數(shù)據(jù),并將所述第二CANopen數(shù)據(jù)發(fā)送至所述處理器411。
其中,所述CANopen卡中完成配置的驅動程序為處理器411解析上位機發(fā)送的CANopen卡配置文件,得到解析文件結果,并按照所述解析文件結果對所述CANopen卡43中的驅動程序進行配置后的程序。
需要說明的是,本說明書中的各個實施例均采用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似的部分互相參見即可。對于裝置類實施例而言,由于其與方法實施例基本相似,所以描述的比較簡單,相關之處參見方法實施例的部分說明即可。
最后,還需要說明的是,在本文中,諸如第一和第二等之類的關系術語僅僅用來將一個實體或者操作與另一個實體或操作區(qū)分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關系或者順序。而且,術語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設備中還存在另外的相同要素。
以上對本申請所提供的CANopen網絡通信仿真測試方法及相關設備進行了詳細介紹,本文中應用了具體個例對本申請的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本申請的方法及其核心思想;同時,對于本領域的一般技術人員,依據(jù)本申請的思想,在具體實施方式及應用范圍上均會有改變之處,綜上所述,本說明書內容不應理解為對本申請的限制。