1、 PLC的硬件组成原理 PLC的工作原理 PLC的编程变量本章讲述的主要内容1 2022-7-262.1*PLC硬件系统的基本组成 2.2 PLC的软件系统 2.3*PLC的工作原理 2.4*西门子PLC的存储区与编程变量 2.5 S7-200/300/400 PLC的硬件模块构成 本章讲述的主要内容2 2022-7-26可编程控制器是一种工业控制装置,从装置的组成来说,可编程控制器是由硬件系统和软件系统组成的。2.1.1 组成概述组成概述3 2022-7-26 可编程控制器的硬件系统主要由中央处理器(CPU)、存储器、输入单元、输出单元等部分组成如图2-1所示。其中,CPU是PLC的核心;输
2、入单元与输出单元是连接现场输入/输出设备与CPU之间的接口电路,也称为输入接口和输出接口。此外,可编程控制器的硬件系统还包括通信接口、扩展接口、编程器、电源等。2.1.2 硬件组成硬件组成4 2022-7-262.1.2 硬件组成硬件组成图2-1 整体式的硬件组成5 2022-7-262.1.2 硬件组成硬件组成 整体式的PLC,其所有部件都装在同一机壳内;对于模块式PLC,各部件封装成模块,各模块通过连接安装在机器或导轨上,其组成形式与整体式的PLC不同,如图2-2所示。无论是那种结构类型的PLC,都可根据用户需要进行配置与组合。尽管整体式与模块式PLC的结构不太一样,但各部分的功能作用是相
3、同的,下面对PLC各组成部分进行简单介绍。6 2022-7-262.1.2 硬件组成硬件组成图2-2 模块式PLC的硬件结构7 2022-7-262.1.2 硬件组成硬件组成1.中央处理单元(CPU)同一般的微机一样,CPU是PLC的核心。一般认为PLC中的CPU有三类:通用微处理器(如Z80、8086等)、单片计算机(如8031、8096等)和专用微处理器。历史上,小型PLC大多采用8位通用微处理器和单片微处理器;大中型PLC大多采用16位通用微处理器和单片微处理器。在PLC中的CPU又包含控制器和运算器,通过执行系统程序,指挥PLC进行工作,归纳起来主要有以下几个方面作用:(1)接收从编程
4、装置输入的程序和数据;(2)诊断电源、PLC内部电路的工作故障和编程中的语法错误等;(3)通过输入接口接收现场的状态或数据,并存入输入映像寄存器或数据寄存器中;(4)从存储器逐条读取用户程序,并执行程序;(5)根据执行的结果,更新有关标志位的状态和输出映像寄存器的内容,通过输出单元实现输出控制。有些PLC还具有制表打印或数据通信等功能。8 2022-7-262.1.2 硬件组成硬件组成2.存储器 存储器主要有两种:一种是可进行读写操作的随机存储器RAM,另一种是只读存储器ROM、PROM、EPROM和E2PROM。在PLC中,存储器主要用于存放系统程序、用户程序及工作数据。系统程序是由PLC的
5、制造厂家编写的,和PLC的硬件组成有关,完成系统诊断、命令解释、功能子程序调用管理、逻辑运算、通信及各种参数设定等功能,提供PLC运行的平台。用户程序是随PLC的控制对象而定的,由用户根据对象生产工艺的控制要求而编制的应用程序。工作数据是PLC运行过程中经常变化、经常存取的一些数据。9 2022-7-262.1.2 硬件组成硬件组成3.输入/输出单元 输入/输出单元通常也叫I/O单元或I/O模块,是PLC与工业生产现场之间的连接部件。PLC通过输入接口可以检测被控对象的各种数据,以这些数据作为PLC对被控对象进行控制的依据;同时PLC又通过输出接口将处理结果送给被控制对象,以实现控制目的。由于
6、外部输入设备和输出设备所需的信号电平是多种多样的,而PLC内部CPU的处理的信息只能是标准电平,所以I/O接口要实现这种转换。I/O接口一般都具有光电隔离和滤波功能,以提高PLC的抗干扰能力。另外,I/O接口上通常还有状态指示,工作状况直观,便于维护。PLC提供了多种操作电平和驱动能力的I/O接口,有各种各样功能的I/O接口供用户选用。I/O接口的主要类型有:数字量(开关量)输入、数字量(开关量)输出、模拟量输入、模拟量输等。常用的开关量输入接口按其使用的电源不同有两种类型:直流输入接口和交流输入接口,其基本电路如图2-3和图2-4所示。10 2022-7-262.1.2 硬件组成硬件组成图2
7、-3直流输入接口原理图 11 2022-7-262.1.2 硬件组成硬件组成图2-4 交流输入接口原理图12 2022-7-262.1.2 硬件组成硬件组成 常用的开关量输出接口按输出器件不同有三种类型:继电器输出、晶体管输出和双向晶闸管输出,其基本原理电路如图2-5、图2-6和图2-7所示。继电器输出接口可驱动交直流负载,但其响应时间长,动作频率低;而晶体管输出和双向晶闸管输出接口的响应速度快,动作频率高,注意前者只能用于驱动直流负载,后者只能用于交流负载。13 2022-7-262.1.2 硬件组成硬件组成图2-5继电器输出接口原理图14 2022-7-26图2-6晶体管输出接口原理图 2
8、.1.2 硬件组成硬件组成15 2022-7-262.1.2 硬件组成硬件组成图2-7 双向晶闸管输出接口原理图16 2022-7-262.1.2 硬件组成硬件组成4.通信接口 PLC配有各种通信接口,这些通信接口都带有通信处理器。PLC通过这些接口可与计算机或其它PLC等设备实现通信。与人机界面连接,可将控制过程图像显示出来;与其它PLC连接,可组成多机系统或连接成网络,实现更大规模控制。工业上普遍使用的远程I/O必须配备相应的通信接口模块。17 2022-7-262.1.2 硬件组成硬件组成5.智能接口模块 智能接口模块是一独立的计算机系统,它有自己的CPU、系统程序、存储器以及与PLC系
9、统总线相连的接口。它作为PLC系统的一个模块,通过总线与PLC相连,进行数据交换,并在PLC的协调管理下独立地进行工作。PLC的智能接口模块种类很多,如高速计数模块、闭环控制模块、运动控制模块等。18 2022-7-262.1.2 硬件组成硬件组成6.编程装置 编程装置的作用是编辑、调试、输入用户程序,也可在线控制PLC内部状态和参数,与PLC进行人机对话。它是开发、应用、维护PLC不可缺少的工具。常见的编程装置有手持编程器和计算机编程。计算机编程是现在的主流。它既可以编制、修改PLC的梯形图程序,又可以监视系统运行、打印文件、并可以进行程序仿真。19 2022-7-262.1.2 硬件组成硬
10、件组成7.电源及其它外部设备 PLC配有开关电源,以供内部电路使用。与普通电源相比,PLC电源的稳定性好、抗干扰能力强。对电网提供的电源稳定度要求不高,一般允许电源电压在其额定值15%的范围内波动。一般PLC还向外提供直流24V稳压电源,用于对外部传感器供电。除了上述的部件和设备外,PLC还有一些其它外部设备,如EPROM写入器、外存储器、人机接口装置等。20 2022-7-262.1*PLC硬件系统的基本组成 2.2 PLC的软件系统 2.3*PLC的工作原理 2.4*西门子PLC的存储区与编程变量 2.5 S7-200/300/400 PLC的硬件模块构成 本章讲述的主要内容21 2022
11、-7-262.2.1 可编程控制器的软件结构可编程控制器的软件结构 PLC软件系统由系统程序、组态信息和用户程序三部分组成,如图2-8所示。系统程序包括监控程序、编译程序、诊断程序等,主要用于管理全机、将程序语言翻译成机器语言,诊断机器故障。系统软件是PLC这个计算机系统的操作系统。系统软件由PLC厂家在出厂前固化在ROM或EPROM中,用户不能干预。组态信息和用户程序是用户根据现场控制要求,用PLC的组态和编程工具定义和编制的系统信息和应用程序。图2-8 PLC的软件系统组成与结构 22 2022-7-262.2.2编程语言概述编程语言概述 PLC的用户程序是设计人员根据控制系统的工艺控制要
12、求,通过PLC编程语言的编制设计的。根据国际电工委员会制定的工业控制编程语言标准(IEC1131-3),PLC编程语言有5种形式:(1)顺序功能图语言(Sequential function chart,SFC)(2)梯形图语言 (Ladder diagram,LAD)(3)功能块图语言 (Function Block Diagram,FBD)(4)语句表 语言 (Statement List,STL)(5)结构文本语言 (Structured Text,ST)23 2022-7-261.梯形图语言(梯形图语言(LADLAD)梯形图语言是PLC程序设计中最常用的编程语言。它是与继电器线路类似的
13、一种编程语言。由于电气设计人员对继电器控制较为熟悉,因此,梯形图编程语言得到了广泛的欢迎和应用。梯形图语言是最常用的一种语言。它是一种图形语言,沿用传统控制图中的继电器触点、线圈、串联等术语和一些图形符号。左右的竖线称为左右母线,右边的母线经常省去。梯形图中接点(触点)分为常开接点和常闭接点。接点可以属于PLC的输入继电器,也可以属于PLC的内部继电器或其它继电器。梯形图中的接点可以任意串、并联,但线圈是并联的,不要串联。内部继电器、计数器、定时器等均不能直接控制外部负载,只能做中间结果供CPU内部使用。24 2022-7-261.梯形图语言(梯形图语言(LAD)另外梯形图编程语言与电气原理图
14、相对应,具有直观性和对应性,与原有继电器控制相一致,电气技术人员易于掌握。梯形图编程语言与原有的继电器控制的不同点是,梯形图中的能流不是实际意义的电流,内部的继电器也不是实际存在的继电器,应用时需要与原有继电器控制的概念区别对待。图2-9是典型的交流异步电动机直接启动控制电路图,图2-10是采用PLC控制的程序梯形图。图2-9 电机直接启动电路图25 2022-7-261.梯形图语言(梯形图语言(LAD)图2-10 PLC的梯形图程序26 2022-7-262.语句表语言(语句表语言(STLSTL)语句表编程语言是与汇编语言类似的一种助记符编程语言,和汇编语言一样由操作码和操作数组成。在无计算
15、机的情况下,适合采用PLC手持编程器对用户程序进行编制。同时,语句表编程语言与梯形图编程语言一一对应,在PLC编程软件下一般可以相互转换。图2-11就是与图2-10PLC梯形图对应的指令表。语句表编程语言的特点是:采用助记符来表示操作功能,具有容易书写的特点。但不够形象,不容易掌握;在手持编程器的键盘上采用助记符表示,便于操作,可在无计算机的场合用手持编程器进行编程设计;语句表与梯形图有对应关系。语言表的使用需要较长时间的培训和练习,但有时可以实现某些梯形图不能实现的功能。27 2022-7-262.3.3 语句表语言(语句表语言(STLSTL)图2-11 PLC的语句表程序 28 2022-
16、7-263.功能块图语言(功能块图语言(FBDFBD)功能块图语言是与数字逻辑电路类似的一种PLC编程语言。功能块图使用类似于布尔代数的图形逻辑符号来表示控制逻辑,一些复杂的功能用指令框表示,适合于有数字电路基础的编程人员使用。功能块图用类似于与门、或门的框图来表示逻辑运算关系,方框的左侧为逻辑运算的输入变量,右侧为输出变量,输入、输出端的小圆圈表示“非”运算,方框用“导线”连在一起,信号自左向右。采用功能块图的形式来表示模块所具有的功能,不同的功能模块有不同的功能。功能模块图程序设计语言的特点是:以功能模块为单位,分析理解控制方案简单容易;功能模块是用图形的形式表达功能,直观性强,对于具有数
17、字逻辑电路基础的设计人员很容易掌握的编程;对规模大、控制逻辑关系复杂的控制系统,由于功能模块图能够清楚表达功能关系,使编程调试时间大大减少。29 2022-7-262.3.4 功能块图语言(功能块图语言(FBDFBD)图2-12 功能模块图30 2022-7-264.顺序功能图语言(顺序功能图语言(SFCSFC)顺序功能流程图语言是为了满足顺序逻辑控制而设计的编程语言。编程时将顺序流程动作的过程分成步和转换条件,根据转移条件对控制系统的功能流程顺序进行分配,一步一步的按照顺序动作。每一步代表一个控制功能任务,用方框表示。在方框内含有用于完成相应控制功能任务的梯形图逻辑。这种编程语言使程序结构清
18、晰,易于阅读及维护,大大减轻编程的工作量,缩短编程和调试时间。用于系统规模较大,程序关系较复杂的场合。图2-13是一个简单的顺序功能流程图编程语言的示意图。31 2022-7-264.顺序功能图语言(顺序功能图语言(SFCSFC)图2-13 顺序功能图编程语言的示意图32 2022-7-264.顺序功能图语言(顺序功能图语言(SFCSFC)顺序功能流程图编程语言的特点:以功能为主线,按照功能流程的顺序分配,条理清楚,便于用户理解程序;避免梯形图或其他语言不能顺序动作的缺陷,同时也避免了用梯形图语言对顺序动作编程时,由于机械互锁造成用户程序结构复杂、难以理解的缺陷;用户程序扫描时间也可能会缩短。
19、33 2022-7-265.结构化文本语言(结构化文本语言(STST)结构化文本语言是用结构化的描述文本来描述程序的一种编程语言。它是类似于高级语言的一种编程语言,常采用结构化文本来描述控制系统中各个变量的关系,主要用于其他编程语言较难实现的用户程序编制。大多数PLC制造商采用的结构化文本编程语言与BASIC语言、PASCAL语言或C语言等高级语言相类似,但为了应用方便,在语句的表达方法及语句的种类等方面都进行了简化。结构化文本编程语言的特点:采用高级语言进行编程,可以完成较复杂的控制运算;需要有一定的计算机高级语言的知识和编程技巧,对工程设计人员要求较高,直观性和操作性较差。34 2022-
20、7-265.结构化文本语言(结构化文本语言(STST)不同型号的PLC编程软件对以上五种编程语言的支持种类是不同的,早期的PLC仅仅支持梯形图编程语言和指令表编程语言。目前的PLC对梯形图(LAD)、语句表(STL)、功能块图(FBD)编程语言都以支持。比如西门子S7-200/300/400PLC。在PLC控制系统设计中,要求设计人员不但对PLC的硬件性能了解外,也要了解PLC对编程语言的支持情况。35 2022-7-262.1*PLC硬件系统的基本组成 2.2 PLC的软件系统 2.3*PLC的工作原理 2.4*西门子PLC的存储区与编程变量 2.5 S7-200/300/400 PLC的硬
21、件模块构成 本章讲述的主要内容36 2022-7-262.3.1 PLC的控制作用的控制作用 传统的电气控制通过继电器控制电路来实现,图2-14为电机正反转继电器控制电路,是一种典型的继电器控制电路,分为主电路(左边)和控制电路(右边)。图2-14 电机正反转继电器控制电路(左:主电路;右:控制电路)37 2022-7-262.3.1 PLC的控制作用的控制作用 图2-15为电机正反转PLC控制电路,与电气控制电路相比,其硬件连接简洁。当然,其控制作用不再通过硬件的连接方式来实现,而是由图2-16所示的程序来实现的。图2-15 电机正反转PLC控制电路 38 2022-7-262.2.1 PL
22、C的控制作用的控制作用图2-16 继电器控制电路向PLC程序的转换 通过电机正反转的例子,我们一方面要看到PLC控制是继电器控制的继承与发展,控制程序与继电器的硬件连接之间存在对应的逻辑关系;另一方面,也要看到,PLC是通过程序来实现控制作用的,具有更大的灵活性,控制作用的实现和改变都和程序相关。39 2022-7-262.3.2 PLCPLC的工作过程的工作过程 PLC一般有两种工作状态:RUN和STOP。RUN状态是PLC的运行状态;STOP(PRG)状态是停止状态,也叫编程状态,下载程序时PLC必须处于停止状态。PLC上有选择开关来决定PLC当前的状态,也可以通过上位机来设置PLC的状态
23、。PLC是按循环扫描工作方式工作的。如图2-17所示,PLC周期性完成内部处理、通信服务、输入采样、执行程序和输出刷新这5件工作。一个循环周期结束之后,再开始新的周期,每个循环周期的时间长度随PLC的性能和程序不同而有所差别,一般为10毫秒左右。在STOP状态下,只完成内部处理和通信服务。40 2022-7-262.3.2 PLCPLC的工作过程的工作过程图2-17 PLC的循环扫描41 2022-7-262.3.2 PLCPLC的工作过程的工作过程1.内部处理 PLC在内部处理阶段,主要完成自检、自诊断等工作。2.通信服务 PLC在通信服务阶段主要负责通过网络和其它PLC或现场设备进行数据的
24、交换。3.输入采样 在输入采样阶段,PLC按顺序对所有输入接口的输入状态进行采样,并存入输入映像寄存器中,此时输入映像寄存器被刷新。输入映像寄存器中的变量,我们称为输入继电器,一般用I或X表示,如图2-18中的I0.0和I0.1等,其状态分为有输入(ON或1)和没有输入(OFF或0)两种,而且完全由外界的输入端决定,不能由程序改变其状态。PLC在一个扫描周期内,对输入状态的采样只在输入采样阶段进行。当PLC进入程序执行阶段后,输入端将被封锁,直到下一个扫描周期的输入采样阶段才对输入状态进行重新采样。这种方式称为集中采样。所谓集中采样是在一个扫描周期内,集中一段时间对输入状态进行采样。42 20
25、22-7-262.3.2 PLCPLC的工作过程的工作过程图2-18 PLC的工作过程43 2022-7-264.执行程序 如图2-18,在程序执行阶段,PLC按顺序对用户程序进行扫描执行。若程序用梯形图来表示,则总是按先上后下,先左后右的顺序进行。当遇到程序跳转指令时,则根据跳转条件是否满足来决定程序是否跳转。当指令中涉及到输入、输出状态时,PLC从输入映像寄存器和元件映像寄存器中读出,根据用户程序进行运算,运算的结果再存入输出映像寄存器和元件映像寄存器中。对于输出映像寄存器和元件映像寄存器来说,其内容会随程序执行的过程而变化。在程序执行阶段,用户程序的执行和PLC的输入输出接口一般不直接发
26、生关系,只处理和决定变量的状态。2.3.2 PLCPLC的工作过程的工作过程44 2022-7-265输出刷新 在某一扫描周期内,当所有程序执行完毕后,进入输出刷新阶段。在这一阶段里,PLC将输出映像寄存器中的输出继电器状态,转存到输出锁存器中,并通过一定方式输出,驱动外部负载。在用户程序中,一般只对输出继电器进行一次赋值,也就是说输出继电器的线圈只能出现一次。有些PLC允许对输出结果多次赋值,则最后一次有效,但对初学者一般不推荐对输出继电器多次赋值。在一个扫描周期内,只在输出刷新阶段才将输出状态从输出映像寄存器中输出,对输出接口进行刷新。在其它阶段里出状态一直保存在输出映象寄存器中。这种方式
27、称为集中输出。2.3.2 PLCPLC的工作过程的工作过程45 2022-7-26对于小型PLC,其I/O点数较少,用户程序较短,一般采用集中采样、集中输出的工作方式,虽然在一定程度上降低了系统的响应速度,但使PLC工作时大多数时间与外部输入输出设备隔离,从根本上提高了系统的抗干扰能力,增强了系统的总体响应速度。而对于大中型PLC,其I/O点数较多,控制功能强,用户程序较长,为提高系统响应速度,可以采用定期采样、定期输出方式,或中断输入、输出方式以及采用智能I/O接口等多种方式。2.3.2 PLCPLC的工作过程的工作过程46 2022-7-262.3.3 PLCPLC的输出滞后问题的输出滞后
28、问题 可编程控制器是根据输入的情况以及程序的内容,来决定输出。从PLC的输入信号发生变化到PLC输出端对该输入变化作出反应,需要一段时间,这种现象称为PLC输入/输出响应滞后。循环扫描的工作方式是PLC输出滞后的主要原因。PLC硬件中的输入滤波电路和输出继电器触点机械运动也是PLC输出滞后的重要原因。另外,程序编写的不当,也会增加PLC输出的滞后。为了改善和减少PLC输出的滞后问题,有些PLC生产厂家对PLC的工作过程作了改进,增加每个扫描周期中的输入采样和输出刷新的次数,或是增加立即读和立即写的功能,直接对输入和输出接口进行操作;另外,设计专用的特殊模块,用于运动控制等对时延要求苛刻的场合,
29、也是一种很好的方案。由于PLC输出滞后的存在,一般将PLC用于顺序控制系统和过程控制系统,有时也用于运动控制系统。滞后时间是设计PLC控制系统时应注意把握的一个参数。47 2022-7-262.1*PLC硬件系统的基本组成 2.2 PLC的软件系统 2.3*PLC的工作原理 2.4*西门子PLC的存储区与编程变量 2.5 S7-200/300/400 PLC的硬件模块构成 本章讲述的主要内容48 2022-7-262.4.1 西门子西门子PLC存储区(存储区(S7-200)S7-200系列PLC的存储区分为程序存储区、变量存储区和参数存储区。1.程序存储区 程序存储区主要用于存放用户程序,程序
30、空间容量在不同的CPU中是不同的。另外CPU中的RAM区与内置E2PROM上都有程序存储器,它们互为映像,且空间大小一样。系统程序会进行自动调度,在程序执行时将程序从E2PROM映像到RAM中,以提高运行速度。系统程序也存放在程序空间,但对用户是不开放的,即用户不能访问和读写系统程序。49 2022-7-262.4.1 西门子西门子PLC存储区(存储区(S7-200)2.变量存储区 变量存储区存储各种编程变量。编程变量包括输入继电器(输入映像)I、输出继电器(输出映像)Q、中间继电器M、定时器T和计数器C等。3.参数存储区 参数存储区是用于存放PLC组态参数有关的存储区域,如保护口令、PLC站
31、地址、停电记忆保持区、软件滤波、强制操作的设定信息等,该存储器为E2PROM。50 2022-7-26图2-19 用户程序、PLC组态参数和数据块下载示意图 2.4.1 西门子西门子PLC存储区(存储区(S7-200)51 2022-7-262.4.1 西门子西门子PLC存储区(存储区(S7-300/400)S7-300/400 PLC的存储区可以划分为四个区域:装载存储器(Load Memory)、工作存储器(Work Memory)、系统存储器(System Memory)和保持存储区(Non-Volatile Memory),具体如图2-20和图2-21所示。1.系统存储器 系统存储器用
32、于存放输入输出过程映像区(PII,PIQ)、位存储器(M)、定时器(T)、计数器(C)、块堆栈和中断堆栈以及临时存储器(本地数据堆栈)。2.工作存储器 工作存储器仅包含运行时使用的程序和数据。RAM 工作存储器集成在CPU中,RAM中的内容通过电源模块供电或后备电池保持。除了CPU417-4可以通过插入专用的存储卡来扩展工作存储器外,其他PLC的工作存储器都无法扩展。52 2022-7-262.4.1 西门子西门子PLC存储区(存储区(S7-300/400)3.装载存储器 装载存储器是用于存放不包含符号地址分配或注释(这些保留在编程设备的存储器中)的用户程序。装载存储器可以是存储器卡、内部集成
33、的RAM或内部集成的EPROM.现在的S7-300PLC必须配置Flash EPROM才能下载程序。4.保持存储器 保持存储器是非易失性的RAM,通过组态可以在PLC掉电后即使没有安装后备电池的情况下,保存一部分位存储器(M)、定时器(T)、计数器(C)和数据块(DB)。在设置CPU参数时一定要指定要保持的区域。53 2022-7-26图2-20西门子S7-300PLC存储器 2.4.1 西门子西门子PLC存储区(存储区(S7-300/400)54 2022-7-26图2-21 西门子S7-400PLC存储器 2.4.1 西门子西门子PLC存储区(存储区(S7-300/400)55 2022-
34、7-262.4.2 西门子西门子PLC的编程变量的编程变量 编程变量是从程序变量的角度对存储区进行表述,是对存储区一种新的理解。在传统意义上,编程变量在PLC中称为编程元件。虽然将以下的输入继电器(输入映像)等称为编程元件比较直观,但是在本质上它们是PLC存储区中的变量。西门子PLC编程变量包括输入继电器(输入映像)I,输出继电器(输出映像)Q,中间继电器M、定时器T、计数器C、局部数据L和累加器AC等。其中S7-200PLC还有全局变量存储器V、特殊中间继电器SM、模拟量输入输出AWI与AWQ;而S7-300/400PLC还有数据块DB和外设输入输出PI与PQ。一般变量可以以位、字节、字和双
35、字的格式自由读取或写入,但特殊情况除外。56 2022-7-262.5.2 西门子西门子PLC的编程变量的编程变量1.输入映像寄存器(I)输入映像寄存器(I)是以字节为单位的寄存器,它的每一位对应与一个数字量输入点,也经常以位、字节、字和双字的格式访问。在每个扫描周期开始,PLC依次对各个接触点采样,并把采样结果送入输入映像寄存器。PLC在执行用户程序过程中,不再理会物理输入接点的状态的变化,它所处理的数据为输入映像寄存器中的值。2.输出映像寄存器(Q)输出映像寄存器(Q)是以字节为单位的存储器,它的每一位对应与一个数字输出量接点,也经常以位、字节、字和双字的格式访问。,只有到了每个扫描周期的
36、末尾,才将输出映像寄存器的输出信号几乎同时送到各输出节点。57 2022-7-262.5.2 西门子西门子PLC的编程变量的编程变量3.中间继电器(M)中间继电器(M)又称内部位存储器,它一般以位为单位使用,但也能以字节、字、双字为单位使用。中间继电器在程序中常常作为中间变量,也可以定义或组态为标志位。例如,S7-300/400可以通过CPU属性定义某些中间继电器为特殊标志。而S7-200中的特殊标志也是中间继电器,称为特殊中间继电器(SM)。特殊中间继电器用来存储系统的状态变量和有关控制信息,正确使用之,则可以事半功倍。表2-1为S7-200中常用的特殊中间继电器。58 2022-7-262
37、.5.2 西门子西门子PLC的编程变量的编程变量4.定时器(T)定时器(T)类似于继电器电路中的时间继电器,但它的精度更高,定时精度分为1ms,10ms 和100ms三种,根据需要由编程者选用。定时器的类型有接通延时和断开延时等。定时器的数量随CPU型号不同而不同。定时器除了有状态值(长度为位)之外,还有当前值(长度为字)。5.计数器(C)计数器(C)对脉冲进行计数,计数脉冲的有效沿是脉冲的上升沿,计数的方式有加1、减1和加减1三种方式。计数器的个数一般与各CPU的定时器个数相同。和定时器一样,计数器除了有状态值(长度为位)之外,还有当前值(长度为字)。高速计数器与一般计数器不同,计数脉冲频率
38、更可高达2kHz/7kHz,计数容量大,一般计数器为16位,而高速计数器为32位,一般计数器可读可写,而高速计数器一般只能进行读操作。59 2022-7-262.5.2 西门子西门子PLC的编程变量的编程变量6.局部数据(L)局部数据(L)是在块或子程序运行时使用的临时变量。局部变量使用前需要在块或子程序的变量声明表中声明。局部变量为块或子程序提供传送参数和存放中间结果的临时存储空间。块或子程序执行结束后,局部数据存储空间将可以重新分配,用于作为其它块或子程序的临时变量。7.累加器(AC或ACCU)累加器(AC或ACCU)是程序运行中重要的寄存器,用它可把参数传给子程序或任何带参数的指令和指令
39、块。此外,PLC在响应外部或内部的中断请求而调用中断服务程序时,累加器中的数据是不会丢失的,即PLC会将其中的内容压入堆栈。但应注意,不能利用累加器进行主程序和中断服务子程序之间的参数传递。60 2022-7-262.5.2 西门子西门子PLC的编程变量的编程变量8.全局变量存储器(V)全局变量存储器(V)是S7-200独有的存储空间,经常用来保存逻辑操作的中间结果。所有的V存储区域都是断电保持的。有时会用V区的部分空间存放一些系统参数,这时用户程序就不能再访问那些空间。在V区还可以创建数据块DB。9.数据块(DB)数据块(DB)是用户自定义的变量。数据块存放程序数据信息,分为共享数据块DB(
40、可被所有逻辑块公用)或背景数据块DI(被功能块特定占用)。10.外设输入输出PI与PQ 外设输入输出PI与PQ是S7-300/400独有的。外设存储区允许直接访问现场设备(物理的或外部的输入和输出),外设存储区可以以字节、字和双字格式访问,但不可以以位方式访问。61 2022-7-262.5.2 西门子西门子PLC的编程变量的编程变量62 2022-7-262.5.2 西门子西门子PLC的编程变量的编程变量63 2022-7-262.4.3 西门子西门子PLC的数据类型的数据类型 西门子PLC的数据类型分以下三种:基本数据类型、复合数据类型和参数类型。S7-200和S7-300/400均支持基
41、本数据类型,此外S7-300/400还支持复合数据类型和参数类型。1.基本数据类型 1)位(bit,简称b)常称为BOOL(布尔型),只有两个值:0或1。如:I0.0,Q0.1,M0.0,V0.1等。2)字节(Byte)一个字节(Byte)等于8位(Bit),其中0位为最低位,7位为最高位。如:IB0(包括I0.0I0.7位),QB0(包括Q0.0Q0.7位),MB0,VB0等。范围:00FF(十进制的0255)。64 2022-7-262.5.3 西门子西门子PLC的数据类型的数据类型3)字(Word)相邻的两字节(Byte)组成一个字(Word),来表示一个无符号数,因此,字为16位。如:
42、MW0是由MB0和MB1组成的,其中M是存储区域标识符,W表示字,0是字的起始字节。需要注意的是,字的起始字节(如上例中的“0”)一般是偶数。字的范围为十六进制的0000FFFF(即十进制的065536)。在编程时要注意,如果已经用了MW0,如再用M0.0等数据要特别注意它们的关系。4)双字(Double Word)相邻的两个字(Word)组成一个双字,来表示一个无符号数。因此,双字为32位。如:MD100是由MW100和MW102组成的,其中M是区域标识符,D表示双字,100是双字的起始字节。需要注意的是,双字的起始字节(如上例中的“100”)和字一样,一般是偶数。双字的范围为十六进制的0F
43、FFFFFFF(即十进制的04294967295)。在编程时要注意,如果已经用了MD100,如再用MW100或MW102要特别加以小心。65 2022-7-262.5.3 西门子西门子PLC的数据类型的数据类型5)16位整数(INT,Integer)整数为有符号数,最高位为符号位,1表示负数,0表示正数。范围为3276832767。6)32位整数(DINT,Double Integer)32位整数和16位整数一样,为有符号数,最高位为符号位,1表示负数,0表示正数。范围为21474836482147483647。7)浮点数(R,Real)浮点数为32位,可以用来表示小数。8)常数的表示方法 常
44、数可以是字节、字或双字,CPU以二进制方式存储,也可以用十进制,十六进制ASCII码或浮点数形式来表示,如表2-9所示。66 2022-7-262.5.3 西门子西门子PLC的数据类型的数据类型67 2022-7-262.5.3 西门子西门子PLC的数据类型的数据类型2.复合数据类型 用户通过复合基本数据类型而生成的数据的类型就是复合数据类型。复合数据类型包括以下几种:1)数组(ARRAY):将一组同一类型的数据组合在一起组成一个单位就是数组。2)结构(STRUCT):将一组不同类型的数据组合在一起组成一个单位就是结构。3)字符串(STRING):字符串是由最多254个字符组成的一维数组。4)
45、日期和时间(DATE-AND-TIME)用于存储年、月、日、时、分、秒、毫秒和星期的数据。占用8个字节,BCD编码。如:DT2004_07_15_12:30:15.200为2004年7月15日12时30分15.2秒68 2022-7-262.5.3 西门子西门子PLC的数据类型的数据类型5)用户定义的数据类型(UDT,User-Defined Data Types)由用户将基本数据类型和复合数据类型组合在一起形成的数据类型。可以在数据块DB和变量声明表中定义复合数据类型。3.参数类型 参数类型是为在逻辑块之间传递参数的形参(Formal Parameter,形式参数)定义的数据类型。69 20
46、22-7-262.4.4 西门子西门子PLC的变量访问与寻址的变量访问与寻址 寻址是高级语言里面的概念,寻址分为立即数寻址、直接寻址和间接寻址。1.立即数寻址:直接给出常数,这种获取操作数的方式称为立即数寻址;2.直接寻址:直接给出数据存储器和数据对象的区域符(I、Q、M、V、T、C等)及器件的序号对数据进行访问的方式称为数据的直接寻址。直接寻址简单说就是根据变量名直接获取数据,绝大部分的应用中均采用直接寻址。I0.0、IB0、MW0、MB100、T0、T33和C0等均是直接寻址。70 2022-7-262.4.4 西门子西门子PLC的变量访问与寻址的变量访问与寻址 变量在存储器上是以字节为基
47、本单位,按字节的编号为顺序进行保存的。但当以字或双字为单位访问这些数据单元时,组成字或双字的字节顺序是不寻常的。以中间变量存储区MB0MB3为例,MW0包括了MB0和MB1,需要注意的是MW0的高8位为MB0,低8位为MB1;MD0包括了MB0MB3,从最高8位到最低8位的排列顺序为MB0、MB1、MB2和MB3。71 2022-7-262.4.4 西门子西门子PLC的变量访问与寻址的变量访问与寻址 3.间接寻址 在指令中给出地址指针,通过地址指针间接地访问想要访问的数据存储器或者数据对象区。间接寻址方式可寻址的区域有:输入映像存储区I、输出映像存储区Q、辅助继电器区M、全局变量存储区V、定时
48、器区(当前值)T、计数器区(当前值)C和数据块D。间接寻址首先要建立地址指针,然后根据指针获取数据。72 2022-7-262.5.4 西门子可编程控制器的寻址西门子可编程控制器的寻址1)S7-200的间接寻址 在S7-200中用符号“&”表示取地址指针。可用作地址指针的数据空间有:L、AC1、AC2、AC3。有了指针之后,就可以根据指针取数据了,符号“*”号表示该操作数为指针。例如:程序“MOVD&VW100,AC1;MOVW*AC1,AC0”表示用双字传送指令把VW100的地址装入AC1,即AC1中存放的是指针;然后使用AC1指针,用字传送指令把指针内容(VW100中的内容)传送到AC0中
49、。2)S7-300/400的间接寻址 S7-300/400中,指针用P#表示。P#M2.0表示M2.0的地址。注意指针的位标号必须为0。有了地址就可以根据指针访问数据了。程序执行中可以增加和减小地址值,访问不同单元。73 2022-7-262.1*PLC硬件系统的基本组成 2.2 PLC的软件系统 2.3*PLC的工作原理 2.4*西门子PLC的存储区与编程变量 2.5 S7-200/300/400 PLC的硬件模块构成 本章讲述的主要内容74 2022-7-262.5.1 S7-200S7-200的的CPUCPU模块与硬件端子连接模块与硬件端子连接 SIMATIC S7-200属于西门子小型
50、PLC系列产品,适用于各行各业、各种场合中的检测、监测及控制的自动化应用。S7-200系列功能表现在以下几个方面:极高的可靠性;极丰富的指令集;易于掌握;便捷的操作;丰富的内置集成功能;实时特性;强劲的通信能力;丰富的扩展模块。S7-200系列的强大功能使其无论在独立运行中,或相连成网络皆能实现复杂控制功能。S7-200系列具有极高的性能价格比。75 2022-7-262.5.1 S7-200S7-200的的CPUCPU模块与硬件端子连接模块与硬件端子连接图2-22 S7-200的CPU模块76 2022-7-262.5.1 S7-200S7-200的的CPUCPU模块与硬件端子连接模块与硬件