4. Dewesoft自动化接口概览
Dewesoft的自动化能力并不是单一入口,而是围绕同一套测量内核向外暴露了多条控制通道。理解这些通道的差异,比记住某个函数名更重要:它们决定了你能否复用现有代码、能否接入CI流水线、能否在长时间无人值守测试中稳定运行。本节从“谁在控制、控制什么、怎么拿到数据”三个角度,对Dewesoft.NET API、Python集成、COM接口和内置脚本控制方式做一次横向梳理。
四条控制通道的定位
Dewesoft.NET API是面向Windows平台的托管接口,通常以DLL形式随DewesoftX安装。它适合用C#、VB.NET或F#编写独立的测试执行程序,能够直接操作项目、启动/停止采集、读取通道数据并写入文件。它的优势是类型安全、性能好、可深度集成到已有.NET测试框架中;代价是需要编译环境,部署时要保证目标机器上的Dewesoft版本与引用的程序集一致。
Python集成通常通过两种方式实现:一是用pythonnet加载Dewesoft.NET程序集,从而在Python里调用与C#相同的对象模型;二是通过Dewesoft提供的Python脚本环境或外部进程调用方式,让Python负责测试序列编排、数据处理和报告生成。Python路线的最大价值在于生态:numpy、pandas、matplotlib、pytest可以无缝衔接,适合算法验证、批量数据分析和快速原型。
COM接口是较早期的自动化方式,通过COM组件暴露Dewesoft的部分功能。它可以在VBA、LabVIEW、MATLAB、C++以及支持COM的Python环境中调用。COM接口的优点是跨语言门槛低、无需编译即可在Office或测试管理工具中驱动Dewesoft;缺点是接口粒度较粗、错误处理不如.NET直观,且对高吞吐数据读取的支持有限。
脚本控制方式指DewesoftX内置的脚本/公式/序列功能,例如在Setup中配置的公式通道、事件触发动作或内置脚本编辑器。它不依赖外部程序,直接在采集项目内部运行,适合做实时派生计算、条件触发、报警联动和简单的状态机控制。它的边界也很清楚:不适合承担复杂的测试流程编排、外部设备调度或大规模数据后处理。
从“控制什么”看差异
四条通道都能启动采集,但可控深度不同。.NET API和Python(经pythonnet)通常能访问到项目对象、通道对象、采集状态和事件回调,适合实现“配置—采集—判断—记录”的完整闭环。COM接口更多暴露应用级操作,例如打开项目、开始/停止采集、导出数据,对通道级实时读取的支持取决于版本和组件注册情况。内置脚本则运行在项目内部,能直接读写通道值、触发动作,但无法替代外部程序去调度其他仪器或管理测试序列。
一个常见的误区是“用Python就一定比COM好”。实际上,如果目标只是从Excel VBA里触发一次采集并导出CSV,COM可能只需十几行代码;而用Python走pythonnet,反而要处理程序集路径、版本匹配和线程模型。反过来,如果要做每秒数千点的实时判断,COM的调用开销和数据类型转换会成为瓶颈,此时.NET或Python直接调用对象模型更合适。
一个可执行的Python示例
下面示例假设已安装pythonnet,并且DewesoftX安装在默认路径。它演示了加载程序集、启动采集、读取一个通道值并停止采集的最小过程。参数为示例值,实际使用时需替换为你的项目路径和通道名。
import clr
import time
# 添加Dewesoft安装目录下的程序集引用(示例路径)
clr.AddReference(r"C:\Program Files\Dewesoft\DewesoftX\Dewesoft.App.dll")
from Dewesoft.App import Application
app = Application.Instance
app.OpenProject(r"D:\Tests\demo_project.dxz")
app.StartMeasurement()
# 等待采集稳定,示例等待2秒
time.sleep(2.0)
# 读取名为 "Torque" 的通道当前值(示例通道名)
value = app.GetChannelValue("Torque")
print(f"Torque = {value:.3f} N·m")
app.StopMeasurement()
app.SaveProject()
这段代码的关键判断点有三个:第一,AddReference的路径必须与实际安装一致,否则会在导入时抛出异常;第二,OpenProject之后要确认项目确实处于可采集状态,必要时检查app.IsReady之类的状态属性;第三,GetChannelValue返回的是瞬时值还是缓冲区最新值,取决于接口定义,做实时判断时应结合时间戳而不是盲目轮询。
选型建议与组合策略
实际项目中,四条通道往往不是互斥的。比较稳妥的组合是:用Python或.NET做外层测试序列编排和结果判定,用内置脚本做项目内的实时派生与触发,用COM作为与旧有LabVIEW或VBA工具的衔接层。这样既保留了自动化流水线的灵活性,又不会把实时性要求全部压在外层程序上。