干货分享 | TSMaster标定模块自动化控制应用指南

news2024/11/15 14:00:57

本文目录:

一、TSMaster标定模块自动化控制的基础原理

1.1 TSMaster的标定系统变量

1.2 内部TSMaster调用C脚本实现标定模块的自动化控制

1.3 外部调用COM组件实现自动化标定

二、标定自动化控制场景与TSMaster实例

2.1 C脚本实现控制标定模块的启动与关闭的设计

2.2 C脚本代码实现

2.3 测试与验证C脚本的标定功能

三、通过python调用COM组件实现自动化标定

3.1 COM组件介绍

3.2 python如何调用COM组件

3.3 python用COM组件实现自动化标定

一、TSMaster标定模块自动化控制的基础原理

1.1 TSMaster的标定系统变量

TSMaster 加载A2L文件会将 ECU 内部的每一个变量映射到与之对应的系统变量中,对于标定量来说,与其对应的系统变量是可写的,写入这些系统变量意味着修改 ECU 内部的标定量。

在TSMaster导入A2L文件后,会将A2L文件中的变量解析并生成与之对应的系统变量,属于标定模块所有者的系统变量。

 其中:

Calibration.Status:标定控制器状态,0表示未连接,1表示已连接,2表示已连接且启动了在线测量。

Calibration.Controller:标定控制器自动化寄存器,写0表示断开ECU连接,写1表示连接ECU且用ECU内存构建缓存,写2表示连接ECU且用本地缓存,写3表示连接ECU并启动DAQ。

1.2 内部TSMaster调用C脚本实现标定模块的自动化控制

TSMaster内部系统变量可以被内置的C脚本,python脚本,Panel等模块来读写来实现自动化标定。

 1.3 外部调用COM组件实现自动化标定

外部则可以通过Python,Labview,C#,C++等语言调用COM组件的方式进行读写TSMaster内部变量来实现自动化标定。

二、标定自动化控制场景与TSMaster实例

在汽车试验场合中会经常出现自动化标定的使用场景:

1. ECU会周期性的上电,上电时需要启动标定模块,完成连接和标定测量功能 。

2. ECU过段时间后会断电,断电后需要断开标定模块。

如下以TSMaster的操作实例来介绍整个自动化标定控制过程实现。

2.1 C脚本实现控制标定模块的启动与关闭的设计

C脚本监测CAN通讯,选择特征ID,比如ID=0x123的报文。如果监测到该报文,则写入系统变量从而使标定模块启动。如果一段时间监测不到该报文,则断开标定模块。

其中,C脚本相关子模块实现与描述:

全局定义:可以在全局定义中定义全局变量,每个事件函数内能够共享该变量,可以在这个模块定义最后收到某条报文时的时间戳这个变量,还有当前时间戳等变量。

CAN接收事件:指定 ID的CAN报文接收到的时候触发执行的函数事件,如需要收到报文ID为0x123的报文时就连接ECU,则需要在这个回调函数里面写相关代码。

定时器触发事件:定时器时间到了就触发执行的函数事件,可以在这个模块设计一个5ms的定时器,每隔5ms去对比当前时间戳减去最后收到报文时的时间戳是否大于20秒,如果是则写入系统变量“Calibration.Controller”等于0断开ECU连接。

2.2 C脚本代码实现

2.2.1 打开仿真窗口,使用C代码编辑器编辑代码

2.2.2 全局定义

定义了两个变量,变量“last_time”表示TSMaster最后接收到报文ID为0x123时的时间戳,变量“current_time”表示当前时间戳。

2.2.3 CAN接收事件

CAN报文接收事件绑定ID为123的报文,收到报文ID为0x123的报文,获取时间戳并赋值给全局变量“last_time”,通过读取系统变量“Calibration.Status”来判断当前ECU是否处于断开状态,是则写入系统变量“Calibration.Controller”等于3连接ECU并启动DAQ测量。并且启动定时器触发时间,检测已经有多长时间没收到该CAN报文。

2.2.4 定时器触发事件

新建一个5ms的定时器,然后用该定时器绑定定时器触发事件,定时器触发事件中每隔5ms检测当前时间戳减去最后收到报文ID为0x123报文时的时间戳,如果大于20秒,是则写入系统变量“Calibration.Controller”等于0断开ECU连接,并且停止该定时器事件。

