精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

CAPL編程語言快速入門

北匯信息POLELINK ? 2022-09-17 16:11 ? 次閱讀

提到CAPL,相信各位一定不陌生,它是由Vector公司開發的類似于C語言的面向過程編程語言,是CANoe和CANalyzer中可用的編程語言。CAPL中程序塊的執行由事件控制,在專用的編譯器中開發和編譯,這樣可以訪問數據庫中的所有對象以及系統變量,作為汽車電子工程師,在工作中會經常用到。

CAPL可以在CANoe界面Tools>>CAPL Browser中打開。

pYYBAGMlf1eAItJYAACC7Felt7Q468.png

圖1CAPL打開方式

CAPL界面由功能區、程序框架瀏覽樹、輸出窗口、編輯區、訪問區五部分組成。

poYBAGMlf1iAeZYtAAKe0OLiot4024.png

圖2CAPL界面

顧名思義,程序編輯區就是編寫CAPL腳本的區域;程序架構瀏覽樹起目錄的作用,可以把編輯區定位到編寫的事件或函數類型的語句;輸出窗口可以輸出編譯過程中的事件和使用搜索時定位到的結果;訪問區能夠訪問到CANoe工程加載的數據庫中的信號、創建的系統變量以及CAPL函數庫中的語句,直接從右側訪問區拖拽到中間編輯區使用(注意:工程創建路徑中不能有中文,否則訪問不到數據庫文件)。

功能區由五部分構成,首先是File菜單欄,與大多數軟件相同,它是文件創建、保存、加載、設置等功能區域。

pYYBAGMlf1eAVJfdAAGEX2DbJ08313.png

圖3File菜單欄

Home功能區提供了CAPL編譯常用功能,包括代碼編譯、查找、替換、屏蔽、取消屏蔽等功能。

pYYBAGMlfx-AKr85AACc3nFrtCw088.png

圖4Home功能區

Filter功能區的作用是管理CAPL的函數庫,可以在函數訪問區中屏蔽掉不需要的函數。

pYYBAGMlfyOABh6TAACwHg2SLls833.png

圖5Filter功能區

Debug功能區是調試的區域,提供了一些基本的調試操作,一般情況下不通過debug模式來調試腳本。基本上編譯一次,存在錯誤可以通過Output輸出窗口獲得錯誤類型并進行更改。如果腳本編譯成功之后,仍然不能滿足測試步驟的輸出,一般會使用Write窗口進行調試。

poYBAGMlfx2AFl_XAAB5gxk1EKA062.png

圖6Debug功能區

Layout功能區主要是針對CAPL用戶的頁面展示。例如進行水平分區、垂直分區等操作方便用戶進行腳本編寫。

poYBAGMlfx6AG76sAACDVhMSLCQ677.png

圖7Layout功能區

CAPL應用場景:

  1. 節點仿真

關聯Simulation Setup中的ECU節點,實現ECU節點仿真和整車網絡仿真。

pYYBAGMlfyCAL1uTAACDQh9-i-U949.png

圖8SimulationSetup窗口

  1. 測試功能

關聯Simulation Setup中的Test Module模塊或是Test菜單中的Test Setup,結合TSL(Test Service Library,測試服務庫)進行測試功能開發。

poYBAGMlfyGAECgkAAB4fih5Id8151.png

圖9TestSetup窗口

  1. 分析功能

關聯Measurement Setup窗口功能模塊中的Program Node,實現總線過濾、分析功能。

poYBAGMlfyKAHqMMAACe4NminBU794.png

圖10MeasurementSetup窗口

CAPL腳本結構:

一個完整的CAPL腳本由三部分組成:變量、各種事件和自定義函數。

pYYBAGMlfyOABnu2AAEOt1t_2TM813.png

圖11CAPL的三部分

CAPL的事件類型包含三種:總線事件、屬性事件、時間事件。CAPL常用的事件類型如下圖所示。

poYBAGMlfySAIg5xAALJDR5IEYY494.png

圖12MeasurementSetup窗口

CAPL常用函數:

下面以CANoe中Easy工程的light.can腳本為例介紹CAPL中的常用函數,該腳本與Panel聯用實現轉向燈仿真。

pYYBAGMlfySAfjDVAAAyfIEcFVE402.png

圖13聲明全局變量

上圖是CAPL中的全局變量聲明,其中 ‘msTimer’為聲明以ms為單位的計時器;‘const int’為聲明int類型的常值變量,該變量的值無法改變;‘int’為聲明int類型的變量,該類型變量有符號,長度為2字節。

poYBAGMlfySALF5xAAAXlRWFibE461.png

圖14系統事件

onstart’是系統事件,測量開始執行會觸發該事件,也就是點擊Start按鈕觸發。

poYBAGMlfymAd-DVAAChdCFAvV8120.png

圖15CAN消息事件

onmessage’是CAN消息事件,接收到指定消息時執行。‘onmessageLightState’是對名字為LightState的報文反應,除直接使用字符串外,還可以使用報文ID指定觸發報文。‘onmessage123’是對ID為123(dec)的報文反應;‘on message0x123’ 是對ID為123(hex)的報文反應;‘on message*’是對所有的報文反應;‘on message100-200’是對ID為100-200間的報文反應。

poYBAGMlfymAR7bTAABB-QqteBA941.png

圖15系統變量事件

onsysvarsysvar’是系統變量事件,指定的系統變量值改變時執行。與之相對應另一個系統變量事件是‘onsysvar_updatesysvar’,指定的系統變量值更新時執行。

