1、范立南 李雪飞 编著机械工业出版社计算机控制技术第8章 计算机控制系统的设计与实现第8章 计算机控制系统的设计与实现8.1 系统设计的基本要求和特点8.2 计算机控制系统的设计方法及步骤8.3 仪器用温箱温度控制系统8.4 产品自动装箱控制系统8.5 自动剪切机控制系统8.1 系统设计的基本要求和特点系统设计的基本要求和特点8.1.1 系统设计的基本要求系统设计的基本要求计算机控制系统设计的基本要求主要包括五个部分。1安全可靠为了保证安全可靠,通常采用如下做法:第一,选用高性能的工业控制计算机,保证在恶劣的工业环境下,系统仍能正常运行。第二,设计可靠的控制方案,并具有各种安全保护措施,比如设计
2、报警、事故预测、事故处理、不间断电源等。第三,附加后备装置。对于一般的控制回路,选用手动操作作为后备;对于重要的控制回路,选用常规控制仪表作为后备。这样,一旦计算机出现故障,就把后备装置切换到控制回路中,以维持生产过程的正常运行。8.1 系统设计的基本要求和特点系统设计的基本要求和特点 第四,对于承担网络控制、信息处理、管理的计算机,应采用双机备用系统,其工作方式有四种,即:备份工作方式、主从工作方式、双工工作方式和分级分布式控制方式。8.1 系统设计的基本要求和特点系统设计的基本要求和特点2操作维护方便 操作方便体现在控制设备投入运行后,应当使系统便于掌握、操作简便,显示画面直观形象。既要体
3、现操作的先进性,又要兼顾原有的操作习惯。在硬件配置方面系统的控制开关不能太多,操作顺序要简单;软件方面,应尽可能采用汇编语言,并配有高级语言,以便于用户掌握。维护方便体现在易于查找故障,易于排除故障。硬件方面,应尽可能采用标准的功能模块化产品,便于更换故障模板。软件方面,应配置诊断程序,一旦故障发生,通过程序来查找故障发生的部位,从而缩短排除故障的时间。8.1 系统设计的基本要求和特点系统设计的基本要求和特点3实时性强 所谓实时性,就是计算机系统对内部和外部时间能够及时地响应,并作出相应的处理,不丢失信息,不延误操作。计算机处理的事件一般分为两类,即:定时事件和随机事件。对于数据的定时采集、运
4、算控制等定时事件,可以设置系统时钟,保证定时处理。对于各种故障等随机事件,可以设置中断,并根据故障的轻重缓急,预先分配中断级别,一旦出现故障,保证优先处理紧急故障。8.1 系统设计的基本要求和特点系统设计的基本要求和特点4通用性好、便于扩充在系统设计时,要考虑以下三点:第一,硬件设计应标准化,采用标准总线结构并配置各种通用的功能模板,以便于进行功能扩充时,只需要增加功能模板即可。第二,软件设计时采用标准模块结构,用户使用时不需要二次开发,只需按照要求选择各种功能模块即可。第三,在系统设计时,各个设计指标留有一定的余量,便于扩充。8.1 系统设计的基本要求和特点系统设计的基本要求和特点5经济效益
5、高 计算机控制系统在满足系统基本要求的前提下,还应该带来高的经济效益,要有市场竞争意识。所以在系统设计中要考虑以下三个方面:一是提高系统的性能价格比;二是尽可能缩短设计周期;三是降低投入产出比。8.1 系统设计的基本要求和特点系统设计的基本要求和特点8.1.2 系统设计的特点系统设计的特点1过程参量多、控制任务重2处理的信息量大3网络化4控制算法复杂8.2 计算机控制系统的设计方法及步骤计算机控制系统的设计方法及步骤计算机控制系统的设计一般包括下列几个步骤:控制系统总体方案的确定;计算机及接口的选择;控制算法的选择;控制系统的硬件设计;控制系统的软件设计;计算机控制系统的调试。8.2 计算机控
6、制系统的设计方法及步骤计算机控制系统的设计方法及步骤8.2.1 控制系统总体方案的确定控制系统总体方案的确定1选择控制系统的结构和类型2选择检测元件3选择执行机构4选择输入/输出通道及外围设备5可靠性设计6分配硬件和软件的功能8.2 计算机控制系统的设计方法及步骤计算机控制系统的设计方法及步骤8.2.2 计算机及接口的选择计算机及接口的选择 选择合适的计算机是计算机控制系统设计的关键。在具体选择计算机时,可以选择成品的计算机系统,也可以自主开发设计。成品计算机系统具有多种装置的主机系统板,配备各种接口板,如多通道模拟量输入输出板,开关量输入输出板,CRT图形显示板,扩展用RS-232C,RS-
7、422和RS-485总线接口板,EPROM智能编程板等。具有很强的硬件功能和灵活的IO扩展能力,和较强的开发能力。不仅可使用汇编语言,而且可使用高级语言,在工业PC中,还配有专用的组合软件。8.2 计算机控制系统的设计方法及步骤计算机控制系统的设计方法及步骤 自主开发设计时应考虑到所选择的微处理器的字长、运行速度、存储容量、中断处理能力,以及是否需要内部A/D转换器、内部存储器,需要多少个I/O口和UART口等。8.2 计算机控制系统的设计方法及步骤计算机控制系统的设计方法及步骤8.2.3 控制算法的选择控制算法的选择 在系统设计时,首先要建立被控对象的数学模型,并根据被控对象的数学模型确定系
8、统的控制算法。1直接数字控制 当被控对象的数学模型能够确定时,可采用直接数字控制,如最少拍随动系统,最少拍无波纹系统,以及大林算法等;2数字PID控制 很难求出其数学模型的系统最好选用数字PID控制。除了位置型和增量型两种普通PID算法外,还可以采用改进型PID控制算法,以满足各种不同控制系统的要求。8.2 计算机控制系统的设计方法及步骤计算机控制系统的设计方法及步骤3模糊控制 它是一种非常灵活的控制方法,只要根据实验数据找出Fuzzy控制规律,便能达到所要求的控制效果。由于计算机控制系统种类很多,所以控制算法也各不相同,每个计算机控制系统都有一个特定的控制规律,并且有相应的控制算法。8.2
9、计算机控制系统的设计方法及步骤计算机控制系统的设计方法及步骤8.2.4 控制系统的硬件设计控制系统的硬件设计1存储器的扩展 在扩展时,要注意单片机的种类(片内是否含有程序存储器),另外,要把程序存储器和数据存储器分别安排。扩展接口有两种方案:一种是购置成品的接口板,如A/D转换接口板、D/A转换接口板、开关量I/O接口板等;另一种是根据系统设计的需要,选择合适的芯片自行设计,这主要包括以下几个方面的内容。8.2 计算机控制系统的设计方法及步骤计算机控制系统的设计方法及步骤在目前计算机系统中广泛采用的接口器件有:可编程通用并行接口:如8255A、8155等。可编程串行接口:如8251等。显示键盘
10、接口:如8279等。定时器接口:如8253等。多功能输入输出接口:如TMS5501,其中有一个8位并行输入接口,一个8位并行输出接口,一个串行接口和五个定时器电路。通信接口电路:可以是RS-232C,RS-422和RS-485或者现场总线通信接口。2接口电路的设计8.2 计算机控制系统的设计方法及步骤计算机控制系统的设计方法及步骤3输入/输出通道的选择 一个计算机控制系统,除了主机外,还必须具有各种输入、输出通道模板,其中包括模拟量输入(AI)模板、模拟量输出(AO)模板、数字量输入(DI)模板和数字量输出(DO)模板。以上模板可以选择市场已有的产品,比如MS-1209(32路A/D,6路D/
11、A,12位),MS-1210(8路D/A,12位)等。也可以自行设计。8.2 计算机控制系统的设计方法及步骤计算机控制系统的设计方法及步骤4操作面板的设计它的主要功能有:输送源程序到存储器,或者通过面板操作来监视程序执行情况;打印、显示中间结果或最终结果;根据工艺要求,修改一些检测点和控制点的参数及给定值;设置报警状态,选择工作方式以及控制回路等;完成系统控制的各种状态切换;完成手动自动无扰动切换;完成各种画面显示。8.2 计算机控制系统的设计方法及步骤计算机控制系统的设计方法及步骤8.2.5 控制系统的软件设计控制系统的软件设计 软件主要分为两大类,即系统软件和应用软件。而根据其功能,应用软
12、件又分为两类,即执行软件和监控软件。执行软件能完成各种实质性的功能,如测量、计算、显示、打印、输出控制等;监控软件是专门用来协调各执行模块和操作者的关系,在系统软件中充当组织调度角色。8.2 计算机控制系统的设计方法及步骤计算机控制系统的设计方法及步骤优秀的软件都应具有以下特征:1实时性2针对性3灵活性和通用性4可靠性8.2 计算机控制系统的设计方法及步骤计算机控制系统的设计方法及步骤8.2.6 计算机控制系统的调试计算机控制系统的调试 计算机控制系统的调试通常分为离线仿真调试和在线调试运行两个阶段。离线仿真调试一般在实验室进行,并尽可能地模仿实际操作时可能出现的各种情况,因为有些特殊情况是在
13、线无法调试的。离线仿真调试分为硬件调试和软件调试。8.2 计算机控制系统的设计方法及步骤计算机控制系统的设计方法及步骤 在线调试运行要制定调试计划、实施方案、安全保障措施、分工协作细则等;遵循从小到大、从易到难、从手动到自动、从简单回路到复杂回路、先开环后闭环、循序渐进的原则;合理安排设备装置的安装位置及各种连接线路的走向;尽最大可能地采取各种抗干扰和安全防护措施;冷静分析现场运行过程可能出现的各种奇异现象,从现象入手寻找出现问题的根源,稳妥地实现控制系统的投入运行。8.3 仪器用温箱温度控制系统仪器用温箱温度控制系统 该系统的被控对象为仪器用温箱,被测参数为温箱的温度,测温范围为0300,误
14、差不超过0.1。仪器用温箱中的被测气体通过温箱的管状加热交换器加热后,送入仪器中进行测量。为了保证测量条件,温箱或按照预定的升温速率升温,或保持恒定的温度不变。温箱是用电热丝来加热的。8.3 仪器用温箱温度控制系统仪器用温箱温度控制系统8.3.1 温度控制系统的组成温度控制系统的组成仪器用温箱温度控制系统原理图如图8-1所示。图8-1 仪器用温箱温度控制系统原理图8.3 仪器用温箱温度控制系统仪器用温箱温度控制系统 被测参数温度值由测温元件测量后得到0.51V信号,经放大后转换成510V的电压信号,经电压频率变换器LM331变换成频率信号,再经可编程定时器/计数器8253转换成数字信号送入单片
15、机。在CPU中进行数据处理后,一方面送去显示,一方面与键盘输入的设定值进行比较,若低于设定值,则进行PID调节后,输出控制信号,驱动电加热丝加热。达到温度控制的目的。8.3 仪器用温箱温度控制系统仪器用温箱温度控制系统8.3.2 温度控制系统的硬件设计温度控制系统的硬件设计1温度检测和模拟量输入通道(1)温度检测和放大电路 由于本系统的控制精度要求在0300范围内,误差不超过0.1的高精度,选用了精度高、性能稳定可靠的测温元件铂电阻。其测量及放大电路如图8-2所示。8.3 仪器用温箱温度控制系统仪器用温箱温度控制系统图8-2 铂电阻测温、放大及V/F转换电路图8.3 仪器用温箱温度控制系统仪器
16、用温箱温度控制系统 在图8-2中,Rt为测温铂电阻,跨接在运算放大器OP07的反馈回路上,使得铂电阻的阻值变化转换成运算放大器的输出电压变化。VREF为一个精密稳压源。输入端的电阻为温度系数很小的精密电阻。在所测的温度范围内,此级运算放大器的电压变化范围为0.5V1V。此电压送到下一级运放LM358放大后得到5V10V的电压信号。经检测和放大的模拟信号送A/D转换器。8.3 仪器用温箱温度控制系统仪器用温箱温度控制系统(2)用V/F转换器LM331实现A/D转换器 LM331是一种廉价、精密的电压频率转换专用集成电路。它的主要特点是:V/F变化特性为10Hz/mV,其非线性误差小(0.01),
17、电源适应能力强,可使用单5V电源。V/F的转换范围宽(1Hz100kHz),温度稳定性好,输出负载能力强,能同时兼容CMOS和TTL逻辑电平。用V/F转换器实现A/D转换器,需要与频率计数器配合使用,由LM331实现A/D转换器的框图如图8-3所示。8.3 仪器用温箱温度控制系统仪器用温箱温度控制系统图8-3 由LM331实现A/D转换器的框图8.3 仪器用温箱温度控制系统仪器用温箱温度控制系统 图中,模拟信号经压/频转换器LM331,把电压信号转化为脉冲信号,脉冲信号送到计算机的计数器/定时器的端口。同时启动频率计数器和定时器,频率计数器用V/F转换器输出的频率信号作为计数脉冲,定时器采用基
18、准频率作为定时脉冲,当定时结束时,定时器产生输出信号使频率计数器停止计数,这样计数器的计数值与频率之间的关系是TDf (8-1)而ssfDT (8-2)因此,ssfDDf (8-3)式中,D计数值;T计数时间;Ds定时计数器计数初值;fs基准频率;fLM331的输出频率。8.3 仪器用温箱温度控制系统仪器用温箱温度控制系统 在本系统中用LM331实现A/D转换器的电路如图8-2和8-4所示。在图8-2中,模拟信号经积分电路积分处理后,在INPUT端(7引脚)变成与输入电压成正比的稳定电流输入,通过LM331芯片进行V/F转换后,变成与电压成正比的频率信号,FOUT端(3引脚)输出的频率信号送到
19、计算机的计数/定时端口,计算机对频率信号进行采集、处理、存储。从而实现模拟信号到数字信号的转换。8.3 仪器用温箱温度控制系统仪器用温箱温度控制系统图8-4频率信号转换成数字信号的电路图8.3 仪器用温箱温度控制系统仪器用温箱温度控制系统 在图8-4中,8253是可编程间隔定时器/计数器芯片,用来将LM331的输出频率信号转换成数字信号,并送至单片机。A/D转换器框图中的定时器和频率计数器由8253和D触发器共同完成,它们的作用有:定时器定时1s时间间隔。选用8253芯片的计数器2和计数器1串联得到。它的计数脉冲由80C51的晶振频率经分频后送入。分频器的输出连接至8253的CLK2端。计数器
20、由8253芯片的计数器0来实现,即LM331的V/F输出脉冲端连接至8253芯片的CLK0端。8.3 仪器用温箱温度控制系统仪器用温箱温度控制系统 为保证1s的精确定时,采用了由软件发出选通,硬件关闭的办法。3个计数器的门控位均连在一起,以保证准确地同步。测量时,先由80C51发出一条输出指令,地址译码器74LS139译码,使2 有效,将74LS74的Q2端置为高电平,为向 申请中断作准备,然后80C51再发出一条输出指令,地址译码器74LS139译码,使2 有效,将74LS74的Q1端置为高电平,开始定时,同时对V/F输出脉冲计数。当定时时间到,8253的OUT1有效。此信号作为两个D触发器
21、的CP信号。其中一个D触发器的输出令GATE信号变低,停止计数。另一个D触发器的输出连接至80C51的 端,表示测量完成,向80C51申请中断。2Y0INT1Y0INT8.3 仪器用温箱温度控制系统仪器用温箱温度控制系统2键盘与显示电路 键盘用以设定给定温度。显示器用来显示当前温箱的温度值。其具体连接情况如图8-5所示。图8-5 键盘与显示电路8.3 仪器用温箱温度控制系统仪器用温箱温度控制系统 图8-5中,LED采用共阴极方式,动态扫描方式。键盘采用中断的工作方式,采用定时器T0作为外部中断源。设置T0工作在方式2(自动恢复常数)外部计数方式,定时器TH0、TL0初值均为0FFH。3可控硅(
22、SCR)过零触发电路与输出控制 该系统采用数字实现SCR过零控制,它主要解决以下两个问题:要能实现工频电压的正负过零检测,并在过零时产生脉冲信号。过零脉冲信号必须受单片机输出控制信息控制,从而控制SCR过零触发脉冲的个数。8.3 仪器用温箱温度控制系统仪器用温箱温度控制系统 数字实现SCR的过零控制示意图如图8-6所示。由图可见,过零脉冲控制电平信号的宽度与单片机输出控制信号成正比关系。图8-6 数字实现SCR过零控制信号关系示意图8.3 仪器用温箱温度控制系统仪器用温箱温度控制系统数字实现SCR过零控制的硬件电路如图8-7所示。图8-7 数字实现SCR过零控制硬件接口电路图8.3 仪器用温箱
23、温度控制系统仪器用温箱温度控制系统 它由缓冲放大器U1,电压比较器U2A、U2B、U2C,单稳态电路与门控电路所组成。其工作原理叙述如下:将幅值为40V的工频电压Usr施加到缓冲放大器U1的输入端。经缓冲后,将其负半周电压削波(这是为了与电压比较器相匹配所必需的),送至电压比较器U2A、U2B、U2C。U2A是电压比较器组成的一个施密特触发器,通过U2A的工频正弦信号被整形成矩形波V2。V2再去触发后一级的单稳态电路,形成一个频率为50Hz、脉宽约为7s的负脉冲信号。这个信号连至80C51单片机的 端,作为工频电压过零的同步信号。这就意味着,只要中断请求 信号有效,即工频电压过零时刻到来。1I
24、NT1INT8.3 仪器用温箱温度控制系统仪器用温箱温度控制系统 U2B、U2C组成工频电压的正负过零检测电路。U2B、U2C输出经微分电路复合后去驱动后一级的单稳态电路。单稳态电路输出一个频率为100Hz、脉宽约为400s的正脉冲序列。然后通过门控电路U3去实现SCR的过零触发。80C51单片机设定P1.0位为输出控制电平信号,加至门控电路U3,用以控制SCR过零触发的触发脉冲数。8.3 仪器用温箱温度控制系统仪器用温箱温度控制系统图8-7中各有关参考点的信号波形如图8-8所示。图8-8 各参考点的信号波形 8.3 仪器用温箱温度控制系统仪器用温箱温度控制系统8.3.3 数字控制器的数学模型
25、数字控制器的数学模型1温箱的数学模型和控制算法的选择 根据实际测量,温箱是一个近似一阶惯性环节,以加热功率为输入,箱内温度为输出,其传递函数可表示为 100sTKsG (8-4)式(8-4)中T01000s,K010,由于采样周期远远小于系统时间常数,所以可以应用模拟系统数字PID控制算法进行实时控制。8.3 仪器用温箱温度控制系统仪器用温箱温度控制系统2PID算法程序PID算法采用增量式计算,位置式输出。211112/kkkdikkpkkkkeeTeTTTeeKuuuu(8-5)kkyRe 式(8-5)中,R为温度给定值;为第k次采样值;ek为第k次误差值;T为采样周期;Kp为比例系数;Ti
26、为积分时间;Td为微分时间。ky8.3 仪器用温箱温度控制系统仪器用温箱温度控制系统8.3.4 温度控制系统软件设计温度控制系统软件设计1数据采集程序(1)采样周期定时 根据温度的采样周期经验公式,选用采样周期为15s。采样周期定时由50Hz工频过零脉冲申请中断次数累计得到。此功能由外部中断1的中断服务程序来实现。(2)启动A/D转换 在外部中断1的中断服务程序中,若判断采样周期到时,发启动A/D转换信号,软件选通8253的触发信号,使8253的计数器工作。(3)数据采集 当8253定时1s到时,即A/D转换结束。此时由中断设备通知80C51。在外部中断0的中断服务程序中对被测的温度数据进行采
27、集。8.3 仪器用温箱温度控制系统仪器用温箱温度控制系统外部中断0的中断服务程序流程图如图8-9所示。图8-9 外部中断0的中断服务程序流程图8.3 仪器用温箱温度控制系统仪器用温箱温度控制系统程序清单如下:ORG9000HPUSHACC;保护现场PUSHPSWPUSHDPHPUSHDPLMOVDPTR,#2000H;读入数据MOVX A,DPTR;先读低8位数据CPLAMOV33H,AMOVX A,DPTR;再读入高8位数据CPLAMOV32H,A8.3 仪器用温箱温度控制系统仪器用温箱温度控制系统CLRCLCALL SUBA;求偏差JB77H,INTA1MOVA,2EHORLA,2FHJZ
28、INTA1;偏差0,转INTA1LCALL PID;否则,转PID控制算法LCALL COVR;将控制量转换成NSJMPINTA2INTA:SETBPSW.3;选择内部寄存器组1MOVR2,#00H;置N=0,N放在R2、R3内部寄存器中MOVR3,#00HCLRPSW.38.3 仪器用温箱温度控制系统仪器用温箱温度控制系统INTA2:POPDPL;恢复现场POPDPHPOPPSWPOPACCRETISUBAEQU9800HPIDEQU9910HCOVR EQU9A20H8.3 仪器用温箱温度控制系统仪器用温箱温度控制系统2输出控制程序 输出控制程序主要完成两个任务:(1)识别工频的过零时刻,
29、并在过零时刻开启和关闭控制门,以保证SCR主回路产生整数个正弦全波。(2)保证门控电路的打开时间正比于单片机输出控制量。要完成上述任务,首先将单片机输出控制量在主程序中换算成SCR回路中整数正弦全波个数N。由于信号反映工频电压过零时刻,因此只要在外部中断1的中断服务程序中执行下述功能,主程序可以按照运算结果控制量的要求,实现SCR的过零控制。8.3 仪器用温箱温度控制系统仪器用温箱温度控制系统 外部中断1的中断服务程序具体实现的功能是:中断时,完成控制门的开启和关闭,即单片机P1.0位置“1”或“0”。利用中断服务次数,对控制量N进行计数和判断,即每中断一次,对N进行减1计数。如果N0,保持控
30、制电平P1.0为“1”,继续打开控制门。如果N=0,则使控制电平P1.0复位为“0”,使SCR过零触发脉冲不再通过,从而达到按控制量控制的效果。8.3 仪器用温箱温度控制系统仪器用温箱温度控制系统 由于本系统的控制方式是一种“调功”方式。对于工频交流电(f=50Hz),电热丝在全导通时的功率为PH,则实际输出功率P将和实际导通次数N成正比(设控制周期为1s),即HPNp50(8-6)将uk变换为N的运算在主程序中运行。外部中断1的中断服务程序流程图如图8-10所示。8.3 仪器用温箱温度控制系统仪器用温箱温度控制系统图8-10 外部中断1的中断服务程序流程图8.3 仪器用温箱温度控制系统仪器用
31、温箱温度控制系统外部中断1的中断服务程序清单如下:ORG0050HPUSHACC;保护现场PUSHPSWPUSHDPHPUSH DPLSETBPSW.3MOVA,R2ORLA,R3JNZINTB1;判断N=0?CLRP1.0;N=0,转INTB2,P1.0清0SJMPINTB28.3 仪器用温箱温度控制系统仪器用温箱温度控制系统INTB1:SETB P1.0;N0,置P1.0为1DECR3MOVA,R2SUBBA,#00HMOVR2,A;N-1NINTB2:DECR5MOVA,R4SUBBA,#00HMOVR4,AORLA,R5;采样周期数减1JZINTB3SJMPINTB48.3 仪器用温箱
32、温度控制系统仪器用温箱温度控制系统INTB3:MOVR5,#0EEH;采样周期数为0,恢复采样周期计数单元初值MOVR4,#02HMOVDPTR,#4001HMOVX DPTR,A;启动A/DINTB4:CLRPSW.3POPDPL;恢复现场POPDPHPOPPSWPOPACCRETI:中断返回8.3 仪器用温箱温度控制系统仪器用温箱温度控制系统3主程序(1)系统初始化 包括清数据存储区、建栈、定时器T0初始化、8253初始化(送控制字和计数初值)、确定中断优先权、开中断等。(2)中断等待 完成了系统初始化任务后,主程序执行中断等待程序。等待工频过零同步中断与A/D转换结束中断。为了保证正弦波
33、的完整,工频过零同步中断被确定为高一级的中断源。主程序的程序流程图如图8-11所示。8.3 仪器用温箱温度控制系统仪器用温箱温度控制系统图8-11 主程序的程序流程图8.3 仪器用温箱温度控制系统仪器用温箱温度控制系统主程序的程序清单如下:ORG0000HSTART:MOV R1,#10HMOVR0,#30HMOVA,#00H;清数据区ATAT1:MOVR0,AINCR0DJNZR1,ATAT1SETBPSW.3MOVR4,#02H;赋采样周期值MOVR5,#0EEHCLRPSW.3MOVSP,#60H;建栈MOV TMOD,#06H;置单片机定时器T0为工作方式2MOVTL0,#0FFH;置
34、计数器初值8.3 仪器用温箱温度控制系统仪器用温箱温度控制系统MOVTH0,#0FFHMOVDPTR,#2003H;写控制字MOVA,#34H;选计数器0为方式2MOVX DPTR,A;读写方式为先低后高,二进制计数MOVA,#64H;选计数器1为方式2MOVX DPTR,A;只读/写低位字节MOVA,#0B4H;选计数器2为方式2MOVX DPTR,A;读写方式为先低后高,二进制计数MOVDPTR,#2000H;指向计数器0的口地址MOVA,#0FFH;送计数器0初值的MOVX DPTR,A;低8位MOVX DPTR,A;高8位MOVDPTR,#2001H;指向计数器1的口地址MOVA,#1
35、6H;送计数器1初值的8.3 仪器用温箱温度控制系统仪器用温箱温度控制系统MOVX DPTR,A;低8位MOVDPTR,#2002H;指向计数器2的口地址MOVA,#60H;送计数器2初值的MOVX DPTR,A;低8位MOVA,#0E3H;送计数器2初值的MOVX DPTR,A;高8位SETBIT0;外部中断0为边沿触发方式SETBIT1;外部中断1为边沿触发方式SETBTR0;启动定时器T0MOVIP,#06H;送中断优先权控制字MOVIE,#87H;送中断控制字MAIN:;主程序 8.4 产品自动装箱控制系统产品自动装箱控制系统8.4.1 产品自动装箱控制系统的原理及操作流程产品自动装箱
36、控制系统的原理及操作流程1产品自动装箱系统的原理产品自动装箱系统的原理,如图8-12所示。图8-12 产品自动装箱系统的原理图8.4 产品自动装箱控制系统产品自动装箱控制系统 该系统有两个传送带,即包装箱传送带1和产品传送带2。包装箱传送带1用来传送产品包装箱,其功能是把己经装满的包装箱运走,并用一只空箱来代替。为使空箱恰好对准产品传送带的末端,使传来的产品刚好落入箱中,在包装箱传送带1的中间装一光电检测器1,当包装箱到位时,光电检测器1发出一个脉冲。产品传送带2将产品从生产车间传送到包装箱。当某一产品被送到传送带的末端,会自动落入箱内,同时检测器2输出一个计数脉冲。8.4 产品自动装箱控制系
37、统产品自动装箱控制系统2产品自动装箱控制系统的操作流程系统操作流程如下:用键盘设置每个包装箱的满箱零件数量以及每批产品的箱数,并分别存放在PRODUCTS和BOXES单元中。接通电源,使传送带1的驱动电机运转,带动包装箱前行。通过检测光电传感器1的状态,判断传送带l上的包装箱是否到位。若光电传感器1的状态为0,说明包装箱没到位,否则说明到位。若包装箱运行到位,则关断电机电源,使传送带1停止运动,等待产品装箱。启动传送带2的驱动电机,使产品沿传送带向前运动,并装入箱内。8.4 产品自动装箱控制系统产品自动装箱控制系统 当产品一个一个地落下时,检测器2将产生一系列脉冲信号,由计算机进行计数,并不断
38、地与存放在PRODUCTS单元中的给定值进行比较。当零件数值未达到给定值时,控制传送带2继续运动(装入产品),直到零件个数与给定值相等时,停止传送带2,不再装入零件。再次启动传送带1,使装满产品的箱体继续向前运动,并把存放箱子数的内存单元加1,然后再与给定的产品箱数进行比较。如果箱数不够,则带动下一个空箱到达指定位置,继续上述过程。直到产品箱数与给定值相等,停止装箱过程,等待新的操作命令。8.4 产品自动装箱控制系统产品自动装箱控制系统8.4.2 产品自动装箱控制系统的硬件设计产品自动装箱控制系统的硬件设计产品自动装箱控制系统的原理图如图8-13所示。8.4 产品自动装箱控制系统产品自动装箱控
39、制系统1键盘及显示电路 为了使系统简单,设计了一个由二极管矩阵组成的编码键盘,用以输入包装箱满箱产品数量及每批产品的箱数,如图8-14所示。显示电路部分采用PB口和PC口的高4位分别作为段选线和位选线,采用动态显示。当任何一个键按下时,四输入与非门74LS20产生一个高电平选通信号KEYSTROBE,此信号经反相器后向80C51申请中断。8.4 产品自动装箱控制系统产品自动装箱控制系统图8-14 编码键盘原理图8.4 产品自动装箱控制系统产品自动装箱控制系统2电机控制电路 包装系统控制电路主要有两部分:一是信号检测,光电检测器1判断包装箱是否到位,光电检测器2用于装箱产品计数;二是传送带电机控
40、制。本系统采用固态继电器驱动电机,其控制电路原理如图8-15所示。由于其内部采用了光电隔离技术,因此其具有很高的抗干扰能力。8.4 产品自动装箱控制系统产品自动装箱控制系统图8-15 电机控制电路8.4 产品自动装箱控制系统产品自动装箱控制系统 在图8-15中,8255A的PC0控制传送带1的驱动电机,PC1控制传送带2的驱动电机。当按下启动键(START)后,使PC0输出高电平,经反相后变为低电平,固态继电器(SSRl)发光二极管亮,因而使得SSRl导通,交流电机通电,使传送带1带动包装箱一起运动。当包装箱行至光源与光电检测器1之间时,光被挡住,使光电传感器输出为高电平。8.4 产品自动装箱
41、控制系统产品自动装箱控制系统 当单片机检测到此高电平后,PC0输出低电平,传送带1电机停止。并同时使传送带2电机通电(PC1输出高电平),带动产品运动,使产品落入包装箱内。当产品经过检测器2的光源与光电传感器之间时,光电传感器输出高电平。当单片机检测到此信号后在计数器中加1,并送显示。然后再与给定的产品的数量值进行比较。如果计数值小于给定值,则继续计数;一旦计数值等于给定值,则停止计数:此时关断传送带2的电源,并接通传送带1的电源,让装满产品的箱子移开,同时带动下一个空箱到位,并重复上述过程。8.4 产品自动装箱控制系统产品自动装箱控制系统8.4.3 产品自动装箱控制系统产品自动装箱控制系统
42、的软件设计的软件设计产品自动装箱控制系统 主程序流程图如图8-16所示。8.4 产品自动装箱控制系统产品自动装箱控制系统 在输入给定值中断服务程序中,读入该键盘给定值,一方面存入相应的给定单元(PRODUCTS或BOXES),另一方面送去显示,以便操作者检查输入的给定值是否正确。本程序输入的顺序是先输入包装箱数(4位,最大值为9999,按千位、百位、十位、个位顺序输入),然后再输入每箱装的产品数(4位,最大值为9999,输入顺序同包装箱)。完成上述任务的中断服务程序流程如图8-17所示。8.4 产品自动装箱控制系统产品自动装箱控制系统图8-17 输入给定值中断服务程序8.4 产品自动装箱控制系
43、统产品自动装箱控制系统在编制程序时设置的有关内存单元如图8-18所示。8.4 产品自动装箱控制系统产品自动装箱控制系统 其中20H单元的00H03H位分别代表电机1、电机2、报警和正常运行标志单元;21H单元的08H和09H两位作为产品及包装箱计数标志单元。若08H单元的计数值等于给定值时,则此位标志单元置1,停止计数,并把装满的包装箱运走且重新运来一个空箱;否则该单元置0。若09H单元的计数值等于给定值时,则此位标志单元置1,说明包装箱数已够,可以重新开始下一轮包装生产控制过程。若如果计数单元的值超过给定值,将产生报警,告知操作人员计数有误,此时系统会自动停下来,等待操作人员处理。8.4 产
44、品自动装箱控制系统产品自动装箱控制系统部分程序清单如下:ORG0000HAJMPMAINORG0003HAJMPINT0LED1EQU22HLED2EQU23HLED4EQU24HLED5EUQ25HBOX1EQU26HBOX2EQU27HBOX3EQU28HBOX4EQU29HPRICNTEQU32HBUFFEQU33H8.4 产品自动装箱控制系统产品自动装箱控制系统LEDADD1EQU8000H;千位数显示地址LEDADD2EQU8400H;百位数显示地址LEDADD3EQU8800H;十位数显示地址LEDADD4EQU8C00H;个位数显示地址;控制主程序MAIN:MOVSP,#50HC
45、LRPSW.4SETBPSW.3;选择寄存器组1MOVR0,#22HMOVA,#00HMOVR1,#12H8.4 产品自动装箱控制系统产品自动装箱控制系统CLRZERO:MOVR0,A;清计数、给定值单元INCR0DJNZR1,CLRZEROMOV20H,#00H;清控制单元MOV21H,#00HMOVDPTR,#7FFFH;8255A初始化MOVA,#90HMOVX DPTR,ASETBIT0;设置边沿触发方式SETBEX0;设置中断方式0SETBEA;开中断MOVR0,#2AHMOVDPTR,#LEDADD1;保护显示位地址8.4 产品自动装箱控制系统产品自动装箱控制系统WAIT:MOVA
46、,PRECNT;等待设置给定参数CJNEA,#08H,WAIT;判断是否输入完给定值WOKS:SETB00H;设置启动传送带电机1位SETB03H;设置工作正常指示灯位MOVA,20H;启动电机1和正常指示灯MOVDPTR,#7FFEHMOVX DPTR,AMOVDPTR,#7FFCHLOOP1:MOVX A,DPTRJNBACC.7,LOOP1;判断包装箱是否到位MOVLED1,#00H;清产品件数计数单元MOVLED2,#00HMOVLED3,#00HMOVLED4,#00H8.4 产品自动装箱控制系统产品自动装箱控制系统LCALL DISPLAY;显示产品件数CLR00H;停包装箱传送带
47、电机位SETB01H;设置启动产品传送电机位MOVA,20H;启动产品传送电机MOVDPTR,#7FFEHMOVX DPTR,ALOOP2:MOVDPTR,#7FFCHMOVX A,DPTRJNBACC.6,LOOP2;判断是否有产品JNBACC.4,STOP;判断是否按下停止键LCALL PARTADD1;产品件数加1LCALL DISPLAY;显示已经装入的产品件数LCALL PARTCOMP;与给定值比较JB08H,STOPM;已经装满AJMPLOOP2;未装满,继续等待装入8.4 产品自动装箱控制系统产品自动装箱控制系统STOPM:LCALL BOXADD1;包装箱数加1LCALL B
48、OXCOMP;看是否已经装够箱数JB09H,FINISH;如果箱数已经装够,则结束LJMPWORK;否则,继续换新箱包装FINISH:CLR00H;全部装完,不用重新设置参 数,则可继续包装CLR01HMOVA,20HMOVDPTR,#7FFEHMOVX DPTR,AMOVBOX1,#00HMOVBOX2,#00HMOVBOX3,#00HMOVBOX4,#00H 8.4 产品自动装箱控制系统产品自动装箱控制系统LOOP3:MOVDPTR,#7FFCHMOVX A,DPTRJBACC.5,LOOP3LJMPWORK;再进行下一轮包装;停止键处理子程序STOP:CLR00H;停止传送带电机CLR0
49、1HMOVA,20HMOVDPTR,#7FFEHMOVX DPTR,ALJMPMAIN;转到主程序,等待重新输入新的给 定值8.4 产品自动装箱控制系统产品自动装箱控制系统;设置给定值中断服务子程序INT0:MOVDPTR,#7FFCH;读入给定值MOVX A,DPTRMOVR0,AMOVDPTR,#7FFDH;送8255A的PB口MOVX DPTR,APOPDPL;取出显示位地址POPDPHMOVX DPTR,AMOVA,DPHADDA,#04H;求出下一个显示位地址MOVDPH,APUSHDPH ;保护下一位显示地址PUSHDPLINCR0;计算下一个给定值地址INCPRECNT;设置参数
50、计数RETI8.4 产品自动装箱控制系统产品自动装箱控制系统;产品件数加1子程序PARTADD1:MOVR0,#LED4MOVA,R0ADDA,#01HDA AJB2CH,PARTADD2RETPARTADD2:CLR2CHDECR0MOVA,R0ADDA,#01HDA AJB24H,PARTADD3RET8.4 产品自动装箱控制系统产品自动装箱控制系统PARTADD3:CLR24HDECR0MOVA,R0ADDA,#01HDAAJB1CH,PARTADD4RETPARTADD4:CLR1CHDECR0MOVA,R0ADDA,#01HDAAJB14H,PARTADD5RETPARTADD5:C