澳门新濠新天地3559_www.3559.com新濠新天地网址

您的位置:新天地3559 > 电工电气 > 子程序是微机基本程序结构中的1种,主程序可以

子程序是微机基本程序结构中的1种,主程序可以

2019-09-03 11:16

下面介绍几种常见的plc的程序结构及其特点: 1.某些国外的小型PLC的程序结构 这些PLC的用户程序由主程序、子程序和中断程序组成。在每一个扫描循环周期,CPU都要调用一次主程序。主程序可以调用子程序,小型控制系统可以只有主程序。中断程序用于快速响应中断事件。在中断事件发生时,CPU将停止执行当时正在处理的程序或任务,去执行用户编写的中断程序。执行完中断程序后,继续执行被暂停执行的程序或任务。它们的子程序和中断程序没有局部变量,子程序没有输入、输出参数。

西门子S7-200 CPU的控制程序由主程序、子程序和中断程序组成。

西门子plc编程的工作原理:当PLC投入运行后,其工作过程一般分为三个阶段,即输入采样、用户程序执行和输出刷新三个阶段。完成上述三个阶段称作一个扫描周期。在整个运行期间,PLC的CPU以一定的扫描速度重复执行上述三个阶段。

图片 1

在《微机原理》和《计算机组成》等课程[1-4]教学中(本文以MCS-51单片机为例),中断过程既是教学难点又是教学重点,它与主程序调用子程序过程有一定相似性,但又有很大区别,调用子程序过程相对比较容易掌握,通过把两过程结合起来,采用比较教学方法,能收到了很好的教学效果。 
1、两过程定义与作用
    子程序是微机基本程序结构中的1种,基本程序结构包括顺序(简单)、分支(判断)、循环、子程序和查表等5种。
    子程序是一组可以公用的指令序列,只要给出子程序的入口地址就能从主程序转入子程序。子程序在功能上具有相对的独立性,在执行主程序的过程中往往被多次调用,甚至被不同的程序所调用。一般微机首先执行主程序,碰到调用指令就转去执行子程序,子程序执行完后,返回指令就返回主程序断点(即调用指令的下一条指令),继续执行没有处理完的主程序,这一过程叫做(主程序)调用子程序过程。
子程序结构可简化程序,防止重复书写错误,并可节省内存空间。计算机中经常把常用的各种通用的程序段编成子程序,提供给用户使用。用户在自己编写的程序中,只要会调用这些子程序,就可大大简化用户编程的困难。 
    中断是计算机中央处理单元CPU与外设I/O交换数据的一种方式,除此方式外,还有无条件、条件(查询)、存贮器直接存取DMA和I/O通道等四种方式。由于无条件不可靠,条件效率低,DMA和I/O通道两方式硬件复杂,而中断方式CPU效率高,因此一般大多采用中断方式。
中断概念是当计算机正在执行某一(主)程序时,收到一中断请求,如果中断响应条件成立,计算机就把正在执行的程序暂停一下,去响应处理这一请求,执行中断服务程序,处理完服务程序后,中断返回指令使计算机返回原来还没有执行完的程序断点处继续执行,这一过程称为中断过程。有了中断,计算机才能具有并行处理,实时处理和故障处理等重要功能。 
2、两过程的联系与区别
2.1联系
    中断与调用子程序两过程属于完全不同的概念,但它们也有不少相似之处。两者都需要保护断点(即下一条指令地址)、跳至子程序或中断服务程序、保护现场、子程序或中断处理、恢复现场、恢复断点(即返回主程序)。两者都可实现嵌套,即正在执行的子程序再调另一子程序或正在处理的中断程序又被另一新中断请求所中断,嵌套可为多级。
正是由于这些表面上的相似处,很容易使学生把两者混淆起来,特别是把中断也看为子程序,这就大错特错了。
2.2区别
    中断过程与调用子程序过程相似点是表面的,从本质上讲两者是完全不一样的。
两者的根本区别主要表现在服务时间与服务对象不一样上。首先,调用子程序过程发生的时间是已知和固定的,即在主程序中的调用指令(CALL)执行时发生主程序调用子程序,调用指令所在位置是已知和固定的。而中断过程发生的时间一般的随机的,CPU在执行某一主程序时收到中断源提出的中断申请时,就发生中断过程,而中断申请一般由硬件电路产生,申请提出时间是随机的(软中断发生时间是固定的),也可以说,调用子程序是程序设计者事先安排的,而执行中断服务程序是由系统工作环境随机决定的;其次,子程序完全为主程序服务的,两者属于主从关系,主程序需要子程序时就去调用子程序,并把调用结果带回主程序继续执行。而中断服务程序与主程序两者一般是无关的,不存在谁为谁服务的问题,两者是平行关系;第三,主程序调用子程序过程完全属于软件处理过程,不需要专门的硬件电路,而中断处理系统是一个软、硬件结合系统,需要专门的硬件电路才能完成中断处理的过程;第四,子程序嵌套可实现若干级,嵌套的最多级数由计算机内存开辟的堆栈大小限制,而中断嵌套级数主要由中断优先级数来决定,一般优先级数不会很大。

