1、第1章可编程控制器的基础知识 1.11.21.3 1.4概述概述 基本结构和作用基本结构和作用 工作原理工作原理 软件基础软件基础 1.5可编程控制器的发展可编程控制器的发展 1.1 可编程控制器的概述 1.1.1可编程控制器的产生 可编程控制器的产生和发展与继电器有很大的关系。继电器是一种用弱电信号控制强电信号的电磁开关,在复杂的继电器控制系统中,其故障的查找和排除非常困难,会占用大量时间,从而严重地影响生产。如果工艺要求发生变化,就得重新设计线路连线安装,因此不利于产品的更新换代。20世纪60年代末期,美国汽车制造工业竞争十分激烈,为了适应市场从少品种大批量向多品种大批量生产的转变,尽可能
2、减少转变过程中控制系统的设计制造时间,减少经济成本,1968年,美国通用汽车公司(General Motors,GM)对外公开招标,寻求用新的电气控制装置取代继电器控制系统,以便适应迅速改变生产程序的要求,该公司对新的控制系统提出了10项指标。(1)编程简单,可以在现场修改和调试程序;(2)维修方便,采用插入式模块结构;(3)可靠性高于继电器控制系统;(4)体积小于继电器控制柜;(5)能与管理中心计算机系统进行通信;(6)成本可与继电器控制系统相竞争;(7)输入量是115V交流电压;(8)输出量是115V交流电压,输出电流在2A以上,能直接驱动电磁阀;(9)系统扩展时,原系统只需做很小的改动;
3、(10)用户程序存储器容量至少4KB。1969年美国数字设备公司(DEC)根据上述要求,研制出世界上第一台可编程控制器并在GM公司汽车生产线上首次应用成功,实现了生产的自动化控制。可编程控制器是一种专门为在工业环境下应用而设计的数字运算操作的电子装置。它采用可以编制程序的存储器,用来在其内部存储执行逻辑运算、顺序运算、计时、计数和算术运算等操作的指令,并能通过数字式或模拟式的输入和输出,控制各种类型的机械或生产过程。1.可靠性高,抗干扰能力强2.编程简单,操作方便3.系统的设计、安装、调试工作量小,维护方便4.体积小,能耗低,易实现机电一体化1.1.2 可编程控制器的特点 1.按结构形式分类整
4、体式PLC模块式PLC叠装式PLC 1.1.3 可编程控制器的分类 2.按功能分类 具有逻辑运算、定时、计数、移位以及自诊断、监控等基本功能的低档PLC 除具有低档PLC的功能外,还具有较强的模拟量输入输出、算术运算、数据传送和比较、数制转换、远程I/O、子程序、通信联网等功能的中档PLC 除具有中档机的功能外,还增加了带符号算术运算、矩阵运算、位逻辑运算、平方根运算及其它特殊功能函数的运算、制表及表格传送功能等的高档PLC3.按I/O点数分类小型PLCI/O点数 2048点;多CPU,16位、32位处理器,用户存储器容量816K PLC控制系统示意图 S7-300 PLC的硬件结构 1.2.
5、1 S7-300系列PLC系统供电 PS307电源模块 PS 307电源模块(电源模块(2A)具有)具有以下显著特性:以下显著特性:(1)输出电流)输出电流2A。(2)输出电压)输出电压24VDC,防短,防短路和开路保护。路和开路保护。(3)连接单相交流系统)连接单相交流系统(输(输入电压入电压120/230V AC,50/60Hz)。)。(4)可靠的隔离特性,符合)可靠的隔离特性,符合EN 60950标准。标准。(5)可用作负载电源)可用作负载电源。1.2.2 CPU模块 CPU是PLC系统的运算控制核心。它根据系统程序的要求完成以下任务:接收并存储用户程序和数据,接收现场输入设备的状态和数
6、据,诊断PLC内部电路工作状态和编程过程中的语法错误,完成用户程序规定的运算任务,更新有关标志位的状态和输出状态寄存器的内容,实现输出控制或数据通信等功能。四种工作状态:(1)RUN-P:可编程运行方式。CPU扫描用户程序,既可以用编程装置从CPU中读出,也可以由编程装置装入CPU中。用编程装置可监控程序的运行。在此位置钥匙不能拔出。(2)RUN:运行方式。CPU扫描用户程序,可以用编程装置读出并监控PLC CPU中的程序,但不能改变装载存储器中的程序。在此位置可以拔出钥匙,以防止程序在正常运行时被改变操作方式。(3)STOP:停止方式。CPU不扫描用户程序,可以通过编程装置从CPU中读出,也
7、可以下载程序到CPU。在此位置可以拔出钥匙。(4)MRES:MERES位置不能保持,在这个位置松手时开关将自动返回STOP位置。将模式选择开关从STOP状态扳到MRES位置,可以复位存储器,使CPU回到初始状态。工作存储器、装载存储器中的用户程序和地址区被清除,全部存储器位、定时器、计数器和数据块均被删除,即复位为零,包括有保持功能的数据。系统参数、CPU和模块的参数被恢复为默认设置,MPI的参数被保留。如果有存储器卡,CPU在复位后将它里面的用户程序和系统参数复制到工作存储器区 1.2.3 存储器区域 1.装载存储器 装载存储器位于SIMATIC微型存储卡(MMC)中。装载存储器的容量与MM
8、C的容量一致。用于保存程序指令块和数据块以及系统数据,也可以将项目的整个组态数据保存在MMC中。2.工作存储器(RAM)RAM集成在CPU中,不能被扩展。它可用于运行程序指令,并处理用户程序数据。程序只能在RAM和系统存储器中运行。3.系统存储区 RAM系统存储区集成在CPU中,不能被扩展。它包括:(1)标志位、定时器和计数器的地址区 (2)I/O的过程映像 (3)局域数据 1.2.4 SM模块 信号模块(SM)也叫输入/输出模块,是CPU 模块与现场输入输出元件和设备连接的桥梁,用户可根据现场输入/输出设备选择各种用途的I/O模块。信号模块面板上的LED用来显示各数字量输入/输出点的信号状态
9、,模块安装在DIN标准导轨上,通过总线连接器与相邻的模块连接。1.数字量模块(1)数字量输入模块SM321(2)数字量输出模块SM322(3)数字量I/O模块SM3232.模拟量模块(1)模拟量输入模块SM331(2)模拟量输出模块SM332(3)模拟量I/O模块SM3343.特殊模块1.2.5 FM模块 功能模块主要用于对实时性和存储容量要求高的控制任务,例如计数器模块、快速/慢速进给驱动位置控制模块、电子凸轮控制其模块、步进电动机定位模块、伺服电动机定位模块、定位和连苏路径控制模块、闭环控制模块、工业标示系统的接口模块、称重模块、位置输入模块、超声波位置解码器等。1.2.6 CP模块 S7
10、-300系列PLC有多种用途的通信处理器模块,如CP340、CP342-5 DP、CP343-FMS等,其中既有为装置进行点对点通信设计的模块,也有为PLC上网到西门子的低速现场总线网SINEC L2和高速SINEC H1网设计的网络接口模块 CP342-5 DP是为把S7-300系列PLC连接到西门子SINEC L2网络上而设计的成本优化的通信模块。它是一个智能化的通信模块,能大大减轻CPU的负担,也支持很多其它通信电路。1.2.7 通讯接口 CPU模块上有三种通讯接口:(1)MPI接口:多点接口MPI(Multipoint Interface)是用于连接CPU和PG/OP的接口,或用于MP
11、I子网中的通讯接口。(2)PROFIBUS-DP接口:PROFIBUS-DP接口主要用于连接分布式I/O。(3)PtP接口:可在CPU上使用PtP(点到点)接口,来连接外部设备至串口,例如条形码阅读器、打印机等。1.3 可编程控制器的工作原理 可编程序控制的编程元件用“软继电器”命名,认为它们像继电器一样有线圈和触点,且线圈得电,触点动作(当然线圈和触点只是假设的)。所谓线圈得电,不过是“软继电器”对应的存储单元置“1”,线圈失电,即存储单元置“0”。项目物理继电器PLC继电器线圈常开触点常闭触点 可编程控制器的CPU则采用顺序逻辑扫描用户程序的运行方式。PLC启动后,先进行初始化,包括对工作
12、内存的初始化、复位所有的定时器、将输入/输出继电器清零,检查I/O单元连接是否完好,如有异常则发出报警信号。初始化之后,PLC就进入周期性扫描过程。扫描过程可分为4个阶段。1.3.1 工作方式 1.公共处理扫描阶段 公共处理包括PLC自检、执行来自外设的命令、对看门狗清零等。2.输入采样扫描阶段 这个阶段,PLC按顺序逐个采集所有输入端子上的信息,不论输入端子上是否接线,CPU顺序读取全部输入端,将所有采集到的输入信号写到输入映像寄存器中。在当前的扫描周期内,用户程序依据的输入信号的状态均从输入映像寄存器中去读取,而不管此时外部输入信号的状态是否变化。即使此时外部信号的状态发生了变化,也只能在
13、下一个扫描周期的输入采样扫描阶段去读取。对于这种采样输入信号的处理,虽然严格上说每个信号被采集的时间有先后顺序,但由于PLC的扫描周期很短,这个差异对于一般工程应用可以忽略,认为这些采集到得输入信号是同时的。3.执行用户程序扫描阶段 在执行用户程序阶段,CPU对用户程序按顺序进行扫描。如果程序用梯形图表示,则是按照先上后下,从左至右的顺序进行扫描。每次扫到一条指令,所需要的输入信号的状态均从输入映像寄存器中去读取,而不是直接使用现场的立即输入信号。对其他信息,则是从PLC的元件映像寄存器中读取。在执行用户程序中,每一次运算的中间结果都立即写入元件映像寄存器中,这样该元件的状态马上就可以被后面将
14、要扫描到的指令所利用。对输出继电器的扫描结果,也不是马上去驱动外部负载,而是将其结果写入元件映像寄存器中的输出映像寄存器中,在输出刷新阶段集中进行处理。在这个阶段,除了输入映像寄存器外,各个元件映像寄存器的内容是随着程序的执行而不断的变化。4.输出刷新扫描阶段 当CPU对全部用户程序扫描结束后,将元件映像寄存器中各输出继电器的状态同时送到输出锁存器中,再由输出锁存器经输出端子去驱动各输出继电器所带的负载。在输出刷新阶段结束后,CPU进入下一个扫描周期。1.3.2 PLC的编程语言 PLC为用户提供了完整的编程语言,以适应用户编制程序的需要。PLC提供的编程语言通常有以下几种:梯形图(LAD)、
15、指令语句表(STL)、逻辑功能图(FBD)等。1.梯形图(LAD)梯形图(LAD)编程语言是从继电器控制系统原理图的基础上演变而来的,又称为继电器语言。PLC的梯形图与继电器控制系统的梯形图的基本思想是一致的,只是在使用符号和表达方式上有一定区别。梯形图语言比较形象、直观,是最基本、最普遍的编程语言,但这种编程方式只能用图形编程器直接编程。2.指令语句表(STL)指令语句表(STL)编程语言就是用助记符来表达PLC的各种功能,类似于计算机中的助记符语言,它是可编程序控制器最基础的编程语言。通常每条指令由操作码(指令)、地址和操作数(数据或器件编号)三部分组成。由于指令语句表比较抽象,一般与梯形
16、图语言配合使用,互为补充。目前,大多数PLC都有指令语句编程功能。3.逻辑功能图(FBD)这是一种由逻辑功能符号组成的功能块来表达命令的图形语言,这种编程语言基本上沿用了半导体逻辑电路的逻辑方块图。对每一种功能都使用一个运算方块,其运算功能由方块内的符号确定。常用“与”、“或”、“非”等逻辑功能来表达控制逻辑。与功能方块有关的输入画在方块的左边,输出画在方块的右边。采用这种编程语言,不仅能简单明确地表现逻辑功能,还能通过对各种功能块的组合,实现加法、乘法、比较等高级功能,所以它也是一种功能比较强的图形编程语言。1.4 可编程控制器的软件基础 1.系统管理程序 系统管理程序是监控程序中最重要的部
17、分,它主要完成以下任务:(1)负责系统运行时间的分配管理。即管理可编程控制器输入、输出 、运 算、自检等的时间顺序。(2)负责存储空间的管理,即生成用户环境。由它规定各种参数、程序的存放地址,将用户使用的数据参数存储地址转化为实际的数据格式,以及物理存放地址。通过这部分程序,用户看到的就不是实际及其存储地址,而是按照用户数据结构排列的程序存储空间。(3)负责系统自检,包括系统出错检验、用户程序语法检验等。2.用户指令解释程序 任何一台计算机,最终只能执行机器语言。而机器语言编程复杂、难于掌握,所以,可编程控制器采用梯形图语言等高级语言编程,再通过用户指令解释程序将高级语言逐条编译为机器可以执行
18、的机器语言。3.标准程序模块 标准程序模块由许多独立的程序块组成,各程序块能完成不同的功能,如输入、输出、运算等。可编程控制器的各种具体工作都是由这部分程序完成的,这部分程序的多少,就决定了可编程控制器性能的强弱。1.4.2 用户程序 可编程控制器的用户程序就是用户根据自己的控制要求按一定的编程语言编写的程序。由于可编程控制器的应用场合是工业现场,它的用户主要是电气技术人员,所以其编程语言要满足易于编写和调试的要求,并要考虑电器技术人员的接受水平和应用习惯。因此可编程控制器通常使用梯形图语言,又称继电器语言或电工语言。一个完整的用户控制程序应当包含一个主程序、若干子程序和若干中断程序三大部分。
19、1.5 可编程控制器的发展 目前PLC产品可按地域分成三大流派:美国产品、欧洲产品和日本产品。美国和欧洲的PLC技术是在相互隔离情况下独立研究开发的,因此他们的产品有明显的差异性。而日本的PLC技术是由美国引进的,对美国的PLC产品有一定的继承性,但又有所不同,美国和欧洲以大中型PLC而闻名,而日本则以小型PLC著称。1.5.2 可编程控制器的发展趋势 1.开放与基于工业PC控制 2.进一步加强网络通信功能3.更强大的软件工具4.向高速度、大容量、低成本、多功能方向发展1.5.3 我国可编程控制器的发展 PLC自20世纪70年代后期进入中国以来,应用增长十分迅速.目前国产PLC厂商众多,主要集
20、中于台湾、北京、浙江、江苏和深圳,台湾的品牌有永宏、台达、盟立、士林、丰炜、智国、台安 S7-300 PLC S7-300 PLC的的CPUCPU模块模块 任务二任务二I/OI/O模块地址分配模块地址分配任务四任务四S7-300 PLCS7-300 PLC的其他模块的其他模块任务五任务五任务三任务三S7-300 PLCS7-300 PLC的信号模块的信号模块 通过本任务能够掌握S7系列PLC应用场合和S7-300系统组成。1S7系列PLC应用图2-1 S7系列PLC应用2S7-300系统组成3典型系统结构PS电源模块CPUIM接口模块SM:DISM:DOSM:AISM:AOFM:-计数-定位-
21、闭环控制CP:-点-到-点-PROFIBUS-工业以太网任务三 S7-300 PLC的CPU模块任务描述:掌握S7-300 CPU模块的分类及 CPU面板操作注意事项。任务分析:分析S7-300 CPU模块的分类、异同点及应用场合;CPU面板上模式选择开关的含义。S7-300 CPU模块的分类 主要类型有紧凑型CPU(6种)、标准型CPU(5种)、革新型CPU(5种)、户外型CPU(3种)、故障安全型CPU(3种)、特种型CPU(2种),如图2-5所示。阶段一阶段一 CPU分类分类图2-5 S7-300 CPU模块的分类 阶段二 S7-300 CPU面板操作 1模式选择开关,如图2-6(a)所
22、示。2 2状态及故障显示,状态及故障显示,如图2-6(b)所示。任务三 S7-300 PLC的信号模块 任务描述:掌握S7-300 PLC的信号模块的分类。任务分析:数字量模块分为数字量输入模块(DI)、数字量输出模块(DO)和数字量输入/输出模块(DI/DO),掌握上述模块的内部电路及外部端子接线图。1SM321数字量输入模块(DI)(1)直流32点数字量输入模块的内部电路及外部端子接线图,如图2-7所示。阶段一阶段一 数字量输入模块数字量输入模块(2)交流32点数字量输入模块的内部电路及外部端子接线图,如图2-8所示。2SM322数字量输出模块(DO)(1 1)3232点数字量晶体管输出模
23、块的内部电路点数字量晶体管输出模块的内部电路及外部端子接线图,如图及外部端子接线图,如图2-92-9所示。所示。(2)32点数字量晶闸管输出模块的内部电路及外部端子接线图,如图2-10所示。(3)16点数字量继电器输出模块的内部电路及外部端子接线图,如图2-11所示。(1)SM323 DI 16/DO 1624 VDC/0.5A内部电路及外部端子接线图,如图2-12所示。3 3、数字量输入、数字量输入/输出模块输出模块(DI/DO)(DI/DO)(2)SM327 DI 8/DX 8内部电路及外部端子接线图,如图2-13所示。任务四任务四 I/OI/O模块地址分配模块地址分配任务描述:任务描述:
24、掌握CPU的存储区域分类、数据在存储器中存取的方式、系统存储区的地址区的范围。任务分析:任务分析:CPU的存储区分类,注意理解位、字节、字和双字的概念及相互间的关系。S7系列PLC中CPU的存储区包括三个基本区域,即装载存储器,工作存储器RAM和系统存储器RAM。2数据在存储器中存取的方式数据在存储器中存取的方式(1)(1)位、字节、字和双字位、字节、字和双字(2 2)字节、字和双字的取值范围)字节、字和双字的取值范围(见表2-2)3.3.系统存储区的地址区(见表系统存储区的地址区(见表2-32-3)4 4CPUCPU中的寄存器中的寄存器(1 1)累加器()累加器(ACCUACCU(2 2)地
25、址寄存器)地址寄存器(5 5)状态字寄存器)状态字寄存器(4 4)诊断缓冲区)诊断缓冲区(3 3)数据块寄存器)数据块寄存器 任务五任务五 S7-300 PLCS7-300 PLC的其他模块的其他模块任务描述:任务描述:S7-300 PLC除了存在CPU模块、信号模块、I/O模块外,还存在其他辅助模块。任务分析:任务分析:本任务主要介绍电源模块(PS)、接口模块(IM)、通信处理器模块(CP)、特殊功能模块(FM)、模拟量信号模块的特点及分类。365-0BA01-0AA0X 23 4PS3075A DC 5VV O L T A G ESELECTORO NOFF5 0 mm307-1BA00-
26、0AA0PS3075AX 23 4 DC 5VV O L T A G ESELECTORO NOFF8080mmmm307-1BA00-0AA0PS3075AX 23 4 DC 5VV O L T A G ESELECTORO NOFF8080mmmm200200mmmm307-1BA00-0AA0PS3075AX 23 4 DC 5VV O L T A G ESELECTORO NOFF图2-16电源模块1电源模块电源模块(PS)2 2接口模块(接口模块(IMIM)365-0BA01-0AA0IM 365RECEIVEX 23 4365-0BA01-0AA0IM 365RECEIVEX 23
27、 4360-3CA01-0AA0IM 360X 23 4 SFDC 5V360-3CA01-0AA0IM 360X 23 4 SFDC 5V(a)双机架接口模块IM365 (b)多机架接口模块图2-17 接口模块3 3通信处理器模块(通信处理器模块(CPCP),),如图2-18所示。PSPSCPUCPUCP341CP341CP 343-2CP 343-2CP 342-5CP 342-5CP 343-5CP 343-5CP 343-1CP 343-1工业以太网PROFIBUS FMSPROFIBUS DPAS接口点对点连接图2-18通信处理器模块4特殊功能模块(特殊功能模块(FM)分为SM331
28、模拟量输入模块(AI)、SM332模拟量输出模块(AO)、SM334模拟量输入。5 5模拟量信号模块模拟量信号模块(1 1)模拟量输入模块()模拟量输入模块(AIAI),),如图2-20所示。(1 1)模拟量输入模块()模拟量输入模块(AIAI),),如图2-20所示。图2-20 AI 813位模拟量输入模块(2 2)模拟量输出模块)模拟量输出模块(AO)(AO),如图2-21所示。(3)模拟量输入)模拟量输入/输出模块输出模块(AI/AO),如图2-22所示。(4 4)电压输出型模块的连接)电压输出型模块的连接1)电压输出型隔离模块的4线制连接,如图2-23所示。图2-23 电压输出型隔离模
29、块的4线制连接2)电压输出型非隔离模块的2线制连接,如图2-24所示。图2-24电压输出型非隔离模块的2线制连接 (5 5)电流输出型模块的连接)电流输出型模块的连接 1)电流输出型隔离模块的2线制连接,如图2-25所示。2)电流输出型非隔离模块的2线制连接,如图2-26。第3章 西门子S7-300系列PLC基本指令系统 S7-300系列plc的指令及其结构 3.1位逻辑指令 3.2定时器与计数器指令 3.3数据处理功能指令 3.4数据运算指令 3.4控制指令 3.43.1 指令及其结构3.1.1 指令的组成 1.语句指令 一条指令由一个操作码和一个操作数组成,操作数由标识符和参数组成。操作码
30、定义要执行的功能;操作数为执行该操作所需要的信息,例如:A I 1.0 是一条位逻辑操作指令,其中:“A”是操作码,它表示执行“与”操作;“I 1.0”是操作数,对输入继电器I 1.0进行的操作。有些语句指令不带操作数。它们操作的对象是惟一的。例如:NOT (是对逻辑操作结果(RLO)取反。)2.梯形逻辑指令 梯形逻辑指令用图形元素表示PLC要完成操作。在梯形逻辑指令中,其操作码是用图素表示的,该图素形象表明CPU做什么,其操作数的表示方法与语句指令相同。如:Q 4.0 ()该指令中:()可认为是操作码,表示一个二进制赋值操作。Q 4.0是操作数,表示赋值的对象。梯形逻辑指令也可不带操作数。如
31、:|NOT|是对逻辑操作结果取反的操作。3.1.2 操作数 1.标识符及表示参数 一般情况下,指令的操作数在PLC的存储器中,此时操作数由操作数标识符和参数组成。操作数标识符由主标识符和辅助标识符组成。主标识符表示操作数所在的存储区,辅助标识符进一步说明操作数的位数长度。若没有辅助标识符指操作数的位数是一位。主标识符有:I(输入过程映像存储区),Q(输出过程映象存储区),M(位存储区),PI(外部输入),PQ(外部输入),T(定时器),C(计数器),DB(数据块),L(本地数据)。辅助标识符有:X(位),B(字节),W(字2字节),D(双字4字节)。PLC物理存储器是以字节为单位的,所以存储单
32、元规定为字节单元。位地址参数用一个点与字节地址分开。如:M 10.1 当操作数长度是字或双字时,标识符后给出的标识参数是字或双字内的最低字节单元号。图4.1给出了字节、字、双字的相互关系及表示方法。当使用宽度为字或双字的地址时,应保证没有生成任何重叠的字节分配,以免造成数据读写错误。图3.1 以字节单元为基准标记存储器存储单元位存储区M表3.1 存储区及其功能 表3.1 存储区及其功能 2.操作数的表示法 在STEP7中,操作数有两种表示方法:一是物理地址(绝对地址)表示法;二是符号地址表示法。用物理地址表示操作数时,要明确指出操作数的所在存储区,该操作数的位数具体位置。例如:Q 4.0。ST
33、EP7 允许用符号地址表示操作数,如Q 4.0可用符号名MOTOR_ON替代表示,符号名必须先定义后使用,而且符号名必须是惟一的,不能重名。定义符号时,需要指明操作数所在的存储区,操作数的位数、具体位置及数据类型。3.1.3 寻址方式 操作数是指令的操作或运算对象。所谓寻址方式是指令得到操作数的方式,可以直接给出或间接给出。STEP7指令操作对象的有:常数;S7状态字中的状态位;S7的各种寄存器、数据块;功能块FB,FC和系统功能块SFB,SFC;S7的各存储区中的单元。S7有四种寻址方式:立即寻址、存储器直接寻址、存储器间接寻址和寄存器间接寻址。1.立即寻址 这是对常数或常量的寻址方式。操作
34、数本身直接包含在指令中。下面是立即寻址的例子:SET /把RLO置1OW W#16#A320 /将常量W#16#A320与累加器1“或”运算L 27 /把整数27装入累加器1L ABCD /把ASCII码字符ABCD装入累加器1L C#0100 /把BCD码常数0100装入累加器1 2.直接寻址 包括对寄存器和存储器的直接寻址。在直接寻址的指令中,直接给出操作数的存储单元地址。例如:A I 0.0 /对输入位I 0.0进行“与”逻辑操作S L 20.0 /把本地数据位L 20.0置1=M 115.4 /使存储区位M 115.4的内容等于RLO的内容L IB 10 /把输入字节IB 10的内容装
35、入累加器1T DBD 12 /把累加器1中的内容传送给数据双字DBD 12中 3.存储器间接寻址 在存储器间接寻址的指令中,给出一个存储器(必须是表3.1中的存储器),该存储器的内容是操作数所在存储单元的地址,该地址又被称为地址指针。存储器间接寻址方式的优点是,当程序执行时,能改变操作数的存储器地址,这对程序中的循环尤为重要。例如:A IMD 2 /对由MD 2指出的输入位进行“与”逻辑操作。如:MD 2的值为 /2#0000 0000 0000 0000 0000 0000 0101 0110 则是对I 10.6进行“与”操作。图3.2 存储器间接寻址的指针格式位3至18(范围0至65535
36、):被寻址字节的字节编号位0至2(范围0至7):被寻址位的位编号 4.寄存器间接寻址 在S7中有两个地址寄存器,它们是AR1和AR2。通过地址寄存器,可以对各存储区的存储器内容实现寄存器间接寻址。地址寄存器的内容加上偏移量形成地址指针,该指针指向数值所在的存储单元。地址寄存器存储的地址指针有两种格式:区内寄存器间接寻址区域间寄存器间接寻址。其长度均为双字。图3.3给出了这两种格式的细节及其差别,区域标识位的组合状态见表3.2。图3.3 寄存器间接寻址的指针格式31 24 23 16 15 8 7 0位31=0表明是区域内寄存器间接寻址;=1表明是区域间寄存器间接寻址。位24、25和26(r r
37、 r):区域标识(见表3.2)位3至18(bbbb bbbb bbbb bbbb):被寻址位的字节编号(范围0至65535)位0至2():被寻址的位编号(范围0至7)表3.2 地址指针区域标识位含义3.1.4 状态字 状态字用于表示CPU执行指令时所具有的状态。一些指令是否执行或以何方式执行可能取决于状态字中的某些位;执行指令时也可能改变状态字中的某些位;你也能在位逻辑指令或字逻辑指令中访问并检测它们。图4.4显示了状态字的结构。图3.4 状态字的结构15 9 8 7 6 5 4 3 2 1 0(1)首次检测位(FC)状态字的位0称为首次检测位。若FC位的状态为0,则表明一个梯形逻辑网络的开始
38、,或指令为逻辑串第一条指令。(2)逻辑操作结果(RLO)逻辑操作结果RLO(Result of Logic Operation)。该位存储位逻辑指令或算术比较指令的结果。(3)状态位(STA)状态位不能用指令检测,它只是在程序测试中被CPU解释并使用。(4)或位(OR)状态字的位3称为或位(OR)。在先逻辑“与”后逻辑“或”的逻辑串中,OR位暂存逻辑“与”的操作结果,以便进行后面的逻辑“或”运算。其它指令将OR位清0。(5)溢出位(OV)溢出位被置1,表明一个算术运算或浮点数比较指令执行时出现错误(错误:溢出、非法操作、不规范格式)。(6)溢出状态保持位(OS)OV被置1时OS也被置1;OV被
39、清0时OS仍保持。只有下面的指令才能复位OS位:JOS(OS=1时跳转);块调用和块结束指令。(7)条件码1(CC1)和条件码0(CC0)状态字的位7和位6称为条件码1和条件码0。这两位结合起来用于表示在累加器1中产生的算术运算或逻辑运算结果与0的大小关系;比较指令的执行结果或移位指令的移出位状态。详见表3.3和表3.4。表3.3 算术运算后的CC1和CC0表3.4 比较、移位和循环移位、字逻辑指令后的CC1和CC0 (8)二进制结果位(BR)它将字处理程序与位处理联系起来,用于表示字操作结果是否正确(异常)。将BR位加入程序后,无论字操作结果如何,都不会造成二进制逻辑链中断。在LAD的方块指
40、令中,BR位与ENO有对应关系,用于表明方块指令是否被正确执行:如果执行出现了错误,BR位为0,ENO也为0;如果功能被正确执行,BR位为1,ENO也为1。在用户编写的FB和FC程序中,必须对BR位进行管理,当功能块正确运行后使BR位为1,否则使其为0。使用STL指令SAVE或LAD指令(SAVE),可将RLO存入BR中,从而达到管理BR位的目的。当FB或FC执行无错误时,使RLO为1并存入BR,否则,在BR中存入0。3.2 位逻辑指令 位逻辑指令主要包括:位逻辑运算指令、位操作指令和位测试指令,逻辑操作结果(RLO)用以赋值、置位、复位布尔操作数,也控制定时器和计数器的运行。3.2.1 位逻
41、辑运算指令 位逻辑运算指令是“与”(AND)、“或”(OR)、“异或”(XOR)指令及其组合。它对“0”或“1”这些布尔操作数扫描,经逻辑运算后将逻辑操作结果送入状态字的RLO位。1.“与”和“与非”(A,AN)指令 逻辑“与”在梯形图里是用串联的触点回路表示的,如果串联回路里的所有触点皆闭合,该回路就通“电”了。在图3.5的回路所示:图3.5“与”逻辑梯形图 上述梯形逻辑图,可用语句表指令完全表示,对应的语句表为:A I0.0 A Q 4.1AN M10.1 Q4.0 ()I0.0 Q4.1 M10.1 Q4.0 2.“或”和“或非”(O,ON)指令 逻辑“或”在梯形图里是用并联的触点回路表
42、示的,被扫描的操作数标在触点上方。在图3.6中,只要有一个触点闭合,输出4.1的信号状态就为“l”。I1.1 M2.0 Q4.0 图3.6“或”逻辑梯形图及语句表O I1.1 ON M2.0 O Q4.0 Q4.1()Q4.1 3.“异或”和“异或非”(X,XN)指令 图3.7是“异或”逻辑梯形图,下面是与梯形图对应的语句表。在的语句表中,使用了“异或”和“异或非”指令,分别用助记符“X”和“XN”来标识。它类似“或”和“或非”指令,用于扫描并联回路能否“通电”。X I 0.0 X I 0.1 Q 4.0图3.7“异或”逻辑梯形图 3.2.2 位操作指令 1.输出指令 逻辑串输出指令又称为赋值
43、操作指令,该操作把状态字中RLO的值赋给指定的操作数(位地址)。表3.5列出了操作数的数据类型和所在的存储区。表3.5 输出指令A I0.0A I0.1ON I0.2 Q4.0 A I0.3 Q4.1图3.8 多重输出梯形图 Q4.0()I0.1I0.2I0.0Q4.1()I0.3 一个RLO可被用来驱动几个输出元件。在LAD中,输出线圈是上下依次排列的。在STL中,与输出信号有关的指令被一个接一个地连续编程,这些输出具有相同的优先级。图3.8是多重输出梯形图,与之对应的语句表如下:2.置位复位指令 置位复位指令根据RLO的值,来决定被寻址位的信号状态是否需要改变。若RLO的值为1,被寻址位的
44、信号状态被置1或清0;若RLO是0,则被寻址位的信号保持原状态不变。置位复位指令有关内容见表3.6。表3.6 置位复位指令 图3.10 置位复位指令(a)复位指令操作 (b)置位指令操作网络1AAONRI0.0I0.1I0.2Q4.0网络2ARI0.3T1网络3ARI0.4C1(a)I0.4(R)C1网络3I0.3(R)T1网络2(R)Q4.0I0.0 I0.1I0.2网络1AAONSI0.0I0.1I0.2Q4.0(b)(S)Q4.0I0.0 I0.1I0.2 3.RS触发器 RS触发器梯形图方块指令表示见表3.7。方块中标有一个置位输入(S)端,一个复位输入(R)端,输出端标为Q。触发器可
45、以用在逻辑串最右端,结束一个逻辑串,也可用在 逻辑串中,影响右边的逻辑操作结果。表3.7 RS触发器 RS触发器分为置位优先和复位优先型两种,置位优先型RS触发器的R端在S端之上,当两个输入端都为1时,下面的置位输入最终有效。既置位输入优先,触发器或被复位或保持复位不变,如图3.11。A I0.0 R M0.0A I0.1S M0.0A M0.0=Q4.0 图3.11 置位优先型RS触发器 4.对RLO的直接操作指令 这一类指令直接对逻辑操作结果RLO进行操作,改变状态字中RLO位的状态。有关内容见表3.8。表3.8 对RLO的直接操作指令4.2.3 位测试指令 当信号状态变化时就产生跳变沿。
46、当从0变到1时,产生一个上升沿(或正跳沿);若从1变到0,则产生一个下降沿(或负跳沿)。S7中有两类跳变沿检测指令,一种是对RLO的跳变沿检测的指令,另一种是对触点跳变沿直接检测的梯形图方块指令。具体内容见表3.9。图3.12是使用RLO正跳沿检测指令的例子。这个例子中,若CPU检测到输入I 1.0有一个正跳沿,将使得输出Q 4.0的线圈在一个扫描周期内通电。对输入I 1.0常开触点扫描的RLO值存放在存储位M 1.0中。表3.9 跳变沿检测指令图3.12 RLO正跳沿检测1 2 3 4 5 6 7 8 9OBI扫描周期Q4.0M1.0I1.0信号状态图Q4.0M1.0I1.0语句表AFPI1
47、.0(P)M1.0()Q4.0梯形图图3.13 触点负跳沿检测NEGI0.3QM_BITM0.0I0.2I0.1I0.0I0.4()Q4.0如果下列条件同时成立,则输出Q4.0为1:输入I0.0、I0.1和I0.2的信号状态为1。输入I0.3有负跳沿。输入I0.4的信号状态为1。图3.13是使用触点负跳沿检测指令的例子。图中,由给出需要检测的触点编号(I 0.3),(M 0.0)用于存放该触点在前一个扫描周期的状态。2.串并联组合表示法 当逻辑串是复杂组合时,CPU的扫描顺序是先“与”后“或”。图3.16(a)给出的梯形逻辑是触点先并后串的例子,与其对应的语句表为:A(O I0.0 O I0.
48、2 )A(O M10.0 O M0.3 )A M10.1 Q4.0 I0.0()I0.2M10.0M0.3M10.1Q4.0(a)I0.0()I0.2M10.0M0.3M10.1Q4.0(b)图4.16 串并联组合逻辑梯形图 图3.16(b)是先串后并的例子,与其对应的语句表如下:A(A I0.0 A M10.0 O A I0.2 A M0.3 )A M10.1 Q4.03.3 定时器与计数器指令3.3.1 定时器指令 定时器是PLC中的重要部件,它用于实现或监控时间序列。定时器是一种由位和字组成的复合单元,定时器的触点由位表示,其定时时间值存储在字存储器中。S7-300/400提供的定时器有
49、:脉冲定时器(SP)扩展定时器(SE)接通延时定时器(SD)带保持的接通延时定时器(SS)和断电延时定时器(SF)。1.定时器的组成 在CPU的存储器中留出了定时器区域,用于存储定时器的定时时间值。每个定时器为2 B,称为定时字。在S7-300中,最多允许使用256个定时器。S7中定时时间由时基和定时值两部分组成,定时时间等于时基与定时值的乘积。采用减计时。定时时间到后会引起定时器触点的动作。定时器的第0位到第11位存放二进制格式的定时值,第12、13位存放二进制格式的时基(如图3.18所示)。表3.11给出了可能出现的组合情况。图3.18 累加器1低字的内容(定时值127,时基l s)图4.
50、181510000100100111870721三位BCD码范围(0999)时基1 s无关:当定时器启动时这两位被忽略表3.11 时基与定时范围 设置定时时间,用户需给累加器1装入需要的数值,避免格式错误,推荐采用下述直观的句法:L W#16#wxyz其中,w为时基,取值为0,1,2或3,分别表示时基为10 ms,l00 ms,1 s或10 s;xyz为定时值,取值范围为1999。也可直接使用S5中的时间表示法装入定时数值,例如:L S5T#aH_bbM_ccS_dddMS其中,a:小时,bb:分钟,cc:秒,ddd:毫秒,时基是自动选择的,原则是能满足定时范围要求的最小时基。2.定时器的启动