久久人人97超碰人人_中文字幕在线观看av_国产专区亚洲欧美另类在线_国产a三级久久精品_国产精品可乐视频最新

熱門關(guān)鍵詞搜索:智能照明模塊CAN智能照明控制系統(tǒng)路燈控制器路燈無(wú)線控制系統(tǒng)物聯(lián)網(wǎng)管理平臺(tái)

當(dāng)前位置:首頁(yè) > 新聞中心 > 常見問(wèn)題

CANoe簡(jiǎn)易教程3

文章出處:巨川智能電氣責(zé)任編輯:巨川智能電氣查看手機(jī)網(wǎng)址
掃一掃!智能照明控制系統(tǒng)的優(yōu)勢(shì)?掃一掃!
人氣:發(fā)表時(shí)間:2016-12-24 08:31:57【

CANoe簡(jiǎn)易教程3   來(lái)源:http://www.zntknyzt.cn/

配置仿真設(shè)置


打開View下的Simulation Setup,在窗口右側(cè)的Databases上點(diǎn)擊右鍵,Add...選擇database\candb.dbc。如果看不到,在空白處右鍵,勾選System View。作為驗(yàn)證,打開View > Symbol Explorer,在Symbol Explorer窗口中可以看到數(shù)據(jù)庫(kù)中的信號(hào)、消息、環(huán)境變量等等。

在紅線上點(diǎn)擊右鍵Insert Network Node,于是出現(xiàn)了一個(gè)ECU。在其上右鍵 Configuration...,將其Title更改為Meter,Network Node選擇candb::METER。

同樣的步驟我們?cè)傩陆ㄒ粋€(gè)Node,名字為ECM,Network Node為candb::ECM。

這樣,我們?cè)诜抡嬖O(shè)置窗口的工作就已經(jīng)完成了。不過(guò),兩個(gè)節(jié)點(diǎn)都還沒(méi)有腦子,也就是節(jié)點(diǎn)說(shuō)明(Node Specification),所以他們現(xiàn)在什么都不會(huì)做。

為ECU添加節(jié)點(diǎn)說(shuō)明

所謂的節(jié)點(diǎn)說(shuō)明,起始就是一段程序,可以使用CAPL或者.NET編寫,這里我們使用CAPL。

點(diǎn)擊ECM ECU上的鉛筆按鈕,它表示“編輯或新建這個(gè)ECU的節(jié)點(diǎn)說(shuō)明文件”?,F(xiàn)在還沒(méi)有,所以CANoe為我們新建一個(gè)。將其保存在node文件夾中,命名為ecm.can。接下來(lái)程序打開了Vector CAPL Browser工具。

CAPL Browser是一個(gè)代碼編輯器,我們將代碼更改為下面的樣子:

includes {
    // 在這里使用 #include ,可以include的文件為.can和.cin
    // 一般不用include任何東西}variables {
    // 在這塊中聲明和初始化全局變量
    message EngineState msg; // message 定義數(shù)據(jù)庫(kù)中的消息,為其指定程序中的名字
    msTimer myTimer; // msTimer 是"毫秒定時(shí)器"
    float speed = 0;}on start {
    // CANoe仿真開始時(shí),會(huì)運(yùn)行一次這段程序
    write("Hello, world!"); // 輸出到write窗口
    setTimer(myTimer, 100); // 定時(shí)器將在100ms后觸發(fā)}on timer myTimer {
    // 定時(shí)器觸發(fā)時(shí),運(yùn)行一次這段程序
    speed += 0.1;
    msg.Speed.phys = speed;
    output(msg);
    setTimer(this, 100); // 定時(shí)器將在100毫秒后再次觸發(fā)}

參考注釋看看這段程序,或者先不管它。

使用Compiler > Compile,或者工具欄中的Compile,或者快捷鍵F9來(lái)編譯。如果一切順利,就會(huì)在Output看到Successfully compiled字樣。保存后關(guān)閉CAPL Browser。

RUN!

添加了代碼之后,CANoe可以開始工作了。在工具欄上選擇Simulated bus,然后使用Start > Start開始CANoe仿真。

Measurement Setup窗口,雙擊Graphics打開Graphics窗口。右鍵Add Signals...,選擇EngineState下的Speed。隨著時(shí)間的流逝,我們就能看到速度的變化了。不過(guò),既然是仿真,我們想要自己控制一下發(fā)動(dòng)機(jī)轉(zhuǎn)速數(shù)據(jù)。這時(shí)就得用到Panel了。

Panel的使用

打開Tools > Panel Designer,窗口右側(cè)上方有我們可以使用的控件。找到Track Bar,拖動(dòng)到中間。在右側(cè)下方更改其屬性:

Tick Frequency: 0.1
Large Change: 0.5
Small Change: 0.1

然后點(diǎn)擊Attach Environment Variable鏈接,選擇env_speed,這樣控件的值就和環(huán)境變量的值綁定在了一起。沒(méi)有別的需要做的,以ecm.xvp為名將這個(gè)面板保存在panel文件夾中,關(guān)閉Panel Designer回到CANoe。

接下來(lái)點(diǎn)擊ECM ECU的鉛筆,將程序修改成這樣:

includes {}variables {
    message EngineState msg;
    msTimer myTimer;}on start {
    write("Hello, world!");
    setTimer(myTimer, 100);}on timer myTimer {
    msg.Speed.phys = @env_speed; // 注意,這次EngineState中Speed的值等于環(huán)境變量env_speed的值
    output(msg);
    setTimer(this, 100);}

再次開始CANoe仿真,使用View > ecm打開我們剛剛設(shè)計(jì)的面板。拖動(dòng)Track Bar,這時(shí)Graphics中Speed曲線應(yīng)該隨著你的控制變化了。簡(jiǎn)單來(lái)說(shuō),我們使用面板來(lái)控制環(huán)境變量,節(jié)點(diǎn)程序從讀取環(huán)境變量,將其寫入消息中發(fā)送出去。

CANdb ECU Model

教程第三部分到此,我們已經(jīng)運(yùn)行起來(lái)了簡(jiǎn)單的CANoe仿真。接下來(lái)就應(yīng)該自學(xué)CAPL語(yǔ)法了,官方有一本“Programming With CAPL”值得一看,并且在網(wǎng)上很容易搜索到。


此文關(guān)鍵字:

最新產(chǎn)品

智能照明監(jiān)控管理系統(tǒng) 智慧路燈監(jiān)控終端
智能照明監(jiān)控管理系統(tǒng) 智慧路燈監(jiān)控終端
浙江巨川電氣科技有限公司基于城市路燈、景觀控制的智...
智能路燈控制器 GPRS經(jīng)緯度天文鐘
智能路燈控制器 GPRS經(jīng)緯度天文鐘
巨川電氣智能路燈控制器采用計(jì)算機(jī)芯片管理:1.智能定時(shí)...
智能路燈監(jiān)控終端 電纜防盜監(jiān)測(cè) 電流電壓讀取
智能路燈監(jiān)控終端 電纜防盜監(jiān)測(cè)  電流電壓讀取
一、系統(tǒng)特點(diǎn):智能路燈遠(yuǎn)程監(jiān)控系統(tǒng)軟件是巨川公司獨(dú)...
ZigBee 無(wú)線智能路燈解決方案 無(wú)線單燈控制器
ZigBee 無(wú)線智能路燈解決方案 無(wú)線單燈控制器
ZigBee 無(wú)線智能路燈解決方案 無(wú)線單燈控制器針對(duì)日益...

同類文章排行

最新資訊文章