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的自动化的更多相关文章

  1. Memory及其controller芯片整体测试方案(下篇)

    {  第三部分  }  DDR总线的设计.调试和验证  在计算机架构中,DDR作为程序运算的动态存储器,面对如高性能计算.图形计算.移动计算.工业应用等领域的要求,发展出DDR4,以及用于图形计算的G ...

  2. PCIE 3.0中使用的动态均衡概念

    一.PCIE 3.0中使用的动态均衡概念 因为PCIE 3.0信号的速率可以达到8Gb/s,而且链路通道走线也可能会很长,这可能会导致高速信号衰减过大,在接收端无法得到张开的眼图.因此在PCIE 3. ...

  3. Java生鲜电商平台-生鲜售后系统的退款架构设计与代码分享

    Java生鲜电商平台-生鲜售后系统的退款架构设计与代码分享 说明:任何一个电商行业都涉及到退货与退款的问题,但是生鲜电商行业还设有一个显著的特点,那就是换货.在人性面前,各种各样的退货,退款,换货的售 ...

  4. Auty自动化测试框架第五篇——框架内部的调用支持、自动化安装库与配置说明

    [本文出自天外归云的博客园] 本次对Auty自动化测试框架做些收尾工作,由于在scripts文件夹中的脚本会需要调用其他包结构文件夹中的脚本,所以这里需要添加一下框架对于内部脚本间互相调用的支持,这里 ...

  5. 转载:python + requests实现的接口自动化框架详细教程

    转自https://my.oschina.net/u/3041656/blog/820023 摘要: python + requests实现的接口自动化框架详细教程 前段时间由于公司测试方向的转型,由 ...

  6. UTF-8,Unicode,GBK,希腊字母读法,ASCII码表,HTTP错误码,URL编码表,HTML特殊字符,汉字编码简明对照表

    UNICODE,GBK,UTF-8区别 UNICODE,GBK,UTF-8区别    简单来说,unicode,gbk和大五码就是编码的值,而utf-8,uft-16之类就是这个值的表现形式.而前面那 ...

  7. python + requests实现的接口自动化框架详细教程

    前段时间由于公司测试方向的转型,由原来的web页面功能测试转变成接口测试,之前大多都是手工进行,利用postman和jmeter进行的接口测试,后来,组内有人讲原先web自动化的测试框架移驾成接口的自 ...

  8. 网络损伤仪细分市场:eCPRI网络损伤的技术要求

    关于“网络损伤仪”的叫法 网络损伤仪,也称作为广域网仿真仪,广域网损伤仪,WAN Emulation,Network Impairment Emulator. 为什么会带WAN广域网这个限定词? 应该 ...

  9. 国产网络损伤仪SandStorm -- 只需要上下拖拽能调整链路规则顺序

    国产网络损伤仪SandStorm(弱网络测试)可以模拟出带宽限制.时延.时延抖动.丢包.乱序.重复报文.误码.拥塞等网络状况,在实验室条件下准确可靠地测试出网络应用在真实网络环境中的性能,以帮助应用程 ...

随机推荐

  1. 在Linux操作系统下备份恢复技术的应用 转自https://yq.aliyun.com/articles/50205?spm=5176.100239.blogcont24250.9.CfBYE9

    摘要: 安全防护:在Linux操作系统下备份恢复技术的应用  原文参见:http://linux.chinaunix.net/techdoc/system/2005/12/19/925898.shtm ...

  2. 基于Netty的私有协议栈的开发

    基于Netty的私有协议栈的开发 书是人类进步的阶梯,每读一本书都使自己得以提升,以前看书都是看了就看了,当时感觉受益匪浅,时间一长就又还回到书本了!所以说,好记性不如烂笔头,以后每次看完一本书都写一 ...

  3. UTF-8编码的字符串拆分成单字、获取UTF-8字符串的字符个数的代码及原理

    一.字符编码简介 1. ASCII码 在计算机内部,所有的信息最终都表示为一个二进制的字符串.每一个二进制位(bit)有0和1两种状态,因此八个二进制位就可以组合出256种状态,这被称为一个字节(by ...

  4. union和union all的区别

    UNION 写一篇联合查询(把前后两个表的查询结果集合在前表中)首先有个为什么需要 相同记录数?? 记错了.应该是union两张表的查询字段数目要一致,字段类型要相似相同的数据类型,至少是相似,可转化 ...

  5. 选盘秘籍:用户如何选择SSD/SATA/SAS?

    先学习下一些专业词汇 IDE (Integrated Drive Electronics) 电子集成驱动器 它的本意是指把"硬盘控制器"与"盘体"集成在一起的硬 ...

  6. oracle中找出某个字段中有非数字型的记录

    工作中遇到一个大表记录中有非法非数字字符,不想用正则语法去做, 用一条SQL语句查出来的方法如下: select * from table where translate(col,'*01234567 ...

  7. oracle之集合操作函数---minus、union、intersect

    集合操作符专门用于合并多条select语句的结果,包括:UNION,UNION ALL,INTERSECT,MINUS.当使用集合操作函数时,需保证数据集的字段数据类型和数目一致. 使用集合操作符需要 ...

  8. (Xaml) Type 'DeviceA' is not defined.

    修改了一些Xaml, 始终提示 Compiler error(s) encountered processing expression "deviceA.B".Type 'Devi ...

  9. SparkSQL(源码阅读三)

    额,没忍住,想完全了解sparksql,毕竟一直在用嘛,想一次性搞清楚它,所以今天再多看点好了~ 曾几何时,有一个叫做shark的东西,它改了hive的源码...突然有一天,spark Sql突然出现 ...

  10. HDU 1754 I Hate It(线段树单点替换+区间最值)

    I Hate It [题目链接]I Hate It [题目类型]线段树单点替换+区间最值 &题意: 本题目包含多组测试,请处理到文件结束. 在每个测试的第一行,有两个正整数 N 和 M ( 0 ...