2.3 测试与验证C脚本的标定功能

2.3.1设置C脚本为自启动

2.3.2 发送CAN报文

在CAN报文发送窗口,创建一条ID为123的报文,设置为周期发送(本次测试中短接了通道一和通道二,通道一发送报文通道二能收到,触发C脚本CAN接收事件)。

2.3.3 自动启动和断开ECU连接

启动发送报文,标定模块自动启动,停止发送报文20秒后,标定模块关闭。多次重复上述操作测试,结果与预期相符。

 

三、通过python调用COM组件实现自动化标定

3.1 COM组件介绍

COM(Component Object Model)组件指的是一种基于二进制接口和二进制标准的软件组件技术,可以用于实现不同语言环境下的程序模块之间的互操作性。COM 的应用范围涵盖了 Windows 操作系统中大量的基础服务、Windows API、Microsoft Office 等常见桌面应用程序等。通过 COM 组件技术,开发人员可以更加轻松地集成和重复使用已有的代码,提高软件的开发效率和可维护性。

3.2 python如何调用COM组件

在 Python 中调用 COM 组件可以使用 pywin32 库(Python for Windows Extensions),这个库提供了访问 Microsoft Windows 上的各种服务和资源的 Python API,包括了COM 外部对象的创建、调用和管理。

下面是一个简单的 Python 代码示例,演示如何通过 Python 调用创建并调用 COM 组件中的方法:

 

这里的 "MyCOMServer.MyComClass" 是 COM 组件的 ProgID(Programmatic Identifier),用于标识需要创建的 COM 对象。具体的 ProgID 可以从组件的文档或注册表中查找。

3.3 python用COM组件实现自动化标定

通过python调用COM组件读写TSMaster内部系统变量,控制自动化标定,参考代码如下:

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/671440.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Goby 漏洞发布|网神SecGate 3600防火墙 sys_export_conf_local_save 文件读取漏洞

漏洞名称:网神SecGate 3600防火墙 sys_export_conf_local_save 文件读取漏洞 English Name:Weaver OA PluginViewServlet Authentication Bypass Vulnerability CVSS core: 8.0 影响资产数:738 漏洞描述: 网神SecGate 3600防…

同一 tomcat 不同项目 session 共享实现

说明 这里仅讨论 同一个tomcat,部署了两个工程(两个war包)。不涉及不同tomcat,不涉及集群 背景 tomcat中的工程A包含用户登录、退出、权限控制等功能;工程B包含业务功能接口。工程A将用户登录信息加密响应给前端,前…

基于Java校园快递代取系统设计实现(源码+lw+部署文档+讲解等)

博主介绍: ✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战 ✌ 🍅 文末获取源码联系 🍅 👇🏻 精…

NLP(五十五)LangChain入门

LangChain简介 背景 由于ChatGPT的发行,大模型(Large Language Model, LLM)已经变得非常流行了。也许你可能没有足够的资金和计算资源从头开始训练大模型,但你仍然可以使用大模型来做一些比较酷的事情,比如&#xff1…

大数据开发薪资怎么样

想必想入行的小伙伴在正式开始学习之前,都会考虑薪资这个可观因素。有不少小伙伴是看中了大数据的薪资选择加入这个行业的,想知道以后能找什么工作以及工作薪水,那不妨让我们以数据的方式来展示一下~ 猎聘大数据研究院发布了《2022未来人才就…

制造执行系统(MES)的核心功能是什么?

制造执行系统(MES)的核心功能是什么? 01 什么是MES 制造执行系统(MES)是一种用于监控、控制和优化制造过程的软件系统。它通过与企业资源计划(ERP)系统和自动化系统的集成,实现对生产过程的管…

小红书品牌营销策略分析!品牌方必看

小红书在品牌营销方面的策略非常成功,特别是在口碑营销、内容营销和小红书素人达人种草营销方面的运用。以下是伯乐网络传媒对这些策略的详细分析,想要做小红书营销推广的商家必看! 一、口碑营销 对于小红书APP来说,口碑营销的传播主体就是小…

Android build.gradle文件

一、ABI(Application Binary Interface)应用程序二进制接口 其实ABI可以不设置,这样编译时,就会将项目里所有依赖资源包里的so库都打到最终的apk里。 但是,ABI支持多的话,apk也会大,所以一般只支…