1.主程序

输入采样

主程序是程序的主体,每一个项目都必须并且只能有一个主程序。在主程序中可以调用子程序和中断程序。

在输入采样阶段,PLC以扫描方式依次地读入所有输入状态和数据,并将它们存入I/O映象区中的相应得单元内。输入采样结束后,转入用户程序执行和输出刷新阶段。在这两个阶段中,即使输入状态和数据发生变化,I/O映象区中的相应单元的状态和数据也不会改变。因此,如果输入是脉冲信号,则该脉冲信号的宽度必须大于一个扫描周期,才能保证在任何情况下,该输入均能被读入。

主程序通过指令控制整个应用程序的执行,每次CPU扫描都要执行一次主程序。STEP7-Micro/Win的程序编辑器窗口下部的标签用来选择不同的程序。因为程序已被分开,各程序结束时不需要加入无条件结束指令,如END、RET或RETI等。

用户程序执行

2.子程序

在用户程序执行阶段,PLC总是按由上而下的顺序依次地扫描用户程序。在扫描每一条梯形图时,又总是先扫描梯形图左边的由各触点构成的控制线路,并按先左后右、先上后下的顺序对由触点构成的控制线路进行逻辑运算,然后根据逻辑运算的结果,刷新该逻辑线圈在系统RAM存储区中对应位的状态;或者刷新该输出线圈在I/O映象区中对应位的状态;或者确定是否要执行该梯形图所规定的特殊功能指令。

子程序是一个可选的指令的集合,仅在被其他程序调用时执行。同一子程序可以在不同的地方被多次调用,使用子程序可以简化程序代码和减少扫描时间。设计得好的子程序容易移植到别的项目中去。

即,在用户程序执行过程中,只有输入点在I/O映象区内的状态和数据不会发生变化,而其他输出点和软设备在I/O映象区或系统RAM存储区内的状态和数据都有可能发生变化,而且排在上面的梯形图,其程序执行结果会对排在下面的凡是用到这些线圈或数据的梯形图起作用;相反,排在下面的梯形图,其被刷新的逻辑线圈的状态或数据只能到下一个扫描周期才能对排在其上面的程序起作用。

3.中断程序

输出刷新

中断程序是指令的一个可选集合。中断程序不是被主程序调用,它们在中断事件发生时由可编程序控制器的操作系统调用。中断程序用来处理预先规定的中断事件,因为不能预知何时会出现中断事件,所以不允许中断程序改写可能在其他程序中使用的存储器。

当扫描用户程序结束后,PLC就进入输出刷新阶段。在此期间,CPU按照I/O映象区内对应的状态和数据刷新所有的输出锁存电路,再经输出电路驱动相应的外设。这时,才是PLC的真正输出。

同样的若干条梯形图,其排列次序不同,执行的结果也不同。另外,采用扫描用户程序的运行结果与继电器控制装置的硬逻辑并行运行的结果有所区别。当然,如果扫描周期所占用的时间对整个运行来说可以忽略,那么二者之间就没有什么区别了。

西门子plc编程中应该注意的问题:

1.中断程序中可以调用子程序

累加器和逻辑堆栈式的存蓄器在中断程序和被调用的子程序中都是共用的

2.中断程序和主程序下数据是可以共享的

中断程序虽说是可以共享的,但是我们要注意的是中断事件中事情异步特性的因数影响,来解决共享数据的一致性问题,在中断事件中主程序执行的任何一个地方都是有可能出现的。

3.通信接口的中断

PLC的串行通信口是可以有梯形图或者语句表程序控制的。通信口的这种操作模式称为自有端口的模式。在自由的情况下,就可以用程序定义波特率,每个字节的位数等等,在执行主程序的过程中,申请中断,才能定义自由端口模式,利用接收和发送中断可以简化程序对通信的控制。

4.I/O中断

I/O中断包括上升或下降沿中断,告诉计数器中断和脉冲串输出中断。

S7-200CPU用输入I0.0~I0.3的上升或下降产生了中断,则发生的事件被输入端子捕获,这样的上升沿或者下降可被用来指示当某个事件发生时必须引起注意的条件。

5.时基中断

6.中断的优先级和排队

7.中断的限制

8.中断程序编程步骤

本文由新天地3559发布于电工电气,转载请注明出处:子程序是微机基本程序结构中的1种,主程序可以

关键词: