0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

CASL编程?——CANape的自动化“利器”

北汇信息POLELINK 2022-08-02 10:09 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

前言

得益于计算机的发明及高速发展,21世纪是充满智能、科技、便捷的世纪。无人驾驶人工智能物联网,这些概念已耳熟能详,而它们背后则是利用编程实现的复杂逻辑。作为新时代的我们,生活已经和“编程“密不可分了,例如常见的C、C++PythonJava等编程语言。Vector公司与时俱进,在CANape这款强大的测量和标定工具里,采用专门的编程语言——CASL(Calculation and Scripting Language),方便汽车工程师进行数据分析和开发。今天我们就来聊聊这位强大又低调的选手,并和它做个朋友!

CASL的语法与C编程语言非常相似(但也有不同处:CANape不使用指针),允许开发人员集成自己的C代码或Simulink模型。所以说,大家在使用之前基础的C语言编程知识还是要掌握的~为了方便使用,CANape提供了智能感知输入、代码块和各种内置函数组。

poYBAGLngp2ACdBoAAGMDsexmTw452.png

图1智能感知输入

在CASL中,主要运用函数和脚本,来解决各种不同的任务。从简单的计算,例如,添加信号,直至CANape的自动化。

Tips: CASL与编程语言CAPL可不一样哦,后者是在CANoe和CANalvzer环境中使用的。CAPL是一种面向事件的编程语言,即程序节点用于指定事件,并在何时执行以及反应。而CASL是一种信号导向的语言。)

基本概念

1)What Are Functions

在测量过程中,函数被同步处理,主要用于实时测量或者对于加载测量文件的各种计算和应用。例如,函数可以是数学公式或程序代码,其中变量代表信号或参数。

通常有在线和离线两种使用场景。

▲Online applications(在实时测量过程中)

》测量虚拟信号计算

》允许对外接设备读写

▲Offline applications(访问现有的测量文件)

》测量文件虚拟信号计算

》执行数据挖掘

poYBAGLngsiAd7aFAAFPoaMK4BY813.png

图2虚拟函数使用场景

下面我们来看看函数的语法结构:

pYYBAGLngt2AI4rfAAD_5YZZEKM266.png

图3函数语法结构

当一个函数被调用时,参数可以被传递给函数。参数通常作为引用传递给函数,因此既可用于输入,也可用于输出。

除了通过参数传递从函数发出结果外,还可以使用返回控制结构(return也是关键字)的路径。默认情况下,返回double类型的值,字段或向量(数组)不允许作为返回值。

CANape对自身预定义和用户定义函数进行了区分,称为库函数和工程函数。

poYBAGLngu2AG_XdAADpPVim4VM113.png

图4函数分类

2)What Are Scripts

脚本是程序代码的一部分,可在编辑器窗口中编写,并在调用时顺序处理。脚本用于自动化或控制CANape中的联合活动,例如测量和其他系统相关序列的开始和停止,它独立于测量运行。它们也可以用来调用在Microsoft Visual Studio或MATLAB/Simulink中生成的外部模型。

poYBAGLngweAFPx4AAERDzIO0po192.png

图5脚本示例

此外,可以在CANape运行时,使用命令行选项控制脚本行为。

两者区别:

1.流程优先级不同。脚本以较低进程优先级执行,相对于测量是异步运行的。另一方面,函数以高进程优先级执行,并与测量同步执行。与函数相比,脚本具有更广泛的预定义函数组,如附加文件和脚本函数、Flash函数、诊断和数据挖掘函数。

2.与脚本不同,函数不能使用断点进行调试,因为它们具有高优先级。不过我们可以使用以下命令在Write窗口中输出调试信息Write()、Writef()、Print()或Printf()。

3.脚本不需要函数头和函数体。程序代码可以简单地直接写入编辑器,然后按编码顺序处理。

4.函数必须是函数编辑器导出格式(*.cne)或者是ASCII文本格式(*.txt);脚本必须为脚本格式(*.scr or *.cns).

5.函数可以被保存到工作目录中的CANape.ini配置文件中,但脚本文件被保存为独立文件

说了这么多,我们如何编辑呢?

如何编辑

全局变量、函数、脚本均可在CANape的函数编辑器中创建、编辑和编译。函数编辑器主要分为树视图、列表视图、编辑器窗口、消息窗口,可以在CANape中直接打开。

poYBAGLngzmACLrJAALwRHpl1xg560.png

图6函数编辑器

变量类型:变量是特定类型值的占位符。变量可以在脚本和函数中声明和定义,主要分为全局变量和局部变量。

全局变量是CANape配置中的所有函数和脚本都可以使用的特殊数据对象,局部变量仅在各自的函数或脚本中有效。

