admin 管理员组文章数量: 1086019
2024年3月22日发(作者:问道手游源码分享网)
£
技朮交*
Technical
Communication
基于
ECU-TEST
的
ECU
诊断工具
API
接口
自动化测试应用
邵金萍
(
潍柴动力股份有限公司
,
山东
潍坊
261061
)
摘要
:
ECU-TEST
是一种内嵌
Python
脚本语言的
ECU
自动化测试软件
;
ECU
诊断工具是一种基于
Visual
Stu
dio
平台
C#
语言开发的
ECU
诊断测试应用程序
,
能够实现读取
ECU
中版本信息
%
故障码信息及进行参数标定等功
能&本文基于
ECU-TEST
编写
Python
脚本
,
调用
ECU
诊断工具
.dll
文件中的
API
命令
,
实现了诊断工具软件升级过
程中的自动化测试
,
保证了诊断工具开发的准确性
,
提高了测试效率&
关键词
:
ECU
;
诊断工具
;自动化测试
;
Python
;
.dll
;
C#
中图分类号
:
U463.6
文献标志码
:
A
文章编号
:
1003-8639
(
2020
)
05-0075-03
The
Automatic
Test
Application
of
ECU
Diagnostic
Tool
API
Based
on
ECU-TEST
Software
SHAO
Jin-ping
(
Weichai
Power
Co.
#
Ltd.
#
Weifang
261061
#
China
)
Abstract
:
ECU
-TEST
is
one
kind
of
ECU
automatic
test
software
with
built
-in
script
language
Python
;
ECU
diagnostic
tool
is
one
kind
of
application
software
for
ECU
diagnostic
test
,
which
is
developed
by
C#
on
the
strength
of
Visual
Studio
platform
;
with
ECU
diagnostic
tool
,
it
can
realize
to
read
and
write
ECU
program
version
information
,
diagnostic
fault
coding
information
,
calibrate
parameters
and
so
on.
The
paper
introduces
serials
of
Python
scripts
compiled
in
ECU
-TEST
to
call
API
instruction
set
in
.dll
files.
This
solution
can
be
used
to
automatically
test
ECU
diagnostic
tool
for
version
upgrade
during
developing
phases
so
as
to
improve
software
accuracy
and
test
efficiency.
Key
words
:
ECU
;
diagnostic
tool
;
automatic
test
;
Python
;
.dll
;
C#
邵金萍
(
1984-
),
女
,
工程师,
硕士
,
主要
从事内燃机电控测试工作及研究
。
构上看
,
.NET
框架包括
3
个主要组成
(
CLR
:
Common
Language
Runtime
)
、
月艮务扌匡架
(
Service
Framework
)
和上层的
应用
传统的
Windows
应用
程序模板
(
Win
Forms
)
和基于
的面向
Web
的网络
随着计算机
、
电子等学科领域在汽车上的广泛应用
,
汽
车电控系统日益复杂成为必然趋势
,
电子模块的增加导致汽
车故障诊断的难度也越来越大
。
ECU
诊断工具在国内得到了
迅速发展和普及
。
应用程序模板
(
Web
Forms
和
Web
Service
)%
11-13
」
。
(
CLR
)
内存
、线
、
代码执行
、
代码安全验
、
编译及其他系
统
为确保诊断工具的可靠性
,
针对其
API
接口测试的工作
凸显重要性
。
传统的手动
AP
I
接口测试效率低下
、
位于
CLR
之上
在的
了
发人员希望在标
度低
,
在
集合
、
输入/
输出
、
字符串
得不到
题
%
2
1
%
」
1
。
作
用
ECU
诊断工具
发
及数据
使用这些可重用型集
大大
了发效率
。
.NET
本众多
、
适配的
ECU
平台多化
、
发及试
等问
Python
脚本
ECU
诊断工具的
的
API
接口命令用需
连接和
ECU
信的硬接口备
,
将文的
ECU
诊断工具
API
命令
AP
I
接口
动用
诊断工具跨
ECU
平台的
和
及接口工作
大的
下
在的
.dll
文件添加到基于
Visual
Studio
2015
C#
Win
Forms
程
的引用文集
编写好的
Win
Forms
性
测试要
在
返回正确
Python
和
EC
U
诊断
试用
确效地
的测试
果
,
以获取故障码信息为例
,
如图
1
所示
,
为下一
成对诊断工具的开发测试工作
%
3
"
9
1
。
步
Python
编译
用
依据
。
标平台选择
Any
CPU
是将
集编译为在任意
也就在
32
位
Windows
上按照
32
位
在
64
!
基于
.NET
框架的
AP
I
接口命令调用实现
Visual
Studio
是目前流行的
Windows
平台应用程序开发平
平台上
位
Windows
上按照
64
位
文的
ECU
诊断工具
API
命令所
台
,其
的
.NET
多
(
C++
、
C#
在的
.dll
文为
32
位
勾选了
"首选
32
位
(
P
)
”选
编译配置界面如图
2
示
。
言
、
VB
、
J#
语言等)
收稿日期
:
2019-10-15
发和
%
10
1
。
从层次结
《
"车电%
》
2020
年第
5
期
75
'()
备
T
技朮交.
3
Technical
Communication
List
ecus
=
new
List
:
DataTable
infor
=
new
DataTable
();
DataTable
inforl
=
new
DataTable
();
int
result
=
100;
1
个引用
public
Forml
()
{
InitializeComponent();
I
可题
。
pythonnet
库常用的命令有
DataSet
可视化工
M
故障码描述
故障码状态
“
■苹鯉
计电
…
当前故障
机油液位物理.
..
当前故障
増压器转速伎
..
当前故障
进气流璧计电.
.
「
当前故障
AT1FC1
扌空璽
当前故障
尿素箱空故障
当前故障
Ac
tvCode
扌艮
文
...
当前故障
尿亲溶液质量
…
当前故障
I
■卷
import
sys
表
(
T
)
:
r
(
「
…
')
#
加载
dll
文件夹路径
运行时环境
1
个引用
private
void
(object
sender,
EventArgs
List
dataflow
=
new
List
()
List
dataflowl
=
new
List
result
=
api.
GetLanguageList
(ref
dataflow)
result
=
api
・
SetLanguage
(*ZH*)
;
api
・
GetDeviceList
(ref
dataflowl)
result
=
api
・
SetDevice
(*DiagsmartUSB*)
:
result
=
api.
GetECUList(ref
ecus)
result
=
api.
SetECUCWISElOA
柴油中
、
重型国六
")
result
=
api.
GetECUInfor(ref
inforl)
;
//result
=
api.
ClearDTC
0:
result
=
api.
GetDTC
(ref
infor)
Console
・
VriteLine(result)
;
this.
Close
0
故障码编号
P01DC
P04DD
import
clr#
erence
P0001
加载
dll
文件
from
…
import
*#
导入命名空间
#
('•••')
P0075
本
ECU
诊断工具
API
datatable
返结果中分别将
C#
的
list
和
P0466
数据类型转换成
Python
的
list
和
dictionaryo
以获取故
障码
为
,
3
是
Python
调用
dll
文件的
API
的结
果
o
3
ECU
诊断工具调用脚本开发及调试
ECU-TEST
是一
的
ECU
自
图
1
基于
Visual
Studio
的
API
命令编译运行图
|
活动
(Debug)
▼
平台
(M):
|
活动
(Any
CPU)
▼
软件
,
具
o
有二次开发功能强大
dSPACE
ControlDesk
NG
CarSim
其
、
ETAS
LabCar
、
NI
Yeristand
、
、
MatLab'Simulink
、
AVL
PUMA
、
D2T
Morphee
等
仿真平台和台架
,
而且支持
INCA
、
CANape
、
超强
W^(Y)
:
HILMILSIL
资源
服务
凰
定义
DEBUG
帛量
(U)
回
走义
TRACE
常量
(T)
目按
F
台
(G):
CANoe
、
CANalyzer
等
ECU
标定诊断工具
。
要实现对
ECU
诊断
工具
API
命令的自
|Ai
iy
CPU
▼
其返
结果和
INCA
中的
,
4
结果在
ECU-TEST
中
dll
。
本
的
dll
文件
引用路径
的工
是
ECU-TEST
对
ECU
诊断工具的调用
。
文件
的
Python
本和
API
ECU
叼
首选
32
位
(P)
□
允许不竝代码
(F)
签名
诊断工具运行及到的其他
dll
文件
本调用流程
5
o
一个文
□
优化代码
(Z)
件路径下
。
图
2
编译配置界面图
4
ECU
诊断工具
API
接口自动
5
试用例演示
调用
ECU
诊断工具
调
,
连接
IN
-
CA
行诊断工具
的自
用
设计,
以
码
ECU-TEST
2
Pytho
n
环境搭建
Python
是一种面向对象的解释型计算机程序设计语言
,
信息的
API
Python
自
为例
,
Exce
l
6
o
其语法更接近自然语言
,通俗易懂且具有丰富和强大的
库
[
10
,
14-15
]
o
个
,
本实现设计
的
本
用例二次开
本文中用到
32
位的
Python3.7.4
以及它的两个库
—
—
pythonnet
import
os
import
pandas
as
pd
和
tblib
。
pythonnet
库是
python
与
C#
的交互模块,
tblib
诊断工具的
.dll
文件为
32
位
,因此选择
32
位的
库是实现其他程序对
Python
运行结果可追溯调用的模块库
。
ECU
def
ReadExcelDTCM
(
FilePath
,
FileName
,
SheetName
,
DFCName
)
(
,
FileName
)
,
Python
软件
o
Python3
默认米用
UTF-8
编码
,
解决了
Python2
AbsoluteFilePath
二
FilePath
的默认编码是
ASCII
带来的编程过程中经常遇到编码报错
api.
SetECUCWISElOA
衆壮甲
'里型国
TV
J
ddtc=api.
GetDTC
(dt
3)
def
Test
()
:
colTempCount
=
0
die
=
{}
while
(colTempCount
<
ddtc[l].)
:
li
=[]
rowTempCount
=
0
colName
=
ddt
c
[1].
Columns[colTempCount
].
Colurfame
while
(rowTempCount
<
ddtc[l].)
:
result
=
ddtc
[1].
Rows[rowTempCount][colTempCount]
li.
append(result)
rowTempCount
=
rowTempCount
+
1
colTempCount
七
1
die.
setdefault(colName,
li)
return
die
_excel
AbsoluteFilePath
SheetName
header=0
(
,
)
{'
故陣冯輪号
rP0001
'PQ1DC',
,
P04DD
'P0001',
'P007
匚
'P04F8',
,
P006E
,
.
,
P0466
,
,
'POOTf.
^'0076
'POOTTj
?
?0072
,
P03ED
,
,
,P03EB
,
,
70267
,
P0266
,
]
J
'故陣码描
iS
['进气济里计电压错畀机油液位物理值超上叭
中压器转速传感器信号不可信
「
进气
漁重计电压
号错畀
JAMB
报文跚
「
CAN
接收
^
:}
?
AT1FC1
报文超时
U
尿表箱空故障
>
乜
ctvCo
血报文超时
U
尿素溶液质重信
WlUTlIGl
数据长慝谱黄
,
’
CAN
接收働
T1IG1
超时错罠
「
总
IJDPM
线油门开度诸嗅
'
压力传感器可信性超下陋
J
回济泵辿压时最小压力超限
下游压力传
感器信号超过上叙
’
DPM
上游温度传感器不可信故障码状态汕前故障'
,
’
当前故軽
'当前故障'・
’
当前故障
'当前故
(T,
'当前故陣’
当前故
(T,
'
当前故障
S
'当前故障
’
当前故障'
「
当前故趴
’
当前故障'当前故障'当前故库
,
'当前'当前故障丄
'
维修指引
'
:
【
'暂无支持'暂无支持'•
「
暫无支持,暂无支持'
,
’
暂无支持
「
暂无支持
I
暫无支持
'
暂无支持
'
暂无支新厂暂无支持'
,’暂无支持'暂无支持
'暂无支捋,'暂
无支持'暫无支持
'
「
暂
无支持
']}
图
3
Pytho
'
调用
API
命令运行结果图
76
《
"车电%
》
2020
年第
5
期
£
技(交*
Technical
Communication
图
4
测试工具关系图
图
6
API
命令自动测试用例流程图
(
[
indexs
]
.values
[
DTCM
所在列号
])
所在列号
]
[
indexs
]
.values
[
DTCM
return
DFCRow
ECU-TEST
对上述诊断工具的功能测试进行的测试用例
图
5
脚本调用流程图
DFCRow
((
编写步骤如图
7
所
=>
5
结论
本论文提供了一种使用
Python
脚本语言实现了基于
.dll
文
for
indexs
in
for
i
in
range
(
len
(
[
indexs
]
.values
))
if
(
[
indexs
]
.values
[
i
]
件的
API
命令调用的解决问题思路
,
稳定实现了对开发升级
中的
ECU
诊断工具进行接口功能的自动化测试和版本用例移
二二
DFCName
)
(
=RowNo
indexs+1
,
=ColumnNo
=
,
i+1
)
植
,
提高了测试效率和准确性
。
Test
case
Properties
Log
recordings
Signal
recordings
Trace
analysis
Test
report
⑦
-
®
a
6
-
b
A
$
#
Action
/
Name
胖
Parameter
VECTOR=DFES_numDFC
Expectation
/
Value
1
2
|->
E)
If
(DFES_('DFC_Unused
,
)
>=
1)
Q
Calculation
園
Calculation
3
B
人
Then
4
5
6
list(set(DFES_numDFC))
('DFC_Unused')
DFES_numDFC
len(DelUnused)
|->
DelUnused
0
人
Else
Q
Calculation
7
8
|->
DelUnused
|->
DiagSmartDFC
S!
ProcessCsvInNewProcessPy27x86
□
|t
)
Loop
9
10
11
12
J
Calculation
SS
Read
Excel
DFES_numDFC[number]
(DTCM)
number
+
1
图
7
ECU-TEST
自动测试用例编写图
|->
SheetName='WISE13
,
;
FilePath='
|->
DTCM
§)
Calculation
>=1
1->
DTCMCount
|->
number
(
下转第
80
页
)
13
5
Calculation
《
"车电%
》
2020
年第
5
期
11
软件应用
技朮交.
3
Technical
Communication
4
)
线束在跨区域布置时
,
跨区域线束段不应出分支
的分支长度
7
们会将接插件拟在实际
拟线束长度
。
另一个线束
2
)
间位置
7
再
以后
7
线束否
若无法避免
,
主干应当留出振动量以避免振源将线束扯断
。
同时应当与振动包络保持
10m
m
以上的间隙
;
若无振动包络
内
边干涉
7
线束否有被磨损的风险
。
的情况下
,
应当保证与本体
25mm
以上的间隙
。
5
)
线束弯曲角度应当保持钝角
,
同时转弯处各有一个
上述情况
线束余量
7
有一种是卡扣
、
接插件的
路径与线束路径不同
7
通常会在其束段上增加
5mm
安装余量
。
3
)
固定点以保证线束固定的可靠性
。
6
)
固定点之间的距离应保持在
200mm
以内
;
在直线部
线束不能在其他零部件的
轨迹上
7
否则会影响
位
、
没有干涉的情况下
,
可以保持在
300mm
以内
。
7
)
线束为避免承受其他压力
,
尽量沿边
、
槽布置
。
其他零部件的
、
拆卸或线束
损伤
。
8
)
线束应远离高温区域
,
比
、
主以及
2.3
线束的可制性
在布置线束时
7
应当随时
艺
师沟通
7
若设计
的产品在工艺上无法实
7
生图纸之
去沟通的
9
)
在
区
,
线束
插件应当属于防水接插件
;
线束接
话
7
所
的时间本
、
经济本比较高的
。
1
)
线束固定点之间至少有
50mm
以上的长度
7
这是保证
插件不能口朝上
,
避免
水
。
10
)
干区
的
,
干区线束要比湿区线束位置
上的
可以
。
2
)
高
,
可以防
区的水
干区
。
11
)
线束分支点距离卡扣至少在
30mm
以上
。
以
3M
胶带
直接的水防
,
应当避免
压
7
将高处的水
,
的出
。
之
件
为例
7
其胶带宽度一般为
18mm
,
若分支点固定点之间
的距离小于
30mm
7
则无法保证线束包扎的可靠性
。
处
。
,湿区
应当
保
,
同
时
应当比插件的位置低
。
3
结束语
只使用
Catia
软件
7
不能说自己线束布置
7
只有将
边件干涉
,
2.2
线束的可装配性
在布置线束时
,
不能
的就
仿真软件使
为线束布置
实际相结合
7
同时熟知布置原则
7
才能被称
可
性
。在
线束
一定
的可
部件的可装
师
7
才能设计出符合求的线束产品
。
天海
性
。
比
线束
、
线束
,
尽可能不
集团为国内龙头企业的专业线束设计制
线束
面与通
、
应
7
在
、
迎业
的经验
7
的
本。
,
、
FCA
、
上汽、
一
、
长
、
合
7
性
7
不能将部件布置在不可
、
无法
的位
力量
。
国内主
置
。
应该将部件布置在人手易于装配的位置
,
这样不会造
1
)
同仁一起探讨线束布置
7
为提高线束品质贡献一份自己的
件的
在
之
7
、
以
的
7
没有
。
在
上之
间
。
于
7
们将线束拉出
件
7
完之
将
件和
内。
此时
注意两点
:
一个是线束
参考文献
:
[
1
]
百度文库
.
客车线束基本设计
[
OL
]
.
https
:
//
.
com/view/92d3c129b9
f3f90f77c6
1
.2018-07-02.
来
,
在
线束一起
(
上接第
77
页
)
面
(编辑杨景
)
参考文献
:
[
1
]
王知学
,
刘晓健
,
庄汝科
.
汽车电子技术行业现状分析
[
J
]
.
山东科学
,
2010
(
3
)
:
1-6.
[
8
]
杨
,
,
,
.HTTP
接口自动化测试
方法研究[
J
]
.
微型机与应用
,
2016
,
35
(
18
)
:
22-25.
[
9
]
曾北溟
.
自动化测试框架的研究
现
[
D
]
.
武汉
:
武
[
2
]
杨璐
.
基于
dSPACE
的车身控制系统硬件在环测试技术
研究
[
D
]
.
天津
:
河北工业大学
,
2015.
大学
,
2004.
[
10
]
.
行
Python
脚本的自动化测试平台设计及实现
.
件
自
动
化
测
试
工
研
究
[
J
]
.
件
,
[
3
]
ISO
22901-1
&
Road
vehicles-Open
diagnostic
data
ex
change
(
ODX
)
-Part1
:
Data
model
specification
(
First
edi
-
[
J
]
.
中国
电
,
2018
(
10
)
:
54-57.
[
11
]
[
12
]
[
13
]
.
tion
)[
S
]
.
2008.
2011
,
10
(
1
)
:
57-59.
[
4
]
余旭东
.
故障诊断仪在汽车检测中的应用探析
[
J
]
.
中
件
API
自动化测试工具的设计与实现
[
D
]
.
国科技财富&
2010
(
18
)
:
1-1.
武
:
中科技大学
,
2009.
.
数据分的
自动化测试框架设计与应用
[
J
]
.
[
5
]
Mike
ng
a
test
automation
framework
From
the
Developerworks
archives
[
Z
]
.
Jul
18
,
2003.
技术
,
2016
(
5
)
:
37-40.
[
14
]
王国
,
克
.
基于
Python
的嵌入式脚本研究
[
J
]
.
计
[
6
]
章晓勤&夏克付
.
数据驱动自动化测试技术的应用
[
J
]
.
齐齐哈尔大学学报
(
自然科学版
)
,
2013
,
29
(
1
)
:
23-25.
应用
件
,
2010
(
3
)
:
21-26.
[
15
]
Magnus
Lie
Hetland.
Python
基础教程(第
2
版修正版
)
[
M
]
.
北京
:
人民邮电出版社
,
2014.
[
7
]
王军&孟凡鹏
.
基于关键字驱动的自动化测试研究与实
现
[
J
]
.
计算机工程与设计
,
2012
,
33
(
9
)
:
3652-3656.
(编辑凌波)
《
"车电%
》
2020
年第
5
期
80
版权声明:本文标题:基于ECU-TEST的ECU诊断工具API接口自动化测试应用 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/b/1711090785a587955.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论