硬件搭建连接:
仪器安捷伦的直流电源 E3649A(公司的)
电脑
Z-tek的RS232-USB串口线(自费)。买错公口了,又买母母转接头
硬件连上了,软件想想应该有以下:
首先RS232串口附带驱动光盘,所以官网下载安装了串口驱动。
然后是发送的内容以及通过什么发送。
经过半个月的查找资料,确定了SCPI(可编程仪器标准命令Standard Commands for Programmable Instruments)指令,从手册上的示例上也得到印证。基本的几个语句也学了几句方便后面做尝试验证。
在网上查找别人的经验时,恰巧也找到了别人的上位机工具。也找到有GPIB-USB的上位机工具,不过用不上。终于后来找到对版的上位机了,不错还支持多种其他通信口(GPIB,USB,LAN)。
万事俱备,开始测试:
连线成功,查看电脑硬件管理器能看到串口线端口“com3”,发送最基础的SCPI指令 “*IDN?” 查询设备ID,但是没回应。换其他指令也是一样。排除了串口线的问题,之前根据别人的经验,别人安装了NI-VISA(主要是NI-MAX,据说要构建仪器与电脑的连通需要这个“管理”软件)我也装,有什么用以后在慢慢琢磨。在这个软件里我看到了“ASRL3::INSTR”,这个“管家”能认得到串口线,再次证明PC到串口线为止硬件上搭的“桥”没问题。
难道时指令没有“解释”问题?“解释”的工作是不是又要安装什么驱动?什么套件?Direct IO?library IO suits? 这个问题就此困扰了我两周多。带着这个问题不断上网冲浪,大海捞针,没有找到对症的问题,但是也拓宽了我的知识面,原来之前看示例程序看到的viprintf(),viscanf(),这些函数库就是来自IO程序库。算是弄明白它们是什么作用了。 话说回来,既然SCPI是仪器标准语言,那仪器应该能认识这个指令才对!“解释器”内置在仪器内才有意义。
大海捞针找不到头绪了,回头继续在手册上找:会不会是仪器上设置漏了步骤?RS232选上了啊!再说,现成的网分也是直接开机就听上位机使唤。这里不像是能找到答案的地方。
继续往下阅读手册,恰巧发现了串口接线图:
一直以来认为安捷伦这位一个大厂,都能指定标准的大人物了,通信口应该是市面上的串口线一插就能用才对。没想到要专门定制的DB9母母先。这里就是困扰我走出第一步的突破口。
还没验证,新买的DB9接头在路上。
祝我成功,顺利走出第一步!!!
关于RS232的其他注意事项:
RS-232 trouble shooting
Here are a few things to check if you are having problems communicating over the
RS-232 interface. If you need additional help, refer to the documentation that
came with your computer.
– Verify that the power supply and your computer are configured for the same
baud rate, parity, and number of data bits. Make sure that your computer is set
up for one start bit and two stop bits (these values are fixed on the power
supply).
– Make sure to execute the SYSTem:REMote command to place the power
supply in the remote mode.
– Verify that you have connected the correct interface cable and adapters. Even
if the cable has the proper connectors for your system, the internal wiring may
be incorrect. The Keysight 34398A Cable Kit can be used to connect the power
supply to most computers or terminals.
– Verify that you have connected the interface cable to the correct serial port on
your computer (COM1, COM2, etc.).
2022年9月23日 验证通过
串口线连接上,确认端口号,数据位,校验等等。终于能跟电源通讯上了。
第一步已经走出来了,接下来第二部也挺难走的(要符合自动化测试,循环的大量设置命令,读取命令要如何发送?)整理一下思绪:
法子1: 灵活但是比较依赖操作人员有编程基础。
测量一项指标(比如频率)需要的所有指令按顺序排在一个文本文件里(或者Excel)。有输入参数还需要预处理;
然后指令序列带着修改后的参数(频率范围)的文件,开始向串口通信工具一行一行发送;
读取回来的数据保存在哪里?保存的地方必须具备 相同编号的数据能新数据覆盖旧数据;
数据提取到excel;
数据库:唯一编号,型号,指标参数(频率、带宽1dB、差损、带宽3dB、选择性、远端抑制、驻波),时间日期,,
法子2:把指令集成到程序里。这会增大代码量。但是也避免了指令预处理。法子1更像模块化,但是系统离散,法子2集成度高,代码量大。法子1似乎更好维护,比如某个环节出问题了,预处理做的不对,那我可以再手动执行一次。
SCPI指令预处理是用什么脚本执行呢?VBA?
如果仿造执行程序exe,我还需要学习C# ,编写上位机。如果能VBA交互到串口助手(这方面的知识还没了解多少),就可以直接用VBA脚本发送SCPI指令给串口。
仪器Itself执行vba脚本。这不单单省略了接口通信环节。仪器自己执行脚本自己保存数据。我要做的就是编写脚本文件,以及取出测试数据。