(Tips:全局变量是静态的。它们在两个测量之间以及加载项目之后保留它们的值。当保存配置或项目时,它们的当前值保存在参数文件中,并在加载项目时重新加载。)

参数总是作为通过引用传递给函数,可以使用具有相同作用var和double前缀来修饰。

poYBAGLng1uAenHDAAB1gsReP0w672.png

图7相同作用前缀

关于数据类型就不做赘述了,大家自行百度啦。

接下来重点介绍一些实用小技巧:

使用频率较多的简单语句:

>测量过程开始/停止:Start();Stop();

>测量文件信号导入:FILE1.CCPsim.ampl;

>测量和标定:x = CCPsim.ampl;

CCPsim.ampl = x;

>发送报文:CAN1.SendMessage(0x1a1,0xff,0x7f);

>延时(等待)3秒:Sleep(3000);

>测量缓存区或文件中对象信号值的数量:sizeof();

pYYBAGLng5KADXMBAAB_SCXTkDI371.png

图8数量获取

>所选对象特定的测量值进行读写访问:mbuffer[ ];(常与sizeof结合使用)

pYYBAGLng6OATNsiAAB4DEpCWP0085.png

图9读写特定值

>输出:print(); write();

poYBAGLng7eAWjgpAAGRCRX7llI608.png

图10常见输出格式

可以从一个函数中调用另一个函数:

poYBAGLng8mASoe6AACtG16PlvQ445.png

图11函数调用函数

从一个脚本中调用另一个函数:

pYYBAGLng9mAOcooAACPhZJl8iM543.png

图12脚本调用函数

从一个脚本中调用另一个脚本:

poYBAGLng_KALhvFAAEGHUHGKaU571.png

图13脚本调用脚本

正确终止函数和脚本:

如果参数达到了某个值,则可以使用控制结构cancel来终止函数或脚本。如果在函数中使用了cancel命令,该函数将在没有返回值的情况下终止。如果在子函数或脚本中使用了cancel命令,则脚本将立即终止。

例如下图,如果在调用的对话框中选择[Yes](返回值为0),脚本将终止。

poYBAGLnhGaAHrlDAACyV4jS_Tg906.png

图14终止脚本

全局变量初始化:

可以在脚本运行时调用,以每次自动初始化全局变量的值。

poYBAGLnhHeASrtjAAChR19v-Qs050.png

图15初始化脚本

以上可能是一些常见的例子,由于编程语句体量庞大,工程师们需要根据功能需求来选择语句。在CANape中右键可以导入自动的库函数,根据功能分类,对于不熟悉语句,鼠标悬停后按F1,可以弹出help文档,其中会显示使用例子。

poYBAGLnhIaAR5VGAAEQbtx6CPw180.png

图16库函数

pYYBAGLnhJKAUGGiAAJmD4394OU446.png

图17万能help文档

在我们编写程序前,我们需要考虑以下5个步骤

1.需要用程序的主要任务2.决定如何以及何时执行程序3.开发合适的代码4.编译5.测试。

编程世界很大,谨此抛砖引玉。小编领进门,修行还是看个人。

