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. statsd+graphite

    一些观点: Statsd:一个nodejs的客户端,用于向graphite的收集器发送数据,使用各类编程语言的客户端响起发送timer,counter等统计数据后,其通过udp定时向graphite发 ...

  2. 用 windows GDI 实现软光栅化渲染器--gdi3d(开源)

    尝试用windows GDI实现了一个简单的软光栅化渲染器,把OpenGL渲染管线实现了一遍,还是挺有收获的,搞清了以前一些似是而非的疑惑. ----更新2015-10-16代码已上传.gihub地址 ...

  3. Ubuntu14.04+Beanstalkd1.9最佳实践

    目录 [TOC] 1.基本概念 1.1.什么是Beanstalkd?   Beanstalkd 是一个轻量级消息中间件,它最大特点是将自己定位为基于管道 (tube) 和任务 (job) 的工作队列. ...

  4. Oracle索引碎片检查及定期重建常用表的索引

    背景说明: 今天查阅书籍时,偶然间发现“在对某个索引行执行删除操作时,只是为该行增加了一个删除标记,这个索引行并不会释放它的存储空间,Insert产生的新的索引行也不能被插入到该位置.索引列的修改过程 ...

  5. [Linux] -Docker修改空间大小

    Docker默认空间大小分为两个,一个是池空间大小,另一个是容器空间大小. 池空间大小默认为:100G 容器空间大小默认为是:10G 所以修改空间大小也分为两个: 这里使用centos下的yum进行安 ...

  6. windows下IIS+PHP解决大文件上传500错问题

    linux下改到iis+php后,上传大于2M就出500错,改了php.ini中的upload_max_filesize也不行,最后解决如下: 第一步:修改php.ini 上传大小限制 (以上传500 ...

  7. LeetCode "Wiggle Subsequence" !

    Another interesting DP. Lesson learnt: how you define state is crucial.. 1. if DP[i] is defined as, ...

  8. win10怎么取消登录密码

    win10安装后每次登录都需要输入密码,挺烦的,查了下,原来windows10无密码登录设置挺方便. 1. 按下win+x组合键,如下图所示 2. 在弹出菜单选择运行,如下图所示 或者直接按win+r ...

  9. ruby中tes-unitt数据初始化方法整理

    在用ruby做测试时,很多时候需要一些数据初始化以及事后的数据恢复还原之类的操作,下面整理了这些方法.require "test/unit" class TestAnion < ...

  10. iis网站发布相关问题

    最近在公司的服务器上发布了一个简单的web应用,整个做下来到上线用了将近2天时间,期间出现了各种问题,现在发出来供大家参考: 1.iis上发布后出现访问网站,出现“IIS服务器被配置为不列出此目录的内 ...