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(弱网络测试)可以模拟出带宽限制.时延.时延抖动.丢包.乱序.重复报文.误码.拥塞等网络状况,在实验室条件下准确可靠地测试出网络应用在真实网络环境中的性能,以帮助应用程 ...
随机推荐
- 集群 & 负载均衡
集群(Cluster) 指一组计算机系统构成一个松耦合的多处理器系统,它们之间通过网络实现进程间的通信,实现分布式计算.在客户端看来就像是只有一个服务器.集群可以利用多个计算机进行并行计算从而获得很高 ...
- 转载:Hadoop安装教程_单机/伪分布式配置_Hadoop2.6.0/Ubuntu14.04
原文 http://www.powerxing.com/install-hadoop/ 当开始着手实践 Hadoop 时,安装 Hadoop 往往会成为新手的一道门槛.尽管安装其实很简单,书上有写到, ...
- 浅入浅出EmguCv(三)EmguCv打开指定视频
打开视频的思路跟打开图片的思路是一样的,只不过视频是由一帧帧图片组成,因此,打开视频的处理程序有一个连续的获取图片并逐帧显示的处理过程.GUI同<浅入浅出EmguCv(二)EmguCv打开指定图 ...
- Ant OOM的问题
ant 编译的问题 Android编译的有时候会报OOM的错误. 可能是Java的堆大小设置的问题 可在 ant.bat 脚本的 @echo off 语句后面添加: set ANT_OPTS=-Xm ...
- WCF服务客户端首页调用慢的问题处理
场景: WCF服务架设于IIS服务中,走TCP协议.客户端首次调用特别慢,第一次加载完后,都正常. 解决: 把服务中需要序列化的模型所在的工程 > 属性 > 生成 > 生成序列化程序 ...
- BizTalk发布WS-Security的web services
最近做个项目,biztalk跟OTM(Oracle Transportation Management)系统做对接,双方通过web services通讯,这部分是BizTalk发布WS-Securit ...
- Spark性能测试报告与调优参数
1.代码中尽量避免group by函数,如果需要数据聚合,group形式的为rdd.map(x=>(x.chatAt(0),x)).groupbyKey().mapValues((x=>x ...
- php 构造函数格式,具体该怎么写?应该注意什么呢?
在PHP里,如果你没有手写构造函数,则php在实例化这个对象的时候,会自动为类成员以及类方法进行初始化,分配内存等工作,但是有些时候不能满足我们的要求,比如我们要在对象实例化的时候传递参数,那么就需要 ...
- 反人类的MyEclipse之-Javascript双引号自动补全
MyEclipse由于在JavaScript中按下一个双引号后会自动把后面的双引号补全.本人习惯两个双引号一起按下,那么这个时候在编辑器里就会出现三个",这样导致代码错误. 今天就因为MyE ...
- Rhino+envjs-1.2.js 在java运行网站js 工具类
java爬虫遇到个页面加密的东西,找了些资料学习学习 做了个java运行js的工具类,希望对大家有用,其中用到client(获取js)可以自行换成自己的client.主要是用了 Rhino就是Java ...