第7章 计算机控制系统软件设计44813.ppt
第七章 计算机控制系统软件设计 7.1 程序设计技术 7.2 人机接口(HMI/SCADA)技术 7.3 测量数据预处理技术 7.4 数字控制器的工程实现 7.5 系统的有限字长数值问题 7.6 软件抗干扰技术 7.1 程序设计技术 7.1.1 模块化与结构化程序设计 7.1.2 面向过程与面向对象的程序设计 7.1.3 高级语言I/O控制台编程 7.1.1 模块化与结构化程序设计 1.模块化程序设计 (1)自底向上模块化设计 首先对最低层模块进行编码、测试和调试。这些模块正常工作后,就可以用它们来开发较高层的模块。这种方法是汇编语言设计常用的方法。 (2)自顶向下模块化设计 首先对最高层进行编码、测试和调试。为了测试这些最高层模块,可以用“结点”来代替还未编码的较低层模块,这些“结点”的输入和输出满足程序的说明部分要求,但功能少得多。 该方法一般适合用高级语言来设计程序。 2.结构化程序设计 只用三种基本的控制结构就能实现任何单入口单出口的程序。这三种基本的控制结构是“顺序”、“选择”、“循环”。如右图所示。 7.1.2 面向过程与面向对象的程序设计 1.面向过程的程序设计及其局限性 2.面向对象的程序设计 以上两种方法在概念上存在以下主要区别: (1)模块与对象 (2)过程调用和消息传递 (3)类型和类 (4)静态链接和动态链接 7.1.3 高级语言I/O控制台编程 对于PC总线工业控制机,我们以Turbo C为例来说明其访问I/O端口的编程。Turbo C通常有库函数,允许直接访问I/O端口,头文件〈conio.h〉中定义了I/O端口例程。 例如: a=inportw(0x210) b=inportb(0x220) 第一条指令表示将端口210H的16位二进制数(一个字)输入给变量a,第二条指令表示将端口220H的8位二进制数(一个字节)输入给变量b。在C语言中,0x起头的是16进制数。 又如: outportw(0x230,0x3435) outportb(0x240,0x26) 第一条指令表示将二字节数3435H输出到端口230H中,第二条指令表示将单字节数26H输出到端口240H中。 7.2 人机接口(HMI/SCADA)技术 7.2.1 HMI/SCADA的含义 7.2.2 基于工业控制组态软件设计人机交互界面 7.2.3 基于VB/VC++语言设计人机交互界面 7.2.1 HMI/SCADA的含义 HMI(Human Machine Interface)广义的解释就是“使用者与机器间沟通、传达及接收信息的一个接口”。一般而言,HMI系统必须有几项基本的能力: 实时资料趋势显示 历史资料趋势显示 自动记录资料 警报的产生与记录 报表的产生与打印 图形接口控制 凡是具有系统监控和数据采集功能的软件,都可称为 SCADA (Supervisor Control And Data Acqusition) 软件。SCADA软件和硬件设备的连接方式主要可归纳为三种: (1) 标准通讯协议。 (2) 标准的资料交换接口。 (3) 绑定驱动(Native driver)。 7.2.2 基于工业控制组态软件设计人机交互界面 1.控制组态 2.图形生成系统 3.显示组态 1.控制组态 控制算法的组态生成在软件上可以分为两种实现方式: 一种方式是采用模块宏的方式,即一个控制规律模块(如PID运算)对应一个宏命令(子程序),在组态生成时,每用到一个控制模块,则组态生成控制算法,产生的执行文件中就将该宏所对应的算法换入执行文件。 另一种常用的方式是将各控制算法编成各个独立的可以反复调用的功能模块,对应每一模块有一个数据结构,该数据结构定义了该控制算法所需要的各个参数。因此,只要这些参数定义了,控制规律就定了。有了这些算法模块,就可以生成绝大多数的控制功能。 2.图形生成系统 计算机控制系统的人机界面越来越多地采用图形显示技术。图形画面主要是用来监视生产过程的状况,并可通过对画面上对象的操作,实现对生产过程的控制。 图形画面一般有两种即静态画面(或背景画面)和动态画面。 静态画面一般用来反映监视对象的环境和相互关系,它的显示是不随时间的变化的。 动态画面一般用以反映被监视对象和被控对象的状态和数值等,它在显示过程中是随