古人云,工欲善其事,必先利其器;北汇信息作为Vector中国的合作伙伴,始终专注于汽车电子领域的新技术和新产品,为整车厂和零部件企业提供完整的研发、测试解决方案,为工程师在汽车领域提供“趁手装备“!

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    罗克韦尔自动化邀您共赴2025年自动化博览会

    11 月 17 - 20 日,作为工业自动化、信息和数字转型领域的全球领先企业之一,罗克韦尔自动化将在芝加哥举办的 2025 年自动化
    的头像 发表于 11-17 17:54 1683次阅读

    CANape报错无法启动测量

    使用过程出现XCP/CCP/CAN FD driver initialization failed的报错,导致无法使用 CANape启动测量。
    的头像 发表于 11-04 14:20 318次阅读
    <b class='flag-5'>CANape</b>报错无法启动测量

    CANapeCASL工具箱

    的语法及内置功能库,成为实现流程自动化、交互定制的关键。CASL内置功能库本质是CANape封装的API集合,覆盖ECU开发“硬件连接-测量采集-参数标定-数据后处
    的头像 发表于 10-29 10:03 342次阅读
    <b class='flag-5'>CANape</b>的<b class='flag-5'>CASL</b>工具箱

    EasyGo TestSim:新能源电力系统自动化测试的利器

    现代电力系统对测试精度和效率的高要求。EasyGo TestSim 仿真自动化测试软件的出现,为这一难题提供了一个完美的解决方案。 什么是 EasyGo TestSim? EasyGo TestSim
    发表于 09-03 18:35

    自动化计算机的功能与用途

    工业自动化是指利用自动化计算机来控制工业环境中的流程、机器人和机械,以制造产品或其部件。工业自动化的目的是提高生产率、增加灵活性,并提升制造过程的质量。工业自动化在汽车制造中体现得最为
    的头像 发表于 07-15 16:32 548次阅读
    <b class='flag-5'>自动化</b>计算机的功能与用途

    爱普生SG-8200CG可编程晶振成为工业自动化领域的理想选择

    )推出的SG-8200CG可编程晶振,凭借其高精度、宽频率范围、强环境适应性等核心优势,成为工业自动化领域的理想选择,为工业生产的智能升级注入强劲动力。SG-820
    的头像 发表于 04-23 17:03 527次阅读
    爱普生SG-8200CG可<b class='flag-5'>编程</b>晶振成为工业<b class='flag-5'>自动化</b>领域的理想选择

    工业DTU对工业自动化通信格局的重塑

    随着工业4.0和智能制造的快速发展,工业自动化系统对通信技术的要求越来越高。工业数据传输单元(DTU,DataTransferUnit)作为一种新兴的通信设备,正在逐步重塑工业自动化通信格局,为工业
    的头像 发表于 03-28 14:09 632次阅读
    工业DTU对工业<b class='flag-5'>自动化</b>通信格局的重塑

    新品|StamPLC,工业自动化利器,智能控制新选择

    ●●●PART.01产品简介PLC是可编程逻辑控制器(ProgrammableLogicController)的简称,是一种专为工业环境设计的电子设备,用于实现自动化控制。本次上新的StamPLC
    的头像 发表于 03-21 19:41 1152次阅读
    新品|StamPLC,工业<b class='flag-5'>自动化</b><b class='flag-5'>利器</b>,智能控制新选择

    使用 QWQ:32B 模型搭配 VSCode 的 Cline 插件实现自动化代码编程

    作者:算力魔方创始人/英特尔创新大使刘力 一,概述 随着人工智能技术的快速发展,自动化编程工具逐渐成为开发者的得力助手。QWQ:32B 模型是一种先进的自然语言处理模型,能够理解并生成高质量的代码
    的头像 发表于 03-21 18:12 1098次阅读
    使用 QWQ:32B 模型搭配 VSCode 的 Cline 插件实现<b class='flag-5'>自动化</b>代码<b class='flag-5'>编程</b>!

    从初级到高级:工业自动化编程岗位的真实写照

    在工业自动化领域,存在着一种看似普遍的现象:不到 30 人的小型自动化集成公司,工程师们使用着国产低价的 PLC 替代品,却仍觉得成本压力巨大,甚至为了节省开支,不得不退而求其次,选用一些老旧
    的头像 发表于 03-05 10:08 804次阅读
    从初级到高级:工业<b class='flag-5'>自动化</b><b class='flag-5'>编程</b>岗位的真实写照

    HFSS 自动化建模工具

    因工作需求,自己写的HFSS参数自动化建模工具,目前只实现了常用的四种模型,可定制,如需可联系 qq:1300038043 附件下载链接:https://pan.baidu.com/s/1TVeTTFiJw-pxSyT1AT8IQA 提取码: kxup
    发表于 02-27 17:44

    环球仪器Uflex灵活自动化平台概述

    在生产厂房全面走向自动化之际,最令厂家头痛的莫过于生产线上一些难以自动化的组装工序。若以功能单一的自动化平台来解决,投资可能没有保障。环球仪器的Uflex灵活自动化平台提供一个完美的解
    的头像 发表于 02-08 09:13 976次阅读
    环球仪器Uflex灵活<b class='flag-5'>自动化</b>平台概述

    自动化巨头布局生成式AI,先瞄准PLC编程

          确实,自动化巨头正在积极布局生成式AI,并首先将目光瞄准了PLC(可编程逻辑控制器)编程。以下是对这一趋势的详细分析:       一、自动化巨头布局生成式AI的背景  
    的头像 发表于 01-21 17:24 915次阅读

    电源技术在工业自动化中的应用

    、高稳定性和宽输入电压范围等优点,在工业自动化中得到了广泛应用。 为核心部件提供稳定电能 :开关电源为工业自动化控制系统中的核心部件,如可编程逻辑控制器(PLC)和分布式控制系统(DCS)等,提供稳定、可靠的电能。这些控
    的头像 发表于 01-08 10:12 1250次阅读

    通用自动化测试软件 - TAE

    INTEWORK-TAE(Test Automation Executor) 是一款通用的测试用例自动化执行框架,用于汽车电子自动化测试,可支持仿真( MIL/SIL/HIL)、故障注入、 故障诊断、测量标定等测试业务,提供友好的图形
    的头像 发表于 01-02 13:42 1286次阅读
    通用<b class='flag-5'>自动化</b>测试软件 - TAE