scpi编程实例c语⾔,基于C#的可编程仪器标准命令(SCPI)实
践(附源代码)
基于C#的可编程仪器标准命令(SCPI)实践 (附源代码)
SCPI 概述
SCPI于1990与IEEE 488.2协议⼀起⾯世。这套标准定义了可⽤于控制⼀切仪器的语法,命令结构以及数据格式。⽐如,通⽤的命令,如配置仪器参数的命令CONFigure,测量命令MEASure等。这些命令可⽤于任⼀仪器,并且同⼀类的命令属于同⼀⼦系统⾥。SCPI同时也定义了若⼲仪器的种类。⽐如,任何可控制的电源都会实现DCPSUPPLY基本功能类型。仪器的类别规定了它们会去实现什么样的⼦系统,当然也包括针对仪器的特定功能。
需要注意的是,SCPI并未定义物理层的传输信道的实现⽅法。虽然上⽂指出它最开始是和IEEE 488.2(即GPIB)⾯世的,但SCPI控制命令也可⽤于串⼝(RS-232),以太⽹,USB接⼝,VXIbus等若⼲硬件总线。
SCPI命令S是ASCII字符串,通过物理传输层传⼊仪器。命令由⼀连串的关键字构成,有的还需要包括参数。在协议中,命令规定为如下形式:CONFigure。在使⽤中,即可以写全名,也可以仅写仅包含⼤
写字母的缩写。通常仪器对于查询命令的反馈也为ASCII代码。在传输⼤量数据时,⼆进制数据也是可以使⽤的。
SCPI 语法格式和命令的使⽤⽅式
改变仪器运⾏状态的set操作(打开/关闭电源输出),或者查询仪器状态的query操作(例如读取输出电压值)。查询命令⼀般以问号(?)结尾。有些命令即可以⽤来设置,也可以⽤来查询仪器。
相似的命令可以被归类成⼀种层状或树状结构。例如,任何读取仪器测量结果的命令均可以MEASure开头。特定的⼦命令以冒号同上级命令分隔开。例如,测量直流电压会是这样的形式:MEASure:VOLTage:DC?,或者测量交流电流会是这样的形式:
MEASure:CURRent:AC?。
有些命令需要额外的参数。参数⼀般跟在命令的后⾯,以空格隔开。例如,将某个仪器的触发模式设为normal的命令可写为:编程语言下载
TRIGer:MODe NORMal。上述命令⾥NORMal即为参数。
缩略命令:可以只发送命令名中的⼤写字母部分。例如,命令SOURce:CURRent:PROTection:LEVel
20.000, 设置 OCP 电源过载保护为20A,缩略命令 可写为:SOUR:CURR:PROT:LEV 20.000(仅需⼤写字母)
程序设计实例
整个程序的设计是在固为(GW INSTEK) PSW-系列 多量程可编程开关直流电源 (PSW 30-108) 上进⾏完成的。 程序同样⽀持其它遵守SCPI标准命令的可编程仪器。
关于可编程开关直流电源 (PSW 30-108)的更多信息可以点击这⾥
C# 流程图
程序屏幕截图
这是原创代码!如需引⽤请注明出处