第七章微型计算机控制系统的设计与实践微型计算机控制系统是一个复杂的信息处理系统,控制系统的设计、开发是一项复杂的系统工程,它是一个理论问题,又是一个工程问题。设计人员必须把各个部分结合在一起形成一个有机的整体,才能发挥其最大效力,整体才能大于部分之和。这就要求工程设计人员有条不紊,按照一定的步骤,综合考虑各个设计环节。通过前面的介绍,我们已经学习了输入输出接口电路的设计和扩展方法、模拟量输入/输出通道和数字量输入/输出通道的组成与工作原理、计算机控制系统中常用的应用程序、数字控制器的各种设计方法等,它们是设计微型计算机控制系统的基础。掌握了这些基础知识,就具备了设计计算机控制系统的条件,可以设计出简单的、并且能够满足一定要求的计算机控制系统。本章简要叙述计算机控制系统设计的基本要求、方法以及设计步骤,分析应用系统开发的一般过程,通过实际例子,使读者掌握如何设计一个可以满足使用要求的计算机控制系统。7.1微型计算机控制系统设计的基本要求和特点尽管计算机控制的生产过程多种多样,实现方法和指标要求千变万化,工业环境也不尽相同,但是计算机控制系统设计的基本要求是一致的,系统具有某些相同的特点。7.1.1系统设计的基本要求1、可靠性高计算机控制系统的应用环境比较恶劣,周围存在各种干扰源,他们直接影响着控制系统的运行。一旦系统出现故障,就会影响系统的控制质量,威胁到整个生产过程,严重时会造成事故,造成人员伤亡和财产损失。因此可靠性是计算机控制系统设计的第一要素,是最重要的一个基本要求。系统的可靠性主要是指系统应该具备高质量、高抗干扰能力,有较长的平均无故障时间。工业生产常常是连续(昼夜)生产,这就要求计算机控制系统具有高度可靠性,不能中途停机,不能发生故障。CPU的性能决定了计算机控制系统的性能,为了保证系统有较高的可靠性,首先必须选择高性能的工业控制计算机,保证系统在恶劣的工业环境下,仍能正常工作。选择计算机时,通常要求计算机每年出现故障的时间不超过4个小时,目前的工控计算机都能作到几千小时不出一次故障。一旦出现故障也能在几分钟之内修复。同时为了防止外界干扰,除了供电系统采用隔离变压器以外,在生产过程与过程通道之间也采取继电器、变压器、光电管等隔离方法,使计算机系统与外界的过程控制器和检查仪表之间没有公共地线,成为一个浮空系统,保证危险不会扩散。其次在设计过程中,应该考虑各种安全保护措施,比如报警、事故预测、事故处理、实时监控、不间断电源等,以降低系统出现故障的概率,提高其可靠性。另外为了保证计算机控制系统的可靠性,还常常设计后备装置、采用双机系统或者分布式控制系统等方法。当一台计算机出现故障,后备装置或其它计算机会维持生产过程的正常运行。2、实时性强实时性是计算机控制系统中一个非常重要的指标,要求系统可以及时响应并处理各种事件,并且不丢失任何信息,不延误任何操作。计算机系统的实时性并不是指系统的速度越快越好,而应根据实际要求,从毫秒到分进行采样控制,能实时监控现场的各种工艺参数并进行在线修正,对紧急事故进行及时处理。设计时应充分考虑被控对象以及执行机构的响应速度,选择合适的计算机、A/D转换器、D/A转换器、检测仪表等,保证信号的输入、计算、输出都能在一定的时间间隔内完成,计算机输出的信息以足够快的速度进行处理并在一定的时间内作出反映或进行控制。实时性必须结合实际生产过程,变化缓慢的生产过程,时间间隔可以长一点;变化速度快的受控对象,时间间隔可以短一些。3、通用性好、可扩充性强计算机控制系统的研制开发需要一定的周期,控制设备需要更新,控制对象需要增减。设计时应该考虑能适应不同设备和各种不同的受控对象,采用模块化结构,按照控制要求灵活构建系统。对系统稍加改动,就可满足新的使用要求,以降低系统研发的成本,缩短开发周期,这就要求系统的通用性好,可扩充性强。为了达到这个目的,应该做到设计标准化,硬件上采用通用的标准总线结构,增强硬件配置的装配性和可扩充性,功能扩充时只需增加功能模板就能实现,接口部件最好采用通用的LSI接口芯片。软件上采用标准模块结构,不需要进行二次开发,只需按照要求选择各个功能模块,实现控制任务。另外设计时考虑的设计指标应留有余地,比如电源功率、存储器容量、输入/输出通道的数目等,以备系统扩充时使用。4、操作性好,维修容易硬件和软件设计时,要考虑操作性和系统维修的问题。操作性好是指操作简单,不需要操作人员掌握专门的计算机知识,降低对操作人员的专业知识的要求,同时兼顾操作人员的习惯,方便用户使用。应用软件应采用模块化结构,对程序加以注释,增强其可读性。程序应尽可能短小精悍,让人一目了然。系统发生故障时,应该容易维修。硬件上应该选择便于维修的零部件,并在模板上设置监测点和指示灯,便于测试和维修;软件上要配置查错程序和故障诊断程序,可以查找故障发生的大概位置,缩短查找故障的时间。5、性价比高设计时元件的选择、CPU的选型、执行机构以及检测装置、传感器的选择等,都应考虑性价比。计算机控制系统一般应用于生产线、大型设备的自动化控制或大批量生产的产品中,经济效益是必须考虑的。这就要求设计人员要有市场竞争意识,选择器件时要充分考虑性价比,在满足性能指标的前提下尽可能降低成本,提高其经济效益。另外在设计实现方案时,应该多次论证,详细考察,尽量简化硬件电路,用软件实现其功能,降低硬件成本。以上是计算机控制系统设计的基本要求,其它指标要求,比如精度、速度、体积、调节时间、安装、监控参数及监视手段等,对不同的被控对象和生产过程是有所不同的,应该根据实际需要,量化指标要求,设计中应予以重视,满足使用要求。7.1.2系统设计的特点计算机控制技术涉及到自动控制理论、计算技术、计算方法、模拟电子技术、数字电子技术、计算机组成原理以及自动检测技术,是一个多学科的应用,综合性、实践性都比较强,因此对设计人员的要求比较高。工程设计人员首先必须具备一定的硬件基础知识,可以设计接口电路、驱动装置、检测电路等,对外围设备的数据进行采集并实施控制;其次应具备一定的软件设计能力,可根据系统的需要,进行A/D转换、D/A转换、报警、数据处理等。在实时监控系统中,还可利用组态软件对系统进行实时监控,另外还必须用软件实现数字控制器。最后还应该具备一定的理论基础,可以根据受控过程建立系统的数学模型,从理论上探讨各种控制算法的优劣,推导出控制算式。计算机控制系统的设计包含了硬件、软件、理论、试验等各方面的内容,非一人之力可以完成,因此需要设计人员团结合作,综合运用各种知识,才能设计出计算机控制系统。计算机控制系统必须结合实际的受控对象和生产过程,设计人员必须掌握生产过程的工艺性能及被测参数的测量方法,了解被控对象的特性,才能确定控制方案。在现场调试过程中,还涉及到系统的安装、试验方法、精度的测量等。此外系统的设计还应考虑先进性、操作的合理性、开发的周期以及人力、物力的节约等。综上所述,计算机控制系统的设计具有以下特点:(1)综合性、实践性比较强,对设计人员提出了很高的要求。(2)项目组成员需团结合作,取长补短,才能完成设计任务。(3)设计中合理分配硬件和软件功能。某些功能,既可用硬件实现,其实时性强,但增加了成本,结构比较复杂;也可通过软件实现,降低成本,结构简单,但实时性较差。通常在满足系统的实时性要求的基础上,尽可能减少硬件开销,做到软硬兼施。(4)尽可能采用已有的成熟的控制策略和控制方法,缩短开发周期,节约人力和物力。(5)应该具有前瞻性,保证计算机系统在一定时间段内的先进性,使其不会在很短的时间内就被淘汰,发挥不出作用,没有创造较高的经济效益。(6)坚持以人为本的理念,人机界面友好,操作简单方便。7.2微型计算机控制系统的设计方法及步骤计算机控制系统的设计虽然随被控对象、生产过程、控制方式、系统规模、设计人员的不同而有所差异,但是其设计过程和设计步骤大致相同。7.2.1微型计算机控制系统的设计步骤1、调研阶段调研是整个开发过程中的关键一环,主要包括市场调查、查阅资料、可行性分析、初步确定实现方案等步骤。市场调查的主要目的是判断所要开发的产品是否存在经济效益,市场上是否有类似的产品。如果存在类似的产品,其性能如何,包含哪些功能。通过调研可以确定系统开发的必要性,把设计任务明确化,提出具体的设计指标要求。明确了设计任务后,设计人员可以查阅大量的资料,利用书本、论文期刊、网络等资源,借鉴他人的成功经验,做到心中有数,对所设计的系统有初步的了解。可行性分析就是经过调研,从经济效益、技术的先进性、客观条件、存在的问题以及工程实现等各个方面,充分论证项目研发的必要性和可实现性。结合自身的经济条件,技术储备,经过项目组充分论证,如果认为可行,就可投入人力、物力,开始研发。经过以上步骤,查阅了大量资料,就可以制订初步的开发方案,选择微处理器的类型,根据当前的人力、物力等客观条件,以书面形式写出计划报告。一般应包括课题研究的内容、目的、背景和必要性;国内外的研究现状、发展趋势;要求的功能指标和性能指标;初步的实现方案;技术力量及分工;开发时间表以及预期的研发效果等等。2、确定控制方案,签定合同书计划报告必须经过双方协商和讨论,对实施方案进一步细化,对方案进行详细论证。为避免专业和行业不同所带来的局限性,应该邀请各方面有经验的人员参加。经过确认,控制方案确实可行,就可签定合同书。在合同书中应明确系统设计的技术性能指标以及系统实现的功能、双方合作的方式、双方的分工以及责任、进度时间表、付款方式、验收方式及条件、成果归属等内容。签定后,双方应遵守合同,认真负责,确保任务的完成。3、工程设计及实现阶段工程设计和实现是系统研发的重要过程,直接影响着设计质量,主要包括组建研发小组、硬件和软件协调分工、论证每部分的设计方案、收集软件和硬件资料并细化设计方案、购置硬件、系统设计、系统调试等。签定合同后,进入系统的研制设计阶段。对于大型系统,往往要成立攻关小组,确定项目组成员。其中应包含硬件技术人员、软件技术人员以及其它技术人员,应明确分工和相互的协调关系。计算机控制系统中的某些功能,既可用软件实现,也可用硬件实现,应该结合具体的体积、成本、速度等各个指标要求,对功能进行协调分配。然后按照分工,查阅资料,细化设计方案,详细论证、讨论每一部分的设计过程,确定最后的实现方案,并列出器件清单和软件流程图。硬件购置是必不可少的重要一环。设计人员需要查阅大量资料,根据设计的指标要求,结合性价比,多方比较后才能确定选择的器件。为确保进度,可安排专人负责硬件的购置,也可通过各种方式购置硬件。购置硬件时,一定要仔细核实,询问相关技术人员有关器件的性能,确保能够满足设计的要求。在研发过程中,绝对不能忽视硬件的购置,如果出现问题,不仅造成财产损失,而且影响进度。系统设计包括硬件设计和软件设计。硬件设计应画出硬件原理图和PCB图,对不清楚的地方,应该通过实验,确保原理和参数的正确性;软件设计应画出程序流程图,然后再选择编程语言及开发环境,编写源程序,并进行编译,确保没有语法错误和明显的逻辑错误。各部分设计完成后,应该进行调试。把硬件和软件结合起来,看看所要求的功能是否实现,指标是否满足要求。如果没有达到设计要求,就要进行硬件检查和软件诊断,改变控制参数。4、系统试运行阶段实验室调试完成后,可以把系统与生产过程连接在一起,进行现场在线调试和运行。在实际运行中可能出现问题,因此必须考虑各种情况,实际测试,认真分析问题的根源并加以解决。5、总结验收阶段系统试运行一段时间,没有问题之后即可组织验收。验收是项目最终完成的标志。项目组要对项目的研制进行总结,包括软件流程、程序清单、硬件原理图和PCB图、操作过程、使用说明、系统功能以及技术指标、试验数据等。验收结果要双方签字,形成验收文件。一些技术含量较高的项目,还可组织鉴定,申报国家级或省部级奖项。以上是系统设计的基本步骤,设计时可根据实际情况,认真考虑。如果步骤不清楚,就有可能导致研发过程出现混乱,甚至造成返工。7.2.2系统的设计及实现过程上一节介绍了系统设计的基本步