程控电源SCPI命令CAPL调用控制dll(ITECH系列通用、USB模式、面板制作)

一、前情提要

《程控电源CANoe上位机面板》这篇文章描述的上位机面板,是基于Frame帧格式写的,并且是直接使用capl编写,不方便其他语言调用,同时只能使用capl内置的rs232函数收发帧数据,以此来远程控制电源,导致只能使用rs232串口与电源进行通讯。

而itech系列电源一般有三种通讯模块:RS232 通讯电缆、USB 通讯电缆、GPIB 转接器。为了增大通讯模块的通用性以及方便其他编程语言的调用,本文通过itech系列电源的另一种通讯协议方式即SCPI命令控制,编写一个dll,dll封装好设置电压、设置电流等控制电源的函数,并以USB通讯模块为例控制电源。

二、前期准备

1、itech系列电源的两种通讯协议方式

可以登录ITECH官网获取官方的通讯协议文档,如下图,有FRAME和SCPI两种方式,FRAME格式在《程控电源CANoe上位机面板》文章已提及,SCPI为本文使用的通讯方式。
图1

2、SCPI命令

SCPI(Standard Commands for Programmable Instruments),也称为可编程仪器标准命令,定义了总线控制器与仪器的通讯方式。是一种基于 ASCII 的仪器命令语言,供测试和测量仪器使用。

可以简单理解为通过发送字符来控制电源。具体的SCPI命令格式可以细看通讯协议文档。许多其他系列仪器也可使用SCPI控制,因此本文编写可供CAPL调用的SCPI命令控制dll思路,也可类推用于控制其他系列仪器的dll编写。

3、VISA驱动

如图1右上角,ITECH官网会提示到NI官网搜索可下载Visa驱动。NI-VISA为使用以太网、GPIB、串口、USB和其他类型仪器的用户提供支持。可以简单理解为有了visa驱动,则程序能够通过通讯模块RS232通讯电缆、USB、GPIB 等收发SCPI命令与电源通讯。
图2

4、DLL制作

供CAPL调用的dll制作官方有提供例程,例程路径如下:
C:\Users\Public\Documents\Vector\CANoe\Sample Configurations 17.0.201\Programming\CAPLdll
在这里插入图片描述

5、VISA接口

DLL的制作使用C++语言编写。因此下载好VISA驱动后,需找到VISA提供C\C++使用的接口。
接口库以及头文件在如下路径:
C:\Program Files\IVI Foundation\VISA\Win64

在这里插入图片描述

VISA接口API说明可在帮助文档里找到,帮助文档所在路径如下:
C:\Users\Public\Documents\National Instruments\NI-VISA\Documentation

在这里插入图片描述
在这里插入图片描述

三、程序编写

1、导入VISA接口

用下方两个语句将即可将VISA头文件以及Lib文件中的API导入制作CAPL dll的工程中,供程序调用:

#include <C:\\Program Files\\IVI Foundation\\VISA\\Win64\\Include\\visa.h>
#pragma comment (lib,"C:\\Program Files\\IVI Foundation\\VISA\\Win64\\Lib_x64\\msc\\visa64.lib")

在这里插入图片描述

2、程序逻辑编写

1. 生成DLL逻辑

根据以下前辈文章进行学习,可明白如何封装CAPL函数接口
CANoe DLL编程(一)—— Visual Studio 创建DLL以及动态调用

2. VISA控制硬件逻辑

根据以下前辈文章进行学习,可理解如何通过VISA控制硬件,明白封装什么样的CAPL dll接口函数,以及了解后续如何查找设备ID,检测SCPI命令正确性等知识:
C++/QT控制通过VISA控制硬件设备,超级容易学会的控制硬件方法

3. 根据需求编写最终逻辑

结合前两篇文章,以及使用程控电源需求,封装如下函数:
在这里插入图片描述
通过调用VISA接口增加逻辑实现CAPL dll接口,以Poweron打开电源函数为例:
在这里插入图片描述

3、生成最终DLL

在这里插入图片描述

四、CAPL调用示例

(1) 在生成好capldll.dll文件后,更改名为PowerCtrl.dll,创建PowerManage.cin文件导入PowerCtrl.dll。
在这里插入图片描述

(2) PowerManage.cin将dll导入,提供的API二次包装,方便用CAPL进行二次开发。
在这里插入图片描述
(3) cin文件sample_test()中为介绍如何在canoe上使用示例,include到需要的脚本(.can)下即可供CAPL使用。
在这里插入图片描述

五、总结

can文件通过导入cin文件,cin文件里的函数使用dll里的接口函数,dll里的接口函数使用VISA提供的API接口,API接口可实现发送SCPI等命令控制程控电源,此过程即CAPL控制程控电源的链路实现。

SCPI程控仪器标准命令,六十年代的自动测试系统{ATS) 没有 标准的接121和程序、接口电路}{{设计者自行考 虑, 用汇编语言编程。那时微型it 算机尚未问 世、接口总线标准难以确定。结果是测量仪器 之间的连接和通信不能兼容、编程结果不能互 换和共享,对设计者和使用者都不方便: 七十年代徽处理器的普及和智能仪器的出 现,使IEEE 488.1总线接口标准获得公-^. 对 于自动测试系统的影响非常深远。到目前为止, 约 分之八十的ATS仍使用正E E 488.1总线。 总线控制器大都由微型计算机担当.BA S Ic 语青作为通用的编程手段,代替编程效率较低 的汇编语言。换句话说,ATs的接VI总线在硬 件和遥控信息两方面作出明确规定、ATS本身 也获得迅速的发展= 八十年代ATS 要求对接VI总线有进一步 的提高,于是IEEE48 8.1升级至1EEE488.2,对 数据格式、状态报告、命令设置、误差处理、 器件命令等更高的消息层次作出规定,使A、 B.C三胫的消息通信都有规叮循(见图l】。 但是程控仪器的最高层D 【器件消息层)仍然由 仪器设计者自行规定。同时微处理器也迅速从 字长8位发展到16位、32位。达到以三个l0M 作为表征的水平(即时钟10MH z,内存lcMB. 运算速度10MIP), 数据传输速度和运算能力 显著提高。编程语青除BAsIc外,也使用更 高级的c语言。并出现专供ATS编程用的机 辅设计工具。 由于超大规模集成电路使测量仪器的体积 缩小, 出现单片AsIC电路的仪器, 或者一个 机箱式仪器由一一块插卡来代替:以32位的V ME微机E业总线为雎础的程控仪器V xI总线随 之诞生,V xI对软件和语言并无规定,实际上 执fflEEE 48 8.2协议。V x I总线为九十年代 A T s的小) 化提供更良§r的硬件条件
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

云溪溪儿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值