-基于VB语言的工控机-数据采集卡实现电机正反转_第1页
-基于VB语言的工控机-数据采集卡实现电机正反转_第2页
-基于VB语言的工控机-数据采集卡实现电机正反转_第3页
-基于VB语言的工控机-数据采集卡实现电机正反转_第4页
-基于VB语言的工控机-数据采集卡实现电机正反转_第5页
已阅读5页,还剩70页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1 2燕山大学课程设计(论文)任务书院(系电气工程学院基层教学单位:自动化系学生姓名专业(班级)设计题目工控机+数据采集卡实现电机正反转设计技术参数●数据采集卡采用中泰系列。●界面采用MCGS语言。●具备电机正反转、点动等基本功能。设计要求●说明书一份,不少于6000字(如打印用B5纸,小四号字,汉字采用宋体,英文及数字采用TimesNewRoman,单倍行距,上边距2.6厘米,下边距2.2厘米,●说明书顺序:封面、任务书、摘要、目录、正文、结论、参考文献、评审意见表。●说明书封面与内容需一致(打印或者本人手抄图表清晰,字迹工整。●完成A2图纸一张。工作量●说明书一份,不少于6000字,可手写可打印。●A2图纸一张,手绘、打印均可。●参考文献不少于3篇。●学习MCGS编程语言,完成软件开发。●撰写说明书,绘制图纸。●完成课程设计考核。参考资料指导教师签字基层教学单位主任签字刘福才说明:此表一式四份,学生、指导教师、基层教学单位、系部各一份。3【关键词】MCGS;窗体;控制系统;数据采集卡;中间继电器;电机正反转近年来,随着计算机和数据采集卡技术的不断提高,越来越多的企业以计算机和数据采集卡为平台,实现生产拄制,这一系统比传统的PIC系统具有更低的成本,更灵活的配置,更短的开发周期。生产机械往往要求运动部件可以实现正反两个方向的起动,这就要求拖动电动机能作正、反向旋转。由电机原理可知,改变电动机三相电源的相序,就能改变电动机的转向。按下正转启动按钮SB1,电动机正转运行,完成正转启动。按下停止按钮SB2,电动机停止运行。按下反转启动按钮SB3,电动机反转运行,完成反转启动。MCGS组态软件MCGS组态软件是北京昆仑通态自动化软件科技有限公司研发的一套基于Windows平台的,用于快速构造和生成上位机监控系统的组态软件系统,主要完成现场数据的采集与监测、前端数据的处理与控制,支持许多类型采集卡、控制卡。通过MCGS组态软件与中泰PCI-8407采集卡的结合,通过中间继电器PS-002以及电机正反转控制逻辑的编写,可以方便的实现电机的正反转控制,从而满足控制要求。数据采集卡数据采集卡通过ISA或PCI总线连接到PC机中,把采集的模拟、数字信号通过A/D转换输入计算书b羞行分析、处理、显示等,并可通过D/A转换实现控制命令输出。还可加入信号调理和实时DSP等硬件模块。市面流行的数据采集卡有以下技术特点:分辨率:12bit,16bit采样频率:100k,400k,750lc,lMHz输入通道:8路差分/16单端,可扩展到256通道程控增益:1/2J4/8或1/10/100/1000可选模拟信号,了几电平或软件触发2/4通道12bit模拟输出24路数字量输入输出何扩展到192路43---5个16bit可编程计知定时器可与QTC,DBK,SB系列信号调理扩模块模板配合使用,组成:电流、毫伏、高压、应变、热电偶、热电阻、振动、加速度、频率测试狈口量系统同时可选同步采样、抗混滤波、高压隔离等功能。在控制系统中,采集卡是解决信号的输入、输出,软件才是关键,使用者可通过修改软件,改变或增减控制系统的功能。编程语言的选择对数据采集卡进布示编程有两种方法。1)采用公司研发的MCGS组态软件的是专为面向工业自动化设计的,以图形方式提供了采集、运动控制等显示和分析程序库。在这些软件环境中,提供了一种像数据流一样的编程模式,拥护只要连接各个逻辑框即可构成程序。1但是这些图形化软件包在获得易用性的同时,也失去了某些较复杂的高级性能,如复杂数据结构的实现,回调函数的使用等等。2)采用通用的语言开发环境,如VB,Delphi,VC++等。其中VB是深受工程技术人员欢迎的编程语言之一。它具有以下特点:·开发速度快。在所有可视化语言中,VB是公认开发软件速度最快的。同时如不涉及复杂的图形处理,在流行的PentiumII机型上,速度不会明显低于其它开发工具。全汉化的帮助文件、例程更是其它开发环境所不具备的。·功育创犷展能力强。VB的APIViewer使VB能非常容易地调用几乎所有WinAPI函数,实现任何Windows所具备的功能。同时,几乎所有提供软件开发支持的硬件厂商,都提供的支持VB的控件、DLL和例程。·系统稳定。作为同一公司出品的产品,用VB编制的软件在Windows平台上长时间运行,非常稳定。5 6二、设计思路 6三、器件的选择及其使用说明 6 6 四、主电路、控制回路电路图及其工作原理 五、MCGS组态程序介绍及设计 六、开发MCGS设备驱动程序 七、总结 八、参考文献 20九、评审意见表 216MCGS采用可视化的程序设计方法,利用系统提供的大量可视化控件,可以方便地以可视化方式直接绘制用户图形界面,并可直观,动态地调整界面的风格和样式。设计针对采集卡功能设置出实用、美观应用界面。界面可以实现的功能为:允许外部开关控制量输入,面板控制量输出,以此来实现电机正反转控制。二、设计思路通过PC工控机+研华基于PC的工业控制卡MIC-2760+电动机正反转控制主回路这种设计方案,可以以较为低廉的价格达到控制电机正反转及点动长动的控制要求,与PLC电机正反转控制系统相比较为廉价很多。同时可以通过MCGS组态软件快速的构建上位机监控及控制界面。配合其他的数据采集卡,可以实现对电动机转速、电压、电流等运行参数的实时监控与控制。并且此种方案在工业现场广为应用,符合工业控制系统的市场需求。三、器件的选择及其使用说明1)选用中泰数据采集卡PCI-8407使用说明介绍1.概述:PCI-8407光隔离开关量输出接口卡适用于提供了PCI总线插槽的PC系列微机,具有即插即用(PnP)的功能,操作系统可选用目前流行的Windows系列,高稳定性的Unix等多种操作系统以及专业数据采集分析系统LabVIEW等软件环境。在硬件的安装上也非常简单,使用时只需将接口卡插入机内任何一个PCI总线插槽中,信号电缆从机箱外部直接接入。为方便我公司原有用户对产品的升级换代,PCI-8407开关量输出接口卡的输出插座引线定义与PC-6407完全一样。7本卡适用于工业现场中各种开关信号的自动控制以及计算机同数字仪器的接口。考虑到在开关量的输出中“开/关”瞬态对计算机干扰十分强烈及现场强电的干扰,本卡采用了光电隔离技术,使计算机与现场信号之间全部隔离,提高了计算机与本卡在工作中的抗干扰能力和抗损毁能力。本卡上的开关量输出为32路(分为两组)共地方式,具有上电后自动清零功能(但主机复位时不清零并可与我公司研制的PS-002继电器接口板直接配套使用。2.主要技术指标:2.1输出路数及电气连接方式:32路分为两组,共源(共阳)方式。2.2输出回路供电要求12V36V2.3最大输出驱动电流:≤200mA/每路(由外加电源提供),可直接驱动继电器,但每组总输出电流不应超过2A。2.4每组信号之间、各组信号与接口卡之间隔离电平:500V。2.5电源功耗5V(±10%)≤400mA2.6环境要求:工作温度:10□~40□相对湿度:4080%存贮温度55□~+85□2.10外型尺寸(不含档板):长×高=164.8mm×106.7mm(6.5英寸×4.2英寸)3.工作原理及操作说明:3.1开关量输出工作原理:本卡上的32路开关量输出回路可用于外部电路的开关控制,其每路最大输出电流200mA左右,开关量输出部分工作原理如图1所示。8图1开关量输出部分工作原理输出驱动器件ULN2003的输出端允许通过IC电流200mA,饱和压根据以上参数估算。由于本卡采用集电极开路输出,输出电流大,故可以直接驱动继电器或固体继电器(SSR)等外接控制器件,也可直接驱动低压灯泡。本卡工作时,计算机送“1”使驱动器三极管导通,计算机送“0”使驱动器三极管截止。本卡上的输出驱动器件ULN2可有效地吸收感性负载启动时产生的达600mA的峰值电流。所有的开关量输出信号均带有锁存功能。当CPU对设定的一个I/O地址执行一次写操作,就送出了一组(16路)输出信号。当主机加电启动时,本卡上开关使主机硬复位时清零电路将不起作用。4.安装及使用注意:本卡的安装十分简便,只要在关电情况下将主机机壳打开,将本卡插入主机的任何一个空余扩展槽中,再将档板固定螺丝压紧即可。37芯D型插头可从主机后面引出并与外设连接。禁止带电插拔本接口卡。设置接口卡开关和安装接口带缆均应在关电状态下进行。为保证人身及设备安全,应确保系统地线(计算机及外接设备接地点)接地良好。为防止外部设备中较大的电磁干扰,应注意对信号线进行屏蔽处理。9如果本卡连接的外部设备上加有较高的电压时,在安装或用手触摸本卡时,应先将外部设备的电源关闭并严禁触摸本卡。5.使用与操作:5.1输入输出插座接口定义:表1输入输出插座引线定义表插座引脚号信号定义插座引脚号信号定义123456789开出公共地开出公共地开出公共地5.2开关量输出使用方法:本卡上的开关量输出部分与外部器件联接时,可按图2方法进行,使图2开关量输出使用方法2)PS-00216路通用继电器板技术说明书1.概述:本板为小功率中间继电器板,一般用于大功率继电器或交流接触器的驱动,也可用于小容量电器开关、报警指示等场合。2.主要特性:2.2触点形式:单刀常开2.3触点容量:DC28V/7AAC220V/4A2.4控制功率:DC24V/15mA或DC12V/30mA(单路)2.5每对触点接线端均加有压敏电阻以吸收浪涌电压。3.本板布局:4.使用方法:4.1继电器控制电源接线:该电源插座为2P座,信号分布见下图。V+GND继电器控制电源应根据继电器工作电压分别选择12V或24V。经过改装后可配接研华PCL-720/JK2经过改装后可配接研华PCL-722/724/731730/7324.3继电器触点接线:本板两侧的接线端子排为继电器触点接线端子,与每个继电器相邻的两个接线端子为该继电器的一对触点端子。5.本板的外部驱动电路:光电耦合器直接驱动三极管驱动6.本板的特殊使用:器件组中的细连线割断,在各器件位置上正确焊上ULN2003驱动组件。三相电机是指当电机的三相定子绕组(各相差120度电角度通入三相交流电后,将产生一个旋转磁场,该旋转磁场切割转子绕组,从而在转子绕组中产生感应电流(转子绕组是闭合通路载流的转子导体在定子旋转磁场作用下将产生电磁力,从而在电机转轴上形成电磁转矩,驱动电动机旋转,并且电机旋转方向与旋转磁场方向相同。本次设计采用Y132S-4型三相异步电动机作为控制对象,功率为5.5KW,满足设计要求。本型号电动机为四极电动机,同步转速为1500f为频率,单位为Hz。n为转速,其单位为r/minp为磁极对数(注意是磁极对数而非磁极的个数,如本电机4极电当然也可以选择其他的型号的电动机,不同型号的电动机并不影响控制电路的设计。四、主电路、控制回路电路图及其工作原理电机要实现正反转控制,将其电源的相序中任意两相对调即可(被称为换相通常是V相不变,将U相与W相对调节器,为了保证两个接触器动作时能够可靠调换电动机的相序,接线时应使接触器的上口接线保持一致,在接触器的下口调相。由于将两相相序对调,故须确保二个KM线圈不能同时得电,否则会发生严重的相间短路故障,因此必须采取联锁。为安全起见,常采用机械联锁与电气联锁的双重联锁正反转控制线路。使用了按钮联锁,即使同时按下正反转按钮,调相用的两接触器也不可能同时得电,机械上避免了相间短路。另外,由于应用的接触器联锁,所以只要其中一个接触器得电,其长闭触点就不会闭合,这样在机械、电气双重联锁的应用下,电机的供电系统不可能相间短路,有效地保护了电机,同时也避免在调相时相间短路造成事故,烧坏接触器。由于本项目采用研华控制卡和MCGS组态软件设置,所以可以通过MCGS程序逻辑设计实现电气联锁,有效的保护电动机的正常运行,防止短路发生。对于点动和长动的区别,由于本次项目采用MCGS组态软件进行控制,因此只需在程序中进行控制逻辑的设计。并且本设计采用点动长动开关进行点动与长动的选择,通过点动长动选择开关进行点动与长动的选择。在主电路中,除了KM1、KM2出点外,还有熔断FR做为主电路的保护元件,防止由于短路或者过载、断相对电机的损熔断器FU是指当电流超过规定值时,以本身产生的热量使熔体熔断,断开电路的一种电器。熔断器是根据电流超过规定值一段时间后,以其自身产生的热量使熔体熔化,从而使电路断开,可以防止电路短路对电动机的损坏,以最小的成本来实现电动机的保护。热继电器FR是由流入热元件的电流产生热量,使有不同膨胀系数的双金属片发生形变,当形变达到一定距离时,就推动连杆动作,使控制电路断开,从而使接触器失电,主电路断开,实现电动机的过载保护以及断相保护。2)控制回路接线图五、MCGS组态程序介绍及设计1)控制界面设计以下界面包括一个启停控制按钮、一个电机、一个长动点动选择开关以及两个分别控制正转和反转的按钮。默认运行时,启停按钮处于启动状态,当将长动点动开关达到长动时,电机正反转按钮即可以实现电动机的正反转运行,电机停止按钮即可以实现电动机的停止;当将点动开关打到点动时,按住正转、反转按钮电动机才分别进行正转、反转运行,松开按钮,电动机停止。2)设备窗口组态设备窗口是MCGS系统的重要组成部分,在设备窗口中建立系统与外部硬件设备的连接关系,使系统能够从外部设备读取数据并控制外部设备的工作状态,实现对工业过程的实时监控。在MCGS中,实现设备驱动的基本方法是:在设备窗口内配置不同类型的设备构件,并根据外部设备的类型和特征,设置相关的属性,将设备的操作方法如硬件参数配置、数据转换、设备调试等都封装在构件之中,以对象的形式与外部设备建立数据的传输通道连接。系统运行过程中,设备构件由设备窗口统一调度管理,通过通道连接,向实时数据库提供从外部设备采集到的数据,从实时数据库查询控制参数,发送给系统其它部分,进行控制运算和流程调度,实现对设备工作状态的实时检测和过程的自动控制。MCGS的这种结构形式使其成为一个“与设备无关”的系统,对于不同的硬件设备,只需定制相应的设备构件,放置到设备窗口中,并设置相关的属性,系统就可对这一设备进行操作,而不需要对整个系统结构作任何改动。在MCGS单机版中,一个用户工程只允许有一个设备窗口。运行时,由主控窗口负责打开设备窗口,而设备窗口是不可见的,在后台独立运行,负责管理和调度设备构件的运行。由于MCGS对设备的处理采用了开放式的结构,在实际应用中,可以很方便地定制并增加所需的设备构件,不断充实设备工具箱。MCGS将逐步提供与国内外常用的工控产品相对应的设备构件,同时,MCGS也提供了一个接口标准,以方便用户用VisualBasic或VisualC++等编程工具自行编制所需的设备构件,装入MCGS的设备工具箱内。MCGS提供了一个高级开发向导,自动生成设备驱动程序的框架,给我们的开发工作提供帮助。为了对普通工程用户快速定制开发特定的设备驱动程序提供方便,系统同时提供了典型设备驱动程序的源代码,在这些源代码的基础上进行移植修改,就可以生成自己所需的设备驱动程序。对已经编好的设备驱动程序,MCGS使用设备构件管理工具进行管理。单击在MCGS组态环境中“工具”菜单下的“设备构件管理”项,将弹出如下图所示的设备管理窗口:设备管理窗口中提供了常用的上百种的设备驱动程序,给我们快速找到适合自己的设备驱动程序提供了极大的方便,还可以完成所选设备在Windows中的登记和删除登记等工作。3)设备构件的通道连接MCGS设备中一般都包含有一个或多个用来读取或者输出数据的物理通道,MCGS把这样的物理通道称为设备通道,如:模拟量输入装置的输入通道、模拟量输出装置的输出通道、开关量输入输出装置的输入输出通道等等,这些都是设备通道。设备通道只是数据交换用的通路,而数据输入到哪儿和从哪儿读取数据以供输出,即进行数据交换的对象,则必须由用户指定和配置。实时数据库是MCGS的核心,各部分之间的数据交换均须通过实时数据库。因此,所有的设备通道都必须与实时数据库连接。所谓通道连接,也即是由用户指定设备通道与数据对象之间的对应关系,这是设备组态的一项重要工作。如不进行通道连接组态,则MCGS无法对设备进行操作。4)程序脚本的编写启动=1THENKM1=1停止=1THENKM1=0KM2=0反转=1THENKM2=1正转=1THENKM1=1点动=1THENKM1=1KM2=1长动=1THENKM1=1KM2=1六、总结通过PC工控机+中泰基于PC的工业控制卡PCI8407和与其适配的中间继电器PS002+电动机正反转控制主回路这种设计方案,可以以较为低廉的价格达到控制电机正反转及点动长动的控制要求,与PLC电机正反转控制系统相比较为廉价很多。同时可以通过MCGS组态软件快速的构建上位机监控及控制界面。配合其他的数据采集卡,可以实现对电动机转速、电压、电流等运行参数的实时监控与控制。并且此种方案在工业现场广为应用,符合工业控制系统的市场需求。通过一周的学习,我进一步加深了对于电机正反转等控制系统的理解,掌握了研华系列工业采集卡、控制卡的应用,并且学会了利用MCGS、VB等工控软件快速的构建工控机的上位机监控软件,从而可以快速的搭建出一整套工业控制系统以及采集监控系统。并且将学到的知识加以利用,转化为实实在在的生产力。总之,从本次的课程设计中,我受益匪浅。七、开发MCGS设备驱动程序设备驱动构件的实现设备驱动构件接口规范利用开发向导生成框架利用样例程序移植测试和挂接设备驱动构件IO端口的操作设备驱动构件的运行机制增加设备构件属性定制设备属性设备对话框编制简单的设备驱动构件八、参考文献和论文。九、电气工程学院课程设计评审意见表指导教师评语:平时成绩:指导教师签字:图面及其它成绩:答辩小组评语:答辩成绩:组长签字:课程设计综合成绩:答辩小组成员签字:附录资料:不需要的可以自行删除bat文件的基本应用bat是dos下的批处理文件.cmd是nt内核命令行环境的另一种批处理文件从更广义的角度来看,unix的shell脚本以及其它操作系统甚至应用程序中由外壳进行解释执行的文本,都具有与批处理文件十分相似的作用,而且同样是由专用解释器以行为单位解释执行,这种文本形式更通用的称谓是脚本语言。所以从某个程度分析,batch,unixshell,awk,basic,perl等脚本语言都是一样的,只不过应用的范围和解释的平台各有不同而已。甚至有些应用程序仍然沿用批处理这一称呼,而其内容和扩展名与dos的批处理却又完全不同。===================================首先批处理文件是一个文本文件,这个文件的每一行都是一条DOS命令(大部分时候就好象我们在DOS提示符下执行的命令行一样你可以使用DOS下的Edit或者Windows的记事本(notepad)等任何文本文件编辑工具创建和修改批处理文件。====注===================批处理文件中完全可以使用非dos命令,甚至可以使用不具有可执行特性的普通数据性文件,这缘于windows系统这个新型解释平台的涉入,使得批处理的应用越来越"边缘化"。所以我们讨论的批处理应该限定在dos环境或者命令行环境中,否则很多观念和设定都需要做比较大的变动。========================其次,批处理文件是一种简单的程序,可以通过条件语句(if)和流程控制语句(goto)来控制命令运行的流程,在批处理中也可以使用循环语句(for)来循环执行一条命令。当然,批处理文件的编程能力与C语言等编程语句比起来是十分有限的,也是十分不规范的。批处理的程序语句就是一条条的DOS命令(包括内部命令和外部命令而批处理的能力主要取决于你所使用的命令。====注==================批处理文件(batchfile)也可以称之为批处理程序(batchprogram),这一点称之为c语言文件或者c语言源代码,但只有编以称之为c语言程序。因为批处理文件本身既具有文本的可读性,又具有程序的可执行性,这些称谓的界限是比较模糊的。===========================第三,每个编写好的批处理文件都相当于一个DOS的外部命令,你可以把它所在的目录放到你的DOS搜索路径(path)中来使得它可以在任意位置运行。一个良好的习惯是在硬盘上建立一个bat或者batch目录(例如C:\BATCH然后将所有你编写的批处理文件放到该目录中,这样只要在path中设置上c:\batch,你就可以在任意位置运行所有你编写的批处理程序。====注=====纯以dos系统而言,可执行程序大约可以细分为五类,依照执行优先级由高到低排列分别是:DOSKEY宏命令(预先驻留内存),COMMAND.COM中的内部命令(根据内存的环境随时进驻内存以com为扩展名的可执行程序(由直接载入内存以exe位扩展名的可执行程序(由重定位后载入内存以bat位扩展名的批处理程序(由解释分析,根据其内容按优先身不载入内存)============第四,在DOS和Win9x/Me系统下,C:盘根目录下的AUTOEXEC.BAT批处理文件是自动运行批处理文件,每次系统启动时会自动运行该文件,你可以将系统每次启动时都要运行的命令放入该文件中,例如设置搜索路径,调入鼠标驱动和磁盘缓存,设置系统环境变量等。下面是一个运行于Windows98下的autoexec.bat的示例:PATHC:\WINDOWS;C:\WINDOWS\COMMAND;C:\UCDOS;C:\DOSTools;C:\SYSTOOLS;C:\WINTOOLS;C:\BATCHLHSMARTDRV.EXE/XLHDOSKEY.COM/insertLHCTMOUSE.EXESETTEMP=D:\TEMPSETTMP=D:\TEMP====注=====AUTOEXEC.BAT为DOS系统的自动运行批处理文件,由COMMAND.COM启动时解释执行;而在Win9x环境中,不仅增加支持了DOSSTART.BAT,WINSTART.B等许多其它自动运行的批处理文件,对AUTOEXEC.BAT也增加了.DOS.W40.BAK.OLD.PWS等许多变体以适应复杂的环境和多变的需求。====willsort编注=============以下关于命令的分类,有很多值得推敲的地方。常用命令中的@本不是命令,而dir、copy等也很常用的命令却没有列入,而特殊命令中所有命令对我来说都是常用命令。建议将批处理所引用的命令分为内部命令、外部命令、第三方程序三类。而内部命令和外部命令中别有一类是专用于或常用于批处理中的命令可称之为"批处理命令"。以下摘录MS-DOS6.22帮助文档中关于"批处理命令"的文字,当然,其中有些概念和定义已经有些落后了。批处理命令批处理文件或批处理程序是一个包含若干MS-DOS命令的正文文件,扩展名为.BAT。当在命令提示符下敲入批处理程序的名称时,MS-DOS成组执行此批处理程序中的命令。任何在命令提示符下可使用的命令都可用在批处理程序中。此外,下面MS-DOS命令是专门在批处理程序中使用的。==========常用命令的几个命令,我们就从他们开始学起。====注===========首先,@不是一个命令,而是DOS批处理的一个特殊标记符,仅用于屏蔽命令行回显.下面是DOS命令行或批处理中可能会见到的一些特殊标记符:CR(0D)命令行结束符Escape(1B)ANSI转义字符引导符Space(20)常用的参数界定符Tab(09);=不常用的参数界定符+COPY命令文件连接符""字符串界定符|命令管道符<>>>文件重定向符@命令行回显屏蔽符/参数开关引导符:批处理标签引导符%批处理变量引导符其次,::确实可以起到rem的注释作用,而且更简洁有效;但有两点需要注意:第一,除了::之外,任何以:开头的字符行,在批处理中都被视作标号,而直接忽略其后的所有内容,只是为了与正常的标号相区别,建议使用goto所无法识别的标号,即在:后紧跟一个非字母数字的一个特殊符号.第二,与rem不同的是,::后的字符行在执行时不会回显,无论是否用echoon打开命令行回显状态,因为命令解释器不认为他是一个有效的命令行,就此点来看,rem在某些场合下将比::更为适用;另外,rem可以用于config.sys文件中.=====================echo表示显示此命令后的字符echooff表示在此语句后所有运行的命令都不显示命令行本身@与echooff相象,但它是加在每个命令行的最前面,表示运行时不显示这一行的命令行(只能影响当前行)。call调用另一个批处理文件(如果不用call而直接调用别的批处理文件,那么执行完那个批处理文件后将无法返回当前文件并执行当前文件的后续命令)。pause运行此句会暂停批处理的执行并在屏幕上显示Pressanykeytocontinue...的提示,等待用户按任意键后继续rem表示此命令后的字符为解释行(注释不执行,只是给自己今后参考用的(相当于程序中的注释)。====注=====此处的描述较为混乱,不如直接引用个命令的命令行帮助更为条理ECHO当程序运行时,显示或隐藏批处理程序中的正文。也可用于允许或禁止命令的回显。在运行批处理程序时,MS-DOS一般在屏幕上显示(回显)批处理程序中的命令。使用ECHO命令可关闭此功能。若要用echo命令显示一条命令,可用下述语法:参数ON|OFF指定是否允许命令的回显。若要显示当前的ECHO的设置,可使用不带参数的ECHO命令。message指定让MS-DOS在屏幕上显示的正文。从一个批处理程序中调用另一个批处理程序,而不会引起第一个批处理的中止。CALL[drive:][path]filename[batch-parameters]参数[drive:][path]filename指定要调用的批处理程序的名字及其存放处。文件名必须用.BAT作扩展名。batch-parameters指定批处理程序所需的命令行信息。-------------------------------PAUSE暂停批处理程序的执行并显示一条消息,提示用户按任意键继续执行。只能在批处理程序中使用该命令。PAUSEREM在批处理文件或CONFIG.SYS中加入注解。也可用REM命令来屏蔽命令(在CONFIG.SYS中也可以用分号;代替REM命令,但在批处理文件中则不能替代)。参数指定要屏蔽的命令或要包含的注解。=======================处理文件后可实现:将根目录中所有文件写入a.txt中,启动UCDOS,进入WPS等功能。批处理文件的内容为:命令注释:@echooff不显示后续命令行及当前命令行dirc:\*.*>a.txt将c盘文件列表写入a.txtcallc:\ucdos\ucdos.bat调用ucdosecho你好显示"你好"pause暂停,等待按键继续rem准备运行wps注释:准备运行wps批处理文件的参数批处理文件还可以像C语言的函数一样使用参数(相当于DOS命令的命令行参数这需要用到一个参数表示符"%"。%[1-9]表示参数,参数是指在运行批处理文件时在文件名后加的以空格(或者Tab)分隔的字符串。变量可以从%0到%9,%0表示批处理命令本身,其它参数字符串用%1到%9顺序表示。@echooff如果执行C:\>fa:于是上面的命令运行时实际执行的是formata:例3:C:根目录下一批处理文件名为t.bat,内容为:@echooff那么运行C:\>ta.txtb.txt于是上面的命令将顺序地显示a.txt和b.txt文件的内容。====注===============参数在批处理中也作为变量处理,所以同样使用百分号作为引导符,其后跟0-9中的一个数字构成参数引用符.引用符和参数之间(例如上文中的%1与a:)的关系类似于变量指针与变量值的关系.当我们要引用第十一个或更多个参数时,就必须移动DOS的参数起始指针.shift命令正充当了这个移动指针的角色,它将参数的起始指针移动到下一个参数,类似C语言中的指针操作.图示如下:初始状态,cmd为命令名,可以用%0引用cmdarg1arg2arg3arg4arg5arg6arg7arg8arg9arg10cmdarg1arg2arg3arg4arg5arg6arg7arg8arg9arg10经过2次shift后,arg1也被废弃,%9指向为空,没有引用意义cmdarg1arg2arg3arg4arg5arg6arg7arg8arg9arg10遗憾的是,win9x和DOS下均不支持shift的逆操作.只有在nt内核命令行环境下,shift才支持/n参数,可以以第一参数为基准返复移动起始指针.=================特殊命令ifgotochoicefor是批处理文件中比较高级的命令,如果这几个你用得很熟练,你就是批处理文件的专家啦。一、if是条件语句,用来判断是否符合规定的条件,从而决定执行不同的命令。有三种格式:参数如果等于(not表示不等,下同)指定的字符串,则条件成立,运行命令,否则运行下一句。例:if"%1"=="a"formata:====if的命令行帮助中关于此点的描述为:IF[NOT]string1==string2command在此有以下几点需要注意:1.包含字符串的双引号不是语法所必须的,而只是习惯上使用的一种"防空"字符2.string1未必是参数,它也可以是环境变量,循环变量以及其他字符串常量或变量3.command不是语法所必须的,string2后跟一个空格就可以构成一个有效的命令行=============================如果有指定的文件,则条件成立,运行命令,否则运行下一句。如:ifexistc:\config.systypec:\config.sys表示如果存在c:\config.sys文件,则显示它的内容。也可以使用以下的用法:ifexistcommanddevice是指DOS系统中已加载的设备,在win98下通常有:AUX,PRN,CON,NULCOM1,COM2,COM3,COM4LPT1,LPT2,LPT3,LPT4XMSXXXX0,EMMXXXX0CLOCK$,CONFIG$,DblBuff$,IFS$HLP$具体的内容会因硬软件环境的不同而略有差异,使用这些设备名称时,需要保证以下三点:1.该设备确实存在(由软件虚拟的设备除外)2.该设备驱动程序已加载(aux,prn等标准设备由系统缺省定义)3.该设备已准备好(主要是指a:b:...,com1...,lpt1...等)可通过命令mem/d|find"device"/i来检阅你的系统中所加载的设备另外,在DOS系统中,设备也被认为是一种特殊的文件,而文件也可以称作字符设备;因为设备(device)与文件都是使用句柄(handle)来管理的,句柄就是名字,类似于文件名,只不过句柄不是应用于磁盘管理,而是应用于内存管理而已,所谓设备加载也即指在内存中为其分配可引用的句柄.==================================3、iferrorlevel<数字>很多DOS程序在运行结束后会返回一个数字值用来表示程序运行的结果(或者状态),通过iferrorlevel命令可以判断程序的返回值,根据不同的返回值来决定执行不同的命令(返回值必须按照从大到小的顺序排列)。如果返回值等于指定的数字,则条件成立,运行命令,否则运行下一句。如iferrorlevel2gotox2====注===========返回值从大到小的顺序排列不是必须的,而只是执行命令为goto时的习惯用法,当使用set作为执行命令时,通常会从小到大顺序排列,比如需将返回码置入环境变量,就需使用以下的顺序形式:iferrorlevel1setel=1iferrorlevel2setel=2iferrorlevel3setel=3iferrorlevel4setel=4iferrorlevel5setel=5当然,也可以使用以下循环来替代,原理是一致的:for%%ein(12345678...)doiferro更高效简洁的用法,可以参考我写的另一篇关于获取errorlevel的文章出现此种现象的原因是,iferrorlevel比较返回码的判断条件并非等于,而是大于等于.由于goto的跳转特性,由小到大排序会导致在较小的返回码处就跳出;而由于set命令的"重复"赋值特性,由大到小排序会导致较小的返回码"覆盖"较大的返回码.另外,虽然iferrorlevel=<数字>command也是有效的命令行,但也只是解释命令行时将=作为命令行切分符而忽略掉罢了===========================二、goto批处理文件运行到这里将跳到goto所指定的标号(标号即label,标号用:后跟标准字符串来定义)处,goto语句一般与if配合使用,根据不同的条件来执行不同的命令组。echothisistheend标号用":字符串"来定义,标号所在行不被执行。====willsort编注label常被译为"标签",但是这并不具有广泛的约定性.goto与:联用可实现执行中途的跳转,再结合if可实现执行过程的条件分支,多个if即可实现命令的分组,类似C中switchcase结构或者Basic中的selectcase结构,大规模且结构化的命令分组即可实现高级语言中的函数功能.以下是批处理和C/Basic在语法结构上的对照:BatchC/Basicgoto&:goto&:goto&:&ifif{}&else{}/if&elseif&endifgoto&:&if...switch&case/selectcasegoto&:&if&set&envar...function()/function(),sub()==================================三、choice使用此命令可以让用户输入一个字符(用于选择从而根据用户的选择返回不同的errorlevel,然后于iferrorlevel配合,根据用户的选择运行不同的命令。注意:choice命令为DOS或者Windows系统提供的外部命令,不同版本的choice命令语法会稍有不同,请用choice/?查看用法。choice的命令语法(该语法为Windows2003中choice命令的语法,其它版本的choice的命令语法与此大同小异):CHOICE[/Cchoices][/N][/CS][/Ttimeout/Dchoice][/Mtext]描述:该工具允许用户从选择列表选择一个项目并返回所选项目的索引。参数列表:/Cchoices指定要创建的选项列表。默认列表是"YN"。/N在提示符中隐藏选项列表。提示前面的消息得到显示,选项依旧处于启用状态。/CS允许选择分大小写的选项。在默认情况下,这个工具是不分大小写的。/Ttimeout做出默认选择之前,暂停的秒数。可接受的值是从0会得到选择。/Dchoice在nnnn秒之后指定默认选项。字符必须在用/C选项指定的一组选择中;同时,必须用/T指定nnnn。/Mtext指定提示之前要显示的消息。如果没有指定,工具只显示提示。/?显示帮助消息。注意:ERRORLEVEL环境变量被设置为从选择集选择的键索引。列出的第一个选该工具会发出警告响声。如果该工具检测到错误状态,它会返回255的ERRORLEVEL值。如果用户按Ctrl+Break或Ctrl+C键,该工具会返的ERRORLEVEL值。在一个批程序中使用ERRORLEVEL参数时,将参数降序排列。示例:CHOICE/?CHOICE/T10/Cync/CS/Dy====willsort编注===============================我列出win98下choice的用法帮助,已资区分Waitsfortheusertochooseoneofasetofchoices.等待用户选择一组待选字符中的一个/C[:]choicesSpecifiesallowablekeys.DefaultisYN指定允许的按键(待选字符),默认为YN/NDonotdisplaychoicesand?atendofpromptstring.不显示提示字符串中的问号和待选字符/STreatchoicekeysascasesensitive.处理待选字符时大小写敏感/T[:]c,nnDefaultchoicetocafternnseconds在nn秒后默认选择ctextPromptstringtodisplay要显示的提示字符串ERRORLEVELissettooffsetofkeyuserpressesinchoices.ERRORLEVEL被设置为用户键入的字符在待选字符中的偏移值屏幕上会显示:例:test.bat的内容如下(注意,用iferrorlevel判断返回值时,要按返回值从高到低排列):@echooffchoice/Cdme/M"defrag,mem,end"iferrorlevel3gotoendiferrorlevel2gotomemiferrorlevel1gotodefragc:\dos\defragmemechogoodbye然后if语句根据用户的选择作出判断,d表示执行标号为defrag的程序段,m表示执行标号为mem的程序段,e表示执行标号为end的程序段,每个程序段最后都以gotoend将程序跳到end标号处,然后程序将显示goodbye,批处理运行结束。四、for循环命令,只要条件符合,它将多次执行同一命令。语法:对一组文件中的每一个文件执行某个特定命令。FOR%%variableIN(set)DOcommand[command-parameters]%%variable指定一个单一字母可替换的参数。(set)指定一个或一组文件。可以使用通配符。command指定对每个文件执行的命令。command-parameters为特定命令指定参数或命令行开关。例如一个批处理文件中有一行:for%%cin(*.bat*.txt)dotype%%c则该命令行会显示当前目录下所有以bat和txt为扩展名的文件的内容。====willsort编注=============

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论