第2章 PLC的基础知识
可编程控制器(PLC)是在继电器控制和计算机技术的基础上,逐渐发展成的以微处理器为核心,集微电子技术、自动化技术、计算机技术、通信技术为一体,以工业自动化控制为目标的新型控制装置,目前已在工业、交通运输、农业、商业等领域得到了广泛应用,成为各行业的通用控制核心产品。本章首先介绍 PLC 的产生与发展、特点与分类,然后以S7—200系列PLC为例,介绍PLC的组成和工作原理,内部元器件,I/O及扩展,以及编程语言。
论题8 可编程控制器概述
1. PLC的产生与发展
研究自动控制装置的目的,是为了最大限度地满足人们对机械设备的要求。曾一度在控制领域占主导地位的继电器控制系统,存在着控制能力弱,可靠性低的缺点,而且设备的固定接线控制装置不利于产品的更新换代。20世纪60年代末期,在技术改造浪潮的冲击下,为使汽车结构及外形不断改进,品种不断增加,需要经常变更生产工艺。人们希望在控制成本的前提下,尽可能缩短产品的更新换代周期,以满足生产的需求,使企业在激烈的市场竞争中取胜。为此,美国通用汽车公司(GM)于1968年提出了汽车装配生产线改造项目——控制器的10项指标,即新一代控制器应具备的10项指标。
编程简单,可在现场修改和调试程序
维护方便,采用插入式模块结构
可靠性高于继电器控制系统
体积小于继电器控制柜
能与管理中心计算机系统进行通信
成本可与继电器控制系统相竞争
输入量是115V交流电压(美国电网电压是110V)
输出量为115V交流电压,输出电流在2A以上,能直接驱动电磁阀
系统扩展时,原系统只需做很小改动
用户程序存储器容量至少4KB
1969年,美国数字设备公司(DEC)首先研制出第一台符合要求的控制器,即可编程逻辑控制器,并在美国GE公司的汽车自动装配线上试用成功。此后,这项研究迅速得到发展,从美国、日本、欧洲普及到全世界。我国从1974 年开始了PLC的研制工作,并于1977年应用于工业。目前,世界上已有数百家厂商生产PLC,型号多达数百种。
早期的PLC是为了取代继电器控制线路,采用存储器程序指令完成顺序控制而设计的。它仅有逻辑运算、定时、计数等功能,用于开关量控制,实际上只能进行逻辑运算,所以被称为可编程逻辑控制器,简称PLC(Programmable Logic Controller)。进入20 世纪80 年代后,以16位和少数32位微处理器构成的控制器取得了飞速进展,使得PLC在概念、设计、性能上都有了新的突破。采用微处理器之后,控制器的功能不再局限于当初的逻辑运算,而是增加了数值运算、模拟量处理、通信等功能,成为真正意义上的可编程控制器(Program⁃mable Controller,PC)。但为了与个人计算机PC(Personal Computer)相区别,常将可编程控制器仍简称为PLC。
随着PLC的不断发展,其定义也在不断变化。国际电工委员会(IEC)曾于1982年11月颁布了PLC标准草案第一稿,1985年1月发表了第二稿,1987年2月又颁布了第三稿。1987年颁布的PLC的定义如下:
“PLC是专为在工业环境下应用而设计的一种数字运算操作的电子装置,是带有存储器、可以编制程序的控制器。它能够存储和执行命令,进行逻辑运算、顺序控制、定时、计数和算术运算等操作,并通过数字式和模拟式的 I/O,控制各种类型的机械或生产过程。PLC及其有关的外围设备,都应按易于工业控制系统形成一个整体、易于扩展其功能的原则设计。”
事实上,由于可编程控制技术的迅猛发展,许多新产品的功能已超出上述定义。
2. PLC的特点和分类
1)PLC的特点
(1)可靠性高。可靠性指的是PLC的平均无故障工作时间。可靠性既反映了用户的要求,又是PLC生产厂家着力追求的技术指标。目前,各生产厂家的PLC平均无故障安全运行时间都远大于国际电工委员会(IEC)规定的105 h的标准。
PLC在设计、制作、元器件的选取上,采用了精选、高度集成化和冗余量大等一系列措施,延长了元器件的使用工作寿命,提高了系统的可靠性。在抗干扰性上,采取了软、硬件多重抗干扰措施,使其能安全地工作在恶劣的工业环境中。国际大公司制造工艺的先进性,也进一步提高了PLC的可靠性。
(2)控制功能强。PLC不仅具有对开关量和模拟量的控制能力,还具有数值运算、PID调节、数据通信、中断处理的功能。除具有扩展灵活的特点外,PLC还具有功能的可组合性,如运动控制模块可以对伺服电动机和步进电动机速度与位置进行控制,实现对数控机床和工业机器人的控制。
(3)组成灵活。PLC品种很多。小型PLC为整体结构,并可外接I/O扩展机箱构成PLC控制系统。中大型PLC采用分体模块式结构,设有各种专用功能模块(开关量、模拟量I/O模块,位控模块,伺服、步进驱动模块等)供选用和组合,可由各种模块组成大小和要求不同的控制系统。PLC外部控制电路虽然仍为硬接线系统,但当受控对象的控制要求改变时,还是可以在线使用编程器修改用户程序来满足新的控制要求,这就极大限度地缩短了工艺更新所需要的时间。
(4)操作方便。PLC提供了多种面向用户的语言,如常用的梯形图LAD(Laddex Dia⁃gram),指令语句表STL(Statement List),控制系统流程图CSF(Control System Flowchart)等。PLC的最大优点之一就是采用了易学易懂的梯形图语言,该语言以计算机软件技术构成人们惯用的继电器模型,直观易懂,极易被现场电气工程技术人员掌握,为PLC的推广应用创造了有利条件。
现在的PLC编程器大都采用个人计算机或手持式编程器两种形式。手持式编程器有键盘、显示功能,通过电缆线与PLC相连,具有体积小,质量轻,便于携带,易于现场调试等优点。用户也可以用个人计算机对PLC进行编程及系统仿真调试,监控系统运行情况。目前,国内各厂家都研发了适用于个人计算机使用的编程软件,编程软件的汉化界面,非常有利于PLC的学习和推广应用。同时,直观的梯形图显示,使程序输入及运行的动态监视更方便、更直观。PC程序的键盘输入和打印、存储设备,更是极大地丰富了PLC编程器的硬件资源。
2)PLC的分类 目前,PLC产品的种类很多,型号和规格也不统一,通常只能按照其用途、功能、结构、点数等进行大致分类。
(1)按点数和功能分类。PLC对外部设备的控制,外部信号的输入及PLC运算结果的输出都要通过PLC I/O端子来进行接线,I/O端子的数目之和被称为PLC的输入/输出点数,简称I/O点数。
为满足不同控制系统处理信息量的要求,PLC具有不同的I/O点数、用户程序存储量和功能。由I/O点数的多少可将PLC分成小型(含微型)、中型和大型机(或称为高、中、低档机)。
小型(微型)PLC的I/O点数小于256 点,以开关量控制为主,具有体积小、价格低的优点,适用于小型设备的控制
中型PLC的I/O点数在256 ~1024 之间,功能比较丰富,兼有开关量和模拟量的控制功能,适用于较复杂系统的逻辑控制和闭环过程控制
大型 PLC的 I/O 点数在1024 点以上,用于大规模过程控制、集散式控制和工厂自动化网络
各厂家的 PLC 产品自我定义的大型、中型、小型机各有不同,如有的厂家建议小型PLC为512 点以下,中型PLC为512 ~2048 点,大型PLC为2048 点以上。
(2)按结构形式分类。根据结构形式的不同,PLC 可分为整体式结构和模块式结构两大类。
小型PLC一般采用整体式结构(即将所有电路集于一个箱内)为基本单元,该基本单元可以通过并行接口电路连接I/O扩展单元
中型以上PLC多采用模块式结构,不同功能的模块可以组成不同用途的 PLC,适用于不同要求的控制系统
(3)按用途分类。根据PLC的用途,PLC可分为通用型和专用型两大类。
通用型PLC作为标准装置,可供各类工业控制系统选用
专用型PLC是专门为某类控制系统设计的,由于其具有专用性,因此其结构设计更为合理,控制性能更完善
随着PLC的应用与普及,专为家庭自动化设计的超小型PLC也正在形成家用微型系列。
3)PLC的应用与发展 自从PLC在汽车装配生产线的首次成功应用以来,PLC 在多品种、小批量、高质量的生产设备中得到了广泛的推广应用。PLC控制已成为工业控制的重要手段之一,与CAD/ CAM、机器人技术一起成为实现现代自动化生产的三大支柱技术。
我国使用较多的 PLC 产品有德国西门子(SIEMENS)的 S7 系列,日本欧姆龙公司(OMRON)的C系列,三菱公司的FX系列,美国GE公司的GE系列等。各大公司生产的PLC都已形成由小型到大型的系列产品,而且随着技术的不断进步,产品的更新换代很快,周期一般不到5年。
通过技术引进与合资生产,我国的PLC产品有了一定的发展,生产厂家已达30 多家,为PLC国产化奠定了基础。
从PLC的发展来看,有小型化和大型化两个趋势。
小型PLC有两个发展方向,即小(微)型化和专业化。随着数字电路集成度的提高,元器件体积的减小及质量的提高,PLC的结构更加紧凑,设计制造水平在不断进步。微型化的PLC不仅体积小,而且功能也大有提高。过去一些大中型PLC才有的功能,如模拟量的处理、通信、PID调节运算等,均可以被移植到小型机上。同时,PLC的价格的不断下降,将使它真正成为继电器控制系统的替代产品
大型化指的是大中型PLC向着大容量、智能化和网络化方向发展,使之能与计算机组成集成控制系统,对大规模、复杂系统进行综合性的自动控制
论题9 S7—200系列PLC的组成和工作原理
S7—200可编程控制系统由主机(基本单元)、I/O扩展单元、功能单元(模块)和外部设备等组成。S7—200 PLC主机(基本单元)的结构形式为整体式结构。下面以S7—200系列的CPU 22X小型PLC为例,介绍S7—200系列PLC的构成。
1. CPU 226型PLC的组成
S7—200系列PLC有CPU 21X和CPU 22X两代产品,其中CPU 22X型PLC有CPU221、CPU 222、CPU 224和CPU 226四种基本型号。本节以CPU 226型PLC为重点,来分析一下小型PLC的结构特点。
1)CPU 226型PLC的结构分析 小型PLC系统由主机(主机箱)、I/O扩展单元、文本/图形显示器、编程器等组成。CPU 226主机的结构外形如图2-1所示。
图2-1 CPU 226主机的结构外形
CPU 226主机箱体的外部设有RS⁃485通信接口,用于连接编程器(手持式或PC)、文本/图形显示器、PLC网络等外部设备;还设有工作方式开关、模拟电位器、I/O扩展接口、工作状态指示和用户程序存储卡、I/O接线端子排及发光指示等。
(1)基本I/O:CPU 22X型PLC具有两种不同的电源供电电压,输出电路分为继电器输出和晶体管DC输出两大类。CPU 22X系列PLC可提供4个不同型号的10种基本单元CPU供用户选用,其类型及参数见表2-1。
表2-1 CPU 22X系列PLC的类型及参数
CPU 221 集成了6 输入/4 输出共10个数字量I/O点,无I/O扩展能力,有6KB的程序和数据存储空间
CPU 222 集成了8 输入/6 输出共14个数字量 I/O 点,可连接两个扩展模块,最大可扩展至78路数字量I/O或10路模拟I/O点,有6KB的程序和数据存储空间
CPU 224 集成了14 输入/10 输出共24个数字量 I/O 点,可连接7个扩展模块,最大可扩展至168路数字量I/O或35路模拟I/O点,有13KB的程序和数据存储空间
CPU 226 集成了24 输入/16 输出共40个数字量 I/O 点,可连接7个扩展模块,最大可扩展至248路数字量I/O或35路模拟I/O点,有13KB的程序和数据存储空间
CPU 226XM除程序和数据存储空间为26KB外,其他的与CPU 226 相同
CPU 22X系列PLC的特点是,CPU 22X主机的输入点为24V DC 双向光耦合输入电路,输出有继电器和DC(MOS型)两种类型(CPU 21X系列PLC的输入点为24V DC单向光耦合输入电路,输出有DC,AC 和继电器3 种类型);具有30kHz高速计数器,20kHz 高速脉冲输出,RS⁃485 通信/编程口,PPI、MPI通信协议和自由口通信能力。CPU 222 及以上CPU还具有PID控制和扩展的功能,内部资源及指令系统更加丰富,功能更强大。
CPU 226 主机共有I0.0~I2.7 共24个输入点和 Q0.0~Q1.7 共16个输出点。CPU 226的输入电路采用了双向光耦合器,24V DC的极性可任意选择,系统设置1M为I0.0 ~I1.4 输入端子的公共端,2M为I1.5~I2.7 字节输入端子的公共端。在晶体管输出电路中采用了MOSFET功率驱动器件,并将数字量输出分为两组,每组有一个独立公共端,共有1L,2L两个公共端,可接入不同的负载电源。
S7—200 系列PLC的I/O接线端子排分为固定式和可拆卸式两种结构。可拆卸式端子排能在不改变外部电路硬件接线的前提下方便地拆装,为PLC的维护提供了便利。
CPU 224的外部电路原理图如图2-2所示。
(2)主机 I/O 及扩展:CPU 22 X 系列 PLC 主机的 I/O 点数及可扩展的模块数目见表2-2。
(3)高速反应性:CPU 226 PLC有6个高速计数脉冲输入端(I0.0~I0.5),最快的响应速度为30kHz,用于捕捉比CPU扫描周期更快的脉冲信号。
图2-2 CPU 224的外部电路原理图
表2-2 CPU 22X系列PLC主机的I/O点数及可扩展的模块数
CPU 226 PLC有两个高速脉冲输出端(Q0.0~Q0.1),输出的脉冲频率可达20kHz,用于PTO(高速脉冲束)和PWM(宽度可变脉冲输出)高速脉冲输出。
中断信号允许以极快的速度对过程信号的上升沿做出响应。
(4)存储系统:S7—200 CPU的存储系统由RAM和 EEPROM 这两种存储器构成,用于存储用户程序、CPU组态(配置)及程序数据等,如图2-3所示。
图2-3 S7—200 的存储区域
当执行程序下载操作时,用户程序、CPU 组态(配置)、程序数据等由编程器送入RAM存储器区,并自动复制到EEPROM区,永久保存。
系统掉电时,会自动将RAM中M存储器的内容保存到EEPROM存储器。
上电恢复时,用户程序及CPU组态(配置)将自动从EEPROM的永久保存区装载到RAM中。如果V存储区或M存储区内容丢失,则EEPROM永久保存区的数据会复制到RAM中。
执行PLC的上载操作时,RAM 区的用户程序、CPU 组态(配置)将上载到 PC 中, RAM和EEPROM中的数据块合并后也会上载到PC中。
(5)模拟电位器:用于改变特殊寄存器(SM32、SM33)中的数值,以改变程序运行时的参数,如定时、计数器的预置值,过程量的控制参数等。
(6)存储卡:可以选择安装扩展卡。扩展卡有EEPROM存储卡、电池和时钟卡等模块。EEPROM存储模块用于用户程序的复制。电池模块用于长时间保存数据。使用CPU 224 内部的存储电容来存储数据,数据的存储时间为190h,而使用电池模块时,数据存储时间可达200天。
2)CPU 22X的主要技术指标 CPU的技术性能指标是选用PLC的依据。S7—200 CPU的主要技术指标见表2-3。
表2-3 CPU 22X的主要技术指标
2. 工作原理
1)扫描周期 S7—200 CPU连续执行用户任务的循环序列称为扫描。PLC的一个机器扫描周期是指用户程序运行一次所经过的时间,它分为读输入(输入采样)、执行程序、处理通信请求、执行CPU 自诊断及写输出(输出刷新) 5个阶段。PLC运行状态按输入采样、程序执行、输出刷新等步骤,周而复始地循环扫描工作,如图2-4所示。
图2-4 S7—200 的扫描周期
(1)读输入阶段:对数字量和模拟量的输入信息进行处理。
对数字量输入信息的处理:每次扫描周期开始,先读数字输入点的当前值,然后将该值写到输入映像寄存器区域。在之后的用户程序执行过程中,CPU 将访问输入映像寄存器区域,而并非读取输入端口状态,因此输入信号的变化不会影响输入映像寄存器的状态。通常要求输入信号有足够的脉冲宽度,才能被响应
对模拟量输入信息的处理:在处理模拟量的输入信息时,用户可以对每个模拟通道选择数字滤波器,即对模拟通道设置数字滤波功能。对变化缓慢的输入信号,可以选择数字滤波,而对高速变化信号不能选择数字滤波
如果选择了数字滤波器,则可以选用低成本的模拟量输入模块。CPU 在每个扫描周期将自动刷新模拟输入,执行滤波功能,并存储滤波值(平均值)。当访问模拟输入时,读取该滤波值。
对于高速模拟信号,不能采用数字滤波器,只能选用智能模拟量输入模块。CPU在扫描过程中不能自动刷新模拟量输入值,当访问模拟量时,CPU每次直接从物理模块读取模拟量。
(2)执行程序:在用户程序执行阶段,PLC按照梯形图的顺序,自左而右、自上而下地逐行扫描。在此阶段,CPU从用户程序第一条指令开始执行,直到最后一条指令结束,程序运行结果放入输出映像寄存器区域。在此阶段,允许对数字量立即I/O指令和不设置数字滤波的模拟量I/O指令进行处理。在扫描周期的各部分,均可对中断事件进行响应。
(3)处理通信请求:在扫描周期的信息处理阶段,CPU处理从通信端口接收到的信息。
(4)执行CPU自诊断测试:在此阶段,CPU检查其硬件、用户程序存储器和所有的I/O模块状态。
(5)写输出:每个扫描周期的结尾,CPU把存在输出映像寄存器中的数据输出给数字量输出端点(写入输出锁存器中),更新输出状态。当 CPU 操作模式从“RUN”切换到“STOP”时,数字量输出可设置为输出表中定义的值或保持当前值;模拟量输出保持最后写的值;缺省设置时,默认的是关闭数字量输出(参见系统块设置)。
按照扫描周期的主要工作任务,也可以把扫描周期简化为读输入、执行用户程序和写输出3个阶段。
2)CPU的工作方式
(1)S7—200 CPU有两种工作方式。
STOP(停止):CPU在停止工作方式时不执行程序,此时可以向CPU装载程序或进行系统设置
RUN(运行):CPU在运行工作方式下运行用户程序
CPU前面板上用两个发光二极管显示当前的工作方式。在程序编辑、上/下载等处理过程中,必须把CPU置于“STOP”方式。
(2)改变工作方式的方法。
使用PLC上的方式开关来改变工作方式
使用STEP7—Micro/WIN32编程软件设置工作方式
在程序中插入一个STOP指令,CPU可由“RUN”方式进入“STOP”工作方式
(3)使用工作方式开关改变工作状态。用位于CPU模块的出/入口下面的工作方式开关选择CPU工作方式。工作方式开关有3个挡位,即STOP、TERM(Terminal)、RUN。
把方式开关切到“STOP”位置,可以停止程序运行
把方式开关切到“RUN”位置,可以启动程序的执行
把方式开关切到“TERM”(暂态)或“RUN”位置,允许STEP7—Micro/ WIN32 软件设置CPU的工作状态
如果工作方式开关设为“STOP”或“TERM”,则电源上电时,CPU自动进入停止工作状态;如果设置为“RUN”,则电源上电时,CPU自动进入运行工作状态。
(4)使用编程软件改变工作方式,详见附录C。
3. S7—200系列PLC内部元器件
PLC是以微处理器为核心的电子设备。PLC的指令都是针对元器件状态而言的,使用时可以将它看成是由继电器、定时器、计数器等元件构成的组合体。PLC内部设计了编程使用的各种元器件。PLC与继电器控制的根本区别在于,PLC采用的是“软”器件,以程序实现各器件之间的连接。本节从元器件的寻址方式、存储空间、功能等角度出发,介绍各种元器件的使用方法。
1)数据存储类型及寻址方式 PLC内部元器件的功能是相互独立的,在数据存储区为每一种元器件都分配有一个存储区域。每一种元器件用一组字母表示器件类型,字母加数字表示数据的存储地址。例如,I表示输入映像寄存器(又称输入继电器);Q表示输出映像寄存器(又称输出继电器);M表示内部标志位存储器;SM表示特殊标志位存储器;S表示顺序控制存储器(又称状态元件);V表示变量存储器;L表示局部存储器;T表示定时器;C表示计数器;AI表示模拟量输入映像寄存器;AQ表示模拟量输出映像寄存器;AC表示累加器;HC表示高速计数器等。掌握这些内部器件的定义、范围、功能和使用方法是PLC程序设计的基础。
(1)数据存储器的分配。S7—200按元器件的种类将数据存储器分成若干个存储区域,每个区域的存储单元按字节编址,每个字节由8位组成。可以进行位操作的存储单元,每一位都可以看成是有“0”、“1”状态的逻辑器件。
(2)数值表示方法。
① 数据类型及范围:S7—200 系列在存储单元所存放的数据类型有布尔型(BOOL),整数型(INT)和实数型(REAL)3种。
表2-4给出了不同长度数值所能表示的整数范围。
表2-4 数据大小范围及相关整数范围
布尔型数据指的是字节型无符号整数。常用的整型数据包括单字长(16位)和双字长(32位)符号整数两类。实数(浮点数)采用32位单精度数表示,数据范围是:
正数:+1.175495E-38~+3.402823E+38
负数:-1.175 495E-38~-3.402823E+38
② 常数:在S7—200的许多指令中使用了常数,常数值的长度可以是字节(Byte)、字(Word)或双字(Double Word)。CPU 以二进制方式存储常数,可以采用十进制、十六进制、ASCII码或浮点数形式书写常数。下面是用上述常用格式书写常数的例子。
十进制常数:30047
十六进制常数:16#4E5
ASCII码常数:“show”
实数或浮点格式:+4.475495E-38(正数),-4.475495E-38(负数)
二进制格式:2 #1010 0101
(3)寻址方式。S7—200 将信息存于不同的存储单元,每个单元都有一个唯一的地址,系统允许用户以字节、字、双字为单位存/取信息。提供参与操作的数据地址的方法,称为寻址方式。S7—200 数据的寻址方式有立即数寻址、直接寻址和间接寻址3 大类;有位、字节、字和双字4种寻址格式。用立即数寻址的数据在指令中以常数形式出现。下面对直接寻址和间接寻址方式加以说明。
① 直接寻址方式:是指在指令中直接使用存储器或寄存器的元件名称和地址编号,直接查找数据。数据直接寻址指的是,在指令中明确指出了存/取数据的存储器地址,允许用户程序直接存/取信息。数据直接地址表示方法如图2-5所示。
数据的直接地址包括内存区域标志符,数据大小及该字节的地址或字、双字的起始地址,以及位分隔符和位。其中有些参数可以省略,详见图中说明。
图2-5 数据直接地址表示方法
位寻址举例如图2-6所示。图中,I7.4表示数据地址为输入映像寄存器的第7字节第4位的位地址。可以根据I7.4地址对该位进行读/写操作。
图2-6 位寻址
可以进行位操作的元器件有输入映像寄存器(I)、输出映像寄存器(Q)、内部标志位(M)、特殊标志位(SM)、局部变量存储器(L)、变量存储器(V)及状态元件(S)等。
直接访问字节(8bit)、字(16bit)、双字(32bit)数据时,必须指明数据存储区域、数据长度及起始地址。当数据长度为字或双字时,最高有效字节为起始地址字节。对变量存储器V的数据操作如图2-7所示。
图2-7 字节、字、双字寻址方式
可按字节操作的元器件有I、Q、M、SM、S、V、L、AC、常数
可按字操作的元器件有I、Q、M、SM、S、T、C、V、L、AC、常数
可按双字操作的元器件有I、Q、M、SM、S、V、L、AC、HC、常数
② 间接寻址方式:是指使用地址指针来存/取存储器中的数据。使用前,首先将数据所在单元的内存地址放入地址指针寄存器中,然后根据此地址存/取数据。S7—200 CPU中允许使用指针进行间接寻址的存储区域有I、Q、V、M、S、T、C。
建立内存地址的指针为双字长度(32bit),故可以使用V、L、AC作为地址指针。必须采用双字传送指令(MOVD)将内存的某个地址移入到指针当中,以生成地址指针。指令中的操作数(内存地址)必须使用“&”符号表示内存某一位置的地址(长度为32bit)。例如,
MOVD & VB200,AC1
是将VB200在存储器中的32bit物理地址值送给AC1。“VB200”是直接地址编号,“&”为地址符号。若将本指令中“&VB200”改为“&VW200”或“VD200”,指令的功能不变。
在使用指针存取数据的指令中,操作数前加有“∗”时表示该操作数为地址指针。例如,
MOVW ∗ AC1,AC0
是将AC1作为内存地址指针,把以AC1中内容为起始地址的内存单元的16bit数据送到累加器AC0中,其操作过程如图2-8所示。
图2-8 使用指针间接寻址
2)S7—200数据存储区及元件功能
(1)I/O映像寄存器。I/O映像寄存器都是以字节为单位的寄存器,可以按位操作,它们的每一位对应一个数字量I/O接点。不同型号主机的I/O映像寄存器区域的大小和I/O点数可参考主机技术性能指标。扩展后的实际I/O点数不能超过I/O映像寄存器区域的大小, I/O映像寄存器区域未用的部分可当做内部标志位M或数据存储器(以字节为单位)使用。
① 输入映像寄存器(又称输入继电器)的工作原理分析:在输入映像寄存器(输入继电器)的电路示意图2-9中,输入继电器线圈只能由外部信号驱动,不能用程序指令驱动。常开触点和常闭触点供用户编程使用。外部信号传感器(如按钮、行程开关、现场设备、热电偶等)用于检测外部信号的变化,它们与PLC或输入模块的输入端相连。
图2-9 输入映像寄存器(输入继电器)的电路示意图
② 输出映像寄存器(又称输出继电器)工作原理分析:在输出映像寄存器(输出继电器)等效电路图2-10中,输出继电器用于将PLC的输出信号传递给负载,只能用程序指令驱动。
图2-10 输出映像寄存器(输出继电器)等效电路
程序控制能量流从输出继电器Q0.0线圈左端流入时,Q0.0线圈通电(存储器位置1),带动输出触点动作,使负载工作。
负载又称执行器(如接触器、电磁阀、LED显示器等),它们被连接到PLC输出模块的输出接线端子上,由PLC控制其启动和关闭。
I/O映像寄存器可以按位、字节、字或双字等方式编址,如 I0.1、Q0.1(位寻址), IB1、QB5(字节寻址)。
S7—200 CPU输入映像寄存器区域有I0~I15 共16个字节存储单元,能存储128 点信息。CPU 224 主机有I0.0~I0.7、I1.0~I1.5 共14个数字量输入接点,其余输入映像寄存器可用于扩展或其他。
输出映像寄存器区域共有Q0~Q15 共16个字节存储单元,能存储128 点信息。CPU224 主机有Q0.0~Q0.7、Q1.0~Q1.1 共10个数字量输出端点,其余输出映像寄存器可用于扩展或其他。
(2)变量存储器(V):用于存储运算的中间结果,也可以用于保存工序或与任务相关的其他数据,如模拟量控制、数据运算、设置参数等。变量存储器可按位使用,也可按字节、字或双字使用。变量存储器有较大的存储空间,如 CPU 224 有 VB0.0~VB5119.7的5KB,CPU 214 有VB0.0~VB2047.7的2KB。
(3)内部标志位(M)存储区:内部标志位(M)可以按位使用,作为控制继电器(又称中间继电器),用于存储中间操作数或其他控制信息;也可以按字节、字或双字来存取存储区的数据,编址范围是M0.0~M31.7。
(4)顺序控制继电器(S)存储区:顺序控制继电器 S 又称为状态元件,用于组织机器操作或进入等效程序段工步,以实现顺序控制和步进控制。可以按位、字节、字或双字来存取S位,编址范围是S0.0~S31.7。
(5)特殊标志位(SM)存储器:SM 存储器提供了 CPU 与用户程序之间信息传递的方法,用户可以使用这些特殊标志位提供的信息,控制 S7—200 CPU的一些特殊功能。特殊标志位可以分为只读区和读/写区两大部分。CPU 224的 SM 编址范围为 SM0.0~SM179.7共180个字节,CPU 214为SM0.0~SM85.7 共86个字节。其中,SM0.0~SM29.7的30个字节为只读型区域。
例如,特殊标志位存储器的只读字节 SMB0为状态位,在每次扫描循环结尾时由S7—200 CPU 更新,用户可使用这些位的信息启动程序内的功能,编制用户程序。SMB0字节的特殊标志位定义如下所述。
SM0.0:RUN监控。PLC在运行状态时该位始终为“1”。
SM0.1:首次扫描时为1,PLC由停止转为运行状态时,ON(“1”态)一个扫描周期。用于程序的初始化。
SM0.2:当RAM中数据丢失时,ON一个扫描周期。用于出错处理。
SM0.3:PLC上电进入运行方式,ON一个扫描周期。可用在起动操作之前给设备提供一个预热时间。
SM0.4:分脉冲,该位输出一个占空比为50%的分时钟脉冲。可用做时间基准或简易延时。
SM0.5:秒脉冲,该位输出一个占空比为50%的秒时钟脉冲。可用做时间基准或简易延时。
SM0.6:扫描时钟,一个扫描周期为ON(高电平),下一个为OFF(低电平),循环交替。
SM0.7:工作方式开关位置指示,“0”为“TERM”位置,“1”为“RUN”位置。为“1”时,使自由端口通信方式有效。
指令状态位SMB1提供不同指令的错误指示,如表及数学操作。其部分位的定义如下所述。
SM1.0:零标志,运算结果为“0”时,该位置“1”;
SM1.1:溢出标志,运算结果溢出或查出非法数值时,该位置“1”;
SM1.2:负数标志,数学运算结果为负时,该位为“1”。
特殊标志位SM的全部定义及功能详见附录C。
(6)局部存储器(L):局部存储器(L)和变量存储器(V)很相似,主要区别在于局部存储器(L)是局部有效的,变量存储器(V)则是全局有效的。全局有效是指同一个存储器可以被任何程序(如主程序、中断程序或子程序)存/取,局部有效是指存储区和特定的程序相关联。
S7—200有64B的局部存储器,编址范围为LB0.0~LB63.7。其中的60B 可以用做暂时存储器或给子程序传递参数,最后4B 为系统保留字节。S7—200 PLC 根据需要分配局部存储器。当主程序执行时,64B的局部存储器分配给主程序;当中断或调用子程序时,将局部存储器重新分配给相应程序。局部存储器在分配时,PLC 不进行初始化,初始值是任意的。
可以用直接寻址方式按字节、字或双字来访问局部存储器,也可以把局部存储器作为间接寻址的指针,但不能作为间接寻址的存储区域。
(7)定时器:PLC中的定时器相当于时间继电器,用于延时控制。S7—200 CPU 中的定时器是对内部时钟的时间增量计时的设备。
定时器用符号T和地址编号表示,编址范围为T0~T255(22X),T0~T127(21X)。定时器的主要参数有定时器预置值,当前计时值和状态位。
① 时间预置值:时间预置值为16位符号整数,由程序指令给定,详见第5 章。
② 当前计时值:在S7—200 定时器中有一个16位的当前值寄存器,用于存放当前计时值(16位符号整数)。当定时器输入条件满足时,当前值从零开始增加,每隔1个时间基准增加1。时间基准又称定时精度。S7—200 共有3个时基等级,即1ms,10ms,100ms。定时器按地址编号的不同,分属各个时基等级。
③ 状态位:每个定时器除有预置值和当前值外,还有1位状态位。定时器的当前值增加到大于等于预置值后,状态位为“1”,梯形图中代表状态位读操作的常开触点闭合。
定时器的编址(如T3)可以用于访问定时器的状态位,也可用于访问当前值。存/取定时器数据的实例如图2-11所示。
图2-11 存/取定时器数据的实例
(8)计数器:主要用于累计输入脉冲个数。其结构与定时器相似,其设定值(预置值)在程序中被赋予,有一个16位的当前值寄存器和一位状态位。当前值寄存器用于累计脉冲个数;当计数器当前值大于或等于预置值时,状态位置“1”。
S7—200 CPU提供有3种类型的计数器,即增计数、减计数和增/减计数。计数器用符号C和地址编号表示,编址范围为C0~C255(22X),C0~C127(21X)。
计数器数据存/取操作与定时器的类似,可参考图2-11 理解。
(9)模拟量I/O映像寄存器(AI/AQ):S7—200的模拟量输入电路将外部输入的模拟量(如温度、电压)等转换成1W(16位)的数字量,存入模拟量输入映像寄存器区域,可以用区域标志符(AI)、数据长度(W)及字节的起始地址来存取这些值。因为模拟量为1W,所以起始地址定义为偶数字节地址,如 AIW0,AIW2,…,AIW62,共有32个模拟量输入点。模拟量输入值为只读数据。存/取模拟量输入值的实例如图2-12所示。
图2-12 存/取模拟量输入值的实例
S7—200 模拟量输出电路将模拟量输出映像寄存器区域的1W(16位)数字值转换为模拟电流或电压输出。可以用标志符(AQ)、数据长度(W)及起始字节地址来设置。因为模拟量输出数据长度为16位,所以起始地址也采用偶数字节地址,如 AQW0,AQW2,…, AQW62,共有32个模拟量输出点。用户程序只能给输出映像寄存器区域置数,而不能读取。存/取模拟量输出值的实例如图2-13所示。
图2-13 存/取模拟量输出值
(10)累加器(AC):是用于暂存数据的寄存器,可以用于同子程序之间传递参数,以及存储计算结果的中间值。S7—200 CPU中提供了4个32位累加器AC0~AC3。累加器支持以字节(B)、字(W)和双字(D)的存/取。按字节或字为单位存/取时,累加器只使用低8位或低16位,数据存储长度由所用指令决定。累加器的操作如图2-14所示。
图2-14 累加器的操作
(11)高速计数器(HC):CPU 22X PLC提供了6个高速计数器(每个计数器的最高频率为30kHz),用于累计比CPU扫描速率更快的事件。高速计数器的当前值为双字长的符号整数,且为只读值。高速计数器的地址由符号HC和编号组成,如HC0,HC1,…,HC5。
4. I/O及扩展
S7—200 系列PLC主机基本单元的最大I/O点数为40(CPU 226为24 输入,16 输出)。PLC内部映像寄存器资源的最大数字量I/O映像区的输入点I0~I15为16B,输出点 Q0 ~Q15 也为16B,共32B 256 点(32 × 8)。最大模拟量I/O为64 点,即 AIW0~AIW62 共32个输入点,AQW0~AQW62 共32个输出点(偶数递增)。S7—200 系统最多可扩展7个模块。
PLC扩展模块的使用,不仅增加了 I/O 点数,还增加了 PLC的许多控制功能。S7—200 PLC系列目前总共可以提供3 大类共9 种数字量I/O模块;3 大类共5 种模拟量I/O模块,两种通信处理模块。常用的扩展模块型号、功能及用途见表2-5。
表2-5 S7—200常用的扩展模块型号、功能及用途
1)本机及扩展I/O编址 CPU本机的I/O点具有固定的I/O地址,可以把扩展的I/O模块接至主机右侧来增加I/O点数。扩展模块I/O地址由扩展模块在I/O链中的位置决定。输入模块与输出模块的地址不会冲突,模拟量控制模块地址也不会影响数字量控制模块。例如,以CPU 224为主机,扩展5块数字、模拟I/O模块,其I/O链的连接如图2-15所示。
图2-15 I/O链的连接图
图2-15所示I/O链中各模块对应的I/O地址见表2-6。
表2-6 模块编址表
如果I/O物理点与映像寄存器字节内的位数不对应,那么映像寄存器字节剩余位就不会再分配给I/O链中的后续模块了。
输出映像寄存器的多余位和输入映像寄存器的多余字节可以作为内部存储器标志位使用。输入模块在每次输入更新时,都把保留字节的未用位清零。因此,输入映像寄存器已用字节的多余位,不能作为内部存储器标志位。
模拟量控制模块总是以2B递增方式来分配空间。缺省的模拟量I/O点不分配模拟量I/O映像存储空间,所以后续模拟量I/O控制模块无法使用未用的模拟量I/O点。
2)扩展模块的安装与连接 S7—200 PLC扩展模块具有与基本单元相同的设计特点,其固定方式与CPU主机相同。主机及I/O扩展模块有导轨安装和直接安装两种方式,典型安装方式如图2-16所示。
图2-16 S7—200 PLC的安装方式
导轨安装方式是在DIN标准导轨上的安装,即I/O扩展模块安装在紧靠CPU右侧的导轨上。该安装方式具有安装方便、拆卸灵活等优点。
直接安装是将螺钉通过安装固定螺孔将模块固定在配电盘上,它具有安装可靠、防震性好等特点。当需要扩展的模块较多时,可以使用扩展连接电缆重叠排布(分行安装)。
扩展模块除了自身需要24V供电电源外,还要从I/O总线上获得+5V DC的电源,必要时,需参照表2-7校验主机+5V DC的电流驱动能力。
表2-7 S7—200 CPU所提供的电流
3)S7—200系统块配置 系统块是PLC系统模块的简称。系统模块可以通过软件设置其功能,如对数字量和模拟量输入信号的滤波、脉冲截取(捕捉)、输出表的配置等。另外,还有对通信口、保存范围、背景时间及密码等的设置。系统模块设置原理及方法详见附录B。
论题10 编程语言与编程方法
1. S7—200系列PLC的编程语言
S7—200系列PLC支持SIMATIC和IEC1131⁃3两种基本类型的指令集,编程时可任意选择。SIMATIC指令集是西门子公司PLC专用的指令集,具有专用性强、执行速度快等优点,可提供LAD,STL,FBD等多种编程语言。
IEC1131⁃3指令集是按国际电工委员会(IEC)PLC编程标准提供的指令系统。该编程语言适用于不同厂家的PLC产品,有LAD和FBD两种编辑器。
学习和掌握IEC1131⁃3指令的主要目的是学习如何创建不同品牌PLC的程序。其指令执行时间可能较长,有一些指令和语言规则与SIMATIC有所区别。
S7—200可以接受由SIMATIC 和IEC1131⁃3 两种指令系统编制的程序,但SIMATIC 和IEC1131⁃3指令系统并不兼容。本书以SIMATIC指令系统为例进行重点介绍。
1)梯形图编辑器 利用梯形图(LAD)编辑器可以建立与电气原理图相类似的程序。梯形图是PLC编程的高级语言,很容易被PLC编程人员和维护人员接受和掌握,所有PLC厂商均支持梯形图语言编程。
梯形图按逻辑关系可分成梯级或网络段,又简称段。程序执行时按段扫描。清晰的段结构有利于程序的阅读理解和运行调试。通过软件的编译功能,可以直接指出错误指令所在段的段标号,有利于用户程序的修正。
图2-17给出了一个梯形图应用实例。LAD图形指令有3个基本形式,即触点、线圈和指令盒。触点表示输入条件,如由开关、按钮控制的输入映像寄存器状态和内部寄存器状态等。线圈表示输出结果。利用PLC输出点可直接驱动灯、继电器、接触器线圈、内部输出条件等负载。指令盒代表一些功能较复杂的附加指令,如定时器、计数器或数学运算指令的附加指令。
图2-17 梯形图应用实例
2)语句表编辑器 语句表(STL)编辑器使用指令助记符创建控制程序,类似于计算机的汇编语言,适合熟悉PLC并且有逻辑编程经验的程序员编程。语句表编程器提供了不用梯形图或功能块图编程器编程的途径。STL是手持式编程器唯一能够使用的编程语言,是一种面向机器的语言,具有指令简单、执行速度快等优点。STEP7—Micro/WIN32编程软件具有梯形图程序和语句表指令的相互转换功能,为STL程序的编制提供了方便。
例如,由图2-17中的梯形图(LAD)程序转换的语句表(STL)程序如下:
NETWORK 1 //网络题目(单行) LD I0.0 O Q0.0 AN I0.1 = Q0.0 NETWORK 2 LD I0.2 TON T37,+500
3)功能块图编辑器 STEP7—Micro/ WIN32 功能块图(FBD)是利用逻辑门图形组成的功能块图指令系统。功能块图指令由 I/O 段及逻辑关系函数组成。用 STEP7—Micro/WIN32V3.1编程软件LAD,STL与FBD编辑器的自动转换功能,可得到与图2-17相应的功能块图,如图2-18所示。
图2-18 由梯形图程序转换成的功能块图程序
2. 梯形图及语句表的结构规则
1)梯形图的结构规则 梯形图作为一种编程语言,绘制时有一定的规则。另外,PLC指令具有有限的数量,也就是说,只有有限种的符号组合可以为指令表达,不能为指令表达的梯形图从语法上来说是不正确的,尽管这些“不正确的”梯形图有时能正确地表达控制所需的逻辑关系。为此,在编辑梯形图时,要注意以下3点。
(1)梯形图是以左母线开始的一个个支路构成的。各支路要以左母线为起点,从左向右分行绘出。每一行的前部是触点群组成的“工作条件”,最右边是线圈或功能框表达的“工作结果”。一行绘完,自上而下依次再绘一行。
(2)触点应画在水平线上,不能画在垂直分支线上。如图2-19(a)所示触点3被画在垂直线上,便很难正确识别它与其他触点的关系。因此,应根据自左至右、自上而下的原则画成如图2-19(b)所示的形式。
图2-19 梯形图绘制举例
(3)在有多个串联回路相并联时,应将触点最多的那个串联回路放在梯形图的最上面。在有多个并联回路相串联时,应将触点最多的并联回路放在梯形图的最左面。这样,才会使编制的程序简洁明了,语句较少。图2-20和图2-21给出了梯形图的推荐画法。
图2-20 梯形图绘制说明
图2-21 梯形图的推荐画法
2)语句表的编辑规则 有许多场合需由绘好的梯形图列写语句表,这时要根据梯形图上的符号及符号间的位置关系正确地选取指令,以及注意正确的表达顺序。
(1)列写指令的顺序务必按梯形图支路自上而下、从左到右的原则进行。图2-22(a)中梯形图在列写指令表时的编程顺序如图2-22(b)所示。
图2-22 由梯形图列写指令表的顺序说明
(2)在处理较复杂的触点结构时,如触点块的串联、并联或堆栈相关指令,指令表的表达顺序为:先写出参与因素的内容,再表达参与因素之间的关系。图2-22(b)中步骤③及⑧对应的指令为OLD及ALD,在编写时不可遗漏。
3)双线圈输出问题 在梯形图中,线圈前边的触点代表输出的条件,线圈代表输出。在同一程序中,某个线圈的输出条件可以非常复杂,但却应是唯一且集中表达的。由PLC的操作系统引出的梯形图编绘法则规定,某个线圈在梯形图中只能出现一次,若多次出现,则称为双线圈输出。且认定,程序中存在双线圈输出时,前边的程序无效,最后一次输出才是有效的。本事件的特例是,同一程序的两个绝不会同时执行的程序段中可以有相同的输出线圈。
小结
本章介绍了PLC的产生和定义,以及PLC的主要特点、分类方法和发展方向。通过对本章的学习,可以对PLC有初步的了解。本章以西门子公司的CPU 22X系列PLC为例,介绍了PLC的结构、原理、内部元器件的定义、作用,存储器分配及I/O扩展方法,并介绍了编程语言。重点包括以下内容。
PLC应具备的10个指标
国际电工委员会(CIEC)1987年颁布的PLC的定义
PLC具有可靠性高、控制功能强、组成灵活、控制方便4项特点
PLC的点数、结构、用途的分类方法
CPU 22X的输入及输出电路结构和参数
S7—200 PLC的扫描周期分为5个阶段,可简化为读输入、执行用户程序和写输出3个主要阶段
S7—200将数据存储器分配给各个编程元件,系统设计了11 类元器件供用户编程使用,本章重点讲述了各元器件的地址分配和操作数范围
I/O扩展链与I/O地址的分配遵循从左至右的原则
S7—200有LAD,STL和FBD三种编程语言。LAD指令符号的3种基本形式为触点、线圈和指令盒
思考题
(1)简述PLC的定义。
(2)PLC的主要特点有哪些?
(3)PLC有哪几种分类方法?
(4)小型PLC的发展方向有哪些?
(5)S7系列PLC有哪些子系列?
(6)S7—22X系列PLC有哪些型号的CPU?
(7)S7—200 PLC有哪些输出方式?各适合于什么类型的负载?
(8)S7—22X系列PLC的用户程序下载后存放在什么存储器中?掉电后是否会丢失?
(9)S7—200 CPU的一个机器扫描周期分为哪几个阶段?各执行什么操作?
(10)S7—200 CPU有哪些工作模式?在脱机时如何改变工作模式?联机操作时,改变工作模式的最佳方法是什么?
(11)S7—200有哪两种寻址方式?
(12)S7—200 PLC有哪些内部元器件?各元器件的地址分配和操作数范围怎么确定?
(13)S7—200有哪几类扩展模块?最大可扩展的I/O地址范围是多大?
(14)梯形图程序能否转换成语句表程序?所有语句表程序是否均能转换成梯形图程序?