SDH误码仪MP1570A的自动化
MP1570A是日本安立公司的用于SDH测试的误码仪。
1.MP1570A的自动化测试场景和原理
任意测试PC--(telnet)-->测试PC(Tcl Interrupt)-->SIG_Teq_Sdh.tcl-->(GPIB线)-->MP1570A chassis
MP1570A的情况很独特,首先它的chassis内部的软件架构使用的是VISA虚拟仪器软件架构。所以它的chassis没有IP地址,PC无法通过以太网线连接到chassis,只能通过GPIB线连接上去。chassis内部命令使用的是SCPI可编程仪器标准命令。安捷伦的仪表使用的好像都是这一套。
因为我以前都是搞的都是以太网,写这个库真的是从头学习,很费事。虽然工作要求AT的功能不是很复杂,花的时间比前面的多。不过也学习了一个新的领域。收尾原理搞懂以后,以后再扩展就容易的多。
VISA:
虚拟仪器软件架构,是VPP统一制定的I/O接口软件标准和相关规范的总称,这个I/O函数库叫VISA库(用于仪器编程的标准I/O函数库),放置在PC目录下,是PC与仪器之间的标准软件通信接口,实现PC对仪器的控制.它实现了对使用GPIB,VXI,PXI,串口(RS232/485),以太网,USB,IEEE1394等各种接口的仪器进行配置和编程.
VISA大致上分为2种:NI-VISA Agilent-VISA
MP1570A用的是安捷伦的Agilent-VISA驱动
GPIB:
GPIB 通用接口总线,很多外设如一些仪表内置GPIB控制芯片和控制卡.通过GPIB线和GPIB口和control pc连接.比串口的传输速率更高.并且是可编程的
GPIB 同时是HP提出的国际通用的工程控制用协议,IEEE488.为PC机与可编程仪器之间的连接系统定义了电气、机械、功能和软件特性
SCPI:
SCPI(可编程仪器标准指令集,由ASCII字符组成),可用于多种接口如GPIB,VXI,LAN,USB,串口RS232...
它是一个独立于硬件的纯粹软件标准,是一种建立在现有标准IEEE488.1 和 IEEE 488.2 基础上,并遵循了IEEE754 标准中浮点运算规则、ISO646 信息交换7 位编码符号(相当于ASCll编程)等多种标准的标准化仪器编程语言。
具体的SCPI指令集另外介绍,这里就略过了。
总的来说MP1570A的自动化原理类似于Xena,只不过与chassis之间不是通过socket连接,而是通过GPIB线路连接到chassis的VISA地址,下发SCPI命令来操作硬件,并且它没有直观的返回结果和报告,AT的效果不是特别好。
2.MP1570A的AT注意事项
(1)测试PC需要安装Agilent Connection Expect_(安捷伦连接专家安装包),安装agilent Library完毕后,C:/Program Files/目录下会出现Agilent,VISA两个目录。
(2)需要用到Tcl的两个第三方库msgcat.tcl,tcom.tcl&tcom.dll,可以放到自己的包下单独的Library目录下方便移植。包的pkgIndex.tcl文件里写入下面两句:
package ifneeded tcom 3.9 [list load [file join "$dir/Library/tcom" tcom.dll]]\n[list source [file join "$dir/Library/tcom" tcom.tcl]]
package ifneeded msgcat 1.4.1 [list source [file join "$dir/Library/msgcat1.4.1" msgcat.tcl]]
(3)编写的库文件里还要使用tcom库::tcom::import从GlobMgr.dll加载Agilent-VISA库,代码如下:
set AgilentLib "C:/Program Files/VISA/VisaCom/GlobMgr.dll"
# tcom包的::tcom::import命令从.dll类型库里创建新的命令,返回的是namespace名称,也就是该类型库名称
# ::tcom::import $agilentLib 加载agilent库, 执行成功返回: VisaComLib
if {[catch {set ret [::tcom::import $AgilentLib]} rst]} {
puts stderr "$rst:Couldn't read file $AgilentLib for SDH TEQ "
} else {
#VISA中也是使用句柄来作为资源唯一逻辑标识符,长度4个字节
set rm [::VisaComLib::ResourceManager] ;#执行成功返回: ::tcom::handle0x0231F770 建立资源管理器实例
set fmio [::VisaComLib::FormattedIO488] ;#执行成功返回: ::tcom::handle0x0231F6F0 建立设备实例
}
SDH误码仪MP1570A的自动化的更多相关文章
- Memory及其controller芯片整体测试方案(下篇)
{ 第三部分 } DDR总线的设计.调试和验证 在计算机架构中,DDR作为程序运算的动态存储器,面对如高性能计算.图形计算.移动计算.工业应用等领域的要求,发展出DDR4,以及用于图形计算的G ...
- PCIE 3.0中使用的动态均衡概念
一.PCIE 3.0中使用的动态均衡概念 因为PCIE 3.0信号的速率可以达到8Gb/s,而且链路通道走线也可能会很长,这可能会导致高速信号衰减过大,在接收端无法得到张开的眼图.因此在PCIE 3. ...
- Java生鲜电商平台-生鲜售后系统的退款架构设计与代码分享
Java生鲜电商平台-生鲜售后系统的退款架构设计与代码分享 说明:任何一个电商行业都涉及到退货与退款的问题,但是生鲜电商行业还设有一个显著的特点,那就是换货.在人性面前,各种各样的退货,退款,换货的售 ...
- Auty自动化测试框架第五篇——框架内部的调用支持、自动化安装库与配置说明
[本文出自天外归云的博客园] 本次对Auty自动化测试框架做些收尾工作,由于在scripts文件夹中的脚本会需要调用其他包结构文件夹中的脚本,所以这里需要添加一下框架对于内部脚本间互相调用的支持,这里 ...
- 转载:python + requests实现的接口自动化框架详细教程
转自https://my.oschina.net/u/3041656/blog/820023 摘要: python + requests实现的接口自动化框架详细教程 前段时间由于公司测试方向的转型,由 ...
- UTF-8,Unicode,GBK,希腊字母读法,ASCII码表,HTTP错误码,URL编码表,HTML特殊字符,汉字编码简明对照表
UNICODE,GBK,UTF-8区别 UNICODE,GBK,UTF-8区别 简单来说,unicode,gbk和大五码就是编码的值,而utf-8,uft-16之类就是这个值的表现形式.而前面那 ...
- python + requests实现的接口自动化框架详细教程
前段时间由于公司测试方向的转型,由原来的web页面功能测试转变成接口测试,之前大多都是手工进行,利用postman和jmeter进行的接口测试,后来,组内有人讲原先web自动化的测试框架移驾成接口的自 ...
- 网络损伤仪细分市场:eCPRI网络损伤的技术要求
关于“网络损伤仪”的叫法 网络损伤仪,也称作为广域网仿真仪,广域网损伤仪,WAN Emulation,Network Impairment Emulator. 为什么会带WAN广域网这个限定词? 应该 ...
- 国产网络损伤仪SandStorm -- 只需要上下拖拽能调整链路规则顺序
国产网络损伤仪SandStorm(弱网络测试)可以模拟出带宽限制.时延.时延抖动.丢包.乱序.重复报文.误码.拥塞等网络状况,在实验室条件下准确可靠地测试出网络应用在真实网络环境中的性能,以帮助应用程 ...
随机推荐
- fastdfs 安装配置
介绍文档 1.安装 # wget # tar xf download # cd FastDFS/ # ./make.sh 运行文件 有报错信息 compilation terminated. ...
- Java实现多线程的三种方式
Java多线程实现方式主要有三种:继承Thread类.实现Runnable接口.使用ExecutorService.Callable.Future实现有返回结果的多线程.前两种方式启动的线程没有返回值 ...
- Hue
Hue是一个开源的Apache Hadoop UI系统,由Cloudera Desktop演化而来,最后Cloudera公司将其贡献给Apache基金会的Hadoop社区,它是基于Python Web ...
- winform基本控件的使用2(用户登录界面的设计)
首先还是通过例子来讲解,这次的实验主要是使用messageBox的使用方法,关于messageBox的使用方法在我的博客里面有相关的转载,请自己查看,下面说一下实验要求. 功能要求:模拟一个用户登陆的 ...
- OJDBC版本区别 [ojdbc14.jar,ojdbc5.jar和ojdbc6.jar的区别]
http://blog.163.com/jekyll_zhou@126/blog/static/1820473820123206189381/ OJDBC版本区别 [ojdbc14.jar,ojdbc ...
- 一个奇葩的SQL
需求 建表脚本 CREATE TABLE [dbo].[A]( ) NOT NULL, ) NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[B]( ) NOT N ...
- MSSTDFMT.DLL无法注册的解决
今天在使用Windows8的时候,发现了一个问题,当我想执行某个xxx.exe文件的时候,报的问题是MSSTDFMT.DLL无法注册. 但是我的系统又是64位的,那么可以这样操作: 从网上下载一个ms ...
- Android 卡片计数器
该文用英文写的,可以到我的英文博客中阅读.
- zookeeper在集群负载均衡中的应用
zookeeper本身是不提供负载均衡的策略,需要自己来实现,所以这里确切的说,是在负载均衡中应用到了zookeeper做集群的协调. 对于HTTP请求的负载均衡,成熟的解决方案是Nginx(或Hap ...
- 查询01_DML锁和DDL锁的处理
一.摘要 Oracle的手册上关于锁的分类说明如下: 1. DML锁:Date lock.执行DML时保护数据的锁.Row Lock(TX)保护特定行,Table Lock(TM)保护整个表,可以通过 ...