虚拟调试(通用4篇)
虚拟调试 篇1
1 问题的提出
在计算机系统维护课程的教学实践中,发现许多学生对计算机双操作系统的安装过程存在困惑,安装过程的误操作经常造成导致无法寻找到安装系统的启动菜单、甚至导致硬盘引导记录的破坏,对实验用机造成不必的损坏。其实,应用Oracle VM Virtual Box虚拟机软件,完全可以实现在虚拟机平台上对系统安装调试,可以避免因误操作对硬盘的破坏。
此外,对于实验室维护人员 , 尝试对各版本操作系统的调试,在虚拟机上安装也不失为一个很好的选择,因为这样的安装调试,不仅方便快捷,而且还不会对物理主机的硬盘数据造成破坏。对于双操作系统也是一些特殊用户的特殊需求,比如很多人希望在Windows XP上实现软件学习、开发,在Windows7这样友好的操作界面上进行娱乐等。因此我们在系统安装之前,不妨在虚拟机上模仿双系统的安装过程,做到“心中有数”。
2 虚拟机的概念、工作原理和 Oracle VM Virtual Box 简介。
虚拟机(Virtual Machine,VM)最初是由IBM为实现大型计算机系统的安全共享提出的一种计算机分时共享技术,后来被成功的移植到PC领域。虚拟机是物理主机(Host)的一个或多个拷贝,每个拷贝都是完全受保护的独立系统,可以像主机一样运行自己的操作系统和应用软件,通常称为客户机(Guest)。
虚拟机可以理解为 :通过某些软件,在原有计算机系统的硬件和软件基础上,模拟一个完全与之隔离的、完整的计算机系统,这个系统与原有系统的关系是,只能在原有系统基础之上构建,但运行时又与之隔离,不影响原有系统运行的安全性和稳定性。这样的一个虚拟出的计算机系统,称之为“虚拟机”,而相应的运行的物理主机平台也可称之为宿主计算机。我们进行双系统安装调试的虚拟机软件是Oracle VM Virtual Box. 这个软件的优点在于,不必担心对宿主计算机的操作系统和硬件造成破坏。虽然它的功能比VMWare虚拟机的功能少,但优点是更容易进行虚拟机配置、操作简单,掌握容易。很适合初学计算机操作系统安装的学生进行系统调试。
3 Virtual Box 虚拟机的配置过程
在安装调试系统之前,首先要在计算机上安装Virtual Box软件,安装过程与其它软件安装无异,按序点击Next,最后点击Finish按钮,就会进入软件的平台界面。点击界面的左上角“新建”按钮,就可以开始建立一个虚拟机了。这台虚拟机还需要配置模拟硬件,包括选择安装操作系统的版本、虚拟硬盘空间、虚拟内存空间等,特别指出的是 :配置内存容量尽可能不要超过物理内存的一半、以免影响物理主机的运行速度,配置的虚拟硬盘大小,不必要小于实际硬盘的物理空间,比如我们配置一个40GB大小的虚拟硬盘,但物理硬盘空间仅有16GB的大小,也是不会报错的,这是由虚拟机工作原理决定的,虚拟机仅是运行在软件模拟的环境之中,对硬盘空间的占用很小,虚拟硬盘空间不必完全小于物理硬盘空间。按序配置完成后,就会出现如下的平台界面,从窗体右侧可以看到这个软件模拟了一个计算机主要硬件设备、甚至包括网卡、声卡 :(图1)
在完成虚拟机的配置后就可以进行,双操作系统的安装了。
4 双操作系统的安装调试步骤
4.1 文件准备阶段
要准备所需的操作系统光盘或光盘镜像文件。建议初学者可以去msdn.itellyou.cn这个名为“msdn,我告诉你”网站去下载系统镜像文件,因为Virtual Box软件支持 系统镜像 文件。这里下 载了Windows XP专业版和Windows7旗舰版的镜像文件。
4.2 双系统的安装顺序及注意事项
一般进行双系统安装,都是将低版本的操作系统安装在C盘下,将高版本的系统按序安装在下一个分区D:,在计算机启动后就会自动寻找启动文件boot.ini,该文件中会自动配置启动菜单,所以在开机后就能自动出现双系统的启动菜单,用户可以自行选择所要进入的系统菜单条目。但是也有一些初学者在不了解情况下,“倒装了双系统”即C: 下安装了Win7而D :下安装了XP,这样就不会出现双系统的启动菜单情况,如果出现了这种情况,也不必担心,可以在网上下载一些自动修复双系统引导的软件进行修复就可以了,这类修复软的功能就是修复boot.ini文件中的启动菜单。
4.3 XP 系统的安装过程
第一步,启动虚拟机,选择系统镜像文件。
在准备好系统镜像文件后,我们就可以点击窗体上的开始按钮,启动虚拟机。在首次启动虚拟机之后,进入选择安装介质界面,提示选择安装介质。在该界面里我们选择要安装的Windows XP镜像文件。如果是安装过操作系统的读者会联想到,这一步相当于选择系统的安装光盘。
第二步,进入XP安装界面,划分磁盘分区及空间大小。磁盘分区的类型包括 :主磁盘分区、扩展磁盘分区、逻辑磁盘分区。这三者之间的关系是主磁盘分区为系统分区即C:、之外的分区统称为扩展分区,在扩展分区上可以建立逻辑磁盘分区,如D:、E: 等等,并且有严格的划分顺序,必须先划分主磁盘分区,再划分扩展磁盘分区,然后在扩展磁盘分区上建立逻辑磁盘分区。
假设虚拟机硬盘空间为40GB,这里我们划分10GB给C :,剩余30GB空间给D :。因为对于XP系统来说,10GB的空间已经足够,并且保存分区进行磁盘格式化。这一步要设置两个分区的文件系统格式均为NTFS格式,这是因为在XP以上版本的(包含XP)操作系统所建议的文件格式—NTFS格式,具有更优的性能。
第三步,重启虚拟机并开始自动安装Windows XP。在这个安装过程中会有两次自动的重启,第一次重启是将安装文件拷贝至系统分区内,第二次重启是在安装Windows组件和基本驱动程序后的自动重启。初学者只需耐心等待即可。再第二次重启之后,即进入XP桌面并完成XP系统的安装。
4.4 Windows7 系统的安装过程
Windows7的系统安装过程与XP系统安装无异,这里便不再赘述。只是初学者需要注意的是,第一、由于在安装XP之前已经进行了磁盘分区,当然不需要重新进行分区,否则磁盘上的数据便会全部丢失。第二、必须将Windows7系统安装在逻辑分区上,通常为D: 上,切记不要安装在主分区C: 上,否则便会覆盖掉XP系统。在双系统安装完毕后,就会进入启动菜单界面如下,可以随意选择喜欢使用的系统了。(图2)
5 结论
以Oracle VM Virtual Box虚拟机为平台进行双系统安装的优点,主要有以下几个 :一、节省时间。安装系统的时间比直接在计算机上进行安装的时间要短很多。二、安全性高。即使系统安装失败了,也不会对物理主机造成任何的破坏。三、可重复性安装。可重复安装调试,能够反复练习,这样有利于初学者熟悉系统安装调试过程。
虚拟调试 篇2
关键词:操作系统,虚拟机,远程调试,linux0.11内核
1 引言
阅读、修改和增强其源代码是学习和研究操作系统的最好方法,也就是所谓的操作系统实验方法,其中调试环境是操作系统实验环境最重要的组成部分。与应用程序相比,进行操作系统实验要困难得多。主要原因是调试器需要调试的目标正是它所在的运行环境,对调试环境的调试很有可能会影响到本身的运行情况。因此构建操作系统调试环境的关键是实现调试程序所在的环境和调试目标相分离,为此通常调试操作系统采用硬件调试器或远程调试方式。
2 传统的操作系统调试环境
除了使用硬件调试器,传统的操作系统实验环境通常采用远程调试方式来满足调试环境和调试目标相分离的需求。其具体方案如下,首先把一个称为stub的程序插入到待调试操作系统中,经重新编译生成一个具有远程调试功能的调试目标(待调试的操作系统),其中stub程序负责控制调试目标、搜集调试目标的状态信息以及与远程机器进行通讯。然后在另外一台机器上运行gdb程序,因为gdb中内嵌有串口通讯协议,并且规范了远程机器调试命令的一些数据传输包的格式,所以只要调试目标中的stub程序遵守相同的协议和数据包格式,就可以实现远程调试的功能。图1是远程调试方式的示意图。
但是并不是所有的操作系统和版本都提供现成的stub程序,大多数情况下需要自己编程实现,这项工作通常需要熟悉该操作系统的系统程序员来完成,对大多数想通过实验来学习、研究该操作系统的人来说,是不能所能胜任的。考虑到调试器都是通过父进程(或硬件)监控子进程的动作和状态来实现的,要调试操作系统就意味着需要有一个内核的父进程,所以为实现调试环境和调试目标相分离的目的,可将待调试的操作系统在虚拟机上运行,此时虚拟机即为待调试操作系统内核的父进程。
3 基于bochs虚拟机的内核调试方法
bochs虚拟机提供了两种调试方式,当使用内部调试器时,其功能相当于一个硬件调试器,具有极为强大的软件调试能力,可以不受任何限制地调试操作系统的所有部分,包括内存管理、中断处理、设备管理、进程管理、文件系统等等,甚至还能调试系统的启动过程。文中介绍的调试方法是使用内部调试器进行的。
Linux0.11内核作为一个早期的Linux版本, 虽然简陋且没有了使用价值, 但由于它简单以及包含了大量现代Linux的实现原理,所以成为很好的学习和研究操作系统的样本。文中也选择Linux0.11内核作为对象来展示操作系统的调试方法。
3.1 C语言源代码级调试功能的实现
首先在编译操作系统时,除生成正常使用的内核外,再使用-g参数, 生成一个带调试信息的内核副本,该内核副本无须执行,我们只使用它包含的调试信息。然后在gdb中读入内核副本中的符号表,通过这些调试信息就可以方便地获得源代码中每一条语句在运行时的地址和对应的汇编指令。例如要调试main函数,可以在gdb中用命令list m ain,得到m ain函数源代码和对应行号。
如果需要知道trap_init () 语句在运行时的地址和对应的汇编指令,只要使用命令infoline 127,获得该语句运行时的地址:
Line 127 of“init/m ain.c”s tarts at addre s s 0x669f and e nds at0x66a4。
然后使用反汇编命令disassemble 0x669f0x66a4, 获得该语句对应的汇编指令:
同样我们可以获得110行语句ROOT_DEV=ORIG_ROOT_DEV对应的汇编指令和运行时的地址:
通过上述方法,解决了在使用内部调试器时只具有汇编级调试能力的问题,在发挥内部调试器强大的调试功能的同时实现了c语言源码级的调试功能。
3.2 调试系统启动过程
通常系统启动过程时, 还没有任何应用程序或者监控程序,当然也就没有任何基于软件的调试器可用。如果不用硬件调试器的话是无法对启动代码进行跟踪调试的。然而当操作系统在虚拟机中运行时,启动过程作为虚拟机调试器的子进程,它的动作和状态完全处在虚拟机调试器的监控之下,所以在虚拟机中可以实现分析、调试操作系统的启动过程。
x86体系结构计算机的启动过程是:系统加电后,由BIOS中的启动例程把启动盘上引导扇区的数据加载到绝对地址0x7c00-0x7dff处,然后从0x7c00处开始执行引导扇区中的装载程序,继续完成操作系统的装入过程。因此为了跟踪、调试操作系统的启动代码,使用命令pb 0x7c00,在物理地址0x7c00处设置断点。然后键入命令c,让系统继续执行。当系统在断点0x7c00处暂停时,就是我们需要调试的操作系统启动代码的入口。接着可以使用各种调试命令来完成启动代码的调试。
3.3 查看内核工作环境
与DOS和MINIX等工作在实模式下的操作系统不同,linux工作在386保护模式下,使用存储器分页管理机制来实现虚拟存储器。因此在内核进入真正的工作前,还需要进行大量的初始化工作,以此为操作系统的执行建立必要的工作环境,特别是全局描述符表、中断描述符表以及页目录表和页表的设置,决定了整个操作系统的工作过程和方式。了解工作环境的设置,对于理解整个操作系统的工作是至关重要的。
通过源代码可知,当内核把自己转换到用户态,并进入进程0执行时,表示它已经完成了初始化,将进入工作状态。因此可在此暂停程序的执行,以便查看操作系统的初始工作环境。当然查看操作系统工作环境的设置,可以在其初始化完成后的任何时候进行。
查源代码知,断点应该设置在main.c的138行,使用4.1中介绍的方法可以知道该断点的地址是0x66f9,当系统在断点处暂停时,执行查看cpu寄存器命令,得到部分数据如下所示:
第一行显示的是全局描述符表寄存器的值,它说明全局描述符表的起始地址在0x5cb8处, 长度为2K。第二行中断描述符表寄存器的值,给出了中断描述符表的起始地址在0x54b8处, 长度为2K。有了上述的信息后,可接着使用查看物理内存命令pb来获得操作系统运行时全局描述符表和中断描述符表的设置情况。X86体系结构计算机的分页管理机制采用二级页映射方式,第三行控制寄存器CR3的值给出了页目录表在内存中的起始地址在0x0处。执行查看物理内存命令xp/8wx0x0,得到页目录表的部分内容(表的前八项数据):
这些数据中的每一项都给出了对应页表的起始地址及属性,如第一项0x00001027, 就给出了第一个页表的信息,第二项是第二个页表的,依次类推。但从第四项开始值为全0,表示在初始化时只使用了4个页表。有了每个页表的信息后,再次使用物理内存查看命令来查看具体的页表设置情况,以此了解系统中32位线性地址和物理地址的对应关系。
3.4 查看进程
进程管理是操作系统中的一个重要组成部分,同时进程是程序的一次执行过程,分析和研究一个操作系统需要能全面了解其中各个进程的情况。Bochs虚拟机为查看系统各进程提供了最直接的方法。
下面就选择init进程作为对象来说明具体的查看方法,在linux0.11内核中init进程直接由进程0创建,它负责建立终端环境和创建用于运行shell程序的子进程。linux0.11内核是通过全局任务指针数组tas k感知进程的,因此查找进程可以通过它进行,查地址映象文件得到全局任务指针数组task的首地址为0x1a180,使用物理内存查看命令查看地址0x1a180-0x1a1a0的数据,我们例子中的数据如下所示:
从数据中可以看出当前共有4个进程(指针为0表示进程还没有创建),因为init进程直接由进程0创建,且创建时除了进程0还没有其他进程,所以第二项数据就是init进程的TCB指针。再次使用查看内存命令就能获得其TCB的内容,参照TCB结构各成员的偏移量,就可以了解init进程的所有信息,如进程现在的运行状态、任务时间片、优先级信息等等。有了进程TCB结构的信息,仅仅简单地使用内存查看命令,就可以进一步获得其用户态代码段、数据段、堆栈段的设置情况,以及线性地址到物理地址的转换关系。
另外,查看linux0.11中的进程还可以从其全局描述符表入手,使用4.3中介绍的查看操作系统工作环境的方法,获得其全局描述符表设置如下图所示。
从这些数据中可以获得各进程的局部描述符表和任务状态段的设置情况,从而了解进程的用户态代码段、数据段、堆栈段和核心态堆栈段的设置情况。
4 结语
与传统的调试环境相比,虚拟机调试环境更接近于操作系统真实的运行环境,并且不占用任何系统资源。提供了类似于硬件调试器的功能,可以不受限制地对操作系统的各部分进行分析、调试,包括启动过程、底层的系统调用过程、进程的切换过程等等。并且使用简单,只要掌握设置断点、反汇编、查看内存等3个主要命令就可以完成。虽然当前绝大多数虚拟机只能仿真x86体系结构计算机,但是随着技术的发展虚拟机将成为分析、调试操作系统的主要手段。
参考文献
[1]李善平, 刘文峰.Linux内核2.4版源代码分析大全[M].北京:机械工业出版社, 2002.
[2]Kevin Lawton, Bryce Denney.Bochs user Manual[EB/OL].http://bochs.sourceforge.net, 2005.
[3]Gray Nutt.操作系统现代观点[M].北京:机械工业出版社, 2004.
虚拟调试 篇3
变电站综合自动化系统能够实时的反应一次、二次设备运行情况,是生产、调度、管理人员必不可少的重要技术手段。国内外电力企业都在积极地致力于规范检验方法, 研制检测装置, 探索高效、实用的现场检验手段, 以提高变电站综合自动化系统的健康运行水平。
目前,国内厂家生产的通用性综合自动化系统检测装置有:北京博电提供的L336型综自系统测试装置、南京丹迪克生产的DK-51测试仪及长沙永程公司生产的RTS-100A测试仪等。这些测试装置功能大同小异,普遍存在以下特点:
1 .硬件电路采用模块化设计, 可根据用户的要求进行灵活的组合。
2.多采用DSP高速处理器,速度快、精度高。
3.功率放大器不经变压器输出,暂态响应好、可靠性高、线性度好。
4.可以将符合C O M T R A D E (美国电力系统暂态数据交换标准)格式文件的数据还原成与文件数据波形完全一致的模拟量输出,再现实际系统中的暂态数据波形。
上述检测装置虽然在运算速度、测试精度、运行可靠性上满足测试要求, 但在实际使用过程中发现, 检测调试设备仍然存在着一些问题,如在通道不具备的情况下,无法实现主站与厂站间联调、数据网联调和规约解析等功能。本文阐述的移动式综合自动化虚拟调试系统为面向调度自动化主站系统及变电站综合自动化系统的专业测试分析系统,可实现对变电站综合自动化系统功能、性能及可靠性的全面测试,保证系统的建设质量, 也可为调试和运行维护提供便利。
长期以来,对变电站综合自动化系统进行测试一直停留在简单、不科学的水平,用户对系统的真实性能的了解只能停留在厂家提供的技术手册上。移动式综合自动化虚拟调试系统具备了虚拟主站和厂站、虚拟调度数据专网及规约分析等功能,可全面解决系统在投入实际运行前因缺乏必要及完备的工具模拟现场正常运行和事故状态下的运行环境[1],而无法进行有效、可靠测试的问题。同时,使用该虚拟调试系统对现行的变电站综合自动化系统进行定期测试, 可及早发现隐患, 采取应对措施。
2 系统的主要功能与特点
移动式综合自动化虚拟调试系统可安装于笔记本电脑或台式机中,通过IP网络接口实现对主站系统和变电站综合自动化系统功能及性能的测试分析。测试时各系统和设备的连接如图1所示。该虚拟调试系统能够对S O E分辨率和系统遥测、遥信、遥控响应时间等进行检测,能够实现遥信变位和遥测突变虚拟上传及规约分析,并能够对系统遥信风暴和雪崩状态处理性能进行测试[2、3]。
2.1 虚拟厂站功能
在虚拟厂站功能中,系统主要在高精度信号源和标准表的功能基础上,扩展时钟同步、多路开出、网络通信等功能模块,在测试调度自动化主站系统时, 调试系统可根据需求模拟单个子站与被测的主站进行通信。可虚拟实现的子站功能为: 虚拟产生遥测量、遥信量、事件顺序记录(SOE)数据和遥控、遥调的返校和执行过程。能够对系统遥信风暴和雪崩状态处理性能进行测试,遥测量的取值范围及变化方式、遥信量的变化频率及方式、SOE数据的产生方案及所采用的通信规约种类均可自由定义, 各类数据的变化时间和数据、规约报文也有详细记录, 从而达到对调度自动化主站系统的规约解析、数据处理等各功能模块的正确性、有效性进行测试的目的。系统针对不同类型的现场检验分别提供相应的标准检验程序,能够大大提高现场测试的规范化和自动化水平。
2.2 虚拟主站功能
在虚拟主站功能中, 在测试变电站自动化系统时, 该调试系统可模拟主站, 按照设定的规约与被测的子站进行通信。可模拟实现的主站功能: (1) 实时数据接收及命令下发。模拟产生遥控和遥调操作, 可人工发送自定义的命令报文并对报文进行跟踪与分析; (2)历史数据记录。对接收到的子站实时数据进行时间间隔为3s的历史数据记录。 (3) 通信内容的监视与记录。利用以上功能即可对子站系统的时效性、数据的正确性如遥信响应时间、遥测响应时间、遥测精度、遥控响应时间和SOE准确度等进行测试。解决了变电站自动化系统在建设期间由于通道问题无法进行自动化系统实际联调的问题, 节约了自动化系统的调试时间, 可为变电站综合自动化系统的调试提供便利条件。
由于虚拟主站功能是由虚拟调度数据专网与虚拟主站软件组合,形成的虚拟主站系统。在接入调度数据专网时,必须确保接入数据网设备与调度数据网已完全断开,否则会造成全网IP地址冲突。
2.3 虚拟调度数据专网功能
虚拟调度数据专网功能是开发针对220k V变电站和66k V变电站不同数据网的互联,在虚拟核心路由器上根据电力调度数据网的实际情况编制路由表。从而达到在不更改二级、三级数据网接入路由器配置的情况下虚拟核心路由器模拟汇聚路由器并且均能与其建 立连接,实现了虚拟主站软件与厂站端设备的通信。虚拟主站和虚拟厂站功能也是在通过虚拟调度数据网建立连接的基础上发送和解析上行信息与下行信息的报文实现的。
变电站实际运行的数据网网络工作原理为三级数据网内实时业务和非实时业务通过实时V P N通道和非实时VPN通道在三级数据网内传输;二级数据网内实时业务和非实时业务通过实时VPN通道和非实时VPN通道在二级数据网内传输。二三级数据网间通讯时,BGP动态路由协议将业务数据通过调度主站的华为NE16路由器和中兴T128核心路由器传输到对端网络。为了在厂站端完成调度主站的数据网间传输功能,我们经过多次试验最后设计用三级数据网内实时业务和非实时业务通过实时VPN通道和非实时VPN通道在三级数据网内传输;二级数据网内实时业务和非实时业务通过实时VPN通道和非实时VPN通道在二级数据网内传输。三级数据网和二级数据网共用相同的汇聚层路由器后,三级数据网的实时业务和非实时业务通过汇聚层路由器与二级数据网实时业务和非实时业务直接通讯,简化了网络结构,减少了数据传输环节,实现了在厂站端的二级、三级数据网互联。
虚拟调度数据专网能通过与原故障数据网设备做整体或局部的仿真替换与检测,达到检测数据网运行状态、助查故障的目的,彻底解决了因设备故障、突发性灾难事故等原因造成与主站数据网长时间中断问题。
2.4 规约解析功能
在规约解析功能中,由于远动信息的规约种类繁多, 即使采用同一标准的规约, 实际应用中也会在帧结构、信息字组合等方面存在差异。移动式综合自动化虚拟调试系统可支持IEC60870-5-101、IEC60870-5-104、CDT等多种远动规约, 并可对规约的参数进行灵活设置。接入远动信息后, 调试系统即可作为主站监视各通道传送到主站的信息报文或从主站下发到子站的报文。系统还可提供各种规约的标准配置测试模块及规约的单步调试功能, 可对通信内容进行实时翻译和错误统计, 在人机界面上以不同颜色区分上、下行报文内容及显示遥信实时信息和遥测一次值。调试人员无需关心通信内容的真正涵义, 即可进行规约测试。所有通信内容均可作为历史记录保存, 供调试人员进行各种分析。
3 实际应用情况
(1)襄平220k V变电站综合自动化系统新建工程的应用。使用该虚拟调试系统模拟了设计接入的主站和实时数据量,不仅对新系统的各项功能及性能指标进行了全面测试,还模拟电网事故情况下的遥信风暴和雪崩试验测试, 使新系统隐藏的问题和缺陷得以及时发现, 有效减少了系统投运后的安全隐患。
(2)耿家220k V变电站无人值班改造工程中的应用。利用该虚拟调试系统的虚拟主站功能,在变电站自动化系统的改造中完成了大量的调试和试验工作,如规约调试、遥控试验等,并对改造后的系统进行了确认测试和性能指标测试。既避免了调试过程中对主站系统的影响,也确保了远动信息准确无误地接入主站系统。
(3) 在设备异常处理过程中。2 0 1 3年3月兰家220k V变电站66k V兰山甲线定检传动过程中,发现模拟线路永久故障时,丢失开关位置合位遥信报文。在使用虚拟调试系统的规约监测及分析功能后,再次模拟故障后发现变电站主控单元重复帧传输时间间隔定义有误, 在更改传输速率时间间隔后故障消除, 保证了变电站综合自动化系统的正常运行。
4 系统功能的展望
移动式综合自动化虚拟调试系统作为一个灵活方便、功能齐全、操作简便的测试工具, 满足了对自动化主站及厂站的虚拟功能、通信规约及调度数据专网进行专业化、标准化测试和分析的要求。该虚拟调试系统不仅可应用在变电站综合自动化领域, 对于TMR远方抄表与计费系统、D M S配网自动化系统、A G C自动发电控制系统等多种涉及信息传输与处理应用的领域都有广泛的应用前景。在今后的研究工作中, 我们将在该系统上进一步实现对于调度自动化高级应用软件如S E状态估计、N A网络拓扑、A V C无功优化等模块的测试及CIM公用信息模型的互操作性测试[4,5]。
5 结束语
移动式综合自动化虚拟调试系统投入使用后,系统简洁实用, 操作便捷, 在变电站综合自动化系统的新建及改造工程中发挥了重要的作用,并在快速判断变电站综合自动化系统、通信系统故障,解决运行中出现的异常事故的基础上, 对专业技术人员技能和效率的提高、二次系统与一次系统的同步投运具有重要意义。
摘要:本文主要介绍移动式综合自动化虚拟调试系统的主要功能和实现方式。该虚拟调试系统使用简单,功能完善,实用性强,能够实现虚拟主站、虚拟厂站、虚拟调度数据网及规约解析四大功能。实际应用表明,该系统在变电站综合自动化系统的新建、改造工程及运行维护中均起到了重要作用,具有很好的推广前景。对提升专业人员的技术水平,确保电网安全和可靠运行具有重要作用。
虚拟调试 篇4
虚拟演播室系统相对于传统演播室系统, 在硬件设备方面, 主要增加了摄像机跟踪系统、场景渲染系统和色键系统这三个主要系统, 在虚拟演播室中, 摄像机跟踪系统实时生成了摄像机的位置参数、运动参数及镜头参数, 提供给场景渲染系统来生成与前景三维透视关系一致的场景画面, 并最终将摄像机图像和场景图像在色键系统中进行合成, 形成虚实结合的视频图像, 这三个系统的性能直接决定了合成图像的效果。
解放军电视宣传中心2010年建设完成了一套三讯道全红外高清虚拟演播室系统。其虚拟系统部分由ORAD傲威公司设计搭建, 使用了该公司的XYNC全红外摄像机跟踪系统, HDVG场景渲染服务器等。这套虚拟演播室系统是通过红外摄像头和摄像机镜头数据盒将采集到摄像机跟踪数据, 提供给HDVG渲染服务器进行场景渲染生成, 图像在Ultimatte11高清色键器中合成, 形成节目信号。
这套演播室虚拟系统是使用目前很多先进的虚拟演播室技术, 特别是全红外摄像机跟踪系统, 代表了目前摄像机跟踪系统的一个发展方向。下面阐述一下该摄像机跟踪系统的搭建、调试及校准定位的过程, 供同行参考。
解放军电视宣传中心配置的一套三讯道全红外高清虚拟演播室系统, 采用的是ORAD的Xync全红外摄像机跟踪系统。该系统是在两台三脚架机位的摄像机上安装环形红外发射器, 一台摇臂式摄像机上安装星型红外发射器, 在演播室内安装32个红外摄像头进行红外拍摄, 系统设有4个图像处理单元 (Image Unit) , 每一台负责接收8个红外摄像头传来的红外图像数据, 再经由以太网将这些数据发送到Xync系统主机 (Main Unit) 进行数据处理。最后通过三角测量, 探测到发射器上红外发射器的的状态, 包括3个位置参数 (X、Y、Z) , 3个角度参数 (摇移Pan、俯仰Tilt、倾斜Roll) 。
同时, 齿合在摄像机镜头上的增量式旋转传感器, 实时地接收来自镜头的聚焦 (Focus) 、变焦 (Zoom) 的信息, 传回给摄像机镜头数据盒 (X-Halo Box) 。由镜头数据盒将获取的模拟的镜头跟踪数据转换成数字信号通过RS422数据线传送到系统主机 (Main Unit) 进行数据处理。
这样, 加上红外摄像头获取的6个运动参数, 总计8个运动参数。它们在系统主机 (Main Unit) 中通过一系列的法则运算和数据分析, 被计算出的每个变量的数值, 再通过网络将最终的摄像机运动参数数据传送到场景控制单元 (控制PC) 及图像渲染单元 (HDVG) 中进行图形渲染。
其基本框图如图1。
下面, 我们按全红外摄像机跟踪系统的安装流程, 对该系统中的主要设备的安装、调试逐一地介绍。
一红外发射装置的安装
摄像机红外发射装置分两种, 一种是用于三脚架机位使用的环形发射器, 见图2, ;一种是用于摇臂或肩扛的星型发射器, 见图3。
图中可以看到, 环形发射器和星型发射器上都有多个红外发射点, 以供摄像头拍摄进, 将这些红外发射点在红外摄像头中的成像, 经过数据分析计算, 得出发射器的位置和状态, 从而推算出摄像机 (X、Y、Z) 和 (Pan、Tilt、Roll) 。二者不同之处在于, 环形发射器不能提供摄像机Roll参数, 这与它的红外发射点的平面分布有关。
在选择红外反射器安装位置时, 需要考虑两个问题:即其在摄像机承托设备上的平衡问题和保持与摄像机运动的联动问题。为满足这两点要求, 在安装时要仔细选择位置, 特别在摇臂安装星形红外发射器时, 我们安装的位置在摇臂摄像机的一侧, 通过机械加工的铁板进行连接和固定 (见图3) 。
在安装时, 保持摄像机和发射器的稳定连接也很重要, 这会直接影响到系统使用实时传送的摄像机空间位置 (X、Y、Z) 数据的准确性。安装完成后, 需要确定红外发射器和摄像机中心的相对位置, 提供给跟踪系统的软件用于计算。
二红外摄像头的安装
在安装之前, 我们要了解红外摄像头的一些物理属性。本系统内的红外摄像头最佳拍摄距离为3M~5M, 拍摄角度约为60度。然后, 我们根据摄像机的最大活动范围和主要活动位置, 确定好红外跟踪区域范围, 并对红外摄像头进行安装。在摄像机主要活动区域中, 安装的密度要有所侧重。布置好红外摄像头的初步位置后, 通过摄像头安装云台进行方向和角度的调整, 使红外摄像头尽可能的保证全方位拍摄到更广空间的红外图像。总之, 安装分布的基本原则就是要充分照顾好摄像机活动区域范围的红外拍摄效果, 以保证摄像机在此区域内跟踪的稳定性。
在初步安装后, 将演播室四周 (包括玻璃窗和所有反光的物体) 用黑布遮挡, 确保演播室跟踪空间内没有反射光点的干扰。将演播室摄像机活动的跟踪区域划分成米字形的8个三角区域, 然后用一台装有红外发射器的摄像机进行初步测试。进行的步骤是将测试摄像机沿每个三角区域的三边来回移动, 然后在后台的跟踪软件中观察。为了保证跟踪的可靠性, 每个空间位置上可以拍摄到摄像机上红外发射器的摄像头个数需要在三个以上, 若不足, 需要进一步调整红外摄像头的位置及角度。
一般来说根据主观的观察进行安装, 先要尽量保证没有盲区 (即摄像机至少同时被3台以上红外摄像头覆盖) , 然后再做进一步的微调定位。
三增量式传感器及摄像机数据盒 (X-Halo Box) 的安装与连接
两个增量式旋转传感器通过电缆线分别连接到摄像机数据盒 (X-Halo Box) 正面板的Zoom和Focus端口 (见图7) , 跟踪变焦和聚焦的传感器附在每个镜头上与齿轮咬合 (见图6) , 实时地接收来自镜头的zoom、focus的信息, 传回给X-Halo Box。
数据盒安装相对简单, 找好三脚架或摇臂的平衡点安装固定即可。前后面板接口见图7。
四摄像机跟踪系统的安装布线、及设备连接与设置
红外摄像头通过VGA电缆线连接到图像处理单元 (Image Unit) , 每个图像处理单元 (Image Unit) 负责接收8个红外摄像头传来的红外图像数据。根据红外摄像头安装位置, 进行布线。因红外摄像头位置在灯光设备层, 会与灯光信号线和电源线距离不远, 在条件允许情况下, 建议安装在金属线槽内, 保证信号不受到干扰。
摄像机镜头数据盒 (X-halo Box) 通过RS422电缆连接到主机的RS422主端口, 用以传送摄像机镜头参数。镜头数据盒 (X-halo Box) 的数据线和电源根据摄像机位置而定, 最好与摄像机缆线捆绑联接, 有便于摄像机机位调整。
主机 (Main Unit) 和4个图像处理单元 (Image Unit) 的Internal Network端口通过路由器连接在同一网关中;主机 (Main Unit) 的Global Network端口通过另一路由器与渲染单元 (HDVG) 及控制单元 (控制PC) 连接, 传送运算分析出的每个摄像机参数数据用于场景实时渲染, 有关设备的安装和网络部分的布线, 根据现场情况按照基本的施工要求处理即可。
通过以上步骤, 整个摄像机跟踪系统的安装和布线就基本完成了, 但为保证系统的运行稳定和跟踪准确, 还需要对系统进行基本的设置、校准和定位。因为跟踪系统的设置与生产厂家的硬件和软件有关, 这里不做具体说明, 下面主要说明一下解放军电视宣传中心的全红外跟踪系统的校准与定位。
五全红外摄像机跟踪系统的校准与定位
虚拟演播室进行校准与定位的目的是要确保真实三维空间, 虚拟三维空间和真实视点与虚拟视点之间的正确关系。
真实视点是演播室三维空间里摄像机的视点, 其可由八个参数描述这个视点的运行情况。包括3个摄像机位置参数 (X、Y、Z) 、3个摄像机角度参数 (Tilt、Pan、Roll) 和两个摄像机镜头参数 (Zoom、Focus) , 它用数据描述了摄像机在演播室是如何拍摄的。虚拟视点是指在虚拟的三维空间中的虚拟摄像机视点, 使它可以从不同角度拍摄虚拟场景, 虚拟视点的运动参数是受控于真实视点的运动参数, 所有这些真实场景摄像机的运动参数必须以场频的速度连续不断地采集, 再将采集到的数据输入到图形工作站, 实时控制虚拟视点的运动变化, 使虚拟场景的观察角度和位置与演播室真实视点对前景的观察角度和位置完全一致, 以保证虚拟场景与真实前景景物的同步运动。
定位是将计算机生成的三维背景与摄像机拍摄的前景准确地进行匹配的过程, 即是把虚拟场景与真实空间进行匹配的过程, 其中包括了在各自空间运行的摄像机视点的匹配。
下面从红外摄像头空间相对位置的定位、摄像机镜头及角度变换的校准、摄像机镜头位置测量以及对跟踪系统初始化方面进行一一介绍。
1. 红外摄像头空间相对位置的定位
使用跟踪软件对红外摄像头进行微调定位。打开有红外摄像头拍摄记录功能的软件, 在摄像机工作区域内, 一人手持用于调试的白炽校准灯 (见图11) , 一边走一边保持校准光镜头与地面水平, 以缓慢的步速在演播室拍摄区域内横向来回行走一遍, 确保走完整个拍摄区域, 然后再纵向来回行走一遍, 同时确保走完整个拍摄区域。为了达到最佳效果, 在行走时, 尽量伸展手臂, 摇转用于校准的白炽灯, 摇转中尽量扩大范围, 充分覆盖到摄像机的最低工作高度和最高工作高度。行走完后, 使用跟踪软件对记录的红外图像进行分析, 每台红外摄像头的记录数据必须有2000点以上才为合格 (见图12) 。软件将判别出不符合要求的摄像头, 这就需要对该摄像头进行调整。调整的过程即上述过程的重复, 直到所有红外摄像头都符合测试要求。
在确定了红外摄像头的安装位置和角度后, 要做的是确定摄像头在真实与虚拟空间中的相对位置。具体操作主要分两步:首先, 将调整摄像头位置角度时使用的白炽灯固定在一个平板车上, 在整个拍摄区域内来回拖动;然后, 在设定的虚拟空间原点 (原点定义见注) 的纵向延长线上设置被测定位置的几个点, 依次点亮白炽灯。然后将白炽灯点亮处的纵向坐标位置 (以设定的坐标原点为基准) 等相关数据输入到跟踪软件进行运算即可。
2. 摄像机镜头参数的校准
由于镜头的光学参数与理想参数的偏差, 而且摄像机镜头在变焦和聚焦时是非线性运动, 所以调试系统前需要对镜头进行校准, 以保证虚拟摄像机的镜头视点也按照真实镜头的光学特性变化而变化。这是一个比较复杂的过程, 简单地说是根据摄像机成像的径向约束条件用全面最小二乘法 (TLS) 估算出的一条理论参数曲线与计算机采集到的摄像机参数进行优化后用非线性迭代法生成的一条校准参数曲线相综合, 最终作为摄像机的运动曲线。摄像机PAN、TILT、ROLL的校准过程与镜头校准过程原理相同。
3. 摄像机镜头与红外发射器相对位置测量
摄像机镜头的相对位置根据安装红外发射器类型的不同选择的中心点位置也不同。安装环形发射器的摄像机, 需要用水平仪及卡尺测量镜头光轴与俯仰底座中心轴之间的垂直距离, 及中心轴与成像平面之间的垂直距离, 并把测量出的数值输入校准软件, 设置X、Y和Z轴的偏移。测量这些数值的目的就是让计算机感知摄像机及其镜头的位置及相对关系。对于安装星形发射器的摄像机, 发射器中心体的中心选为中心点以此进行镜头位置的测量。
4. 对摄像机数据盒的初始化操作
摄像机数据盒 (X-Halo Box) 上设有2个复位按钮, 用来重置硬件。为了使系统能够知道摄像机相对于演播室空间的准确方位, 每次使用虚拟演播室时都要在系统运行前对摄像机数据盒进行初始化操作。过程大致如下:将摄像机放置在红外接受网络良好的位置, 镜头对向演播室蓝箱正面墙上, 将镜头焦距拉至最远, 聚焦无穷远, 此时同时按下摄像机数据盒 (X-Halo Box) 上的2个复位按钮3秒以上, 完成对摄像机数据盒的初始化操作。
六结束语
以上是解放军电视宣传中心所使用的虚拟演播室全红外摄像机跟踪的搭建、安装和调试情况。该系统运行一年多, 系统稳定, 一直保证着几个栏目的日常录制。前不久, 我们进行了检测, 系统功能完好, 跟踪系统未出现明显偏移。
摘要:本文通过对虚拟演播室全红外摄像机跟踪系统中红外发射装置、红外摄像头、系统主机 (Main Unit) 及周边硬件设备的布线、安装与调试的介绍, 及对全红外摄像机跟踪系统的校准与定位的阐述, 简单展示了整个全红外摄像机跟踪系统硬件部分的搭建与调试过程。