




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 燕山大学课 程 设 计 说 明 书题目: 工控机+数据采集卡实现电机正反转 学院 (系): 电气工程学院(自动化) 年级专业: 2011级计算机控制1班 学 号: 110103020033 学生姓名: 指导教师: 教师职称: 教授 副教授 燕山大学课程设计(论文)任务书院(系):电气工程学院 基层教学单位:自动化系学 号110103020033学生姓名郑夏专业(班级)11计控1班设计题目工控机+数据采集卡实现电机正反转设计技术参数数据采集卡采用中泰系列。电机5.5KW。界面采用MCGS语言。具备电机正反转、点动等基本功能。设计要求说明书一份,不少于6000字(如打印用B5纸,小四号字,汉字采
2、用宋体,英文及数字采用Times New Roman,单倍行距,上边距2.6厘米,下边距2.2厘米,左右边距各2.3厘米,标出页码)。说明书顺序:封面、任务书、摘要、目录、正文、结论、参考文献、评审意见表。说明书封面与内容需一致(打印或者本人手抄),图表清晰,字迹工整。完成A2图纸一张。工作量说明书一份,不少于6000字,可手写可打印。A2图纸一张,手绘、打印均可。参考文献不少于3篇。工作计划确定系统整体设计方案(包括方案的选择说明)。学习MCGS编程语言,完成软件开发。撰写说明书,绘制图纸。完成课程设计考核。参考资料工厂电器、电气控制及PLC、电路原理、电子技术、检测与转换技术、制图、计算机
3、原理、微机控制原理及应用、电力电子技术、计算机操作系统、计算机控制系统等课程教科书及相关专业报纸、杂志和论文。指导教师签字 李海滨 刘爽基层教学单位主任签字刘福才说明:此表一式四份,学生、指导教师、基层教学单位、系部各一份。 2014年6月15日 摘要 【关键词】MCGS;窗体;控制系统;数据采集卡;中间继电器;电机正反转近年来,随着计算机和数据采集卡技术的不断提高,越来越多的企业以计算机和数据采集卡为平台,实现生产拄制,这一系统比传统的PIC系统具有更低的成本,更灵活的配置,更短的开发周期。生产机械往往要求运动部件可以实现正反两个方向的起动,这就要求拖动电动机能作正、反向旋转。由电机原理可知
4、,改变电动机三相电源的相序,就能改变电动机的转向。按下正转启动按钮SB1,电动机正转运行,完成正转启动。按下停止按钮SB2,电动机停止运行。按下反转启动按钮SB3,电动机反转运行,完成反转启动。 MCGS组态软件MCGS组态软件是北京昆仑通态自动化软件科技有限公司研发的一套基于Windows平台的,用于快速构造和生成上位机监控系统的组态软件系统,主要完成现场数据的采集与监测、前端数据的处理与控制,支持许多类型采集卡、控制卡。通过MCGS组态软件与中泰PCI-8407采集卡的结合,通过中间继电器PS-002以及电机正反转控制逻辑的编写,可以方便的实现电机的正反转控制,从而满足控制要求。数据采集卡
5、 数据采集卡通过ISA或PCI总线连接到PC机中,把采集的模拟、数字信号通过A/D转换输入计算书b羞行分析、处理、显示等,并可通过D/A转换实现控制命令输出。还可加入信号调理和实时DSP等硬件模块。市面流行的数据采集卡有以下技术特点: 分辨率:12 bit,16 bit 采样频率:100 k, 400 k, 750 lc, l MHz 输入通道:8路差分/16单端,可扩展到256通道 程控增益:1/2J4/8或1/10/100/1000 可选模拟信号,了几电平或软件触发 1 K-4 K字FIFO 2/4通道12 bit模拟输出 24路数字量输入输出何扩展到192路 35个16 bit可编程计知
6、定时器 可与QTC, DBK, SB系列信号调理扩模块模板配合使用,组成: 电流、毫伏、高压、应变、热电偶、热电阻、振动、加速度、频率测试狈口量系统同时可选同步采样、抗混滤波、高压隔离等功能。在控制系统中,采集卡是解决信号的输入、输出,软件才是关键,使用者可通过修改软件,改变或增减控制系统的功能。编程语言的选择 对数据采集卡进布示编程有两种方法。 1)采用公司研发的MCGS组态软件的是专为面向工业自动化设计的,以图形方式提供了采集、运动控制等显示和分析程序库。在这些软件环境中,提供了一种像数据流一样的编程模式,拥护只要连接各个逻辑框即可构成程序。但是这些图形化软件包在获得易用性的同时,也失去了
7、某些较复杂的高级性能,如复杂数据结构的实现,回调函数的使用等等。 2)采用通用的语言开发环境,如VB,Delphi, VC+等。其中VB是深受工程技术人员欢迎的编程语言之一。它具有以下特点: 开发速度快。在所有可视化语言中,VB是公认开发软件速度最快的。同时如不涉及复杂的图形处理,在流行的PentiumII机型上,速度不会明显低于其它开发工具。全汉化的帮助文件、例程更是其它开发环境所不具备的。 功育创犷展能力强。VB的API Viewer使VB能非常容易地调用几乎所有Win API函数,实现任何Windows所具备的功能。同时,几乎所有提供软件开发支持的硬件厂商,都提供的支持VB的控件、DLL
8、和例程。 系统稳定。作为同一公司出品的产品,用VB编制的软件在Windows平台上长时间运行,非常稳定。 目 录一、设计目的6二、设计思路6三、器件的选择及其使用说明6 1)、选用中泰数据采集卡PCI-8407使用说明介绍 6 2)、PS-002 16路通用继电器板技术说明书 10 3)、电机的机型选择 13四、主电路、控制回路电路图及其工作原理13 1)、主回路电路图及其原理13 2)、控制回路接线图15五、MCGS组态程序介绍及设计16 1)、控制界面设计16 2)、设备窗口组态16 3)、设备构件的通道连接18 4)、程序脚本的编写19 六、开发MCGS设备驱动程序19七、总结19八、参
9、考文献20九、评审意见表21 正 文设计目的 MCGS采用可视化的程序设计方法,利用系统提供的大量可视化控件,可以方便地以可视化方式直接绘制用户图形界面,并可直观,动态地调整界面的风格和样式。设计针对采集卡功能设置出实用、美观应用界面。界面可以实现的功能为:允许外部开关控制量输入,面板控制量输出,以此来实现电机正反转控制。 二、设计思路通过PC工控机+研华基于PC的工业控制卡MIC-2760+电动机正反转控制主回路这种设计方案,可以以较为低廉的价格达到控制电机正反转及点动长动的控制要求,与PLC电机正反转控制系统相比较为廉价很多。同时可以通过MCGS组态软件快速的构建上位机监控及控制界面。配合
10、其他的数据采集卡,可以实现对电动机转速、电压、电流等运行参数的实时监控与控制。并且此种方案在工业现场广为应用,符合工业控制系统的市场需求。三、器件的选择及其使用说明1)选用中泰数据采集卡PCI-8407使用说明介绍1.概述: PCI-8407光隔离开关量输出接口卡适用于提供了PCI 总线插槽的PC系列微机,具有即插即用(PnP)的功能,操作系统可选用目前流行的 Windows 系列,高稳定性的Unix等多种操作系统以及专业数据采集分析系统LabVIEW 等软件环境。在硬件的安装上也非常简单,使用时只需将接口卡插入机内任何一个PCI总线插槽中,信号电缆从机箱外部直接接入。为方便我公司原有用户对产
11、品的升级换代,PCI-8407开关量输出接口卡的输出插座引线定义与PC-6407完全一样。本卡适用于工业现场中各种开关信号的自动控制以及计算机同数字仪器的接口。考虑到在开关量的输出中“开关”瞬态对计算机干扰十分强烈及现场强电的干扰,本卡采用了光电隔离技术,使计算机与现场信号之间全部隔离,提高了计算机与本卡在工作中的抗干扰能力和抗损毁能力。 本卡上的开关量输出为32 路(分为两组)共地方式,具有上电后自动清零功能(但主机复位时不清零),并可与我公司研制的PS-002继电器接口板直接配套使用。2.主要技术指标:2.1 输出路数及电气连接方式:32路分为两组,共源(共阳)方式。2.2 输出回路供电要
12、求:12V36V2.3 最大输出驱动电流:200mA每路(由外加电源提供),可直接驱动继电器,但每组总输出电流不应超过2A。2.4 每组信号之间、各组信号与接口卡之间隔离电平:500V。2.5 电源功耗:5V(10) 400mA2.6 环境要求:工作温度: 1040 相对湿度: 4080 存贮温度:55852.10 外型尺寸(不含档板):长高=164.8mm106.7mm(6.5英寸4.2英寸)3.工作原理及操作说明:3.1 开关量输出工作原理:本卡上的32路开关量输出回路可用于外部电路的开关控制,其每路最大输出电流200mA左右,开关量输出部分工作原理如图1所示。 图1 开关量输出部分工作原
13、理 输出驱动器件ULN2003的输出端允许通过IC 电流200mA,饱和压降VCE 约1V左右,耐压BVCEO 约为36V。用户输出口的外接负载可根据以上参数估算。由于本卡采用集电极开路输出,输出电流大,故可以直接驱动继电器或固体继电器(SSR)等外接控制器件,也可直接驱动低压灯泡。本卡工作时,计算机送“1”使驱动器三极管导通,计算机送“0”使驱动器三极管截止。本卡上的输出驱动器件ULN2003中内部带有吸收二极管,可有效地吸收感性负载启动时产生的达600mA的峰值电流。所有的开关量输出信号均带有锁存功能。当CPU对设定的一个IO地址执行一次写操作,就送出了一组(16路)输出信号。当主机加电启
14、动时,本卡上的复位清零电路使各组输出均为零,即驱动器三极管截止。但使用RESET开关使主机硬复位时清零电路将不起作用。4.安装及使用注意:本卡的安装十分简便,只要在关电情况下将主机机壳打开,将本卡插入主机的任何一个空余扩展槽中,再将档板固定螺丝压紧即可。37芯D型插头可从主机后面引出并与外设连接。禁止带电插拔本接口卡。设置接口卡开关和安装接口带缆均应在关电状态下进行。 为保证人身及设备安全,应确保系统地线(计算机及外接设备接地点)接地良好。为防止外部设备中较大的电磁干扰,应注意对信号线进行屏蔽处理。如果本卡连接的外部设备上加有较高的电压时,在安装或用手触摸本卡时,应先将外部设备的电源关闭并严禁
15、触摸本卡。5.使用与操作:5.1 输入输出插座接口定义: 表1 输入输出插座引线定义表 插座引脚号 信号定义插座引脚号信号定义1A组 CH120A组 CH22A组 CH321A组 CH43A组 CH522A组 CH64A组 CH723A组 CH85A组 CH924 A组 CH106A组 CH1125A组 CH127A组 CH1326A组 CH148A组 CH15 27A组 CH169开出公共地28开出公共地101236V电源入291236V电源入11B组 CH1 30B组 CH212B组 CH331B组 CH413B组 CH532B组 CH614B组 CH733B组 CH815B组 CH934
16、B组 CH1016B组 CH1135B组 CH1217B组 CH1336B组 CH1418B组 CH1537B组 CH1619开出公共地5.2 开关量输出使用方法:本卡上的开关量输出部分与外部器件联接时,可按图2方法进行,使用时应注意将外部1236V电源接入本卡 。 图2 开关量输出使用方法2)PS-002 16路通用继电器板技术说明书1. 概述: 本板为小功率中间继电器板,一般用于大功率继电器或交流接触器的驱动,也可用于小容量电器开关、报警指示等场合。2. 主要特性:2.1 路数: 16路2.2 触点形式: 单刀常开2.3 触点容量:DC 28V 7A AC 220V 4A2.4 控制功率:
17、DC 24V15mA或DC 12V30mA(单路) 2.5 每对触点接线端均加有压敏电阻以吸收浪涌电压。3. 本板布局: 4. 使用方法:4.1 继电器控制电源接线:该电源插座为2P座,信号分布见下图。 + GND 继电器控制电源应根据继电器工作电压分别选择12V或24V。4.2 继电器控制线接线:该控制线插座为JK1、JK2,信号分布见下图: KJ1可直接配接PC-6407、6408, JK2经过改装后可配接研华 经过改装后可配接研华PCL-720/ PCL-722/724/731 730/7324.3 继电器触点接线:本板两侧的接线端子排为继电器触点接线端子,与每个继电器相邻的两个接线端子
18、为该继电器的一对触点端子。5. 本板的外部驱动电路: 光电耦合器直接驱动 三极管驱动6. 本板的特殊使用: 当用户需用 TTL 电平直接驱动本板时,可将本板上标有 U1、U2、U3器件组中的细连线割断,在各器件位置上正确焊上ULN2003驱动组件。3)、电机的机型选择 三相电机是指当电机的三相定子绕组(各相差120度电角度),通入三相交流电后,将产生一个旋转磁场,该旋转磁场切割转子绕组,从而在转子绕组中产生感应电流(转子绕组是闭合通路),载流的转子导体在定子旋转磁场作用下将产生电磁力,从而在电机转轴上形成电磁转矩,驱动电动机旋转,并且电机旋转方向与旋转磁场方向相同。本次设计采用Y132S-4型
19、三相异步电动机作为控制对象,功率为5.5KW,满足设计要求。本型号电动机为四极电动机,同步转速为1500 r/min,异步转速为1440 r/min。电动机同步转速公式如下:n=60f/p。f为频率,单位为Hz。n为转速,其单位为r/minp为磁极对数(注意是磁极对数而非磁极的个数,如本电机4极电机n=2)当然也可以选择其他的型号的电动机,不同型号的电动机并不影响控制电路的设计。 四、主电路、控制回路电路图及其工作原理1)、主回路电路图及其原理电机要实现正反转控制,将其电源的相序中任意两相对调即可(被称为换相),通常是V相不变,将U相与W相对调节器,为了保证两个接触器动作时能够可靠调换电动机的
20、相序,接线时应使接触器的上口接线保持一致,在接触器的下口调相。由于将两相相序对调,故须确保二个KM线圈不能同时得电,否则会发生严重的相间短路故障,因此必须采取联锁。为安全起见,常采用机械联锁与电气联锁的双重联锁正反转控制线路。使用了按钮联锁,即使同时按下正反转按钮,调相用的两接触器也不可能同时得电,机械上避免了相间短路。另外,由于应用的接触器联锁,所以只要其中一个接触器得电,其长闭触点就不会闭合,这样在机械、电气双重联锁的应用下,电机的供电系统不可能相间短路,有效地保护了电机,同时也避免在调相时相间短路造成事故,烧坏接触器。由于本项目采用研华控制卡和MCGS组态软件设置,所以可以通过MCGS程
21、序逻辑设计实现电气联锁,有效的保护电动机的正常运行,防止短路发生。对于点动和长动的区别,由于本次项目采用MCGS组态软件进行控制,因此只需在程序中进行控制逻辑的设计。并且本设计采用点动长动开关进行点动与长动的选择,通过点动长动选择开关进行点动与长动的选择。在主电路中,除了KM1、KM2出点外,还有熔断器FU和热继电器FR做为主电路的保护元件,防止由于短路或者过载、断相对电机的损坏。熔断器FU是指当电流超过规定值时,以本身产生的热量使熔体熔断,断开电路的一种电器。熔断器是根据电流超过规定值一段时间后,以其自身产生的热量使熔体熔化,从而使电路断开,可以防止电路短路对电动机的损坏,以最小的成本来实现
22、电动机的保护。热继电器FR是由流入热元件的电流产生热量,使有不同膨胀系数的双金属片发生形变,当形变达到一定距离时,就推动连杆动作,使控制电路断开,从而使接触器失电,主电路断开,实现电动机的过载保护以及断相保护。2)控制回路接线图 五、MCGS组态程序介绍及设计1)控制界面设计以下界面包括一个启停控制按钮、一个电机、一个长动点动选择开关以及两个分别控制正转和反转的按钮。默认运行时,启停按钮处于启动状态,当将长动点动开关达到长动时,电机正反转按钮即可以实现电动机的正反转运行,电机停止按钮即可以实现电动机的停止;当将点动开关打到点动时,按住正转、反转按钮电动机才分别进行正转、反转运行,松开按钮,电动
23、机停止。 2)设备窗口组态设备窗口是MCGS系统的重要组成部分,在设备窗口中建立系统与外部硬件设备的连接关系,使系统能够从外部设备读取数据并控制外部设备的工作状态,实现对工业过程的实时监控。在MCGS中,实现设备驱动的基本方法是:在设备窗口内配置不同类型的设备构件,并根据外部设备的类型和特征,设置相关的属性,将设备的操作方法如硬件参数配置、数据转换、设备调试等都封装在构件之中,以对象的形式与外部设备建立数据的传输通道连接。系统运行过程中,设备构件由设备窗口统一调度管理,通过通道连接,向实时数据库提供从外部设备采集到的数据,从实时数据库查询控制参数,发送给系统其它部分,进行控制运算和流程调度,实
24、现对设备工作状态的实时检测和过程的自动控制。MCGS的这种结构形式使其成为一个“与设备无关”的系统,对于不同的硬件设备,只需定制相应的设备构件,放置到设备窗口中,并设置相关的属性,系统就可对这一设备进行操作,而不需要对整个系统结构作任何改动。在MCGS单机版中,一个用户工程只允许有一个设备窗口。运行时,由主控窗口负责打开设备窗口,而设备窗口是不可见的,在后台独立运行,负责管理和调度设备构件的运行。由于MCGS对设备的处理采用了开放式的结构,在实际应用中,可以很方便地定制并增加所需的设备构件,不断充实设备工具箱。MCGS将逐步提供与国内外常用的工控产品相对应的设备构件,同时,MCGS也提供了一个
25、接口标准,以方便用户用Visual Basic或Visual C+等编程工具自行编制所需的设备构件,装入MCGS的设备工具箱内。MCGS提供了一个高级开发向导,自动生成设备驱动程序的框架,给我们的开发工作提供帮助。为了对普通工程用户快速定制开发特定的设备驱动程序提供方便,系统同时提供了典型设备驱动程序的源代码,在这些源代码的基础上进行移植修改,就可以生成自己所需的设备驱动程序。对已经编好的设备驱动程序,MCGS使用设备构件管理工具进行管理。单击在MCGS组态环境中“工具”菜单下的“设备构件管理”项,将弹出如下图所示的设备管理窗口: 设备管理窗口中提供了常用的上百种的设备驱动程序,给我们快速找到
26、适合自己的设备驱动程序提供了极大的方便,还可以完成所选设备在Windows中的登记和删除登记等工作。3)设备构件的通道连接MCGS设备中一般都包含有一个或多个用来读取或者输出数据的物理通道,MCGS把这样的物理通道称为设备通道,如:模拟量输入装置的输入通道、模拟量输出装置的输出通道、开关量输入输出装置的输入输出通道等等,这些都是设备通道。设备通道只是数据交换用的通路,而数据输入到哪儿和从哪儿读取数据以供输出,即进行数据交换的对象,则必须由用户指定和配置。实时数据库是MCGS的核心,各部分之间的数据交换均须通过实时数据库。因此,所有的设备通道都必须与实时数据库连接。所谓通道连接,也即是由用户指定
27、设备通道与数据对象之间的对应关系,这是设备组态的一项重要工作。如不进行通道连接组态,则MCGS无法对设备进行操作。程序脚本的编写 IF 启动=1 THEN KM1=1 IF 停止=1 THEN KM1=0 OR KM2=0 IF 反转=1 THEN KM2=1 IF 正转=1 THEN KM1=1 IF 点动=1 THEN KM1=1 OR KM2=1 IF 长动=1 THEN KM1=1 OR KM2=1总结 通过PC工控机+中泰基于PC的工业控制卡PCI8407和与其适配的中间继电器PS002+电动机正反转控制主回路这种设计方案,可以以较为低廉的价格达到控制电机正反转及点动长动的控制要求,
28、与PLC电机正反转控制系统相比较为廉价很多。同时可以通过MCGS组态软件快速的构建上位机监控及控制界面。配合其他的数据采集卡,可以实现对电动机转速、电压、电流等运行参数的实时监控与控制。并且此种方案在工业现场广为应用,符合工业控制系统的市场需求。通过一周的学习,我进一步加深了对于电机正反转等控制系统的理解,掌握了研华系列工业采集卡、控制卡的应用,并且学会了利用MCGS、VB等工控软件快速的构建工控机的上位机监控软件,从而可以快速的搭建出一整套工业控制系统以及采集监控系统。并且将学到的知识加以利用,转化为实实在在的生产力。总之,从本次的课程设计中,我受益匪浅。七、开发MCGS设备驱动程序 设备驱
29、动构件的实现设备驱动构件接口规范利用开发向导生成框架利用样例程序移植测试和挂接设备驱动构件IO端口的操作串行口的操作设备驱动构件的运行机制增加设备构件属性定制设备属性设备对话框编制简单的设备驱动构件八、参考文献 工厂电器、电气控制及PLC、电路原理、电子技术、检测与转换技术、制图、计算机原理、微机控制原理及应用、电力电子技术、计算机操作系统等课程教科书及相关专业报纸、杂志和论文。九、电气工程学院课程设计评审意见表指导教师评语:平时成绩: 指导教师签字: 2014年 6 月 22 日图面及其它成绩:答辩小组评语:答辩成绩: 组长签字: 2014年6 月 22 日课程设计综合成绩:答辩小组成员签字
30、: 2014年 6 月 22日 附录资料:不需要的可以自行删除bat文件的基本应用bat是dos下的批处理文件 .cmd是nt内核命令行环境的另一种批处理文件 从更广义的角度来看,unix的shell脚本以及其它操作系统甚至应用程序中由外壳进行解释执行的文本,都具有与批处理文件十分相似的作用,而且同样是由专用解释器以行为单位解释执行,这种文本形式更通用的称谓是脚本语言。所以从某个程度分析,batch, unix shell, awk, basic, perl 等脚本语言都是一样的,只不过应用的范围和解释的平台各有不同而已。甚至有些应用程序仍然沿用批处理这一称呼,而其内容和扩展名与dos的批处理
31、却又完全不同。 = 首先批处理文件是一个文本文件,这个文件的每一行都是一条DOS命令(大部分时候就好象我们在DOS提示符下执行的命令行一样),你可以使用DOS下的Edit或者Windows的记事本(notepad)等任何文本文件编辑工具创建和修改批处理文件。 = 注 = 批处理文件中完全可以使用非dos命令,甚至可以使用不具有可执行特性的普通数据性文件,这缘于windows系统这个新型解释平台的涉入,使得批处理的应用越来越边缘化。所以我们讨论的批处理应该限定在dos环境或者命令行环境中,否则很多观念和设定都需要做比较大的变动。 = 其次,批处理文件是一种简单的程序,可以通过条件语句(if)和流
32、程控制语句(goto)来控制命令运行的流程,在批处理中也可以使用循环语句(for)来循环执行一条命令。当然,批处理文件的编程能力与C语言等编程语句比起来是十分有限的,也是十分不规范的。批处理的程序语句就是一条条的DOS命令(包括内部命令和外部命令),而批处理的能力主要取决于你所使用的命令。 = 注 = 批处理文件(batch file)也可以称之为批处理程序(batch program),这一点与编译型语言有所不同,就c语言来说,扩展名为c或者cpp的文件可以称之为c语言文件或者c语言源代码,但只有编译连接后的exe文件才可以称之为c语言程序。因为批处理文件本身既具有文本的可读性,又具有程序的
33、可执行性,这些称谓的界限是比较模糊的。 = 第三,每个编写好的批处理文件都相当于一个DOS的外部命令,你可以把它所在的目录放到你的DOS搜索路径(path)中来使得它可以在任意位置运行。一个良好的习惯是在硬盘上建立一个bat或者batch目录(例如C:BATCH),然后将所有你编写的批处理文件放到该目录中,这样只要在path中设置上c:batch,你就可以在任意位置运行所有你编写的批处理程序。 = 注 = 纯以dos系统而言,可执行程序大约可以细分为五类,依照执行优先级由高到低排列分别是:DOSKEY宏命令(预先驻留内存),COMMAND.COM中的内部命令(根据内存的环境随时进驻内存),以c
34、om为扩展名的可执行程序(由 直接载入内存),以exe位扩展名的可执行程序(由 重定位后载入内存),以bat位扩展名的批处理程序(由 解释分析,根据其内容按优先级顺序调用第2,3,4,5种可执行程序,分析一行,执行一行,文件本身不载入内存) = 第四,在DOS和Win9x/Me系统下,C:盘根目录下的AUTOEXEC.BAT批处理文件是自动运行批处理文件,每次系统启动时会自动运行该文件,你可以将系统每次启动时都要运行的命令放入该文件中,例如设置搜索路径,调入鼠标驱动和磁盘缓存,设置系统环境变量等。下面是一个运行于Windows 98下的autoexec.bat的示例: ECHO OFF PAT
35、H C:WINDOWS;C:WINDOWSCOMMAND;C:UCDOS;C:DOSTools; C:SYSTOOLS;C:WINTOOLS;C:BATCH LH SMARTDRV.EXE /X LH DOSKEY.COM /insert LH CTMOUSE.EXE SET TEMP=D:TEMP SET TMP=D:TEMP = 注 = AUTOEXEC.BAT为DOS系统的自动运行批处理文件,由COMMAND.COM启动时解释执行; 而在Win9x环境中,不仅增加支持了 DOSSTART.BAT, WINSTART.BAT 等许多其它自动运行的批处理文件,对AUTOEXEC.BAT 也增
36、加了 .DOS .W40 .BAK .OLD .PWS 等许多变体以适应复杂的环境和多变的需求。 = willsort 编注 = 以下关于命令的分类,有很多值得推敲的地方。常用命令中的本不是命令,而dir、copy等也很常用的命令却没有列入, 而特殊命令中所有命令对我来说都是常用命令。建议将批处理所引用的命令分为内部命令、外部命令、第三方程序三类。而内部命令和外部命令中别有一类是专用于或常用于批处理中的命令可称之为批处理命令。 以下摘录MS-DOS 6.22 帮助文档中关于批处理命令的文字,当然,其中有些概念和定义已经有些落后了。 批处理命令 批处理文件或批处理程序是一个包含若干MS-DOS命
37、令的正文文件,扩展名为.BAT。当在命令提示符下敲入批处理程序的名称时,MS-DOS成组执行此批处理程序中的命令。 任何在命令提示符下可使用的命令都可用在批处理程序中。此外,下面MS-DOS命令是专门在批处理程序中使用的。 = 常用命令 echo、call、pause、rem(小技巧:用:代替rem)是批处理文件最常用的几个命令,我们就从他们开始学起。 = 注 = 首先, 不是一个命令, 而是DOS 批处理的一个特殊标记符, 仅用于屏蔽命令行回显. 下面是DOS命令行或批处理中可能会见到的一些特殊标记符: CR(0D) 命令行结束符 Escape(1B) ANSI转义字符引导符 Space(2
38、0) 常用的参数界定符 Tab(09) ; = 不常用的参数界定符 + COPY命令文件连接符 * ? 文件通配符 字符串界定符 | 命令管道符 文件重定向符 命令行回显屏蔽符 / 参数开关引导符 : 批处理标签引导符 % 批处理变量引导符 其次, : 确实可以起到rem 的注释作用, 而且更简洁有效; 但有两点需要注意: 第一, 除了 : 之外, 任何以 :开头的字符行, 在批处理中都被视作标号, 而直接忽略其后的所有内容, 只是为了与正常的标号相区别, 建议使用 goto 所无法识别的标号, 即在 :后紧跟一个非字母数字的一个特殊符号. 第二, 与rem 不同的是, :后的字符行在执行时不
39、会回显, 无论是否用echo on打开命令行回显状态, 因为命令解释器不认为他是一个有效的命令行, 就此点来看, rem 在某些场合下将比 : 更为适用; 另外, rem 可以用于 config.sys 文件中. = echo 表示显示此命令后的字符 echo off 表示在此语句后所有运行的命令都不显示命令行本身 与echo off相象,但它是加在每个命令行的最前面,表示运行时不显示这一行的命令行(只能影响当前行)。 call 调用另一个批处理文件(如果不用call而直接调用别的批处理文件,那么执行完那个批处理文件后将无法返回当前文件并执行当前文件的后续命令)。 pause 运行此句会暂停批
40、处理的执行并在屏幕上显示Press any key to continue.的提示,等待用户按任意键后继续 rem 表示此命令后的字符为解释行(注释),不执行,只是给自己今后参考用的(相当于程序中的注释)。 = 注 = 此处的描述较为混乱, 不如直接引用个命令的命令行帮助更为条理 ECHO 当程序运行时,显示或隐藏批处理程序中的正文。也可用于允许或禁止命令的回显。 在运行批处理程序时,MS-DOS一般在屏幕上显示(回显)批处理程序中的命令。 使用ECHO命令可关闭此功能。 语法 ECHO ON|OFF 若要用echo命令显示一条命令,可用下述语法: echo message 参数 ON|OFF
41、 指定是否允许命令的回显。若要显示当前的ECHO的设置,可使用不带参数的ECHO 命令。 message 指定让MS-DOS在屏幕上显示的正文。 CALL 从一个批处理程序中调用另一个批处理程序,而不会引起第一个批处理的中止。 语法 CALL drive:pathfilename batch-parameters 参数 drive:pathfilename 指定要调用的批处理程序的名字及其存放处。文件名必须用.BAT作扩展名。 batch-parameters 指定批处理程序所需的命令行信息。 PAUSE 暂停批处理程序的执行并显示一条消息,提示用户按任意键继续执行。只能在批处 理程序中使用该
42、命令。 语法 PAUSE REM 在批处理文件或CONFIG.SYS中加入注解。也可用REM命令来屏蔽命令(在CONFIG.SYS 中也可以用分号 ; 代替REM命令,但在批处理文件中则不能替代)。 语法 REM string 参数 string 指定要屏蔽的命令或要包含的注解。 = 例1:用edit编辑a.bat文件,输入下列内容后存盘为c:a.bat,执行该批处理文件后可实现:将根目录中所有文件写入 a.txt中,启动UCDOS,进入WPS等功能。 批处理文件的内容为: 命令注释: echo off 不显示后续命令行及当前命令行 dir c:*.* a.txt 将c盘文件列表写入a.txt
43、 call c:ucdosucdos.bat 调用ucdos echo 你好 显示你好 pause 暂停,等待按键继续 rem 准备运行wps 注释:准备运行wps cd ucdos 进入ucdos目录 wps 运行wps 批处理文件的参数 批处理文件还可以像C语言的函数一样使用参数(相当于DOS命令的命令行参数),这需要用到一个参数表示符%。 %1-9表示参数,参数是指在运行批处理文件时在文件名后加的以空格(或者Tab)分隔的字符串。变量可以从%0到%9,%0表示批处理命令本身,其它参数字符串用%1到%9顺序表示。 例2:C:根目录下有一批处理文件名为f.bat,内容为: echo off
44、format %1 如果执行C:f a: 那么在执行f.bat时,%1就表示a:,这样format %1就相当于format a:,于是上面的命令运行时实际执行的是format a: 例3:C:根目录下一批处理文件名为t.bat,内容为: echo off type %1 type %2 那么运行C:t a.txt b.txt %1 : 表示a.txt %2 : 表示b.txt 于是上面的命令将顺序地显示a.txt和b.txt文件的内容。 = 注 = 参数在批处理中也作为变量处理, 所以同样使用百分号作为引导符, 其后跟0-9中的一个数字构成参数引用符. 引用符和参数之间 (例如上文中的 %1
45、 与 a: ) 的关系类似于变量指针与变量值的关系. 当我们要引用第十一个或更多个参数时, 就必须移动DOS 的参数起始指针. shift 命令正充当了这个移动指针的角色, 它将参数的起始指针移动到下一个参数, 类似C 语言中的指针操作. 图示如下: 初始状态, cmd 为命令名, 可以用 %0 引用 cmd arg1 arg2 arg3 arg4 arg5 arg6 arg7 arg8 arg9 arg10 | | | | | | | | | | %0 %1 %2 %3 %4 %5 %6 %7 %8 %9 经过1次shift后, cmd 将无法被引用 cmd arg1 arg2 arg3 a
46、rg4 arg5 arg6 arg7 arg8 arg9 arg10 | | | | | | | | | | %0 %1 %2 %3 %4 %5 %6 %7 %8 %9 经过2次shift后, arg1也被废弃, %9指向为空, 没有引用意义 cmd arg1 arg2 arg3 arg4 arg5 arg6 arg7 arg8 arg9 arg10 | | | | | | | | | %0 %1 %2 %3 %4 %5 %6 %7 %8 遗憾的是, win9x 和DOS下均不支持 shift 的逆操作. 只有在 nt 内核命令行环境下, shift 才支持 /n 参数, 可以以第一参数为基准
47、返复移动起始指针. = 特殊命令 if goto choice for是批处理文件中比较高级的命令,如果这几个你用得很熟练,你就是批处理文件的专家啦。 一、if 是条件语句,用来判断是否符合规定的条件,从而决定执行不同的命令。 有三种格式: 1、if not 参数 = 字符串 待执行的命令 参数如果等于(not表示不等,下同)指定的字符串,则条件成立,运行命令,否则运行下一句。 例:if %1=a format a: = if 的命令行帮助中关于此点的描述为: IF NOT string1=string2 command 在此有以下几点需要注意: 1. 包含字符串的双引号不是语法所必须的, 而
48、只是习惯上使用的一种防空字符 2. string1 未必是参数, 它也可以是环境变量, 循环变量以及其他字符串常量或变量 3. command 不是语法所必须的, string2 后跟一个空格就可以构成一个有效的命令行 = 2、if not exist 路径文件名 待执行的命令 如果有指定的文件,则条件成立,运行命令,否则运行下一句。 如: if exist c:config.sys type c:config.sys 表示如果存在c:config.sys文件,则显示它的内容。 * 注 * 也可以使用以下的用法: if exist command device 是指DOS系统中已加载的设备,
49、在win98下通常有: AUX, PRN, CON, NUL COM1, COM2, COM3, COM4 LPT1, LPT2, LPT3, LPT4 XMSXXXX0, EMMXXXX0 A: B: C: ., CLOCK$, CONFIG$, DblBuff$, IFS$HLP$ 具体的内容会因硬软件环境的不同而略有差异, 使用这些设备名称时, 需要保证以下三点: 1. 该设备确实存在(由软件虚拟的设备除外) 2. 该设备驱动程序已加载(aux, prn等标准设备由系统缺省定义) 3. 该设备已准备好(主要是指a: b: ., com1., lpt1.等) 可通过命令 mem/d | f
50、ind device /i 来检阅你的系统中所加载的设备 另外, 在DOS系统中, 设备也被认为是一种特殊的文件, 而文件也可以称作字符设备; 因为设备(device)与文件都是使用句柄(handle)来管理的, 句柄就是名字, 类似于文件名, 只不过句柄不是应用于磁盘管理, 而是应用于内存管理而已, 所谓设备加载也即指在内存中为其分配可引用的句柄. = 3、if errorlevel 待执行的命令 很多DOS程序在运行结束后会返回一个数字值用来表示程序运行的结果(或者状态),通过if errorlevel命令可以判断程序的返回值,根据不同的返回值来决定执行不同的命令(返回值必须按照从大到小的
51、顺序排列)。如果返回值等于指定的数字,则条件成立,运行命令,否则运行下一句。 如if errorlevel 2 goto x2 = 注 = 返回值从大到小的顺序排列不是必须的, 而只是执行命令为 goto 时的习惯用法, 当使用 set 作为执行命令时, 通常会从小到大顺序排列, 比如需将返回码置入环境变量, 就需使用以下的顺序形式: if errorlevel 1 set el=1 if errorlevel 2 set el=2 if errorlevel 3 set el=3 if errorlevel 4 set el=4 if errorlevel 5 set el=5 . 当然,
52、也可以使用以下循环来替代, 原理是一致的: for %e in (1 2 3 4 5 6 7 8.) do if errorlevel %e set el=%e 更高效简洁的用法, 可以参考我写的另一篇关于获取 errorlevel 的文章 出现此种现象的原因是, if errorlevel 比较返回码的判断条件并非等于, 而是大于等于. 由于 goto 的跳转特性, 由小到大排序会导致在较小的返回码处就跳出; 而由于 set命令的 重复 赋值特性, 由大到小排序会导致较小的返回码 覆盖 较大的返回码. 另外, 虽然 if errorlevel= command 也是有效的命令行, 但也只是
53、解释命令行时将 = 作为命令行切分符而忽略掉罢了 = 二、goto 批处理文件运行到这里将跳到goto所指定的标号(标号即label,标号用:后跟标准字符串来定义)处,goto语句一般与if配合使用,根据不同的条件来执行不同的命令组。 如: goto end :end echo this is the end 标号用:字符串来定义,标号所在行不被执行。 = willsort 编注 label 常被译为 标签 , 但是这并不具有广泛的约定性. goto 与 : 联用可实现执行中途的跳转, 再结合 if 可实现执行过程的条件分支, 多个 if 即可实现命令的分组, 类似 C 中 switch ca
54、se 结构或者 Basic 中的 select case 结构, 大规模且结构化的命令分组即可实现高级语言中的函数功能. 以下是批处理和C/Basic在语法结构上的对照: Batch C / Basic goto&: goto&: goto&:&if if&else / if&elseif&endif goto&:&if. switch&case / select case goto&:&if&set&envar. function() / function(),sub() = 三、choice 使用此命令可以让用户输入一个字符(用于选择),从而根据用户的选择返回不同的errorlevel,然
55、后于if errorlevel配合,根据用户的选择运行不同的命令。 注意:choice命令为DOS或者Windows系统提供的外部命令,不同版本的choice命令语法会稍有不同,请用choice /?查看用法。 choice的命令语法(该语法为Windows 2003中choice命令的语法,其它版本的choice的命令语法与此大同小异): CHOICE /C choices /N /CS /T timeout /D choice /M text 描述: 该工具允许用户从选择列表选择一个项目并返回所选项目的索引。 参数列表: /C choices 指定要创建的选项列表。默认列表是 YN。 /N
56、 在提示符中隐藏选项列表。提示前面的消息得到显示, 选项依旧处于启用状态。 /CS 允许选择分大小写的选项。在默认情况下,这个工具 是不分大小写的。 /T timeout 做出默认选择之前,暂停的秒数。可接受的值是从 0 到 9999。如果指定了 0,就不会有暂停,默认选项 会得到选择。 /D choice 在 nnnn 秒之后指定默认选项。字符必须在用 /C 选 项指定的一组选择中; 同时,必须用 /T 指定 nnnn。 /M text 指定提示之前要显示的消息。如果没有指定,工具只 显示提示。 /? 显示帮助消息。 注意: ERRORLEVEL 环境变量被设置为从选择集选择的键索引。列出的
57、第一个选 择返回 1,第二个选择返回 2,等等。如果用户按的键不是有效的选择, 该工具会发出警告响声。如果该工具检测到错误状态,它会返回 255 的 ERRORLEVEL 值。如果用户按 Ctrl+Break 或 Ctrl+C 键,该工具会返回 0 的 ERRORLEVEL 值。在一个批程序中使用 ERRORLEVEL 参数时,将参数降 序排列。 示例: CHOICE /? CHOICE /C YNC /M 确认请按 Y,否请按 N,或者取消请按 C。 CHOICE /T 10 /C ync /CS /D y CHOICE /C ab /M 选项 1 请选择 a,选项 2 请选择 b。 CHO
58、ICE /C ab /N /M 选项 1 请选择 a,选项 2 请选择 b。 = willsort 编注 = 我列出win98下choice的用法帮助, 已资区分 Waits for the user to choose one of a set of choices. 等待用户选择一组待选字符中的一个 CHOICE /C:choices /N /S /T:c,nn text /C:choices Specifies allowable keys. Default is YN 指定允许的按键(待选字符), 默认为YN /N Do not display choices and ? at end
59、 of prompt string. 不显示提示字符串中的问号和待选字符 /S Treat choice keys as case sensitive. 处理待选字符时大小写敏感 /T:c,nn Default choice to c after nn seconds 在 nn 秒后默认选择 c text Prompt string to display 要显示的提示字符串 ERRORLEVEL is set to offset of key user presses in choices. ERRORLEVEL 被设置为用户键入的字符在待选字符中的偏移值 如果我运行命令:CHOICE /C
60、YNC /M 确认请按 Y,否请按 N,或者取消请按 C。 屏幕上会显示: 确认请按 Y,否请按 N,或者取消请按 C。 Y,N,C? 例:test.bat的内容如下(注意,用if errorlevel判断返回值时,要按返回值从高到低排列): echo off choice /C dme /M defrag,mem,end if errorlevel 3 goto end if errorlevel 2 goto mem if errorlevel 1 goto defrag :defrag c:dosdefrag goto end :mem mem goto end :end echo go
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《第11课 身边的扩音系统》教学设计教学反思-2023-2024学年小学信息技术浙教版2023六年级下册
- 外科三基考试题+参考答案
- 局部解剖学模拟题(含答案)
- 送配电线路工(配电)-初级工习题库
- 2025年湖南工商职业学院单招职业技能测试题库完美版
- 《选择性必修1、2》 集体教学设计-2024-2025学年高二上学期生物人教版选择性必修
- 2025年黑龙江农垦职业学院单招职业适应性测试题库1套
- 高中信息技术必修教学设计-4.2.2 表格数据的图形化6-教科版
- Module 2 public holidays Unit 1教学设计 2024-2025学年外研版九年级英语上册
- 2024中国华能旗下湖南华能长江环保科技有限公司市场化招聘笔试参考题库附带答案详解
- 学前教育大专毕业论文3000字
- 注塑领班简历样板
- 骨骼肌-人体解剖学-运动系统
- 基于康耐视相机的视觉识别实验指导书
- 三年级书法下册《第9课 斜钩和卧钩》教学设计
- 儿童财商养成教育讲座PPT
- 大学学院学生奖助资金及相关经费发放管理暂行办法
- 2022苏教版科学五年级下册全册优质教案教学设计
- 2023年R2移动式压力容器充装操作证考试题及答案(完整版)
- 九年级物理实验记录单
- 2022年湖北省高中学业水平考试真题-音乐学科
评论
0/150
提交评论