PLC的工作原理和编程语言

2020年7月15日18:56:42 发表评论浏览:39

PLC有两种操作模式,即RUN(运行)模式和STOP(停止)模式。在RUN模式下,PLC执行用户程序实现控制功能。在STOP模式下,PLC不执行用户程序,用户可以用编程器或编程软件创建和编辑用户程序,设置PLC的硬件功能,并将用户程序和硬件设置信息下载到PLC中。在不同的工作模式下,PLC的工作过程有所差别。

1 PLC的工作过程

1) PLC的具体工作过程

PLC通电后,首先需要对硬件和软件做--些初始化工作,然后开始周而复始地分阶段处理各种不同的任务。PLC这种周期性的循环工作方式称为循环扫描工作方式,完成一次周期性的工作称为一个扫描周期。 当PLC运行在不同的工作模式下时,其扫描过程有所差别,主要区别是在STOP模式下,PLC不执行用户程序。

如图1所示,一个扫描周期主要可分为5个阶段。

PLC的工作原理和编程语言

图1 PLC的扫描过程

(1)读取输入阶段。CPU在处理用户程序时,使用的输入值不是直接从输入点读取的,运算的结果也不直接送到实际输出点,而是在内存中设置了两个映像寄存器:一个为输入映像寄存器,另一个为输出映像寄存器。用户程序中所用的输入值是输入映像寄存器的值,运算结果存放在输出映像寄存器中。在输入扫描过程中,CPU把实际输入点的状态锁存到输入映像寄存器;在输出扫描过程中,CPU把输出映像寄存器的值锁定到实际输出点。

每次扫描周期的开始,先读取输入点的当前值,然后写到输入映像寄存器区域。在此后的用户程序执行的过程中,CPU访问输入映像寄存器区域,而并非直接读取输入端口的状态,输入信号的变化并不会影响到输入映像寄存器的状态,因此,通常要求输入信号有足够的脉冲宽度,才能被正确响应。

(2)执行用户程序阶段。用户程序执行阶段, PLC按照用户程序指令的顺序,自左而右、自上而下地逐行扫描执行。在这一阶段CPU从用户程序的第一条指令 开始执行直到最后一条指令结束,程序运行结果放入输出映像寄存器区域。在此阶段,允许对数字量I/O指令和不设置数字滤波的模拟量I/O指令进行处理。输出映像寄存器的值会随着程序的执行而变化,但不会直接改变输出点的值。

(3)处理通信请求阶段。这是扫描周期的信息处理阶段,CPU处理从通信端口和智能模块接收到的信息,例如读取智能模块的信息并存放在缓冲区中,在适当的时候将信息传送给请求方等。

(4)执行CPU自诊断测试阶段。在此阶段CPU检查其硬件、用户程序存储器和所有I/O模块的状态。自诊断测试扫描过程中为保证设备的可靠性,及时反映所出现的故障,PLC都具有自监视功能。自监视功能主要由时间监视器( Watchdog Timer, WDT)完成。WDT是一个硬件定时器,每一个扫描周期开始前都被复位。WDT的定时时间可由用户修改,一般在100~500ms之间。其他的执行结果错误可由程序设计者通过标志位进行处理。

(5)改写输出阶段。每个扫描周期的结尾,CPU把存在输出映像寄存器中的数据输出给输出端点(写人输出锁存器中),更新输出状态。然后PLC进入下一个循环周期,重新执行输入采样阶段,周而复始,循环执行。
如果程序中使用了中断指令,当中断事件出现时,PLC将停止正常的扫描工作方式,立即转人执行中断程序,从而提高PLC的响应速度。在扫描周期的各个阶段,均可对中断事件进行响应。

如果在程序中使用了立即I/O指令,则PLC可以直接存取I/O点。用立即I/O指令读输入点值时,相应的输入映像寄存器的值并未被修改;但使用立即I/O指令写输出点值时,相应的输出映像寄存器的值将被修改。
从以上对扫描周期的分析可知,扫描周期的时间变化基本上可分为三部分,即保证系统正常运行的公共操作、系统与外部设备信息的交换和用户程序的执行。第一部分的扫描时间基本上是固定的,因机器类型而有所不同;第二部分并不是每个系统或系统的每次扫描都有,占用的扫描时间也是变化的;第三部分随控制对象工艺的复杂程度和用户控制程序而变化,因此这部分占用的扫描时间不仅对不同系统其长短不同,而且对同一系统的不同执行条件也占用着不同的扫描时间。所以,系统扫描周期的长短,除了因是否运行用户程序而有较大的差别外,在运行用户程序时也不是完全固定不变的。这是由于在执行程序中,随变量状态的不同,部分程序段可能不执行而形成的。用户程序的扫描时间主要由CPU的运算速度和程序的复杂程度所决定。

2)循环扫描过程的工作特点

从以上的分析可知,循环扫描过程具有如下特点:

(1)扫描过程周而复始地进行,读输入、写输出和用户程序是否执行是可控的。

(2)输入映像寄存器的内容是由设备驱动的,在程序执行过程中的一个工作周期内,输入映像寄存器的值保持不变,CPU采用集中输入的控制思想,一般情况下,用户程序只能使用输入映像寄存器的值。

(3)程序运行的结果储存到输出映像寄存器中,输出映像寄存器的值决定了下一个扫描周期中物理输出端子的输出值。而在程序执行阶段,输出映像寄存器的值既可以作为控制程序执行的条件,同时又可以被程序修改用来存储中间结果或下一个扫描周期的输出结果。此时的修改不会影响输出锁存器的当前输出值,这是与输入映像寄存器完全不同的。

(4)对同一个输出单元的多次使用、修改次序会造成不同的执行结果。由于输出映像寄存器的值可以作为程序执行的条件,所以程序的下一个扫描周期的集中输出结果是与编程顺序有关的。对输出映像寄存器的最后一次修改决定了下一个周期的输出值,这是编程人员要注意的问题。

(5)循环扫描工作方式会造成输入/输出的延迟,这是PLC的主要缺点。各PLC厂家为了缩小延迟采取了很多措施,编程人员应对所使用型号的PLC延迟时间的长短有清楚的认识,它也是进行PLC选型时的重要指标。
输入/输出采用映像寄存器结构的优点如下:

(1)集中采样I/O,程序扫描期间输入值固定不变,程序执行完后,统一输出。这种集中I/O的方法保证了程序的顺序执行与外部电路乱序执行的统--,使系统更加稳定可靠。

(2)程序执行时,存取映像寄存器要比直接读取I/O点快得多,这样可以加快程序的执行速度。

(3) I/O点必须按位存取,而映像寄存器可按位、字节、字、双字灵活地存取,增加了程序的灵活性。

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: