①STL形式的打开数据块指令“OPN<数据块>”。使用打开数据块指令,可以打开一个数据块作为共享数据块或背景数据块,可以同时打开一个共享数据块和一个背景数据块。访问已打开的数据块内的存储单元时,其地址中不必指明是哪一个数据块的存储单元,如打开数据DB10后,DB10. DBW35可简写为DBW35。
编程示例:
OPN DB10 说明:打开数据块DB10作为共享数据块
L DBW35 将打开数据块的数据字DBW35装入累加器1低字中
T MW22 将累加器1低字中的内容传送到存储字MW22
OPN DB20 打开数据块DB20作为背景数据块
L DIB12 将打开背景数据块的数据字节12装入累加器1低字中
T DBB37 将累加器1低字中的内容传送到打开共享数据块的数据字
节DBB37
②LDA形式的打开数据块指令“-(OPN)”。“-(OPN)”(打开数据块指令)可以打开一个共享数据块( DB)或背景数据块(DI)。“-( OPN)”功能是一种数据块无条件调用功能。数据块的编号被传送到DB或DI寄存器。在此之后,DB和DI指令根据寄存器的内容访问相应的数据块。
编程示例如图所示:数据块10( DB10)被打开。接点地址( DBX0.0)指的是数据块DB10中包含的当前数据记录的数据字节0的0位。该位的信号状态被赋值给输出Q4.0。
图 打开数据块指令使用示例
CDB交换共享数据块和背景数据块
使用该指令,可以交换共享数据块和背景数据块。该指令可以交换数据块寄存器。一个共享数据块可转换为一个背景数据块,反之亦然。
可编程控制器(PLC)的工作有两个要点:入出信息变换、可靠物理实现,入出信息变换主要由运行存储于PLC内存中的程序实现。这程序既有系统的(这程序又称监控程序,或操作系统),又有用户的。系统程序为用户程序提供编辑与运行平台,同时,还进行必要的公共处理,如自检,I/O刷新,与外设、上位计算机或其它PLC通讯等处理。用户程序由用户按照控制的要求进行设计。什么样的控制,就有什么样的用户程序。
可靠物理实现主要通过输入(I, INPUT)及输出(O, OUTPUT)电路。每一输入点或输出点就有一个I或O电路。而且,总是把若干个这样电路集成在一个模块(或箱体)中,然后再由若干个模块(或箱体)集成为PLC完整的I/O系统(电路)。尽管这些模块相当多,占了PLC体积的大部分,但由于它们都是由高度集成化的,所以,PLC的体积还是不太大的。
输入电路时刻监视着输入点的(通、ON或断、OFF)状态,并将此状态暂存于它的输入暂存器(还可能有别的称谓)中。每一输入点都有一个与其对应的输入暂存器。
输出电路有输出锁存器(还可能有别的称谓)。它也有两个状态,高、低电位状态,并可锁存。同时,它还有相应的物理电路,可把这个高、低电位的状态传送给输出点。每一输出点都有一个与其对应的输出锁存器。
这里的输入暂存器及输出锁存器实际是PLC的I/O电路的寄存器。它们与PLC内存交换信息通过PLC I/O总线及运行PLC的系统程序实现。
把输入暂存器的信息读到PLC的内存中,称输入刷新。PLC内存有专门开辟的存放输入信息的映射区。这个区的每一对应位(bit)称为输入继电器,或称软触点,或称为过程映射输入寄存器(the process-image input register)。这些位(bit)置成1,表示触点通,置成0为触点断。由于它的状态是由输入刷新得到的,所以,它反映的就是输入点的状态。
输出锁存器与PLC内存中的输出映射区也是对应的。一个输出锁存器也有一个内存位(bit)与其对应,这个位称为输出继电器,或称输出线圈,或称为过程映射输出寄存器(the process-image output register)。通过PLC I/O总线及运行系统程序,输出继电器的状态将映射给输出锁存器。这个映射的完成也称输出刷新。
PLC除了有可接收开关信号的输入电路,有时,还有接收模拟信号的输入电路(称模拟量输入单元或模块)。只是后者先要进行模、数转换,然后,再把转换后的数据存入PLC相应的内存单元中。
如要产生模拟量输出,则要配有模拟量输出电路(称模拟量输出模块或单元)。靠它对PLC相应的内存单元的内容进行数、模转换,并产生输出。
这样,用户所要编的程序只是,PLC输入有关的内存区到输出有关的内存区的变换。这是一个数据及逻辑处理问题。由于PLC有强大的指令系统,编写出满足这个要求的程序是完全可能的。
图1对以上叙述作了说明。其中框图代表信息存储的地点,头代表信息的流向及实现信息流动的手段。这个图,既反映了PLC实现控制的两个基本要点,同时也反映了信息在PLC中的空间关系。
简单地说,PLC工作过程是:输入刷新---运行用户程序---输出刷新,再输入刷新---再运行用户程序---再输出刷新⋯⋯**停止地循环反复地进行着。
图2所示的流程图反映的就是上述过程。它也反映了信息间的时间关系。
a- 简作流程图 b – 实际工作流程图
图2 PLC工作流程图
有了上述过程,用PLC实现控制显然是可能的。因为:有了输入刷新,可把输入电路监视得到的输入信息存入PLC的输入映射区;经运行用户程序,输出映射区将得到变换后的信息;再经输出刷新,输出锁存器将反映输出映射区的状态,并通过输出电路产生相应的输出。又由于这个过程是**停止地循环反复地进行着,所以,输出总是反映输入的变化。只是响应的时间上,略有滞后。但由于PLC的工作速度很快,所以,这个“略有滞后”的时间是很短的,一般也就是几毫秒、几十毫秒,多也不会过100到200毫秒。
图2a所示的是简化的过程,实际的PLC工作过程还要复杂些。除了I/O刷新及运行用户程序,还要做些其它的公共处理工作。公共处理工作有:循环时间监视、外设服务及通讯处理等。
监视循环时间的目的是避免用户程序“死循环”,保证PLC能正常工作。为避免用户程序“死循环”的办法是用“”(Watching dog),即设一个定时器,监测用户程序的运行时间。只要循环时,即报警,或作相应处理。
外设服务是让PLC可接受编程器对它的操作,或向编程器输出数据。
通讯处理是实现与计算机,或与其它PLC,或与智能操作器、传感器进行信息交换的。这也是增强PLC控制能力的需要。
也就是说,实际的PLC工作过程总是:公共处理——I/O刷新——运行用户程序——再公共处理——⋯反复不停地重复着。图2b所示的是实际的过程。
此外,PLC上电后,也要进行系统自检及内存的初始作,为PLC的正常运行做好准备。
用这种不断地重复运行程序以实现控制,称扫描方式工作。是PLC基本的工作方式。
此外,为了应对紧急任务,PLC还有中断工作方式。在中断方式下,需处理的任务先申请中断,被响应后停止正运行的程序,转而去处理中断工作(运行有关中断的服务程序)。待处理完中断,又返回运行原来程序。
PLC的中断方式的任务,或称事件,是分等级的。同时出现两个或多个中断事件,则**级高的先处理,继而处理低的。直到全部处理完中断任务,再转为执行扫描程序。
PLC对大量控制都用扫描方式工作,而对个别急需的处理,则用中断方式。这样,既可做到所有的控制都能照顾到,而个别应急的任务也能及时进行处理。
当然,PLC的实际工作过程比这里讲的还要复杂一些,分析其基本原理,也还有一些理论问题。但如果能弄清上面介绍的思路,也可知到PLC是怎么工作的了。
PLC的类型繁多,功能和指令系统也不尽相同,但结构与工作原理则大同小异,通常由主机、输入/输出接口、电源扩展器接口和外部设备接口等几个主要部分组成。PLC的硬件系统结构如下图所示:
1、主机
主机部分包括*处理器(CPU)、系统程序存储器和用户程序及数据存储器。CPU是PLC的核心,它用以运行用户程序、监控输入/输出接口状态、作出逻辑判断和进行数据处理,即读取输入变量、完成用户指令规定的各种操作,将送到输出端,并响应外部设备(如电脑、打印机等)的请求以及进行各种内部判断等。PLC的内部存储器有两类,一类是系统程序存储器,主要存放系统管理和监控程序及对用户程序作编译处理的程序,系统程序已由厂家固定,用户不能改;另一类是用户程序及数据存储器,主要存放用户编制的应用程序及各种暂存数据和中间结果。
2、输入/输出(I/O)接口
I/O接口是PLC与输入/输出设备连接的部件。输入接口接受输入设备(如按钮、传感器、触点、行程开关等)的控制信号。输出接口是将主机经处理后的结果通过功放电路去驱动输出设备(如接触器、电磁阀、指示灯等)。I/O接口一般采用光电耦合电路,以减少电磁干扰,从而提高了可靠性。I/O点数即输入/输出端子数是PLC的一项主要技术指标,通常小型机有几十个点,中型机有几百个点,大型机将过千点。
3、电源
图中电源是指为CPU、存储器、I/O接口等内部电子电路工作所配置的直流开关稳压电源,通常也为输入设备提供直流电源。
4、编程
编程是PLC利用外部设备,用户用来输入、检查、修改、调试程序或监示PLC的工作情况。通过**的PC/PPI电缆线将PLC与电脑联接,并利用**的软件进行电脑编程和监控。
5、输入/输出扩展单元
I/O扩展接口用于将扩充外部输入/输出端子数的扩展单元与基本单元(即主机)连接在一起。
6、外部设备接口
此接口可将打印机、条码扫描仪,变频器等外部设备与主机相联,以完成相应的操作。
实验装置提供的主机型号有西门子S7-200系列的CPU224(AC/DC/RELAY)。输入点数为14,输出点数为10;CPU226(AC/DC/RELAY),输入点数为26,输出点数为14。
6ES72111BE400XB0 | CPU 1211C AC/DC/Rly,6输入/4输出,集成2AI |
6ES72111AE400XB0 | CPU 1211C DC/DC/DC,6输入/4输出,集成2AI |
6ES72111HE400XB0 | CPU 1211C DC/DC/Rly,6输入/4输出,集成2AI |
6ES72121BE400XB0 | CPU 1212C AC/DC/Rly,8输入/6输出,集成2AI |
6ES72121AE400XB0 | CPU 1212C DC/DC/DC,8输入/6输出,集成2AI |
6ES72121HE400XB0 | CPU 1212C DC/DC/Rly,8输入/6输出,集成2AI |
6ES72141BG400XB0 | CPU 1214C AC/DC/Rly,14输入/10输出,集成2AI |
6ES72141AG400XB0 | CPU 1214C DC/DC/DC,14输入/10输出,集成2AI |
6ES72141HG400XB0 | CPU 1214C DC/DC/Rly,14输入/10输出,集成2AI |
6ES72151BG400XB0 | CPU 1215C AC/DC/Rly,14输入/10输出,集成2AI/2AO |
6ES72151AG400XB0 | CPU 1215C DC/DC/DC,14输入/10输出,集成2AI/2AO |
6ES72151HG400XB0 | CPU 1215C DC/DC/Rly,14输入/10输出,集成2AI/2AO |
6ES72171AG400XB0 | CPU 1217C DC/DC/DC,14输入/10输出,集成2AI/2AO |