计算机控制系统(第4版)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.3.2 计算机控制系统的软件

计算机控制系统的硬件是完成控制任务的设备基础,而计算机的操作系统和各种应用程序是履行控制系统任务的关键,通称为软件。软件的质量关系到计算机运行和控制效果的好坏,影响硬件性能的充分发挥和推广应用。计算机控制系统软件的组成如图1-5所示。

1.计算机控制系统软件的分类

计算机控制系统的软件按照其职能可分为系统软件、应用软件和支持软件三部分。

(1)系统软件

计算机控制系统的系统软件用于组织和管理计算机控制系统的硬件,为应用软件提供基本的运行环境,并为用户提供基本的通信和人机交互方法。系统软件一般由计算机厂家提供,不需要计算机控制系统的设计人员进行设计和维护。系统软件分为操作系统、系统通信、网络连接和管理及人机交互四部分,其中操作系统按照任务的实时性表现分为通用操作系统和实时操作系统两种,实时操作系统可满足工控任务的实时性需求,因此一般被应用在工业控制领域中。系统通信和网络等部分为设计人员提供了设计基础,设计人员在系统软件的基础上定制应用软件,完成控制任务。

(2)应用软件

计算机控制系统的应用软件是面向生产过程的程序,用于完成计算机监测和控制任务。应用软件一般由计算机控制系统的设计人员编写,针对特定生产过程定制。

应用软件可分为检测软件、监督软件和控制软件三类,检测软件作为计算机控制系统与生产过程之间的桥梁,一般用于生产过程中信息的采集和存储,完成信息的获取工作;监督软件用于对信息进行分析,并对事故和异常进行处理;控制软件是系统的核心部分,依据控制策略完成对生产过程的调整和控制。控制软件按照应用场合可分为运动控制、常用控制、现代控制、智能控制以及网络与现场总线五种,分别对应多种控制算法和控制策略。

(3)支持软件

计算机控制系统的支持软件是系统的设计工具和设计环境,用于为设计人员提供软件的设计接口,并为计算机控制系统提供功能更新的途径。支持软件包括程序设计语言、程序设计软件、编译连接软件、调试软件、诊断软件和数据库六部分,用户使用程序设计语言和程序设计软件设计计算机控制软件,通过编译、链接和调试进行软件测试。数据库软件为程序提供必要的运行支持,并为软件的更新和维护提供参考依据。

图1-5 计算机控制系统软件的组成

2.计算机控制系统软件的开发与运行环境

计算机控制系统软件对操作系统有特定的要求,其中稳定性和实时性是主要要求。计算机控制系统要求操作系统长时间无故障运行,对系统异常和恶意程序具备较好的处理能力,并可长时间运行无须更新系统补丁。除此之外,操作系统还需要对实时性较高的任务提供支持,以确保控制任务的正常进行。目前计算机控制系统采用Windows、Linux和定制系统三种操作系统。

(1)Windows操作系统

Windows操作系统由微软公司发布,经过长时间更新和维护后的版本具有较高的稳定性。用于工业控制领域的操作系统一般采用低版本Windows系统以获得较完备、稳定的系统功能,避免未知漏洞和频繁的系统更新。Windows操作系统一般应用在冶金、石油、电力等大型工控场合。

(2)Linux操作系统

Linux操作系统基于POSIX和UNIX开发,具有开源、免费和稳定的特点。Linux操作系统采用GPL协议,用户可以通过网络或其他途径免费获得,Linux操作系统中一些商业化版本经过实践检验具备较稳定的运行特性,逐渐被计算机控制系统采用。Linux操作系统一般应用在金融、政府、教育和商业场合,目前被计算机控制领域广泛采用的Linux操作系统包括RHEL(Red Hat Enterprise Linux)、Debian和Ubuntu,其中RHEL多作为服务器的操作系统,Debian和Ubuntu系统在微型计算机上使用较多。

(3)定制操作系统

特殊用途下的计算机控制系统基于特有的操作系统开发,达到了从系统软件到应用软件的深度定制。定制操作系统一般基于Linux系统开发,根据生产过程的需要对系统的功能和策略进行修改和删减。定制操作系统一般用于过程控制、通信和嵌入式等领域,以VxWorks、QNX和RT-Linux为代表的嵌入式实时操作系统在多个计算机控制领域中有出色表现,定制操作系统在安全性和效率上具有独特优势。

3.计算机控制系统软件开发技术

计算机控制系统的软件开发技术可分为软件设计规划、软件设计模式、软件设计方法和软件开发工具四个类别。

(1)软件设计规划

软件设计规划包括软件开发基本策略、软件开发方案和软件过程模型三部分,软件开发中的三种基本策略是复用、分而治之、优化与折中。复用即利用某些已开发的、对建立新系统有用的软件元素来生成新的软件系统;分而治之是指把大而复杂的问题分解成若干个简单的小问题后逐个解决;软件的优化是指优化软件的各个质量因素,折中是指通过协调各个质量因素,实现整体质量的最优。其中软件开发的基本策略是软件开发的基本思想和整体脉络,贯穿软件开发的整体流程。

软件开发方案是对软件的构造和维护提出的总体设计思路和方案,经典的软件工程思想将软件开发分成需求分析、系统分析与设计、系统实现、测试及维护五个阶段,设计人员在进行软件开发和设计之前需要确定软件的开发策略,并明确软件的设计方案,对软件开发的五个过程进行具体设计。

软件过程模型是在软件开发技术发展过程中形成的软件整体开发策略,这种策略从需求收集开始到软件寿命终止,针对软件工程的各个阶段提供了一套范形,使工程的进展达到预期的目的。常用的软件过程模型包括生存周期模型、原型实现模型、增量模型、螺旋模型和喷泉模型五种。

(2)软件设计模式

为增强计算机控制系统软件的代码可靠性和可复用性,增强软件的可维护性,在计算机软件的发展过程中,代码设计经验经过实践检验和分类编目,形成了软件设计模式。软件设计模式一般可分为创建型、结构型和行为型三类,所有模式都遵循开闭原则、里氏代换原则、依赖倒转原则和合成复用原则等通用原则。常用的软件模式包括单例模式、抽象工厂模式、代理模式、命令模式和策略模式。软件设计模式一般适用于特定的生产场景,以合适的软件设计模式指导软件的开发工作可对软件的开发起到积极的促进作用。

(3)软件设计方法

计算机控制系统中软件的设计方法主要有面向过程方法、面向数据流方法和面向对象方法,分别对应不同的应用场景。面向过程方法是计算机控制系统软件发展早期被广泛采用的设计方法,其设计以过程为中心,以函数为单元,强调控制任务的流程性,设计的过程是分析过程和用函数代换的流程化思想,在流程特性较强的生产领域具备较高的设计效率。面向数据流方法又称为结构化设计方法,其主体思想是用数据结构描述待处理数据的组织形式,用算法描述具体的操作过程,强调将系统分割为逻辑功能模块的集合,并确保模块之间的结构独立,减少了设计的复杂度,增强了代码的可重用性。面向对象的设计方法是计算机控制系统软件发展到一定阶段的产物,采用封装、继承、多态等方法将生产过程抽象为对象,将生产过程的属性和流程抽象为对象的变量和方法,使用类对生产过程进行描述,使代码的可复用性和可扩展性得到了极大提升,降低了软件的开发和维护难度。

(4)软件开发工具

计算机控制系统软件的开发过程中常用到的软件开发工具有程序设计语言、程序编译器、集成开发环境、数据库软件和分布式编程模型等。

编程语言是用来定义计算机程序的标准化形式语言,可分为机器语言、汇编语言和高级语言三种,机器语言是用二进制代码表示的计算机能直接识别和执行的一种机器指令的集合,它是计算机的设计者通过计算机的硬件结构赋予计算机的操作功能。机器语言具有灵活、直接执行和速度快等特点,但代码由二进制指令构成,可读性差,不具备平台间可移植性。汇编语言具备和机器语言相同的实质,采用标识符对机器语言进行标记,增强了机器语言的可读性。高级语言是高度封装了的编程语言,是较接近自然语言和数学公式的语言,基本脱离了机器的硬件系统,用人们更易理解的方式编写程序。高级语言并不是特指某一种具体的语言,而是包括了很多编程语言,如Fortran、Pascal、C、C++、Java、C#和PHP等。

程序编译器是把高级语言代码翻译为计算机可以执行的低级语言代码的程序,编译器对代码执行预处理、编译和链接,并对代码进行分析和优化,生成精简、高效的可执行程序。C++语言常用的程序编译器有gcc/g++和Microsoft C/C++编译器,Java语言常用的程序编译器是javac。随着软件开发技术的发展,编译器一般都被包含在集成开发环境中。

集成开发环境是用于提供程序开发环境的应用程序,一般包括代码编辑器、编译器、调试器和图形用户界面工具。集成开发环境集成了代码编写功能、分析功能、编译功能、调试功能等,将通用设置实施到设计人员的代码中,使用户可以将注意力集中到编程逻辑上,提高了编码的效率。常用的集成开发环境有Microsoft Visual C++、Microsoft Visual Studio、Eclipse、Keil μVision等。

数据库软件是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库。它实现逻辑数据的抽象处理,并对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。数据库软件为计算机控制系统软件提供数据访问接口,为计算机控制系统提供数据支持。数据库可分为网状数据库、关系数据库、树状数据库和面向对象数据库,常用的数据库有Oracle、MS SQL Server、MySQL和Visual Foxpro等。

分布式编程模型是计算机控制系统软件发展的最新成果,它为分布式计算机控制系统的设计和编程提供可参考的解决方案,常用的分布式编程模型是DCOM模型和Web编程模型。DCOM是一种跨应用和语言共享二进制代码的网络编程模型,DCOM技术在工控领域拓展为OPC技术,为分布式计算机控制系统的实现提供了新的途径。Web发布系统是分布式计算机控制系统的拓展和补充,Web编程模型分为客户端模型和服务器模型,客户端模型用于展现信息内容,设计技术主要有HTML语言、脚本技术和插件技术等;服务端模型用于构建策略与结构,设计技术主要有PHP、ASP、Servlet等。