‘setTimer(msTimert,longduration)’是設置定時器函數,他有兩個輸入參數,第一個為聲明的定時器變量,第二個是設定的時間。‘cancelTimer(msTimert)’是取消定時器函數,入參為定時器變量,該函數的作用為取消設定的定時器。

pYYBAGMlfymAPg__AAAkTOfb9bw335.png

圖16時間事件

ontimer’為時間事件,定時時間超過時執行,它與設置定時器函數聯用。定時器通常應用在實現某個任務循環,在時間事件中寫入一個設置定時器函數實現循環。

pYYBAGMlfyaAI4IEAAAf0yAL3TE819.png

onkey’為鍵盤事件,被指定的鍵按下時執行。該事件常用于腳本調試。

此外,‘write()’函數在調試腳本中也常使用,該函數基于C語言中的‘printf()’函數,可以將文本消息輸出在write窗口中。

注:圖片來自Vector。

總結:

北匯信息作為Vector中國的合作伙伴,始終專注于汽車電子領域的新技術和新產品,為整車廠和零部件企業提供完整的研發、測試解決方案,為工程師在汽車領域提供“趁手裝備“!

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • CANoe
    +關注

    關注

    4

    文章

    65

    瀏覽量

    8620
收藏 人收藏

    評論

    相關推薦

    編程語言的誤區與常見問題

    誤區一:編程語言的選擇 常見問題: 初學者在選擇編程語言時,往往會被市場上的熱門語言所吸引,而忽視了自己的實際需求和興趣。 一些開發者認為某
    的頭像 發表于 11-15 09:35 ?200次閱讀

    MCU編程語言和開發環境介紹

    微控制器單元(Microcontroller Unit,簡稱MCU)是嵌入式系統的核心,廣泛應用于各種電子產品中。隨著技術的發展,MCU編程語言和開發環境也在不斷進步,以適應不同的應用需求。 1.
    的頭像 發表于 11-01 11:51 ?518次閱讀

    TCSH shell 編程入門

    ICer從業人員最先需要掌握的語言,就是linux shell語言。TCSH是ICer使用最多的Shell語言,可以說ICer入門語言從TC
    發表于 11-01 10:45 ?0次下載

    FPGA編程語言入門教程

    FPGA(現場可編程邏輯門陣列)的編程涉及特定的硬件描述語言(HDL),其中Verilog和VHDL是最常用的兩種。以下是一個FPGA編程語言
    的頭像 發表于 10-25 09:21 ?166次閱讀

    plc編程語言編程相關技巧有哪些

    PLC(可編程邏輯控制器)編程語言及相關編程技巧是工業自動化領域中不可或缺的知識。 一、PLC編程語言
    的頭像 發表于 10-21 16:56 ?231次閱讀

    TMS320LF240x DSP的C語言和匯編代碼快速入門

    電子發燒友網站提供《TMS320LF240x DSP的C語言和匯編代碼快速入門.pdf》資料免費下載
    發表于 10-18 10:14 ?0次下載
    TMS320LF240x DSP的C<b class='flag-5'>語言</b>和匯編代碼<b class='flag-5'>快速</b><b class='flag-5'>入門</b>

    【「倉頡編程快速上手」閱讀體驗】+壹讀后感

    感謝電子發燒友論壇提供的讀書機會,領略到華為公司開創的新語言:倉頡編程 。 在閱讀《倉頡編程快速上手》這本書后,我深受啟發。這本書猶如一把鑰匙,為那些渴望踏入
    發表于 09-06 20:12

    PLC的編程方式及編程語言

    在工業自動化領域,PLC(Programmable Logic Controller,可編程邏輯控制器)因其強大的控制功能和靈活的編程方式而得到了廣泛應用。PLC的編程方式和編程
    的頭像 發表于 06-27 14:08 ?640次閱讀

    abb工業機器人的編程語言是什么

    ABB工業機器人的編程語言主要是RAPID(Robot Application Programming Interface for Development),它是一種高級編程語言,專門
    的頭像 發表于 06-16 16:49 ?2395次閱讀

    PLC編程語言和C語言的區別

    在工業自動化和計算機編程領域中,PLC(可編程邏輯控制器)編程語言和C語言各自扮演著重要的角色。盡管兩者都是
    的頭像 發表于 06-14 17:11 ?2566次閱讀

    如何快速入門FPGA

    快速入門FPGA可以遵循以下步驟: 理解FPGA基礎知識: FPGA(Field Programmable Gate Array)即現場可編程門陣列,是作為專用集成電路(ASIC)領域中的一種半定制
    發表于 04-28 09:06

    如何快速入門FPGA?

    快速入門FPGA可以遵循以下步驟: 理解FPGA基礎知識: FPGA(Field Programmable Gate Array)即現場可編程門陣列,是作為專用集成電路(ASIC)領域中的一種半定制
    發表于 04-28 08:54

    CW32快速開發入門

    CW32快速開發入門
    的頭像 發表于 04-24 18:56 ?1884次閱讀
    CW32<b class='flag-5'>快速</b>開發<b class='flag-5'>入門</b>

    CAPL腳本使用介紹

    CAPL中也有類似于C語言中的回調函數的機制,如檢測報文周期和錯誤幀的函數中就可以使用,當周期超界或者總線出現錯誤幀就會自動調用回調函數執行一些操作
    的頭像 發表于 04-01 11:23 ?1543次閱讀

    plc編程入門基礎知識 plc編程語言有幾種

    PLC(Programmable Logic Controller)是可以根據預設邏輯程序自動控制工業過程的電子設備。PLC編程語言是與PLC進行交互的一種邏輯語言,用于編寫控制程序以實現自動化控制
    的頭像 發表于 02-04 15:55 ?1551次閱讀