1、监控程序设计第六章 监控程序设计6.1 监控程序的功能和组成一、监控程序的功能:1、进行键盘和显示管理,按键入的命令转入相应的键服务;2、接收因过程(输入输出)通道或时钟等引起的中断请求信号,区分优先级,实现中断嵌套,并转入相应的实时测量、控制功能子程序;3、实现对硬件定时器的处理及由此形成的软件定时器的管理;4、实现对系统自身的诊断处理;5、初始化,手-自动控制,掉电保护等。二、监控程序的组成监控程序的组成主要取决于测控系统的组成规模,以及系统的硬件配备与功能。通常由监控主程序、初始化管理、键盘管理、显示管理、中断管理、时钟管理、自诊断、手-自动控制等模块组成。图6-1-1监控程序的基本组成
2、1、监控主程序调用各模块,并将它们联系起来,形成一个有机整体,从而实现对系统的全部管理功能。2、测控算法程序主要实现测量与控制功能,它由描述一种或几种测控算法(如数字滤波,PID算法等)的功能模块构成,通常为实时中断程序或监控程序所调用。3、各功能模块又由各种下层模块(子程序)所支持。6.2 监控主程序和初始化管理 6.2.1 监控主程序一、监控主程序的任务监控主程序是整个监控程序的一条主线,上电复位后首先进入监控主程序。它的任务是识别命令、解释命令并获得完成该命令的相应模块的入口。监控主程序引导测控系统进入正常运行,并协调各部分软、硬件有条不紊地工作。二、监控主程序的组成模块监控主程序通常包
3、括可编程器件、输入、输出端口和参数的初始化,自诊断管理模块,键盘显示管理模块,以及实时中断管理和处理模块等,是“自顶向下”结构化设计中的第一层次。除了初始化和自诊断外,监控主程序一般总是把其余部分联接起来,构成一个无限循环圈,测控系统的所有功能都在这一循环圈中周而复始地、或有选择地执行,除非掉电或按复位(RESET)键,测控系统不会跳出这一循环圈。由于各个微机化测控系统的功能不同,硬件结构不同,程序编制方法不同,因而监控主程序没有统一的模式。图6-2-1 微机温控仪监控主程序流程。 6.2.2 初始化管理一、可编程器件初始化对可编程硬件接口电路的工作模式的初始化微机化测控系统中常用的可编程器件
4、有:键盘显示管理接口8279、I/O和RAM扩展接口8155,并行输入输出接口8255、定时计数器接口8253等, 二、堆栈初始化复位后首先在用户RAM中确定一个堆栈区域,由堆栈指示器SP来管理三、参数初始化是指对测控系统的整定参数(如PID算法的Kp、TI、TD三个参数的初值)、报警值以及过程输入通道的数据与过程输出通道的数据初始化。通常把这些可调整初始化参数集中在一个模块中,以便集中管理,也有利于实现模块独立性。初始化管理模块作为监控程序的第二层次,通过分别调用上述三类初始化功能模块(第三层次),实现对整个仪表和系统中有关器件的初始化。6.3 键盘管理6.3.1一键一义的键盘管理一键一义,
5、即一个按键代表一个确切的命令或一个数字,编程时只要根据当前按键的编码把程序直接分支到相应的处理模块的入口,而无需知道在此以前的按键情况。键盘信号的获得有三种方法: 一、单纯查询法主程序用扫描键盘等手段来获取键盘信息。微处理器(机)周而复始地扫描键盘,当发现按键时,首先判别是命令键还是数字键,若是数字键,则把按键读数读入存储器,通常还进行显示;若是命令键,则根据按键读数查阅转移表,以获得处理子程序的入口。处理子程序执行完后继续扫描键盘,如图6-3-1(a)。所示进行一键一义的键盘管理的核心是一张一维的转移表。如图6-3-1(b)所示,在转移表内顺序登记了各个处理子程序的转移指令。图6-3-1查询
6、法程序流程图 查询法处理的一键一义监控程序(程序清单见教材) 二、键盘中断法按下键盘任何键都引起一个中断请求,键码分析过程放在中断子程序中,这种方法需独自占用一个外部中断源,其监控程序结构如图6-3-2(a)所示。 三、定时查询法每隔一定时间查询一次键盘,由于时间间隔通常很短,对于操作者来说键盘的响应是实时的,键盘的查询过程安排在定时中断程序中完成,其监控程序的结构框图如图6-3-2(b)所示。 图6-3-2中断法和定时法程序框图6.3.2 一键多义的按键管理一、一键多义的一键多义,一个按键有多种功能,既可作多种命令键,又可作数字键。在一键多义的情况下,一个命令不是由一次按键,而是由一个按键序
7、列所组成。换句话说,对一个按键含义的解释,除了取决于本次按键外,还取决于以前按了些什么键。因此对于一键多义的监控程序,首先要判断一个按键序列(而不是一次按键)是否已构成一个合法命令。若已构成合法命令,则执行命令,否则等待新按键输入。 二、一键多义的监控程序一键多义的监控程序仍可采用转移表法进行设计,不过这时要用多张转移表,组成一个命令的前几个按键起着引导的作用,把控制引向某张合适的转移表,根据最后一个按键编码查阅该转移表,就找到要求的子程序入口。按键的管理,可以用查询法也可以用中断法。三、一键多义键服务程序流程实例实例8回路微机温控仪键盘有6个按键:C键(回路号18,第8回路为环境温度补偿,其
8、余为控温点)P键(参数号,有设定值,实测值,共8个参数) 键(加1) 键(减1)只用于设定值的修改R键(运行)S键(停止运行)第8回路(环境温度补偿回路)只有温度实测值一个参数,没有其它参数第17个回路有设定值(P、I、D参数,上、下限报警值)、温度实测值8个参数1、 程序流程图6332、 程序清单 设键编码R:00H;S:01H;:02H;:03H;C:04H和P:05H。内存RAM 20H中高4位为通道(回路)号标记,低4位为参数号标记。假设8279命令口地址为7FFFH,数据口地址为7FFEH。 7个回路(17),每个回路8个参数,共有56个转移入口,分别由56个键服务功能模块所支持。第
9、8回路无参数,由其独立子程序C8单独处理。程序清单(见教材) 图6-3-3一键多义键服务程序流程6.3.3自动/手动切换一、微机化控制系统的两种工作方式自动方式微机化控制系统的基本工作方式。手操方式在系统调试、测试时,用来调整输出控制值。二、自动/手动切换控制的基本功能是:在手操方式时,能通过一定的手动操作来方便、准确地调整输出值;能实现手动-自动的无扰动切换。三、实现手动操作的方法实现手动操作,有硬件方法和软件方法两种。目前大多数微机化系统采用软件方法,由操作面板上的几个按键来实现。这几个键分别是:手-自动切换键;手操输出加;手操输出减。监控程序通过判断手动-自动切换键的状态来判断是否进入手
10、操方式。在手操方式时,系统的自动控制功能暂停,改由面板上的输出加、减两键来调整输出值。 四、无扰动切换的实现在用户RAM区中开辟一个输出控制值单元,作为当前输出控制量的映象,无论是手操还是自动控制,都是对这一输出值的映象单元进行加或减,在输出模块程序作用下,输出通道把此值送到执行机构上去。这样就用极其简单的方法实现了无扰动切换。6.4显示、中断与时钟管理6.4.1显示管理一、微机化系统的主要显示方式模拟指示用模拟表头作为显示手段,无需软件管理。数字显示硬件方案的不同,软件显示管理方法也不同模拟数字混合显示 二、显示管理软件的基本任务 1、显示更新的数据 2、多参数的巡测和定点显示管理 巡回显示
11、方式每隔一定时间)改换一个新的显示参数 定点显示方式只跟踪显示某一参数,不改换通道或参数3、 指示灯显示管理通常可由与某一指示灯有关的功能模块直接管理。6.4.2中断管理一、中断的概念允许被控过程的某一状态或实时时钟或键操作中断正在进行的工作,转而处理该过程的实时问题。当这一处理工作完成后,再回去执行原先的任务,即监控程序中确认的工作。一般说来,未经事先“同意”(开放中断),不允许过程或实时时钟申请中断。能够发出中断请求信号的外设或事件称为中断源。微机化测控系统中常见的中断源有:过程通道、实时时钟、面板按键、通信接口、系统故障。二、一个中断源的中断过程暂时保护程序计数器的内容,以便使CPU在服
12、务程序执行完时能回到它在产生中断之前所处的状态。将中断服务程序的入口地址送入程序计数器。这个服务程序能够准确地完成申请中断的设备所要求的操作。在服务程序开始时,必须将服务程序需要使用的CPU寄存器(例如累加器、进位位、专用的暂存寄存器等)的内容暂时地保护起来,并在服务程序结束时再恢复其内容。对于引起中断而将INT变为低电平的设备,系统必须进行适当的操作使INT再次变为高电平。如果允许发生中断,则必须将允许中断触发器再次置位。最后,恢复程序计数器原先被保存的内容,以便返回到被中断的程序。二、多个中断源的处理确定多个中断源的优先级,在软件上作出相应处理。运行时,当多个中断源同时提出申请时,主机要识
13、别出哪些中断源在申请中断,辨别和比较它们的优先级,优先响应级别高的中断请求。另外,当CPU在处理中断时,还要能响应更高级的中断请求,而屏蔽掉同级或较低级的中断请求。这就要求设计者精心安排多中断源的级别及响应时间,使次要工作不致影响主要工作。 三、中断程序模块中断模块分中断管理模块和中断服务模块两部分。1、中断服务模块具体服务内容,由各测控系统的功能所决定。2、中断管理模块中断管理软件模块,通常应包括以下功能:断点现场保护;识别中断源;判断优先级;如果允许中断嵌套,则再次开放中断(单片机除外);中断服务结束后恢复现场,如图6-4-1所示。图6-4-1中断流程 四、多中断源识别通常,系统掉电总是作
14、为最高级中断源。至于其它中断源的优先级,则由设计人员根据系统的功能特点来确定当有两个以上中断源时,可以采用如下两种方法:利用定时器/计数器的外部事件计数输入端(T0或T1),作为边沿触发的外部中断输入端,这时定时器/计数器应工作于计数器方式,计数寄存器应预置满度数。每个中断源都接在同一个外部中断输入端(INT0或INT1)上,同时利用输入口来识别某装置的中断请求。具体线路见图6-4-2。程序清单见教材。 图6-4-2多中断源识别电路6.4.3时钟管理一、时钟作为定时器的用途过程输入通道的数据采样周期定时;过程输出通道控制周期的定时;参数修改按键数字增减速度的定时;多参数巡回显示时的显示周期定时
15、;动态保持方式输出过程通道的动态刷新周期定时;电压-频率型A/D转换器定时电路;故障监视电路(Watch dog)的定时信号。二、实现定时的方法1、硬件方法 采用可编程定时/计数器接口电路(如CTC 8253)以及单片机内的定时电路。使用时,只要在监控主程序的初始化程序或时钟管理程序中,对它进行工作方式预置和时间常数预置即可。这种定时方法的定时间隔不可能做得太长。2、软件方法。采用软件延时方案,无需硬件成本,但要占用大量CPU时间,且实时性差,定时精度低,是一种不可取的方法。3、软件与硬件相结合定时的方法这种方案几乎不影响测控系统的实时响应,而且能实现多种时间间隔的定时。首先由定时电路产生一个
16、基本的脉冲。硬件定时时间到,产生一中断。监控主程序随即转入时钟中断管理模块。在设计软件结构时,可串行地或并行地设置几个软件定时器(在用户RAM区)。当硬件定时中断一到,这些软件时钟分别用累加或递减方法计时,并由软件来判断是否定时时间到。6.5 硬件故障的自检6.5.1自检方式一、自检的基本原理自检就是利用事先编制的程序对测控系统的主要部件进行自动检测,以确定是否有故障以及故障的内容和位置。自检是微机化测控系统应具备的基本功能之一,也是提高可靠性和可维护性的重要手段之一。一般地讲,故障诊断的基本原理是对被测部件输入一串数据试验数据,然后观察相应的输出数据,并对观察结果进行分析,确定故障的内容和位
17、置。试验数据、观察到的结果数据和故障的对应关系应在故障诊断前准备好。二、自检方式的三种类型:1、 开机自检在电源接通或系统复位之后进行。自检中如果没发现问题,就进入测量程序,如果发现问题,则及时报警。2、周期性自检在测控系统运行过程中,间断插入的自检操作,这种操作可以保证测控系统在使用过程中一直处于正常状态。周期性自检不影响测控系统的正常工作,因而只有当出现故障给予报警时,用户才会觉察。2、 键盘自检具有键盘自检功能的测控系统面板上应设有“自检”按键,当用户对系统的可信度发出怀疑时,便通过该键来启动一次自检过程。 三、自检结果的提示“出错代码”自检过程中,微机化测控系统一般都借用本身的显示器,
18、以文字或数字的形式显示“出错代码”,出错代码通常以“Error X”字样表示,其中“X”为故障代号,操作人员根据“出错代码”,查阅操作手册便可确定故障内容。除了给出故障代号之外,往往还给出指示灯的闪烁或者音响报警信号,以提醒操作人员注意。6.5.2自检算法一、ROM或EPROM的检测ROM故障的检测常用“校验和”方法,具体作法是:在将程序机器码写入ROM的时候,保留一个单元(一般是最后一个单元),此单元不写程序机器码而是写“校验字”,“校验字”应能满足ROM中所有单元的每一列都具有奇数个1。自检程序的内容是:对每一列数进行异或运算,如果ROM无故障,各列的运算结果应都为“1”,即校验和等于FF
19、H。二、RAM的检测常用的方法是“异或法”,即把RAM单元的内容求反并与原码进行“异或”运算,如果结果为FFH,则表明该RAM单元读写功能正常,否则,说明该单元有故障。最后再恢复原单元内容。RAM的自检流程如图651所示。 图651 RAM的自检流程三、总线的自检总线的自检是指对经过缓冲器的总线进行检测。设置两组锁存触发器,分别用于记忆地址总线和数据总线上的信息。这样,只要执行一条对存储器或I/O设备的写操作指令,地址线和数据线上的信息便能分别锁存到这两组8D触发器(地址锁存触发器和数据锁存触发器)中,我们通过对这两组锁存触发器分别进行读操作,便可判知总线是否存在故障,实现原理见图6-5-2所
20、示。总线自检程序应该对每一根总线分别进行检测。具体作法是使被检测的每根总线依次为1态,其余总线为0态。如果某总线停留在0态或1态,说明有故障存在。四、显示器与键盘的检测1、 显示器、键盘等I/O设备的检测先进行一系列预定的I/O操作,然后操作者对这些I/O操作的结果进行验收,如果结果与预先的设定一致,就认为功能正常,否则,应对有关I/O通道进行检修。2、键盘的检测CPU每取得一个按键闭合的信号,就反馈一个信息。如果按下某单个按键无反馈信息,往往是该键接触不良,如果按某一排键均无反馈信号,则一定与对应的电路或扫描信号有关。2、 显示器的检测一般有两种方式,一种是让各显示器全部发亮,即显示出888,当显示表明显示器各发光段均能正常发光时,操作人员只要按任意键,显示器应全部熄灭片刻,然后脱离自检方式进入其他操作。第二种方式是让显示器显示某些特征字,几秒钟后自动进入其他操作。6.5.3自检软件各自检项目一般应该分别编成子程序,以便需要时调用。设各段子程序的入口地址为TSTi(i=0,1,2),序号(即故障代号)为TNUM(0,1,2)。编程时,由序号通过表6-5-2所示的测试指针表(TSTPT)来寻找某一项自检子程序入口,若检测有故障发生,便显示其故障代号TNUM。 图6-5-3含自检的操作流程图 图6-5-4周期性自检子程序的操作流程
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1