MySQL数据库——存储引擎

MySQL数据库——存储引擎 一、MySQL存储引擎1.存储引擎的概念2.常用存储引擎3.存储引擎的分类4.企业选择存储引擎依据 二、MyISAM 存储引擎1 MyISAM的相关了解2 MyISAM的特点3 MyISAM表支持3种不同的存储格式4.MyISAM适用的生产场景 三、InnoDB 存储引擎1 InnoDB的相关了解2 In…

探索NDK和逆向工程在Android开发中的力量

NDK是什么? NDK(Native Development Kit)是一组工具集,用于在Android平台上开发和构建使用C或其他本地语言编写的应用程序。NDK提供了一些库和工具,使开发人员能够在应用中使用本地代码,并实现与Java代码的…

ant+svn项目打包部署错误记录

安装ant可以参考下这个 http://t.csdn.cn/kx1ZX 第一个错误,原因是缺少ant-contrib.jar导致,将对应jar包放入ant的lib下即可 [taskdef] Could not load definitions from resource net/sf/antcontrib/antcontrib.properties. It could not be found. B…

低/无代码平台:公民开发和公民自动化,让人人成为软件开发者

在企业数字化转型领域,公民自动化是一个备受关注的概念。虽然这个词汇可能有些“陌生又熟悉”,但在公民开发运动中已经引起了不小的轰动。那么,什么是公民自动化?它与公民开发之间又有哪些不同? 公民开发是什么&#x…

ATTCK 红日靶场(三)-简记

Step 1-》信息收集 端口 nmap -p -A -sV 192.168.1.110 目录 dirsearch -u 192.168.1.110 --exelude-status 400,401,403,404,501,503 访问 ip/1.php -->根目录、禁用函数 ip/robots.txt !!!------- IP/administrator-->>joomla-cms IP/configuration.php~--&…

利用uniapp创建移动端项目

目录 申请微信开发者账号 一、特殊声明 二、申请微信开发者账号 创建小程序项目 一、引言 二、创建小程序工程 三、uni-app框架简介 初识uniapp项目 一、uni-app工程目录结构 二、创建练习页面 创建登录页面 一、拷贝所有素材文件 二、创建登陆页面 创建注册页面 …

【机器学习与遥感】sklearn与rasterio实现遥感影像监督分类

在学习遥感的过程中,我们都了解到了监督分类与非监督分类,二者是遥感解译的基础。之前更多的是使用Erdas与ENVI来进行这两种分类。这里使用python语言,基于机器学习库sklearn与遥感影像处理库rasterio,使用kmeans动态聚类方法实现…

实施计划:项目成功执行的关键

为了增加成功的机会,特别是当涉及到大型或复杂的项目时,团队可能需要关于项目执行过程的额外指导。实施计划可以用于这一目的。 简而言之,项目实施计划是一份文件,作为项目如何执行的路线图。它规定了项目完成过程中的步骤&#…

<C++> C++11右值引用

C11右值引用 1.左值引用和右值引用 传统的C语法中就有引用的语法,而C11中新增了的右值引用语法特性,所以从现在开始我们之前学习的引用就叫做左值引用。无论左值引用还是右值引用,都是给对象取别名。 什么是左值?什么是左值引用…

sonar-scanner-Windows本地Python代码检查使用方法【免费下载sonar-scanner验证有效】

背景介绍: sonar作为开源的代码扫描工具,sonar-scanner是windows扫描器。SonarQube是一个开源的代码质量管理平台,可以将 sonar-scanner扫描的结果进行分析。 公司有搭建SonarQube质量管理平台,支持本地扫描和gitlab集成扫描。现…

locust学习教程(7) - docker运行单个locust脚本

目录 1、安装 docker 2、下载镜像 3、运行脚本 4、开始压测 🎁更多干货 1、安装 docker widnows安装docker客户端blog.csdn.net/weixin_4545… 实施步骤: 第一步、启动docker客户端 2、下载镜像 cmd窗口下载locust镜像文件:docker pul…

隐私链或成监管和虚拟货币犯罪打击新挑战?

匿名币、混币器等是大家在当前案件侦办中常遇到的资金追踪“拦路虎”,而在区块链中还有一些隐私保护方案(隐藏交易相关信息),可能大家较少涉猎,在当前的区块链相关案件中也还没有明显的表现,我们也希望通过…