资源预览内容
第1页 / 共94页
第2页 / 共94页
第3页 / 共94页
第4页 / 共94页
第5页 / 共94页
第6页 / 共94页
第7页 / 共94页
第8页 / 共94页
第9页 / 共94页
第10页 / 共94页
亲,该文档总共94页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第七章第七章 计算机控制系统软件设计计算机控制系统软件设计 软件是工业控制机的程序系统,软件是工业控制机的程序系统,它可它可分为系统软件和应用软件。分为系统软件和应用软件。 所谓应用软件就是面向控制系统本身所谓应用软件就是面向控制系统本身的程序,它是根据系统的具体要求,由用的程序,它是根据系统的具体要求,由用户自己设计的。户自己设计的。 软件设计的方法:利用计算机语言自软件设计的方法:利用计算机语言自己编制需要的应用程序;利用组态软件。己编制需要的应用程序;利用组态软件。 7.1 7.1 程序设计技术程序设计技术 7.1.1 7.1.1 模块化与结构化程序设计模块化与结构化程序设计 7.1.2 7.1.2 面向过程与面向对象的程序设计面向过程与面向对象的程序设计 7.1.3 7.1.3 高级语言高级语言I/OI/O控制台编程控制台编程 7.1.1 7.1.1 模块化与结构化程序设计模块化与结构化程序设计一个完整的程序设计过程可以用左图来说一个完整的程序设计过程可以用左图来说明。明。 首先要分析用户的要求,这大约占整个程首先要分析用户的要求,这大约占整个程序设计工作量的序设计工作量的10%10%;然后编写程序的说明,这大约也占然后编写程序的说明,这大约也占10%10%;接着进行程序的设计与编码,这大约占接着进行程序的设计与编码,这大约占30%30%左右,其中设计与编码几乎各占左右,其中设计与编码几乎各占15%15%;最后进行测试和调试,这要花费整个程序最后进行测试和调试,这要花费整个程序设计工作量的设计工作量的40%40%以上。以上。 1.1.模块化程序设计模块化程序设计 (1 1)自底向上模块化设计自底向上模块化设计 首先对最低层模块进行编码、测试和调试。这些模块首先对最低层模块进行编码、测试和调试。这些模块正常工作后,就可以用它们来开发较高层的模块。正常工作后,就可以用它们来开发较高层的模块。 这种方法这种方法是汇编语言设计常用的方法是汇编语言设计常用的方法。 (2 2)自顶向下模块化设计自顶向下模块化设计 首先对最高层进行编码、测试和调试。为了测试这些首先对最高层进行编码、测试和调试。为了测试这些最高层模块,可以用最高层模块,可以用“结点结点”来代替还未编码的较低层模来代替还未编码的较低层模块,这些块,这些“结点结点”的输入和输出满足程序的说明部分要求,的输入和输出满足程序的说明部分要求,但功能少得多。但功能少得多。 该方法一般该方法一般适合用高级语言来设计程序适合用高级语言来设计程序。 2.2.结构化程序设计结构化程序设计 19661966年,年,C.BohmC.Bohm 和和G.JacopiniG.Jacopini证明了证明了只用三种基本的控制只用三种基本的控制结构就能实现任何单结构就能实现任何单入口单出口的程序。入口单出口的程序。这三种基本的控制结这三种基本的控制结构是构是“顺序顺序”、“选选择择”、“循环循环”。如。如右图所示。右图所示。l结构化程序设计是一种程序设计技术,它采用自顶向下逐结构化程序设计是一种程序设计技术,它采用自顶向下逐步求精的设计方法和单入口单出口的控制结构。步求精的设计方法和单入口单出口的控制结构。lNiklausNiklaus Wirth Wirth曾做如下声明:曾做如下声明:“我们对付复杂问题的最我们对付复杂问题的最重要的办法就是抽象,因此,对一个复杂问题不应该立即重要的办法就是抽象,因此,对一个复杂问题不应该立即用计算机指令、数字和逻辑符号来表示,而应该用比较自用计算机指令、数字和逻辑符号来表示,而应该用比较自然的抽象语句来表示,从而得出抽象程序。抽象程序对抽然的抽象语句来表示,从而得出抽象程序。抽象程序对抽象的数据进行某些特定的运算并用某些合适的记号来表示。象的数据进行某些特定的运算并用某些合适的记号来表示。对抽象程序做进一步分解,并进入下一个抽象层次,这样对抽象程序做进一步分解,并进入下一个抽象层次,这样的精细化过程一直进行下去,直到程序能被计算机接受为的精细化过程一直进行下去,直到程序能被计算机接受为止。止。 ” ”l总体设计阶段:自顶向下逐步求精,复杂问题分解和细总体设计阶段:自顶向下逐步求精,复杂问题分解和细化成多个模块。化成多个模块。l详细设计或编码阶段:自顶向下逐步求精,将模块功能详细设计或编码阶段:自顶向下逐步求精,将模块功能分解细化为一系列具体的处理步骤或某种高级语言的语分解细化为一系列具体的处理步骤或某种高级语言的语句。句。l程序设计程序设计5 5个步骤:个步骤: 问题定义问题定义 程序设计程序设计 编码编码 调试调试 改进再设计改进再设计7.1.2 7.1.2 面向过程与面向对象的程序设计面向过程与面向对象的程序设计 1.1.面向过程的程序设计及其局限性面向过程的程序设计及其局限性 过程式程序设计是面向功能的。首先要定义所要实现过程式程序设计是面向功能的。首先要定义所要实现的功能,然后设计为实现这些功能所要执行的步骤。这些的功能,然后设计为实现这些功能所要执行的步骤。这些步骤就是过程。编写代码实际上等于分解这些步骤,使每步骤就是过程。编写代码实际上等于分解这些步骤,使每一步直接对应一行代码。这就是过程式编程中的一步直接对应一行代码。这就是过程式编程中的“逐步求逐步求精精”的过程。的过程。 这种方式不利于中大型软件的开发与维护,小部分数这种方式不利于中大型软件的开发与维护,小部分数据或功能的改变会涉及到很多的相关程序。据或功能的改变会涉及到很多的相关程序。 1.1.过程和数据分离为相互独立的实体,程序员在编程过程和数据分离为相互独立的实体,程序员在编程时必须时刻考虑所要处理数据的格式,程序可重用性不好。时必须时刻考虑所要处理数据的格式,程序可重用性不好。 2.2.存在使用错误数据调用正确的程序模块,或者使用存在使用错误数据调用正确的程序模块,或者使用正确的数据调用错误的程序模块的危险,要求程序员必须正确的数据调用错误的程序模块的危险,要求程序员必须尽可能保持数据与程序间的相容性和一致性。尽可能保持数据与程序间的相容性和一致性。2.2.面向对象的程序设计面向对象的程序设计 可以应用面向对象方法,解决结构化程序存在问题。可以应用面向对象方法,解决结构化程序存在问题。 面向对象方法强调运用人类在逻辑思维中经常采用的思想方法与原则,面向对象方法强调运用人类在逻辑思维中经常采用的思想方法与原则,如抽象、分类、继承、封装等,使解决问题的程序一般人也能够理解。如抽象、分类、继承、封装等,使解决问题的程序一般人也能够理解。 两种方法在概念上存在以下主要区别:两种方法在概念上存在以下主要区别: (1 1)模块与对象:结构化方法中模块是对功能的抽象;面向对象方法)模块与对象:结构化方法中模块是对功能的抽象;面向对象方法的对象包含了模块的概念,包括数据和操作的整体,是对数据和功能的对象包含了模块的概念,包括数据和操作的整体,是对数据和功能的抽象和统一。的抽象和统一。 (2 2)过程调用和消息传递:过程是一个独立实体,可以被其它过程调)过程调用和消息传递:过程是一个独立实体,可以被其它过程调用;方法隶属于对象,是对象功能的体现,不能独立存在。用;方法隶属于对象,是对象功能的体现,不能独立存在。 (3 3)类型和类:类型偏重操作抽象;类集成了数据抽象和操作抽象,)类型和类:类型偏重操作抽象;类集成了数据抽象和操作抽象,引入了继承机制,实现了可扩充性。引入了继承机制,实现了可扩充性。 (4 4)静态链接和动态链接)静态链接和动态链接 :面向对象系统中,通过消息的激活机制,:面向对象系统中,通过消息的激活机制,可以把对象间的动态链接联系在一起,使整个机体运转起来,实现系可以把对象间的动态链接联系在一起,使整个机体运转起来,实现系统的动态链接。统的动态链接。7.1.3 7.1.3 高级语言高级语言I/OI/O控制台编程控制台编程 对于对于PCPC总线工业控制机,我们以总线工业控制机,我们以Turbo CTurbo C为例来说明其访问为例来说明其访问I/OI/O端口的编程。端口的编程。 Turbo CTurbo C通常有库函数,允许直接访问通常有库函数,允许直接访问I/OI/O端口,头文件端口,头文件conio.hconio.h中定义了中定义了I/OI/O端口例程。端口例程。 例如例如: a=inportw(0x210)a=inportw(0x210) b= b=inportb(0x220)inportb(0x220) 第一条指令表示将端口第一条指令表示将端口210H210H的的1616位二进制数位二进制数( (一个字一个字) )输入输入给变量给变量a a,第二条指令表示将端口,第二条指令表示将端口220H220H的的8 8位二进制数位二进制数( (一个字节一个字节) )输入给变量输入给变量b b。在。在C C语言中,语言中,0x0x起头的是起头的是1616进制数。进制数。 又如:又如: outportw(0x230,0x3435)outportw(0x230,0x3435) outportb(0x240,0x26) outportb(0x240,0x26) 第一条指令表示将二字节数第一条指令表示将二字节数3435H3435H输出到端口输出到端口230H230H中,第二中,第二条指令表示将单字节数条指令表示将单字节数26H26H输出到端口输出到端口240H240H中。中。 7.2 7.2 人机接口(人机接口(HMI/SCADAHMI/SCADA)技术)技术7.2.1 HMI/SCADA7.2.1 HMI/SCADA的含义的含义7.2.2 7.2.2 基于工业控制组态软件设计人机交互界面基于工业控制组态软件设计人机交互界面7.2.3 7.2.3 基于基于VB/VC+VB/VC+语言设计人机交互界面语言设计人机交互界面7.2.1 HMI/SCADA7.2.1 HMI/SCADA的含义的含义 HMIHMI(Human Machine InterfaceHuman Machine Interface)广义的解释就是)广义的解释就是“使使用者与机器间沟通、传达及接收信息的一个接口用者与机器间沟通、传达及接收信息的一个接口”。一般而。一般而言,言,HMIHMI系统必须有几项基本的能力:系统必须有几项基本的能力:l 实时资料趋势显示:把获取的资料立即显示在屏幕上实时资料趋势显示:把获取的资料立即显示在屏幕上l 历史资料趋势显示:把数据库中的资料作可视化的呈现。历史资料趋势显示:把数据库中的资料作可视化的呈现。l 自动记录资料:自动将资料存储至数据库中,以便日后查看。自动记录资料:自动将资料存储至数据库中,以便日后查看。l 警报的产生与记录:使用者可以定义一些警报产生的条件,警报的产生与记录:使用者可以定义一些警报产生的条件,比如说温度过度或压力超过临界值,系统会产生警报,通知作比如说温度过度或压力超过临界值,系统会产生警报,通知作业员处理。业员处理。l 报表的产生与打印:把资料转换成报表的格式,并且能够打报表的产生与打印:把资料转换成报表的格式,并且能够打印出来。印出来。l 图形接口控制:操作者能够透过图形接口直接控制机台等装图形接口控制:操作者能够透过图形接口直接控制机台等装置。置。 凡是具有凡是具有系统监控系统监控和和数据采集功能数据采集功能的软件,都可称为的软件,都可称为 SCADA (Supervisor Control And Data SCADA (Supervisor Control And Data AcqusitionAcqusition) ) 软件。软件。建立在建立在PCPC基础之上,具有以下基本特征:图形界面、系统基础之上,具有以下基本特征:图形界面、系统状态动态模拟、实时资料和历史趋势、报警处理系统、数状态动态模拟、实时资料和历史趋势、报警处理系统、数据采集和记录、数据分析、报表输出。据采集和记录、数据分析、报表输出。 SCADASCADA软件和硬件设备的连接方式主要可归纳为三种:软件和硬件设备的连接方式主要可归纳为三种: (1) (1) 标准通讯协议。标准通讯协议。工业领域常用的标准协议有工业领域常用的标准协议有:ARCNET,CAN :ARCNET,CAN bus, Device bus, Device Net,LonworksNet,Lonworks , Modus, , Modus, ProfibusProfibus. SCADA. SCADA软件和硬件设软件和硬件设备只要使用相同的通信协议,就可以直接通信,不需安装其它驱动程备只要使用相同的通信协议,就可以直接通信,不需安装其它驱动程序。序。 (2) (2) 标准的资料交换接口。标准的资料交换接口。常用的有:常用的有:DDEDDE和和OPCOPC (3) (3) 绑定驱动绑定驱动(Native driver)(Native driver)。对特定硬件和目标设计对特定硬件和目标设计的驱动。优点:执行效率高;缺点:兼容性差,制造商必须针对每一的驱动。优点:执行效率高;缺点:兼容性差,制造商必须针对每一种种SCADA SCADA 软件提供特定的驱动程序。软件提供特定的驱动程序。l对控制系统进行监控两种方法:对控制系统进行监控两种方法:1.1.组态软件监控组态软件监控 利用组态软件提供的硬件驱动功能直接访问硬件进行通信,不需编写通信程利用组态软件提供的硬件驱动功能直接访问硬件进行通信,不需编写通信程序,功能强大,灵活性好,可靠性高,但软件价格高,对硬件的依赖比较大,序,功能强大,灵活性好,可靠性高,但软件价格高,对硬件的依赖比较大,当组态软件不支持相关硬件时就会受到限制。当组态软件不支持相关硬件时就会受到限制。2.2.第三方软件编制的监控软件监控第三方软件编制的监控软件监控 用第三方软件(面向对象的可视化编程语言用第三方软件(面向对象的可视化编程语言VBVB或或VCVC)编制的监控软件)编制的监控软件实现监控,包括数据通信、界面实现、数据处理和数据库功能等,灵实现监控,包括数据通信、界面实现、数据处理和数据库功能等,灵活性好,系统投资低,能适用于各种系统。但开发工作量大,特别是活性好,系统投资低,能适用于各种系统。但开发工作量大,特别是要实现工业生产中复杂的流程和工艺的逼真显示要花费大量的时间,要实现工业生产中复杂的流程和工艺的逼真显示要花费大量的时间,可靠性难保证,对设计人员的经验和技术水平的要求高,需要自行编可靠性难保证,对设计人员的经验和技术水平的要求高,需要自行编写通信程序。写通信程序。7.2.2 7.2.2 基于工业控制组态软件设计人机交互界面基于工业控制组态软件设计人机交互界面 计算机控制系统的组态功能可分为两个主要方面,即硬计算机控制系统的组态功能可分为两个主要方面,即硬件组态和软件组态。件组态和软件组态。 硬件组态常以总线式硬件组态常以总线式(PC(PC总线或总线或STDSTD总线总线) )工业控制机为工业控制机为主进行选择和配置。根据不同的控制对象,选择相应的功能主进行选择和配置。根据不同的控制对象,选择相应的功能模块,组成各种不同的应用系统,只需要对各种功能模板安模块,组成各种不同的应用系统,只需要对各种功能模板安装与接线即可。装与接线即可。 软件组态以工业控制组态软件实现。工业控制组态软件软件组态以工业控制组态软件实现。工业控制组态软件是标准化、规模化、商品化的通用过程控制软件是标准化、规模化、商品化的通用过程控制软件 。 组态软件主要包括:控制组态、图形生成系统、显示组组态软件主要包括:控制组态、图形生成系统、显示组态、态、I IO O通道登记、单位名称登记、趋势曲线登记、报警系通道登记、单位名称登记、趋势曲线登记、报警系统登记、报表生成系统共统登记、报表生成系统共8 8个方面的内容。个方面的内容。 1.1.控制组态控制组态 控制算法的组态生成在软件上可以分为两种实现方式:控制算法的组态生成在软件上可以分为两种实现方式: 一一种种方方式式是是采采用用模模块块宏宏的的方方式式,即即一一个个控控制制规规律律模模块块( (如如PIDPID运运算算) )对对应应一一个个宏宏命命令令( (子子程程序序) ),在在组组态态生生成成时时,每每用用到到一一个个控控制制模模块块,则则组组态态生生成成控控制制算算法法,产产生生的的执执行行文文件中就将该宏所对应的算法换入执行文件。件中就将该宏所对应的算法换入执行文件。 另另一一种种常常用用的的方方式式是是将将各各控控制制算算法法编编成成各各个个独独立立的的可可以以反反复复调调用用的的功功能能模模块块,对对应应每每一一模模块块有有一一个个数数据据结结构构,该该数数据据结结构构定定义义了了该该控控制制算算法法所所需需要要的的各各个个参参数数。因因此此,只只要要这这些些参参数数定定义义了了,控控制制规规律律就就定定了了。有有了了这这些些算算法法模模块,就可以生成绝大多数的控制功能。块,就可以生成绝大多数的控制功能。2.2.图形生成系统图形生成系统 计计算算机机控控制制系系统统的的人人机机界界面面越越来来越越多多地地采采用用图图形形显显示示技技术术。图图形形画画面面主主要要是是用用来来监监视视生生产产过过程程的的状状况况,并并可通过对画面上对象的操作,实现对生产过程的控制。可通过对画面上对象的操作,实现对生产过程的控制。 图图形形画画面面一一般般有有两两种种即即静静态态画画面面( (或或背背景景画画面面) )和和动动态画面。态画面。 静静态态画画面面一一般般用用来来反反映映监监视视对对象象的的环环境境和和相相互互关关系系,它的显示是不随时间的变化的。它的显示是不随时间的变化的。 动动态态画画面面一一般般用用以以反反映映被被监监视视对对象象和和被被控控对对象象的的状状态态和和数数值值等等,它它在在显显示示过过程程中中是是随随现现场场被被监监控控对对象象的的变变化化而而变变化化的的。在在生生成成图图形形画画面面时时,不不但但要要有有静静态态画画面面,而且还要有而且还要有“活活”的部分即动态画面。的部分即动态画面。3.3.显示组态显示组态 (1)(1)选择模拟显示表选择模拟显示表 (2)(2)定义模拟显示表定义模拟显示表 (3)(3)显示登记法显示登记法 (4)I(4)IO O通道登记通道登记 (5)(5)单位名称登记单位名称登记 (6)(6)趋势曲线登记趋势曲线登记 (7)(7)报警系统登记报警系统登记 (8)(8)报表生成系统报表生成系统 计算机控制系统的画面显示一般分为三级即总貌画面、组貌计算机控制系统的画面显示一般分为三级即总貌画面、组貌画面、回路画面。若想构成这些画面,就要进行显示组态操作。画面、回路画面。若想构成这些画面,就要进行显示组态操作。 显示组态操作包括选择模拟显示表、定义显示表及显示登记显示组态操作包括选择模拟显示表、定义显示表及显示登记方法等操作。方法等操作。 (1)(1)选择模拟显示表选择模拟显示表 由于计算机控制系统显示画面常采用各种模拟由于计算机控制系统显示画面常采用各种模拟显示表来显示测量值、设定值和输出值,因此,显显示表来显示测量值、设定值和输出值,因此,显示组态一般可用示组态一般可用6 6种模拟显示表,即调节控制表、种模拟显示表,即调节控制表、报警显示表、阀位操作表、监视操作表、比率设定报警显示表、阀位操作表、监视操作表、比率设定表、流量累计表。表、流量累计表。返回返回(2 2)选择了回路的模拟显示表后,尚须对显示表的每一个)选择了回路的模拟显示表后,尚须对显示表的每一个参数进行确定,并在画面上设定相应的值。参数进行确定,并在画面上设定相应的值。(3)(3)显示登记法显示登记法 显示登记法是进入系统显示登记画面。选择过程控显示登记法是进入系统显示登记画面。选择过程控制站站号及工作方式;登记控制组号、组名,该组员的制站站号及工作方式;登记控制组号、组名,该组员的回路号,进行分组登记操作;显示表登记回路号,进行分组登记操作;显示表登记( (登记每一个登记每一个控制回路所用的模拟显示表控制回路所用的模拟显示表) );将显示登记文件存入后;将显示登记文件存入后备文件或打印。备文件或打印。 (4 4)I IO O通道登记通道登记 计算机控制系统能支持多种类型的信号输入和输出。计算机控制系统能支持多种类型的信号输入和输出。从生产过程来看,每一输入输出都有不同的名称和意义,从生产过程来看,每一输入输出都有不同的名称和意义,因此需将输入输出定义成特定的含义,这就是因此需将输入输出定义成特定的含义,这就是I IO O通道通道登记。登记。I IO O通道主要是模拟量通道主要是模拟量I IO O和开关量和开关量I IO O等通道。等通道。 (5 5)单位名称登记)单位名称登记 对系统各种画面中需要显示的工程单位名称对系统各种画面中需要显示的工程单位名称采用登记的方法,可使用中英文一切符号,登记采用登记的方法,可使用中英文一切符号,登记生成自己特有的单位名称,主要登记编号和单位生成自己特有的单位名称,主要登记编号和单位名。名。 系系统统的的硬硬盘盘中中保保存存有有三三种种趋趋势势曲曲线线数数据据,即即当当天天的的、昨天的和历史的数据。昨天的和历史的数据。 当当天天的的趋趋势势曲曲线线数数据据,系系统统以以一一定定的的周周期期将将数数据据保保存存起起来来。到到第第二二天天就就 将将当当天天的的数数据据覆覆盖盖昨昨天天的的数数据据。历历史史数数据据是是当当你你需需要要某某天天的的数数据据时时,从从硬硬盘盘拷拷贝贝到到软软盘盘保存起来。保存起来。 趋势曲线的规格主要有:趋势曲线幅数、趋势曲线趋势曲线的规格主要有:趋势曲线幅数、趋势曲线每幅条数、每条时间、显示精度。趋势曲线登记表的内每幅条数、每条时间、显示精度。趋势曲线登记表的内容主要有:幅号、幅名、编号、颜色、曲线名称、来源、容主要有:幅号、幅名、编号、颜色、曲线名称、来源、工程量上限和下限。工程量上限和下限。 (6 6 6 6)趋势曲线登记)趋势曲线登记)趋势曲线登记)趋势曲线登记返回报报警警显显示示画画面面分分成成三三级级即即报报警警概概况况画画面面、报报警警信信息息画画面面、报警画面。报警画面。 报报警警概概况况画画面面是是第第一一级级,它它显显示示系系统统中中所所有有报报警警点点的的名称和报警次数;名称和报警次数; 报报警警信信息息画画面面是是第第二二级级,它它是是第第一一级级画画面面的的展展开开与与细细化化,可可调调出出相相应应报报警警信信息息画画面面,即即可可观观察察到到报报警警时时间间,消消警时间,报警点名称和报警原因等;警时间,报警点名称和报警原因等; 报报警警画画面面是是第第三三级级,可可调调出出与与报报警警点点相相应应的的各各显显示示画画面,包括总貌画面、组画面、回路画面、趋势曲线画面等。面,包括总貌画面、组画面、回路画面、趋势曲线画面等。为了完成报警登记,还要填写登记表。内容包括:编号、为了完成报警登记,还要填写登记表。内容包括:编号、名称、原因类型、原因参数、画面类型、画面参数。名称、原因类型、原因参数、画面类型、画面参数。 (7)(7)(7)(7)报警系统登记报警系统登记报警系统登记报警系统登记返回(8 8)报表生成系统)报表生成系统 报表生成系统用于系统的报表及打印输出。报表生成系统用于系统的报表及打印输出。因而报表系统主要功能是定义各种报表的数据来因而报表系统主要功能是定义各种报表的数据来源、运算方式以及报表打印格式和时间特性。源、运算方式以及报表打印格式和时间特性。 返回7.2.3 7.2.3 基于基于VB/VC+VB/VC+语言设计人机交互界面语言设计人机交互界面1.Visual Basic1.Visual Basic 是一种由微软公司开发的包含协助开发环境的事件驱动编程语言。是一种由微软公司开发的包含协助开发环境的事件驱动编程语言。从任何标准来说,从任何标准来说,VBVB都是世界上使用人数最多的语言都是世界上使用人数最多的语言不仅不仅是盛赞是盛赞VBVB的开发者还是抱怨的开发者还是抱怨VBVB的开发者的数量。它源自于的开发者的数量。它源自于BASICBASIC编程语言。编程语言。VBVB拥有图形用户界面(拥有图形用户界面(GUIGUI)和快速应用程序开发)和快速应用程序开发(RADRAD)系统,可以轻易的使用)系统,可以轻易的使用DAODAO、RDORDO、ADOADO连接数据库,或连接数据库,或者轻松的创建者轻松的创建ActiveXActiveX控件。程序员可以轻松的使用控件。程序员可以轻松的使用VBVB提供的组提供的组件快速建立一个应用程序。件快速建立一个应用程序。2.VC+2.VC+ VC+ VC+是微软公司开发的一个集成开发环境是微软公司开发的一个集成开发环境(IDE)(IDE),就是使用,就是使用c+c+的的一个开发平台。一个开发平台。VC+VC+是是WindowsWindows平台上的平台上的C+C+编程环境,学习编程环境,学习VCVC要了解很多要了解很多WindowsWindows平台的特性并且还要掌握平台的特性并且还要掌握MFCMFC、ATLATL、COMCOM等等的知识,难度比较大。的知识,难度比较大。WindowsWindows下编程需要了解下编程需要了解WindowsWindows的消息的消息机制以及回调(机制以及回调(callbackcallback)函数的原理;)函数的原理;MFCMFC是是Win32APIWin32API的包装的包装类,需要理解文档视图类的结构,窗口类的结构,消息流向等类,需要理解文档视图类的结构,窗口类的结构,消息流向等等;等;COMCOM是代码共享的二进制标准,需要掌握其基本原理等等。是代码共享的二进制标准,需要掌握其基本原理等等。 应用应用VC+VC+能够开发出各式各样的适应用户要求的监控界面。能够开发出各式各样的适应用户要求的监控界面。7.3 7.3 测量数据预处理技术测量数据预处理技术 传感器把生产过程的信号转换成电信号,然后用传感器把生产过程的信号转换成电信号,然后用A AD D转换器把模拟信号变成数字信号,读入计算机中。转换器把模拟信号变成数字信号,读入计算机中。 对于这样得到的数据,一般要进行一些预处理,其中对于这样得到的数据,一般要进行一些预处理,其中最基本的处理有最基本的处理有线性化处理线性化处理、标度变换标度变换和和误差自动校准误差自动校准。 7.3.1 7.3.1 误差自动校准误差自动校准 定义:定义:系统误差是指在相同条件下,经过多次测量,系统误差是指在相同条件下,经过多次测量,误差的数值误差的数值( (包括大小符号包括大小符号) )保持恒定,或按某种已知的保持恒定,或按某种已知的规律变化的误差。规律变化的误差。 特点:特点:在一定的测量条件下,其变化规律是可以掌在一定的测量条件下,其变化规律是可以掌握的,产生误差的原因一般也是知道的。握的,产生误差的原因一般也是知道的。 方法:方法:偏移校准在实际中应用最多,并且常采用程偏移校准在实际中应用最多,并且常采用程序来实现,称为数字调零。序来实现,称为数字调零。 数字调零:数字调零:在测量时,先把多路输入接到所需测量在测量时,先把多路输入接到所需测量的一组输入电压上进行测量,测出这时的输入值为的一组输入电压上进行测量,测出这时的输入值为x x1 1, ,然后把多路开关的输入接地,测出零输入时然后把多路开关的输入接地,测出零输入时A AD D转换器转换器的输出为的输出为x x0 0,用,用x x1 1减去减去x x0 0即为实际输入电压即为实际输入电压x x。 除了数字调零外,还可以采用偏移和增益误差的自除了数字调零外,还可以采用偏移和增益误差的自动校准。动校准。1.1.全自动校准全自动校准 采用这种方法测得的采用这种方法测得的V V与放大器的漂移和增益变化无关,与与放大器的漂移和增益变化无关,与V V和和R R的精度也无关。这样可大大提高测量精度,降低对电路器件的精度也无关。这样可大大提高测量精度,降低对电路器件的要求。的要求。 先把开关接地,测出这时的输入值先把开关接地,测出这时的输入值x x0 0,然后把开关接,然后把开关接VRVR,测出输入值测出输入值x x1 1,并存放,并存放x x1 1、x x0 0,在正式测量时,如测出的输入,在正式测量时,如测出的输入值为值为x x,则这时的,则这时的V V可用下式计算可用下式计算 2.2.人工自动校准人工自动校准 人人工工自自动动校校准准只只测测一一个个标标准准输输入入信信号号y yR R,零零信信号号的的补补偿由数字调零来完成。偿由数字调零来完成。 设设数数字字调调零零后后测测出出的的数数据据分分别别为为x xR R( (接接校校准准输输入入y yR R时时) )和和x(x(接被测输入接被测输入y y时时) ),则可按下式来计算,则可按下式来计算y y。 如如如如果果果果在在在在校校校校准准准准时时时时,计计计计算算算算并并并并存存存存放放放放y y y yR R R Rx x x xR R R R的的的的值值值值,则则则则测测测测量量量量校准时,只需行一次乘法即可。校准时,只需行一次乘法即可。校准时,只需行一次乘法即可。校准时,只需行一次乘法即可。 人人人人工工工工自自自自动动动动校校校校准准准准特特特特别别别别适适适适于于于于传传传传感感感感器器器器特特特特性性性性随随随随时时时时间间间间会会会会发发发发生生生生变化的场合。如常用的湿敏电容等湿度传感器。变化的场合。如常用的湿敏电容等湿度传感器。变化的场合。如常用的湿敏电容等湿度传感器。变化的场合。如常用的湿敏电容等湿度传感器。 7.3.2 7.3.2 线性化处理和非线性补偿线性化处理和非线性补偿1 1铂热电阻的阻值与温度的关系铂热电阻的阻值与温度的关系 2 2热电偶的热电势与温度的关系热电偶的热电势与温度的关系 3 3孔板差压与流量的关系孔板差压与流量的关系4 4气体体积流量的非线性补偿气体体积流量的非线性补偿 线性化处理线性化处理l l概述概述l计算机从模拟量输入通道得到的检测信号与该信号所代计算机从模拟量输入通道得到的检测信号与该信号所代表的物理量之间不一定成线性关系。表的物理量之间不一定成线性关系。l线性化处理后,方便运算并且便于数字显示。线性化处理后,方便运算并且便于数字显示。l l计算法计算法l孔板差压与流量孔板差压与流量 热电偶的热电势与温度热电偶的热电势与温度线性化处理线性化处理l l插值法插值法l实质是找出一种简单、便于计算处理的近似表达式代替实质是找出一种简单、便于计算处理的近似表达式代替非线性参数。非线性参数。l常用的插值公式有多项式插值公式、拉格朗日插值公式、常用的插值公式有多项式插值公式、拉格朗日插值公式、线性插值公式等线性插值公式等 。l l折线法折线法l上上述述两两法法都都可可能能会会带带来来大大量量运运算算,为为简简单单起起见见,可可分分段段进行线性化,即用多段折线代替曲线。进行线性化,即用多段折线代替曲线。l过过程程:先先判判断断测测量量数数据据处处于于哪哪一一折折线线段段内内,然然后后按按相相应应段段的的线线性性化化公公式式计计算算出出线线性性值值。折折线线段段分分法法不不是是惟惟一一的的,可视具体要求定。一般折线段数越多,线性化精度越高。可视具体要求定。一般折线段数越多,线性化精度越高。 Pt100 Pt100 Pt100-50 80.31 10 103.90 80 130.90-40 84.27 20 107.80 90 134.70-30 88.22 30 111.67 100 138.50-20 92.16 40 115.54 150 157.31-20 92.16 50 119.40 200 175.84-10 96.09 60 123.24 0 100.00 70 127.07热电阻分度表热电阻分度表线性化处理线性化处理l l查表法查表法 为提高运算速度,可将非线性关系转化为表格形式为提高运算速度,可将非线性关系转化为表格形式为提高运算速度,可将非线性关系转化为表格形式为提高运算速度,可将非线性关系转化为表格形式 存在计算机内,在线工作量仅是根据采样值查表存在计算机内,在线工作量仅是根据采样值查表存在计算机内,在线工作量仅是根据采样值查表存在计算机内,在线工作量仅是根据采样值查表校正运算校正运算l有时来自被控对象的某些检测信号与真实值有偏差,有时来自被控对象的某些检测信号与真实值有偏差,这时需要对这些检测信号进行补偿,力求补偿后的检这时需要对这些检测信号进行补偿,力求补偿后的检测值能反映真实情况。测值能反映真实情况。l用孔板测气体体积流量的温度、压力补偿用孔板测气体体积流量的温度、压力补偿To为设计孔板的基准绝对温度(单位为);为设计孔板的基准绝对温度(单位为); 为设计孔板的基准绝对压力;为被测气体的实际绝为设计孔板的基准绝对压力;为被测气体的实际绝对温度;为被测气体的实际绝对压力对温度;为被测气体的实际绝对压力7.3.3 7.3.3 标度变换方法标度变换方法 在工业测控系统中,如,压力的单位为在工业测控系统中,如,压力的单位为PaPa,流流量的单位为量的单位为m m3 3h h,温度的单位为温度的单位为等,这些参数经等,这些参数经传感器和传感器和A AD D转换后得到一系列的数码,这些数码转换后得到一系列的数码,这些数码值并不一定等于原来带有量纲的参数值,它仅仅对值并不一定等于原来带有量纲的参数值,它仅仅对应于参数值的大小,故必须把它转换成带有量纲的应于参数值的大小,故必须把它转换成带有量纲的工程值后才能运算、显示或打印输出,这种转换就工程值后才能运算、显示或打印输出,这种转换就是是标度变换标度变换。 标度变换有各种类型,它取决于被测参数的传标度变换有各种类型,它取决于被测参数的传感器的类型,应根据实际要求来选用适当的标度变感器的类型,应根据实际要求来选用适当的标度变换方法。换方法。 1.1.线性变换公式线性变换公式 Y=(Y=(Y Ymaxmax-Y-Yminmin)(X-N)(X-Nminmin) )( (N Nmaxmax-N-Nminmin)+Y)+Yminmin Y Y表表示示参参数数测测量量值值,Y Ymaxmax表表示示参参数数量量程程最最大大值值,Y Yminmin表表示示参参数数量量程程最最小小值值,N Nmaxmax表表示示 Y Ymaxmax对对应应的的A AD D转转换换后后的的输输入入值值,N Nminmin表表示示量量程程起起点点Y Yminmin对对应应的的A AD D转转换换后后的的输输入入值值,X X表表示示测测量量值值Y Y对对应的应的A AD D转换值。转换值。 2.2.公式转换法公式转换法 可采用直接按解析式来计算。可采用直接按解析式来计算。 l一次仪表测量值与一次仪表测量值与A/D转换结果是非线性关系转换结果是非线性关系l根根据据差差压压变变送送器器信信号号P与与流流量量F的的关关系系,可可得得测测量量流流量量时时的标度变换式的标度变换式 3.3.其它标度变换法其它标度变换法 可采用多项式插值法,也可以用线性插值法或查表进行标可采用多项式插值法,也可以用线性插值法或查表进行标度变换。度变换。7.3.4 7.3.4 越限报警处理越限报警处理 越越限限报报警警是是工工业业控控制制过过程程常常见见而而又又实实用用的的一一种种报报警警形形式式,它它分分为为上上限限报报警警、下下限限报报警警及及上上下下限限报报警警。如如果果需需要要判判断断的的报报警警参参数数是是x xn n,该该参参数数的的上上下下限限约约束束值值分分别别是是x xmaxmax和和x xminmin,则则上上下下限限报警的物理意义如下:报警的物理意义如下: (1)(1)上限报警上限报警 若若x xn nx xmaxmax,则上限报警,否则继续执行原定操作。则上限报警,否则继续执行原定操作。 (2)(2)下限报警下限报警 若若x xn nx xminmin,则下限报警,否则继续执行原定操作。则下限报警,否则继续执行原定操作。 (3)(3)上下限报警上下限报警 若若x xn nx xmaxmax,则上限报警,否则对下式做判别;则上限报警,否则对下式做判别; x xn nx xminmin否否? ?若是则下限报警,否则继续原定操作。若是则下限报警,否则继续原定操作。 根据上述规定,程序可以实现对被控参数根据上述规定,程序可以实现对被控参数y y、偏差偏差e e以及控以及控制量制量u u进行上下限检查。进行上下限检查。 越限报警处理越限报警处理l如图所示锅炉水位调节系统。图中锅炉正常工作的主要指标是如图所示锅炉水位调节系统。图中锅炉正常工作的主要指标是汽包水位:液面太高会影响汽包的蒸汽产量;水位过低则有爆汽包水位:液面太高会影响汽包的蒸汽产量;水位过低则有爆炸的危险。炸的危险。 HHJ 变送器cba+ 预热管水传感器传感器蒸汽蒸汽流量bac液面高度汽包水流量变速器变送器设计方法设计方法设计方法设计方法全软件报警程序全软件报警程序 直接报警程序直接报警程序 (硬件申请中断)(硬件申请中断)7.4 7.4 数字控制器的工程实现数字控制器的工程实现 数字控制器算法的工程实现中,应注意的问题,由以下五数字控制器算法的工程实现中,应注意的问题,由以下五部分给出部分给出 : :7.4.1 7.4.1 给定值和被控量处理给定值和被控量处理 1.1.给定值处理给定值处理 给定值处理包括选择给定值处理包括选择给定值给定值SVSV和给定值变化率限制和给定值变化率限制SRSR两部分。两部分。 通过选择软开关通过选择软开关CLCLCRCR,可以构成内给定状态或外给定状态;通可以构成内给定状态或外给定状态;通过选择软开关过选择软开关CASCASSCCSCC,可以构成串级控制或可以构成串级控制或SCCSCC控制。控制。 (1)(1)内给定状态内给定状态 当当软软开开关关CLCLCRCR切切向向CLCL位位置置时时,选选择择操操作作员员设设置置的的给给定定值值SVLSVL。这这时系统处于单回路控制的内给定状态,利用给定值键可以改变给定值。时系统处于单回路控制的内给定状态,利用给定值键可以改变给定值。 (2)(2)外给定状态外给定状态 当当软软开开关关CLCLCRCR切切向向CRCR位位置置时时,给给定定值值来来自自上上位位计计算算机机、主主回回路路或或运运算算模模块块。这这时时系系统统处处于于外外给给定定状状态态。在在此此状状态态下下,可可以以实现以下两种控制方式。实现以下两种控制方式。 SCCSCC控控制制: :当当软软开开关关CASCASSCCSCC切切向向SCCSCC位位置置时时,接接收收来来自自上上位计算机的给定值位计算机的给定值SVSSVS,以便实现二级计算机控制。,以便实现二级计算机控制。 串串级级控控制制: :当当软软开开关关CASCASSCCSCC切切向向CASCAS位位置置时时,给给定定值值SVSSVS来自主调节模块,实现串级控制。来自主调节模块,实现串级控制。 (3)(3)给定值变化率限制给定值变化率限制 为为了了减减少少给给定定值值突突变变对对控控制制系系统统的的扰扰动动,防防止止比比例例、积积分分饱饱和和,以以实实现现平平稳稳控控制制,需需要要对对给给定定值值的的变变化化率率SRSR加加以以限限制制。变变化化率的率的选选取要适中,取要适中,过过小会使响小会使响应变应变慢,慢,过过大大则则达不到限制的目的。达不到限制的目的。 综综上上所所述述,在在给给定定值值处处理理中中,共共具具有有三三个个输输入入量量(SVL(SVL,SVCSVC,SVS)SVS),两两个个输输出出量量(SV(SV,CSV)CSV),两两个个开开关关量量(CL(CLCRCR,CASCASSCC)SCC),一一个个变变化化率率(SR)(SR)。为为了了便便于于PIDPID控控制制程程序序调调用用这这些些量量,需需要要给给每个每个PIDPID控制模控制模块块提供一段内存数据区,来存提供一段内存数据区,来存储储以上以上变变量。量。2.2.被控量处理被控量处理 为了安全运行,需要对为了安全运行,需要对被控量被控量PVPV进行上下限报警处理进行上下限报警处理, ,即即: : 当当PVPVPH(PH(上限值上限值) )时,则上限报警状态时,则上限报警状态(PHA)(PHA)为为“1 1”; 当当PVPVPL(PL(下限值下限值) )时,则下限报警状态时,则下限报警状态(PLA)(PLA)为为“1 1”。 当当出出现现上上、下下限限报报警警状状态态(PHA(PHA,PLA)PLA)时时,它它们们通通过过驱驱动动电电路路发发出出声声或或光光,以以便便提提醒醒操操作作员员注注意意。为为了了不不使使PHAPHAPLAPLA的的状状态态频频繁繁改改变变,可可以以设设置置一一定定的的报报警死区警死区(HY)(HY)。 为为了了实实现现平平稳稳控控制制,需需要要对对参参与与控控制制的的被被控控量量的的变变化化率率PRPR加加以以限限制制。变变化化率的选取要适中,过小会使响应变慢,过大则达不到限制的目的。率的选取要适中,过小会使响应变慢,过大则达不到限制的目的。 被被控控量量处处理理数数据据区区存存放放一一个个输输入入量量PVPV,三三个个输输出出量量PHAPHA、PLAPLA和和CPVCPV,四四个个参数参数PHPH、PLPL、HYHY和和PRPR。 7.4.2 7.4.2 偏差处理偏差处理 偏差处理分为计算偏差、偏差报警、非线性特性和输入补偿四部分,偏差处理分为计算偏差、偏差报警、非线性特性和输入补偿四部分,如下图所示。如下图所示。 1 1计算偏差计算偏差 根据正反作用方式根据正反作用方式(D(DR)R)计算偏差计算偏差DVDV, 当当D DR=0R=0,代表正作用,此时偏差代表正作用,此时偏差DV=CPV-CSVDV=CPV-CSV; 当当D DR=1R=1,代表反作用,此时偏差代表反作用,此时偏差DV=CSV-CPVDV=CSV-CPV; 2 2偏差报警偏差报警 : 对于控制要求较高的对象,不仅要设置被控制量对于控制要求较高的对象,不仅要设置被控制量PVPV的上、下限报警,的上、下限报警,而且要设置偏差报警。而且要设置偏差报警。 当偏差绝对值当偏差绝对值|DV|DV|DLDL时,则偏差报警状态时,则偏差报警状态DLADLA为为“1”1”。 3 3输入补偿输入补偿 根据输入补偿方式根据输入补偿方式ICMICM状态,决定偏差状态,决定偏差DVCDVC与输入补偿量与输入补偿量ICVICV之间之间的关系,即的关系,即 当当ICM=0ICM=0,代表无补偿,此时,代表无补偿,此时CDV=DVCCDV=DVC; 当当ICM=1ICM=1,代表加补偿,此时,代表加补偿,此时CDV=DVC+ICV;CDV=DVC+ICV; 当当ICM=2ICM=2,代表减补偿,此时,代表减补偿,此时CDV=DVC-ICV;CDV=DVC-ICV; 当当ICM=3ICM=3,代表置换补偿,此时,代表置换补偿,此时CDV=ICVCDV=ICV。 利用加、减输入补偿,可以分别实现前馈控制和纯滞后补偿利用加、减输入补偿,可以分别实现前馈控制和纯滞后补偿(Smith)(Smith)控制。控制。4 4非线性特性非线性特性 为了实现非线性为了实现非线性PIDPID控制或带死区的控制或带死区的PIDPID控制,设置了非线性区控制,设置了非线性区- -A A至至+A+A和非线性增益和非线性增益K K,非线性特性如图所示。即,非线性特性如图所示。即 当当K=0K=0时,则为带死区的时,则为带死区的PIDPID控制;控制; 当当0 0K K1 1时,则为非线性时,则为非线性PIDPID控制;控制; 当当K=1K=1时,则为正常的时,则为正常的PIDPID控制。控制。 偏差处理数据区共存放一个输入补偿量偏差处理数据区共存放一个输入补偿量ICVICV,两个输出量,两个输出量DLADLA和和CDVCDV,两个状态量,两个状态量D DR R和和ICMICM,以及四个参数,以及四个参数DLDL、-A-A、+A+A和和K K。 7.4.3 7.4.3 控制算法的实现控制算法的实现 在在自自动动状状态态下下,需需要要进进行行控控制制计计算算,即即按按照照各各种种控控制制算算法法的的差差分分方方程,计算控制量程,计算控制量U U,并进行上、下限限幅处理。并进行上、下限限幅处理。 以以PIDPID控控制制算算法法为为例例,当当软软开开关关DVDVPVPV切切向向DVDV位位置置时时,则则选选用用偏偏差差微微分分方方式式;当当软软开开关关DVDVPVPV切切向向PVPV位位置置时时,则则选选用用测测量量( (即即被被控控量量) )微微分分方方式。式。 在在PIDPID计算数据区,不仅要存放计算数据区,不仅要存放PIDPID参数参数(K(KP P或或,T TI I,T TD D) )和采控制周和采控制周期期T T,还要存放微分方式还要存放微分方式DVDVPVPV、积分分离值积分分离值,控制量上限限值控制量上限限值MHMH和下和下限限值限限值MLML,以及控制量以及控制量U UK K。为了进行递推运算,还应保存历史数据,如为了进行递推运算,还应保存历史数据,如e(k-1)e(k-1)、e(k-2)e(k-2)和和u(k-1)u(k-1)。7.4.4 7.4.4 控制量处理控制量处理 在输出控制量在输出控制量U UK K以前,还应经过各项处理和判断,以便扩展控制功能,以前,还应经过各项处理和判断,以便扩展控制功能,实现安全平稳操作。实现安全平稳操作。 1 1输出补偿:输出补偿:根据输出补偿方式根据输出补偿方式OCMOCM的状态,决定控制量的状态,决定控制量UKUK与输出与输出补偿量补偿量OCVOCV之间的关系,即之间的关系,即: 当当OCM=0,OCM=0,代表无补偿,此时代表无补偿,此时U Uc c= =U Uk k; 当当OCM=1,OCM=1,代表加补偿,此时代表加补偿,此时U Uc c= =U Uk k+OCV+OCV; 当当OCM=2,OCM=2,代表减补偿,此时代表减补偿,此时U Uc c= =U Uk k-OCV;-OCV; 当当OVM=3OVM=3,代表置换补偿,此时代表置换补偿,此时U Uc c=OCV.=OCV. 利利用用输输出出和和输输入入补补偿偿,可可以以扩扩大大实实际际应应用用范范围围,灵灵活活组组成成复复杂杂的的数数字控制器,以便组成复杂的自动控制系统。字控制器,以便组成复杂的自动控制系统。 2 2变变化化率率限限制制:为为了了实实现现平平稳稳操操作作,需需要要对对控控制制量量的的变变化化率率MRMR加加以以限限制制。变变化化率率的的选选取取要要适适中中,过过小小会会使使操操作作缓慢,过大则达不到限制的目的。缓慢,过大则达不到限制的目的。 3 3输输出出保保持持:当当软软开开关关FHFHNHNH切切向向NHNH位位置置时时,现现时时刻刻的的控控制制量量u(ku(k) )等等于于前前一一时时刻刻的的控控制制量量u(k-1)u(k-1),也也就就是是说说,输输出出控控制制量量保保持持不不变变。当当软软开开关关FHFHNHNH切切向向FHFH位位置置时时,又又恢恢复复正正常常输输出出方方式式。软软开开关关FHFHNHNH状状态态一一般般来来自自系系统统安安全全报警开关。报警开关。 4 4安安全全输输出出:当当软软开开关关FSFSNSNS切切向向NSNS位位置置时时,现现时时刻刻的的控控制制量量等等于于预预置置的的安安全全输输出出量量MSMS。当当软软开开关关FSFSNSNS切切向向FSFS位位置置时时,又又恢恢复复正正常常输输出出方方式式。软软开开关关FSFSNSNS状状态态一一般般来自系统安全报警开关。来自系统安全报警开关。 控制量处理数据区需要存放输出补偿量控制量处理数据区需要存放输出补偿量OCVOCV和补偿方式和补偿方式OCMOCM,变化率限制值变化率限制值MRMR,软开关软开关FHFHNHNH和和FSFSNSNS,安全输出安全输出量量MSMS,以及控制量以及控制量CMVCMV。7.4.5 7.4.5 自动手动切换技术自动手动切换技术 在正常运行时,系统处于自动状态;而在调试阶段或出现故在正常运行时,系统处于自动状态;而在调试阶段或出现故障时,系统处于手动状态。下图为自动障时,系统处于手动状态。下图为自动/ /手动切换处理框图。手动切换处理框图。 1.1.软自动软自动软手动软手动 当当软软开开关关SASASMSM切切向向SASA位位置置时时,系系统统处处于于正正常常的的自自动动状状态态,称称为为软软自自动动(SA)(SA);反反之之,切切向向SMSM位位置置时时,控控制制量量来来自自操操作作键键盘盘或或上上位位计计算算机机,此此时时系系统统处处于于计计算算机机手手动动状状态态,称称为为软软手手动动(SM)(SM)。一般在调试阶段,采用软手动一般在调试阶段,采用软手动(SM)(SM)方式。方式。2.2.控制量限幅控制量限幅 为为了了保保证证执执行行机机构构工工作作在在有有效效范范围围内内,需需要要对对控控制制量量U Us s进进行行上上、下下限限限限幅幅处处理理,使使得得MLMVMHMLMVMH,再再经经D DA A转转换换器输出器输出0 010mADC10mADC或或4 420mADC20mADC。3.3.自动自动手动手动 对对于于一一般般的的计计算算机机控控制制系系统统,可可采采用用手手动动操操作作器器作作为为计计算算机机的的后后备备操操作作。当当切切换换开开关关处处于于HAHA位位置置时时,控控制制量量MVMV通通过过D DA A输输出出,此此时时系系统统处处于于正正常常的的计计算算机机控控制制方方式式,称称为为自自动动状状态态(HA(HA状状态态) );反反之之,若若切切向向HMHM位位置置,则则计计算算机机不不再再承承担担控控制制任任务务,由由运运行行人人员员通通过过手手动动操操作作器器输输出出0 010mADC10mADC或或4 420mADC20mADC信信号号,对对执执行行机机构构进进行行远远方方操操作作,这这称称为手动状态为手动状态(HM(HM状态状态) )。4.4.无平衡无扰动切换无平衡无扰动切换 所谓无平衡无扰动切换,是指在进行手动到自动或自动到所谓无平衡无扰动切换,是指在进行手动到自动或自动到手动的切换之前,无须由人工进行手动输出控制信号与自动输手动的切换之前,无须由人工进行手动输出控制信号与自动输出控制信号之间的对位平衡操作,就可以保证切换时不会对执出控制信号之间的对位平衡操作,就可以保证切换时不会对执行机构的现有位置产生扰动。行机构的现有位置产生扰动。 为了实现从手动到自动的无平衡操作无扰动切换,在手动为了实现从手动到自动的无平衡操作无扰动切换,在手动(SM(SM或或HM)HM)状态下,状态下,尽管尽管并不进行并不进行PIDPID计算,但应使给定值计算,但应使给定值(CSV)(CSV)跟踪被控量跟踪被控量(CPV)(CPV),同时也要把历史数据,如同时也要把历史数据,如e(k-1)e(k-1)和和e(k-2)e(k-2)清清零,还要使零,还要使u(k-1)u(k-1)跟踪手动控制量跟踪手动控制量(MV(MV或或VM)VM)。这样,一旦切向这样,一旦切向自动而自动而u(k-1)u(k-1)又等于切换瞬间的手动控制量,这就保证了又等于切换瞬间的手动控制量,这就保证了PIDPID控控制量的连续性。当然,这一切需要有相应的硬件电路配合。制量的连续性。当然,这一切需要有相应的硬件电路配合。 当从自动当从自动(SA(SA与与HA)HA)切向软手动切向软手动(SM)(SM)时,只要计算机应用程时,只要计算机应用程序工作正常,就能自动保证无扰动切换。当从自动序工作正常,就能自动保证无扰动切换。当从自动(SA(SA与与HA)HA)切切向硬手动向硬手动(HM)(HM)时,通过手动操作器电路,也能保证无扰动切换。时,通过手动操作器电路,也能保证无扰动切换。 以以上上讨讨论论了了PIDPID控控制制程程序序的的各各部部分分功功能能及及相相应应的的数数据据区区。完完整整的的PIDPID控控制制模模块块数数据据区区除除了了上上述述各各部部分分外外,还还有有被被控控量量量量程程上上限限RHRH和和量量程程下下限限RLRL,工工程程单单位位代代码码、采采样样( (控控制制) )周周期期等等。该该数数据据区区是是PIDPID控控制制模模块块存存在在的的标标志志,可可把把它它看看作作是是数数字字PIDPID控控制制器器的的实实体体。只只有有正正确确地地填写填写PIDPID数据区后,才能实现数据区后,才能实现PIDPID控制系统。控制系统。 采采用用上上述述数数字字控控制制器器,不不仅仅可可以以组组成成单单回回路路控控制制系系统统,而而且且可可以以组组成成串串级级、前前馈馈、纯纯滞滞后后补补偿偿(Smith)(Smith)等等复复杂杂控控制制系系统统,对对于于后后面面两两种种系系统统还还应应增增加加补补偿偿器器运运算算模模块块。利利用用该该控控制制模模块块和和各各种种功功能能运运算算模模块块的的组组合合,可可以组成各种控制系统来满足生产过程控制的要求。以组成各种控制系统来满足生产过程控制的要求。7.5 7.5 系统的有限字长数值问题系统的有限字长数值问题7.5.1 7.5.1 量化误差来源量化误差来源7.5.2 A/D7.5.2 A/D、D/AD/A及运算字长的选择及运算字长的选择7.5.1 7.5.1 量化误差来源量化误差来源计算机控制系统的典型结构1.信号时间上的离散化问题2.幅值上的量化效应7.5.1 7.5.1 量化误差来源量化误差来源 1.1.量化误差量化误差 量化单位量化单位q,q,也就是机内数的最小单位。也就是机内数的最小单位。 举例,举例,8 8位和位和1212位的位的A/DA/D转换器,在转换器,在05V05V时,最小量化单位时,最小量化单位q q分别是:分别是: 通过通过A AD D转换可计算出模拟电压转换可计算出模拟电压x x相当于多少个整量化单位,即相当于多少个整量化单位,即: : x=x=Lq+Lq+ 式中式中L L为整数,对于余数为整数,对于余数(q)q)可以用截尾或舍入来处理可以用截尾或舍入来处理 。 7.5.1 7.5.1 量化误差来源量化误差来源 所所谓谓截截尾尾就就是是舍舍掉掉数数值值中中小小于于q q的的余余数数(q)q),其其截截尾尾误误差差t t为为:t t= =x xt t-x-x,式式中中x x为为实实际际数数值值,x xt t为为截截尾尾后后的的数值。数值。 显然显然-q-qt t00。 所所谓谓舍舍入入是是指指,当当被被舍舍掉掉的的余余数数大大于于或或等等于于量量化化单单位位的的一一半半时时,则则最最小小有有效效位位加加1 1;而而当当余余数数小小于于量量化化单单位位的的一一半半时时,则则舍舍掉掉。这这时时舍舍入入误误差差为为r r= =x xr r-x-x,式式中中x x为为实实际数值,际数值,x xr r舍入后的数值。舍入后的数值。 显然,显然,-q/2-q/2r rq/2q/2。7.5.1 7.5.1 量化误差来源量化误差来源l计算机控制系统中数值误差源:计算机控制系统中数值误差源:1.1.被测参数(模拟量)经被测参数(模拟量)经A/DA/D转换器变成数字量时产生第一转换器变成数字量时产生第一次量化误差。次量化误差。2.2.运算过程中,产生的误差。运算过程中,产生的误差。CPUCPU内产生的第二次量化误差。内产生的第二次量化误差。3.3.计算机输出的数字控制量经计算机输出的数字控制量经D/AD/A转换器变成模拟量,在模转换器变成模拟量,在模拟量输出装置内产生了第三次量化误差。拟量输出装置内产生了第三次量化误差。2.2.量化误差来源量化误差来源 从下图可以看出,产生从下图可以看出,产生量化误差的原因量化误差的原因主要有以下几个主要有以下几个方面:方面: (1)A/D(1)A/D转换的量化效应转换的量化效应 (2)(2)控制规律计算中的量化效应。控制规律计算中的量化效应。 (3)(3)控制参数的量化效应控制参数的量化效应 (4)D/A(4)D/A转换的量化效应转换的量化效应(1)A/D(1)A/D转换的量化效应转换的量化效应 如图示,如图示,a a为舍入,为舍入,b b为截尾。为截尾。 q q为量化单位,它的大小取决于为量化单位,它的大小取决于A/DA/D转换信号的最大幅转换信号的最大幅度及转换字长,设度及转换字长,设y(ky(k) )的最大信号为的最大信号为 ,转换字,转换字长为长为n1.n1.则量化单位则量化单位q q的大小为的大小为q q的大小反映了的大小反映了A/DA/D转换装置的分辨能力,通常称转换装置的分辨能力,通常称为为A/DA/D转换的转换的分辨率分辨率,典型,典型A/DA/D转换的位数为转换的位数为8 8、1010、1212或或1414,其分变率分别为,其分变率分别为0.4%0.4%、0.1%0.1%、0.025%0.025%、或、或0.006%0.006%(2)控制规律计算中的量化效应)控制规律计算中的量化效应 经过量化的数字信号送入计算机的中央处理单元进行控经过量化的数字信号送入计算机的中央处理单元进行控制规律计算,设计算所用的字长为制规律计算,设计算所用的字长为 ,一般,一般 ,由于计算机所用字长也是有限的,因此计算过程中也,由于计算机所用字长也是有限的,因此计算过程中也产生量化误差。产生量化误差。 定点运算和浮点运算定点运算和浮点运算 浮点运算采用双倍字长,精确,量化误差很小,但是运浮点运算采用双倍字长,精确,量化误差很小,但是运算速度慢。算速度慢。 定点运算速度快,但结果数只能用单字长表示,结果如定点运算速度快,但结果数只能用单字长表示,结果如果超过字长则低位可以采用舍入或截尾两种方法进行处果超过字长则低位可以采用舍入或截尾两种方法进行处理。理。(3 3)控制参数的量化效应)控制参数的量化效应 控制规律计算时,其中部分参数与要求参数存在一控制规律计算时,其中部分参数与要求参数存在一定的误差,字长越长,误差便越小。若控制本身对定的误差,字长越长,误差便越小。若控制本身对控制器参数很灵敏,则参数的量化效应对系统性能控制器参数很灵敏,则参数的量化效应对系统性能产生较大影响。产生较大影响。(4 4)D/AD/A转换的量化效应转换的量化效应 计算机所用字长通常比计算机所用字长通常比A/DA/D转换的字长要长,因此,转换的字长要长,因此,经过经过D/AD/A转换后,从转换后,从 到到u(ku(k) )之间也存在量化效之间也存在量化效应。应。7.5.2 A/D7.5.2 A/D、D/AD/A及运算字长的选择及运算字长的选择 1.A/D1.A/D转换器的字长选择转换器的字长选择2.D/A2.D/A转换器的字长选择转换器的字长选择3.3.运算的字长选择运算的字长选择1.A/D1.A/D转换器的字长选择转换器的字长选择 为把量化误差限制在所允许的范围内,应使为把量化误差限制在所允许的范围内,应使A/DA/D转换器有转换器有足够的字长。确定字长要考虑的因素是:输入信号足够的字长。确定字长要考虑的因素是:输入信号x x的动态范的动态范围和分辨率。围和分辨率。 (1)(1)输入信号的动态范围输入信号的动态范围设输入信号的最大值和最小值之差为设输入信号的最大值和最小值之差为式中,式中,n1n1为为A/DA/D转换器的字长;转换器的字长;为转换当量(单位:为转换当量(单位:mvmv/bit/bit). .则动态范围为:则动态范围为:因此,因此,A/DA/D转换器字长转换器字长(2)(2)分辨率分辨率分辨率定义为分辨率定义为例,例,8 8位的分辨率位的分辨率1616位的分辨率位的分辨率如果要求的分辨率为如果要求的分辨率为 ,则字长,则字长例题:例题:某温度控制系统的温度范围为某温度控制系统的温度范围为0-2000-200,要求,要求分辨率为分辨率为0.0050.005,则,则A/DA/D转换器的字长至少应该转换器的字长至少应该为几位?为几位?2 2. .D D / /A A 转转 换换 器器 的的 字字 长长 选选 择择执行机构的最大输入值为执行机构的最大输入值为u umaxmax最小输入值为最小输入值为u uminmin 灵敏度为灵敏度为 D/AD/A转换器输出一般都通过功率放大器推动执行机构转换器输出一般都通过功率放大器推动执行机构D/AD/A转换器的字长转换器的字长常用的常用的A/DA/D和和D/AD/A转换器字长为转换器字长为8 8位、位、1010位和位和1212位,按上述公式位,按上述公式估算出字长取整后再选取这三种之一。估算出字长取整后再选取这三种之一。3.3.运算的字长选择运算的字长选择 由由8 8位或位或1212位位A/DA/D变换器采集数据之后,为了保证运算精度,变换器采集数据之后,为了保证运算精度,在在CPUCPU内几乎毫无例外的至少采用内几乎毫无例外的至少采用1616位字长运算。运算精度不位字长运算。运算精度不仅取决于字长,而且还取决于采用定点数或浮点数。如果采仅取决于字长,而且还取决于采用定点数或浮点数。如果采用浮点数,运算精度可以大大提高。用浮点数,运算精度可以大大提高。 不管采用定点还是浮点数,输入标准数不管采用定点还是浮点数,输入标准数0 0至至1 1对应对应A/DA/D转换结转换结果的全果的全0 0至全至全1 1;输出标准数;输出标准数0 0至至1 1对应对应D/AD/A转换器数字位状态的转换器数字位状态的全全0 0至全至全1 1。 7.6 7.6 软件抗干扰技术软件抗干扰技术1.1.测控系统软件的基本要求测控系统软件的基本要求(1 1)易理解、易维护)易理解、易维护 指软件系统容易阅读和理解,容易发现和纠正错误,容指软件系统容易阅读和理解,容易发现和纠正错误,容易修改和补充。易修改和补充。(2 2)实时性)实时性 要求系统及时响应外部事件的发生,并及时给出处理结要求系统及时响应外部事件的发生,并及时给出处理结果。果。(3 3)可测试性)可测试性 两方面含义:其一是比较容易制定出测试准则,并根据这两方面含义:其一是比较容易制定出测试准则,并根据这些准则对软件进行测试;其二软件设计完成后,首先在模拟环些准则对软件进行测试;其二软件设计完成后,首先在模拟环境下运行,经过静态分析和动态仿真运行,证明正确无误后才境下运行,经过静态分析和动态仿真运行,证明正确无误后才可投入实际运行。可投入实际运行。(4 4)准确性)准确性 算法选择、位数选择等要符合要求。算法选择、位数选择等要符合要求。(5 5)可靠性)可靠性 最重要的指标之一,两方面含义:第一是运行最重要的指标之一,两方面含义:第一是运行参数环境发生变化时,软件能可靠运行并给出准确参数环境发生变化时,软件能可靠运行并给出准确结果,即软件应具有自适应性;第二是工业环境极结果,即软件应具有自适应性;第二是工业环境极其恶劣,干扰严重,软件必须保证在严重干扰条件其恶劣,干扰严重,软件必须保证在严重干扰条件下也能可靠运行。下也能可靠运行。2.2.软件抗干扰研究的主要内容软件抗干扰研究的主要内容 (1) (1) 采用软件的方法抑制叠加在输入输出信号上噪声影采用软件的方法抑制叠加在输入输出信号上噪声影响,如模拟输入信号的数字滤波技术;响,如模拟输入信号的数字滤波技术; (2) (2) 由于干扰而使程序发生混乱,导致程序乱飞或陷入由于干扰而使程序发生混乱,导致程序乱飞或陷入死循环,采取使程序纳入正规的措施,如指令冗余、软件陷死循环,采取使程序纳入正规的措施,如指令冗余、软件陷阱、阱、“看门狗看门狗”技术等;技术等; (3) (3) 发现程序失控后,解决系统恢复正常运行的方法,发现程序失控后,解决系统恢复正常运行的方法,如重要信息的恢复,系统重入的条件等;如重要信息的恢复,系统重入的条件等; (3)(3) 数数字字滤滤波波器器可可以以根根据据信信号号的的不不同同,采采用用不不同同的的滤滤波波方方法法或或滤波参数,具有灵活、方便、功能强的特点。滤波参数,具有灵活、方便、功能强的特点。7.6.1 7.6.1 数字滤波技术数字滤波技术 所谓数字滤波,就是通过一定的计算或判断程序减少干所谓数字滤波,就是通过一定的计算或判断程序减少干所谓数字滤波,就是通过一定的计算或判断程序减少干所谓数字滤波,就是通过一定的计算或判断程序减少干扰在有用信号中的比重。故实质上它是一种程序滤波。扰在有用信号中的比重。故实质上它是一种程序滤波。扰在有用信号中的比重。故实质上它是一种程序滤波。扰在有用信号中的比重。故实质上它是一种程序滤波。 与模拟滤波器相比,有以下几个优点与模拟滤波器相比,有以下几个优点: : (1)(1) 数字滤波是用程序实现的,不需要增加硬设备,数字滤波是用程序实现的,不需要增加硬设备,所以可靠性高,稳定性好。所以可靠性高,稳定性好。 (2)(2) 数字滤波可以对频率很低数字滤波可以对频率很低( (如如0 001HZ)01HZ)的信号实的信号实现滤波,克服了模拟滤波器的缺陷。现滤波,克服了模拟滤波器的缺陷。 主要数字滤波算法:主要数字滤波算法:算术平均值法、中位值滤波法、限算术平均值法、中位值滤波法、限幅滤波法、惯性滤波法幅滤波法、惯性滤波法 1.1.算术平均值法算术平均值法第术平均值法是对输入的第术平均值法是对输入的N个采样数据个采样数据xi(i=1N),寻找,寻找这样一个这样一个y,使,使y与各采样值间的偏差的平方和为最小,使与各采样值间的偏差的平方和为最小,使由一元函数求极值原理可得:由一元函数求极值原理可得: 设测量值包含信号成分设测量值包含信号成分 和噪声成分和噪声成分 ,则进行,则进行N N次测量信号成次测量信号成分之和为分之和为 噪声的强度是用均方根来衡量的,当噪声为随机信号时,进行噪声的强度是用均方根来衡量的,当噪声为随机信号时,进行N N次次测量的噪声强度之和为测量的噪声强度之和为 s s、C C分别表示进行分别表示进行N N次测量后信号和噪声的平均幅度。次测量后信号和噪声的平均幅度。N N次测量进行次测量进行算术平均后信噪比为算术平均后信噪比为例:某压力仪表采样数据如下:1234567891024252027246024252623序 号采样值采样数据明显存在被干扰现象(彩色数据)。采用算术平均值滤波后,其采样值为:Y=(24+25+20+27+24+60+24+25+ 26+23)/10=28干扰被平均到采样值中去了 3 3) 平均值滤波法一般适用平均值滤波法一般适用于具有周期性干扰噪声的信号,于具有周期性干扰噪声的信号,但对偶然出现的脉冲干扰信号,滤波效果尚不理想。但对偶然出现的脉冲干扰信号,滤波效果尚不理想。 特点特点:1 1) N N值决定了信号平滑度和灵敏度值决定了信号平滑度和灵敏度。随着随着N N的增大,平滑度的增大,平滑度提高,灵敏度降低。应该视具体情况选择提高,灵敏度降低。应该视具体情况选择N N,以便得到满意,以便得到满意的滤波效果。的滤波效果。2 2) 对每次采样值给出相同的加权系数,即对每次采样值给出相同的加权系数,即1/N1/N。在不同采在不同采样时刻采集数据受到同样重视样时刻采集数据受到同样重视。实际上某些场合需要增加新实际上某些场合需要增加新采样值在平均值中的比重,可采用加权平均值滤波法。滤波采样值在平均值中的比重,可采用加权平均值滤波法。滤波公式为:公式为:Y=RY=R0 0Y Y0 0+ R+ R1 1Y Y1 1+ R+ R2 2Y Y2 2+ + + RmYmRmYm。2.2.中位值滤波法中位值滤波法 中位值滤波法的原理是对被测参数连续采样中位值滤波法的原理是对被测参数连续采样m m次次(m3)(m3)且是奇数,且是奇数,并按大小顺序排列;再并按大小顺序排列;再取中间值取中间值作为本次采样的有效数据。作为本次采样的有效数据。 特点特点:中位值滤波法对脉冲干扰信号等中位值滤波法对脉冲干扰信号等偶然因素引发的偶然因素引发的干扰有良好的滤波效果干扰有良好的滤波效果。如对温度、液位等变化缓慢的被。如对温度、液位等变化缓慢的被测参数采用此法会收到良好的滤波效果;对流量、速度等测参数采用此法会收到良好的滤波效果;对流量、速度等快速变化的参数一般不宜采用快速变化的参数一般不宜采用中位值滤波法中位值滤波法 中位值滤波法和平均值滤波法结合起来使用,滤波效中位值滤波法和平均值滤波法结合起来使用,滤波效果会更好。即在每个采样周期,先用中位值滤波法得到果会更好。即在每个采样周期,先用中位值滤波法得到m个滤波值,再对这个滤波值,再对这m个滤波值进行算术平均,得到可用的个滤波值进行算术平均,得到可用的被测参数。也称为被测参数。也称为去脉冲干扰平均值滤波法去脉冲干扰平均值滤波法. 123456789242520272460242526例:某压力仪表采样数据如下:例:某压力仪表采样数据如下:序序 号号采样值采样值采样数据明显存在采样数据明显存在被干扰被干扰现象(彩色数据)。现象(彩色数据)。采用去脉冲干扰平均值滤波后,其采样值为:采用去脉冲干扰平均值滤波后,其采样值为:25对对1、2、3次采样中位值滤波后值:次采样中位值滤波后值:24对对4、5、6次采样中位值滤波后值:次采样中位值滤波后值:27对对7、8、9次采样中位值滤波后值:次采样中位值滤波后值:253.3.限幅滤波法限幅滤波法 由由于于大大的的随随机机干干扰扰或或采采样样器器的的不不稳稳定定,使使得得采采样样数数据据偏离实际值太远,为此偏离实际值太远,为此采用上、下限限幅采用上、下限限幅,即,即 当当y(n)yy(n)yH H时,则取时,则取y(n)=y(n)=y yH H( (上限值上限值) ); 当当y(n)yy(n)yL L时,则取时,则取y(n)=y(n)=y yL L( (下限值下限值) ); 当当y yL Ly(n)y(n)y yH H时,则取时,则取y(n)y(n)。而且采用限速而且采用限速( (亦称亦称限制变化率限制变化率) ),即,即 当当|y(n)-y(n-1)|y|y(n)-y(n-1)|y0 0时,则取时,则取y(n);y(n); 当当|y(n)-y(n-1)|y(n)-y(n-1)|yy0 0时,则取时,则取y(n)=y(n-1)y(n)=y(n-1)。其其中中yy0 0为为两两次次相相邻邻采采样样值值之之差差的的可可能能最最大大变变化化量量。yy0 0值值的的选选取取,取取决决于于采采样样周周期期T T及及被被测测参参数数y y应应有有的的正正常常变变化化率率。因因此此,一一定定要要按按照照实实际际情情况况来来确确定定yy0 0、y yH H及及y yL L,否否则则,非非但达不到滤波效果,反而会降低控制品质。但达不到滤波效果,反而会降低控制品质。4.4.惯性滤波法惯性滤波法 RCRC滤波器的传递函数是滤波器的传递函数是 其中其中T Tf f=RC,=RC,它的滤波效果取决于滤波时间常数它的滤波效果取决于滤波时间常数T Tf f。因此,因此,RCRC滤波器不可能滤波器不可能对极低频率的信号进行滤波。为此,人们模仿上式做成一阶惯性滤波对极低频率的信号进行滤波。为此,人们模仿上式做成一阶惯性滤波器亦称低通滤波器。器亦称低通滤波器。 即将上式写成差分方程即将上式写成差分方程 稍加整理得稍加整理得 其中,其中,称为滤波系数,且称为滤波系数,且0 01 1,T Ts s为采样周期,为采样周期,T Tf f为滤波器时为滤波器时间常数。间常数。 根据惯性滤波器的频率特性,若滤波系数根据惯性滤波器的频率特性,若滤波系数越大,则带宽越窄,越大,则带宽越窄,滤波频率也越低。因此,需要根据实际情况,适当选取滤波频率也越低。因此,需要根据实际情况,适当选取值,使得被值,使得被测参数既不出现明显的纹波,反应又不太迟缓。测参数既不出现明显的纹波,反应又不太迟缓。5.5.加权平均滤波加权平均滤波算术平均值滤波对每个采样值给出相同的权重系数算术平均值滤波对每个采样值给出相同的权重系数1/m1/m若要增加新采样值在平均值中比重若要增加新采样值在平均值中比重, , 提高系统对当前所受提高系统对当前所受干扰的灵敏度干扰的灵敏度, , 可采用加权平均滤波可采用加权平均滤波, , 算式为算式为aiai 为加权系数,体现各次采样值在平均值中所占比例。为加权系数,体现各次采样值在平均值中所占比例。这种滤波方法可根据需要突出信号某一部分,抑制信号这种滤波方法可根据需要突出信号某一部分,抑制信号另一部分。适用于纯滞后较大、采样周期短的过程。另一部分。适用于纯滞后较大、采样周期短的过程。 l l各种滤波方法的特点与应用各种滤波方法的特点与应用l l平均值滤波平均值滤波适用于周期性干扰;适用于周期性干扰;l l加权平均递推滤波加权平均递推滤波适用于纯滞后较大的过程;适用于纯滞后较大的过程; l l中值滤波中值滤波和和限幅滤波限幅滤波适用于偶然出现的脉冲干扰;适用于偶然出现的脉冲干扰;l l惯性滤波惯性滤波适用于高频干扰。适用于高频干扰。7.6.2 7.6.2 开关量的软件抗干扰技术开关量的软件抗干扰技术 2.2.开关量开关量( (数字量数字量) )信号信号输出输出抗干扰措施抗干扰措施 在软件上,最为有效的方法就是在软件上,最为有效的方法就是重复输出同一个数据重复输出同一个数据。只。只要有可能,其重复周期尽可能短些。要有可能,其重复周期尽可能短些。 输出设备是电位控制型还是同步锁存型,对干扰的敏感性输出设备是电位控制型还是同步锁存型,对干扰的敏感性相差较大。前者有良好的抗相差较大。前者有良好的抗“毛刺毛刺”干扰能力,后者不耐干扰,干扰能力,后者不耐干扰,当锁存线上出现干扰时,它就会盲目锁存当前的数据,也不管当锁存线上出现干扰时,它就会盲目锁存当前的数据,也不管此时数据是否有效。此时数据是否有效。 1.1.开关量开关量( (数字量数字量) )信号信号输入输入抗干扰措施抗干扰措施 干扰信号多呈毛刺状,作用时间短,利用这一特点,我们干扰信号多呈毛刺状,作用时间短,利用这一特点,我们在采集某一开关量信号时,可在采集某一开关量信号时,可多次重复采集多次重复采集,直到连续两次或,直到连续两次或两次以上两次以上结果完全一致结果完全一致方为有效。方为有效。7.6.3 指令冗余技术指令冗余技术CPU受干扰后,往往将操作数当作操作码执行,造成程序混乱。受干扰后,往往将操作数当作操作码执行,造成程序混乱。当程序弹飞到一单字节指令上时,便自动纳入正轨;当程序弹飞到一单字节指令上时,便自动纳入正轨;当程序弹飞到一双字节指令上时(操作码、操作数),有当程序弹飞到一双字节指令上时(操作码、操作数),有可能落到操作数上,从而继续出错;可能落到操作数上,从而继续出错;当程序弹飞到一三字节指令上时(操作码、操作数、操作当程序弹飞到一三字节指令上时(操作码、操作数、操作数),因其有两个操作数,从而继续出错机会更大数),因其有两个操作数,从而继续出错机会更大 。 应多采用单字节指令,并在关键地方人为插入一些单字应多采用单字节指令,并在关键地方人为插入一些单字节指令,或将有效单字节指令重复书写,提高弹飞程序纳入节指令,或将有效单字节指令重复书写,提高弹飞程序纳入正轨的机会,这便是指令冗余。正轨的机会,这便是指令冗余。实现方法实现方法:在一些对程序流向起决定作用的在一些对程序流向起决定作用的指令之前指令之前插入两条插入两条NOP指令,指令,以保证弹飞的程序迅速纳入正确的控制轨道。这些指令有:以保证弹飞的程序迅速纳入正确的控制轨道。这些指令有:RET、RETI、LCALL、LJMP、JZ/JNZ、JC/JNC、JB/JNB、JBC、CJNE、DJNZ等。等。如:利用减法比较两无符号数的大小程序(数放如:利用减法比较两无符号数的大小程序(数放A、B中):中):无指令冗余程序无指令冗余程序:CLRCSUBB A,BJCBBIGBBIG:NOP.有指令冗余的情况:有指令冗余的情况:CLRCSUBB A,BNOPNOPJCBBIGBBIG:NOP.指令冗余缺点:指令冗余缺点:降低指令执行效率降低指令执行效率指令冗余特点指令冗余特点:1.降低正常程序执行的效率;降低正常程序执行的效率;2.可以减少程序弹飞的次数,使其很快纳入程序轨道,使可以减少程序弹飞的次数,使其很快纳入程序轨道,使CPU按按“操作码、操作数操作码、操作数”方式运行,但不能保证失控期间方式运行,但不能保证失控期间不干坏事,更不能保证程序纳入正常轨道后太平无事。因不干坏事,更不能保证程序纳入正常轨道后太平无事。因为弹飞的程序已经偏离正常顺序,做了不该做的事。解决为弹飞的程序已经偏离正常顺序,做了不该做的事。解决这个问题还要靠软件容错技术,减少或消灭程序误动作。这个问题还要靠软件容错技术,减少或消灭程序误动作。3.指令冗余使弹飞程序安定下来是有条件的,首先弹飞的指令冗余使弹飞程序安定下来是有条件的,首先弹飞的程序要落到程序区,其次必须执行到冗余的指令。程序要落到程序区,其次必须执行到冗余的指令。当程序弹飞到非程序区时,或弹飞的程序碰到冗余指令当程序弹飞到非程序区时,或弹飞的程序碰到冗余指令前已形成死循环,都会使冗余指令失去作用。前已形成死循环,都会使冗余指令失去作用。7.6.4 软件陷阱技术软件陷阱技术所谓软件陷阱所谓软件陷阱,就是一条引导指令,强行将扑获的程,就是一条引导指令,强行将扑获的程序引向一个指定的地址,在那里有一段专门对程序出错序引向一个指定的地址,在那里有一段专门对程序出错进行处理的程序。进行处理的程序。软件陷阱由三条指令构成:软件陷阱由三条指令构成:NOPNOPLJMP ERR ;ERR错误处理程序入口错误处理程序入口软件陷阱安排在下列四种地方:软件陷阱安排在下列四种地方:1)未使用的中断向量区)未使用的中断向量区2)未使用的大片)未使用的大片ROM区区3)表格区尾部)表格区尾部4)程序区)程序区WatchdogWatchdog技术技术 当程序当程序“跑飞跑飞”到一个临时构成的死循环中时,冗余指令和软件陷阱将不到一个临时构成的死循环中时,冗余指令和软件陷阱将不起作用,造成系统完全瘫痪。起作用,造成系统完全瘫痪。看门狗技术看门狗技术,可以有效解决这一问题,可以有效解决这一问题 看门狗看门狗,也称,也称程序监视定时器程序监视定时器,在硬件上,可把它看成是一个相对独,在硬件上,可把它看成是一个相对独立于立于CPUCPU的可复位定时系统,在软件程序的各主要运行点处,设有向的可复位定时系统,在软件程序的各主要运行点处,设有向看门狗发出的复位信号指令。看门狗发出的复位信号指令。 为实现看门狗的目标,需要解决两个方面的问题:一是硬件电路问题,为实现看门狗的目标,需要解决两个方面的问题:一是硬件电路问题,二是软件编程问题。二是软件编程问题。 当系统运行时,看门狗与当系统运行时,看门狗与CPUCPU同时工作同时工作。程序正常运行时,会在规定的时。程序正常运行时,会在规定的时间内由程序向看门狗发复位信号,使定时系统重新开始定时计数,没有间内由程序向看门狗发复位信号,使定时系统重新开始定时计数,没有输出信号发出;当程序输出信号发出;当程序“跑飞跑飞”并且其他的措施没有发挥作用时,看门并且其他的措施没有发挥作用时,看门狗便不能在规定的时间内得到复位信号,其输出端会发出信号使狗便不能在规定的时间内得到复位信号,其输出端会发出信号使CPUCPU系系统复位。统复位。看门狗的实现形式可以分为看门狗的实现形式可以分为硬件看门狗硬件看门狗和和软件看门狗软件看门狗两种。两种。本章节课程到此结束!本章节课程到此结束!
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号