YK04 仪器交互:开启关闭与读写

这里先基于MATLAB来进行讨论,后续会涉及LabView和Python。

开启和关闭

与仪器交互需要通过端口、通道或者协议,一般涉及GPIB、USB和串口。三种方式的支持均需要安装特别的驱动。

先通过端口号找到端口,再通过仪器的地址找到仪器。仪器在交互中类似一个文件,可以开启和关闭。这里的开启关闭,是握手操作或者读写操作的开启和结束,而非仪器电源的开启和关闭。更准确讲,这里的开启和关闭是建立连接和断开连接。

开启仪器后,可以对仪器进行读操作和写操作。写操作,仪器会按照指令来进行执行测量任务。

初始化

在最开始,要确保全部的端口关闭。如下代码可以找到所有的端口并关闭。见MATLAB-002 串口通信_银河漫游者-CSDN博客,为方便论述,这里也展示如下。

try
	port=instrfindall;
	fclose(port);
end

GPIB

H2612=instrfind('Type', 'gpib', 'BoardIndex', 0, 'PrimaryAddress', 26, 'Tag', '');
if(~ isempty(g_K2612A))
    H261 = H261(1);
else
    H261 = gpib('CONTEC', 0, 26);
end
fopen(H261);
fclose(H261);

这里以连接Keithley 2612 为例, 简称2612。2612的地址为26。

采用instrfind函数,找到所有的Type为GPIB的端口,端口号BoardIndex为0。端口号上仪器的地址PrimaryAddress为26。

如果能直接找到,则选第一个为仪器的句柄。

如果没能找到,再采用gpib函数查询。这里,涉及到GPIB的厂家可以为CONTEC或者NI。

之后,可以用fopen, 和 fclose 对开启和关闭仪器。

关于写操作,写指令,最简单的例子,例如让仪器输出开启,如下:

fprintf(H2612,'smub.source.output = smub.OUTPUT_ON');

采用了fprintf函数对仪器写入指令。

关于读操作,在仪器处于开启的状态,读反馈,也可以先写入指令让仪器读取电流,并把电流print出来。这样子,通过fscanf就可以读到仪器的反馈的电流。

fprintf(H2612,'READING = smub.measure.i()');
fprintf(H2612, 'print(READING)');
current = fscanf(H2612);

USB

这里以单色仪Newport 74086为例子。仪器提供的USB控制库函数文件如下:

ftp://download.newport.com/Oriel/Monochromators%20and%20Spectrographs/Cornerstone%20Monochromator%20Series/API/V1.0/USB/DLL/

导入库函数。

hfile=['cs_USB.h'];
loadlibrary('cs_USB.dll', hfile);

通过库函数的cs_Open和cs_Close进行开启和关闭。

calllib('cs_USB','cs_Open',131);
calllib('cs_USB','cs_Close',0);

其中131和514是单色仪的地址,0是USB的端口号。

通过cs_Write写入指令。

calllib('cs_USB','cs_Write',0,strcat('GRAT 1',uint8(10)));% 818-SL(400–1100)

通过cs_Read读取反馈。

 calllib('cs_USB','cs_Write',0, strcat('WAVE?',uint8(10)));
 wavelength=calllib('cs_USB','cs_Read',0);

自定义:串口

Arduino可以独立作为一个仪器,通过MATLAB的串口方式发送到Arduino来控制Arduino执行需要的操作。USB也是一种串口,不过,假如要自开发一些功能,就需要自定义函数。

已经发布在如下:

MATLAB-002 串口通信

Arduino-01 串口读取以及提取参数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

银河漫游者

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

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

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

打赏作者

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

抵扣说明:

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

余额充值