9
上海庆惜自动化设备有限公司
S7-300/400系列PLC的每种模块都有其特定的所写,如PS为电源模块,CPU为处理器模块,SM为信号模块,IM为接口模块,DM为占位模块,FM为功能模块,CP为通信处理器模块。每个缩写后面一般就是模块的型号,如PS3XX表示S7-300系列PLC的电源模块,PS4XX表示S7-400系列PLC的电源模块,最后两位“XX”为具体型号,通过查阅产品手册可得其具体性能。
另外,S7-300/400系列PLC在放置模块时,有特定的要求,如电源模块总是安装在机架的较左边,CPU模块紧靠电源模块。如果有接口模块,它放在CPU模块的右侧。另需注意的是,S7-300/400系列PLC每个机架上所能容纳的模块数量是有限的,如果一个机架上所容纳的模块数量不够用,可考虑扩展机架。
4.4 思考与练习
1.画图说明S7-300/400系列PLC机架扩展方式。
2.S7-300和S7-400系列PLC都可以用哪几种语言编程?
*5章 S7-300/400系列PLC的硬件组成
本章介绍S7-300/400系列PLC的硬件组成,包括S7-300系列、S7-400系列以及分布式I/O的处理器模块、输入/输出模块及电源模块等常用模块。
5.1 S7-300的硬件组成S7-300系列PLC采用模块化结构,一般由处理器模块(CPU)、负载电源模块(PS)、信号模块(SM)、功能模块(FM)、通信模块(CP)和接口模块(IM)组成。各个模块以搭积木的方式在机架上组成系统,灵活性好,便于维修。
5.1.1 处理器模块
S7-300有多种型号的CPU,CPU内的元件封装在一个紧凑的塑料机壳内,机壳的面板上有状态和故障指示LED、模式选择开关、通信接口、后备电池盒和存储器(MMC)插槽。
下面以CPU 315-2 PN/DP为例对处理器模块进行说明。CPU 315-2 PN/DP面板如图5-1所示。
HOLD(保持)。在所有的模式中,都可以通过MPI接口与其他设备通信。
·S**模式:CPU模块通电后自动进入S**模式,在该模式不执行用户程序,可以接收全局数据和检查系统。
·RUN模式:CPU扫描用户程序,刷新输入和输出,处理中断和故障信息服务。
·STARTUP模式:启动模式,可以用模式选择开关或编程软件启动CPU,如果模式选择开关在RUN或RUN-P位置,则通电时自动进入启动模式。
·HOLD模式:在STARTUP和RUN模式执行程序时遇到调试用的断点,用户程序的执行被挂起(暂停),定时器被冻结。
3.模式选择开关
有的CPU的模式选择开关(模式选择器)是一种钥匙开关,操作时需要插入钥匙,用来设置CPU当前的运行方式。钥匙拔出后,就不能改变操作方式。这样可以防止未经授权的人员非法删除或改写用户程序;还可以使用多级口令来保护整个数据库,使用户有效地保护其技术机密,防止未经允许的复制和修改。钥匙开关各位置的意义如下。
1)RUN-P(运行-编程)位置:CPU不仅执行用户程序,在运行时还可以通过编程软件读出和修改用户程序,以及改变运行方式,在这个位置不能拔出钥匙开关。
2)RUN(运行)位置:CPU执行用户程序,可以通过编程软件读出用户程序,但是不能修改用户程序,在这个位置可以取出钥匙开关。
3)S**(停止)位置:不执行用户程序,通过编程软件可以读出和修改用户程序,在这个位置可以取出钥匙开关。
4)MRES(清除存储器):MRES位置不能保持,在这个位置松手时开关将自动返回S**位置。将模式选择开关从S**状态扳到MRES位置,可以复位存储器,使CPU回到初始状态。工作存储器、RAM装载存储器中的用户程序和地址区被清除,全部存储器、定时器、计数器和数据块均被删除,即复位为零,包括有保持功能的数据。CPU检测硬件,初始化硬件和系统程序的参数,系统参数、CPU和模块的参数被恢复为默认设置,MPI(多点接口)的参数被保留。如果有快闪存储器卡,CPU在复位后将它里面的用户程序和系统参数复制到工作存储区。
存储器卡被取出或插入时,CPU发出系统复位请求,“S**”LED以0.5Hz的频率闪动。此时应将模式选择开关置于MRES位置,执行复位操作。
4.微存储器卡
SIMATIC微存储器卡(MMC)是CPU的存储模块,可以扩展CPU的存储器容量,用于在断电时保存用户程序和某些数据。在使用CPU时总需要MMC。用户程序(所有功能块)、归档和配方、组态数据(STEP 7项目)和操作系统更新及备份数据均可保存在MMC中。如果在写访问过程中拆下SIMATIC微存储器卡,卡中的数据会被破坏。在这种情况下,必须将MMC插入编程器中删除它,或在CPU中格式化存储器卡。只有在断电状态或CPU处于“S**”状态时,才能取下存储器卡。当CPU请求一个存储器复位时(“S**”LED缓慢闪亮),应运用下述开关程序对它进行格式化。
1)将开关置为MRES位置,并保持,直至LED停止闪亮(即大约9秒后一直亮着)。
2)在随后的3秒内,释放开关,并再次切换为MRES位置。“S**”LED闪亮,指示正在进行格式化。
一定要使用规定的操作顺序。否则,MMC就不能进行格式化,而是返回存储器复位状态。只有出于某种特定原因,才能对MMC进行格式化,例如在更换模块后出现存储器复位请求时就不能格式化MMC。在这种情况下,如果切换为MRES状态,只能进行正常的存储器复位操作,同时保留现有MMC数据。
5.通信接口
MPI(Multi Point Interface,多点接口):用于CPU和PG/OP之间的接口,或用于MPI子网中的通信接口。每个CPU都安装有一个RS 485 MPI接口。一般(默认)传输速率为187.5kb/s。如果与S7-200进行通信,也可以*19.2kb/s的传输速率。不能*其他传输速率。在多点接口,CPU可以自动传播其总线参数组态(如波特率)。然后,编程器可以自动检索正确的参数,并连接至一个MPI子网。
PROFIBUS-DP接口:带有DP后缀的CPU配备了PROFIBUS接口(如CPU 315-2 DP)。PROFIBUS-DP接口主要用于连接分布式I/O。使用PROFIBUS-DP可以创建扩展子网,较大传输速率为12 Mb/s。设置主站模式时,CPU会通过PROFIBUS-DP接口传播其总线参数(如传输率),例如,PG可以接收正确的参数并自动连接到PROFIBUS子网。在组态中,可*禁用总线参数传播。
PROFINET(工业以太网)接口:带有PN后缀的CPU配备了PROFINET接口(如CPU 315-2 PN/DP或CPU 319-3 PN/DP)。PROFINET接口或通信处理器可用于在S7-300 CPU系统中实现工业以太网通信。在开放的多供应商通信系统中,工业以太网代表过程和单元级上的SIMATIC网络。然而,PROFINET CPU也支持现场级的实时通信。该结构还支持S7通信。工业以太网适用于高速大容量的数据交换,以及通过网关进行的远程网络操作。PROFINET有PROFINET IO和PROFINET CBA两个版本可用。
PtP(点对点)接口:该接口可以连接安装有串口的设备,例如条码阅读器、打印机等非西门子设备。此时,在全双工模式(RS 422),可以实现传输速率19.2kb/s;在半双工模式(RS 485),可以实现传输速率38.4kb/s。CPU 313C-2 PtP和CPU 314C-2 PtP都安装有一个PtP接口。
ASI(执行器/传感器接口):ASI代表自动化系统中较低过程级别上的子网系统。它专用于联网数字传感器和执行器。较大数据量为每个从站4个位。S7-300 CPU需要用于ASI连接的通信处理器。
电池盒是安装锂电池的盒子,在PLC断电时,锂电池用来**实时钟的正常运行,并可以在RAM中保存用户程序和更多的数据,保存的时间为1年。有的低端CPU(如312IFM与313)因为没有实时钟,没有配备锂电池。
7.电源接线端子
电源模块的L1、N端子接220VAC电源,电源模块的接地端子和M端子一般用短路片短接后接地,机架的导轨也应接地。
电源模块上的L+和M端子分别是24VDC输出电压的正极和负极。使用专用的电源连接器或导线连接电源模块和CPU模块的L+和M端子。
8.实时钟与运行时间计数器
CPU 312 IFM与CPU 313因为没有锂电池,只有软件实时钟,PLC断电时停止计时,恢复供电后,从断电瞬时的时刻开始计时。有后备锂电池的CPU有硬件实时钟,可以在PLC电源断电时继续运行。运行小时计数器的技术范围为0~32767h。
9.CPU模块上的集成I/O
有的CPU模块上有集成的数字量I/O,有的还有集成的模拟量I/O。图5-2为集中在CPU的数字量/模拟量I/O。
紧凑型CPU技术参数如表5-1所示;标准型CPU技术参数如表5-2所示;故障安全型CPU技术参数如表5-3所示;技术功能型CPU技术参数如表5-4所示。
5.1.2 输入/输出模块
输入/输出模块统称为信号模块(SM),包括数字量输入模块和输出模块、模拟量输入模块和输出模块。S7-300的输入/输出模块的外部接线接在插入式的前连接器的端子上,前连接器插在前盖后面的凹槽内。不需断开前连接器上的外部连线,就可以*地更换模块。
1.数字量输入模块
数字量输入模块分为直流输入模块和交流输入模块。S7-300系列PLC的数字量输入模块型号主要有6S7E 321系列和6S7E 131系列,后者主要用于ET 200
S7-300/400系列PLC的指令系统
本章介绍S7-300/400系列PLC的编程语言和存储区,并详细描述S7-300/400系列PLC的梯形图指令系统。PLC的编程语言与一般计算机语言相比,具有明显的特点,它既不同于高级语言,也不同于一般的汇编语言,它既要满足易于编写,又要满足易于调试的要求。目前,还没有一种对各厂家产品都能兼容的编程语言。
S7-300/400系列PLC支持梯形图、语句表(即指令表)和功能块图三种编程语言,本章以比较*理解的梯形图为主,配合实例详细介绍15类梯形图的使用方法。
6.1 S7-300/400的编程语言
STEP 7是S7-300/400系列PLC的编程软件。梯形图、语句表(即指令表)和功能块图是标准的STEP 7软件包配备的3种基本编程语言,这3种语言可以在STEP 7中相互转换。下面主要介绍适合于初学者的梯形图。
6.1.1 编程语言的**标准
S7-300/400的编程语言
STEP 7是S7-300/400系列PLC的编程软件。梯形图、语句表(即指令表)和功能块图是标准的STEP 7软件包配备的3种基本编程语言,这3种语言可以在STEP 7中相互转换。下面主要介绍适合于初学者的梯形图。
6.1.1 编程语言的**标准
IEC(**电工**)是为电子技术的所有领域制定**标准的世界性组织。IEC 61131是PLC的**标准,IEC于1979年成立了IEC 61131工作组,1992~1995年发布了IEC 61131标准,我国参照IEC 61131标准,在1995年11月发布了PLC的国家标准GB/T 15969。该标准基本上采用了IEC 6113l标准的前4部分。
IEC 61131由以下5部分组成。
1)通用信息。
2)设备要求与测试。
3)编程语言。
4)用户指南。
3.功能块图
功能块图(FBD)使用类似于布尔代数的图形逻辑符号来表示控制逻辑。一些复杂的功能(如数学运算功能)用指令框来表示,有数字电路基础的人很*掌握。功能块图用类似于与门、或门的方框来表示逻辑运算关系,方框的左侧为逻辑运算的输入变量,右侧为输出变量,输入、输出端的小圆圈表示“非”运算,方框被“导线”连接在一起,信号自左向右流动。
4.编程语言的相互转换与选用
在STEP 7编程软件中,如果程序块没有错误,并且被正确地划分为网络,在梯形图、功能块图和语句表之间可以转换。用语句表编写的程序不一定能转换为梯形图,不能转换的网络仍然保留语句表的形式,但是并不表示该网络有错误。
语句表可供习惯用汇编语言编程的经验丰富的程序员使用,在运行时间和存储空间方面较优。语句表的输入方便快捷,还可以在每条语句的后面加上注释,便于复杂程序的阅读和理解。在设计通信、数学运算等高级应用程序时建议使用语句表。
梯形图与继电器电路图的表达方式较为相似,适合于熟悉继电器电路的用户使用。语句表程序较难阅读,其中的逻辑关系很难一眼看出,在设计和阅读复杂的触点电路的程序时较好使用梯形图语言。功能块图适合于熟悉数字电路的用户使用S7-300/400的存储区
S7-300/400系列PLC的存储区用于存储系统程序和用户程序。根据使用功能的不同,存储区通常还被分为若干个区域,了解这些区域的作用是进行PLC编程的基础。
6.2.1 数制
1.二进制数
二进制数的1位(bit)只能取0和1这两个不同的值,可以用来表示开关量(或称数字量)的两种不同的状态,例如触点的断开和接通、线圈的通电和断电等。如果该位为1,表示梯形图中对应的位编程元件(例如位存储器M和输出过程映像Q)的线圈“通电”,其常开触点接通,常闭触点断开,以后称该编程元件为1状态,或称该编程元件ON(接通)。如果该位为0,对应的编程元件的线圈和触点的状态与上述的相反,称该编程元件为0状态,或称该编程元件OFF(断开)。二进制常数用2#表示,例如2#1111 0110 1001 000l是16位二进制常数。
2.十六进制数
十六进制的16个数字是0~9和A~F(对应于十进制数10~15),每个数字占二进制数的4位。B#16#、W#16#、DW#16#分别用来表示十六进制字节、字和双字常数,例如W#16#13AF。在数字后面加“H”也可以表示十六进制数,例如16#13AF可以表示为13AFH。
1.基本数据类型
(1)位
位(bit)数据的数据类型为BOOL(布尔)型,在编程软件中BOOL变量的值1和0常用英语单词TURE(真)和FALSE(假)来表示。
位存储单元的地址由字节地址和位地址组成,例如I3.2中的区域标示符“I”表示输入(Input),字节地址为3,位地址为2。这种存取方式称为“字节.位”寻址方式。
(2)字节
8位二进制数组成1个字节(BYTE),其中的*0位为较低位(LSB),*7位为较高位(MSB)。
(3)字
相邻的两个字节组成一个字(WORD),字用来表示无符号数。MWl00是由MBl00和MBl01组成的1个字,MBl00为高位字节。MWl00中的M为区域标示符,W表示字,100为字的起始字节MBl00的地址。字的取值范围为W#16#0000~W#16#FFFF。
(4)双字
两个字组成1个双字(Double Word),双字用来表示无符号数。MDl00是由MBl00~MBl03组成的1个双字,MBl00为高位字节,D表示双字,100为双字的起始字节MB100的地址。双字的取值范围为DW#16#0000 0000~DW#16#FFFF FFFF。
(5)16位整数
整数(Integer,INT)是有符号整数,其较高位为符号位,较高位为0时为正数,为1时为负数,取值范围为-32768~32767。用补码来表示,正数的补码就是它的本身,将一个正数对应的二进制数的各位求反后加1,可以得到**值与它相同的负数的补码。
(6)32位整数
32位整数(Double Integer,DINT)的较高位为符号位,取值范围为-2147483648~2147483647。
(7)32位浮点数浮点数又称实数(REAL),浮点数可以表示为1.m×2E,例如123.4可表示为1.234×102。符合ANSI/IEEE标准754_1985的基本格式的浮点数可表示为:
浮点数=1.m×2E
式中,指数e=E+127(1≤e≤254),为8位整数。
ANSI/IEEE标准浮点数共占用一个双字(32位)。较高位(*31位)为浮点数的符号位,较高位为0时为正数,为1时为负数;8位指数占23~30位;因为规定尾数的整数部分总是为1,只保留了尾数的小数部分m(0~22位)。浮点数的表示范围为±1.175495×10-38~±3.402823×1038。
浮点数的优点是用很小的存储空间(4B)可以表示非常大和非常小的数。PLC输入和输出的数值大多是整数(例如模拟量输入值和模拟量输出值),用浮点数来处理这些数据需要进行整数和浮点数之间的相互转换,浮点数的运算速度比整数运算速度慢得多。
(8)常数的表示方法
常数值可以是字节、字或双字,CPU以二进制方式存储常数,常数也可以用十进制、十六进制ASCII码或浮点数形式来表示。
B#16#、W#16#、DW#16#分别用来表示十六进制字节、字和双字常数。2#用来表示二进制常数,例如2#11011010。
1.装载存储器
装载存储器可能是RAM和FEPROM,用于保存不包含符号地址和注释的用户程序和系统数据(组态、连接和模块参数等)。有的CPU有集成的装载存储器,有的可以用微存储卡(MMC)扩展,CPU 3lxC的用户程序只能装入插入式的MMC。
断电时数据保存在MMC存储器中,因此数据块的内容基本上被*保留。
下载程序时,用户程序(逻辑块和数据块)被下载到CPU的装载存储器,CPU把可执行部分复制到工作存储器,符号表和注释保存在编程设备中。
2.工作存储器
它是集成的高速存取的RAM存储器,用于存储CPU运行时的用户程序和数据,例如组织块、功能块、功能和数据块。为了**程序执行的快速性和不过多地占用工作存储器,只有与程序执行有关的块被装入工作存储器。
STL程序中的数据块可以被标识为“与执行无关”(UNLINKED),它们只是存储在装载存储器中。有必要时可以用SFC 20“BLKMOV”将它们复制到工作存储器。复位CPU的存储器时,RAM中的程序被清除,FEPROM中的程序不会被清除。
3.系统存储器
系统存储器是CPU为用户程序提供的存储器组件,划分为若干个地址区域。使用指令可以在相应的地址区内对数据直接进行寻址。系统存储器为不能扩展的RAM,用于存放用户程序的操作数据,例如过程映像输入、过程映像输出、位存储器、定时器和计数器、块堆栈(B堆栈)、中断堆栈(I堆栈)和诊断缓冲区等。
系统存储器还提供临时存储器(局域数据堆栈,即L堆栈),用来调用存储程序块时的临时数据。访问局域数据比访问数据块中的数据更快。用户生成块时,可以声明临时变量(TEMP),它们只在执行该块时有效,执行完后就被覆盖了。
4.外设I/O存储区
通过外设I/O存储区(PI和PQ),用户可以不经过过程映像输入和过程映像输出,直接访问输入模块和输出模块。不能以位为单位访问外设I/O存储区,只能以字节、字和双字为单位访问。
6.2.4 系统存储器
S7 CPU的系统存储区域分为表6-1中列出的地址区域。在程序中可以根据相应的地址直接读取数据。
与直接访问I/O模块相比,访问过程映像表可以**在整个程序周期内,过程映像的状态始终一致。即使在程序执行过程中接在输入模块的外部信号状态发生了变化,过程映像表中的信号状态仍然保持不变,直到下一个循环被刷新。由于过程映像保存在CPU的系统存储器中,访问速度比直接访问信号模块快得多。
输入过程映像在用户程序中的标识符为I,是PLC接收外部输入的数字量信号的窗口。输入端可以外接常开触点或常闭触点,也可以接多个触点组成的串并联电路。PLC将外部电路的通/断状态读入并存储在输入过程映像中,外部输入电路接通时,对应的输入过程映像为ON(1状态);反之为OFF(0状态)。在梯形图中,可以多次使用I的常开触点和常闭触点。
输出过程映像在用户程序中的标识符为Q,在循环周期开始时,CPU将输出过程映像的数据传送给输出模块,再由后者驱动外部负载。如果梯形图中Q0.0的线圈“通电”,继电器输出模块中对应的硬件继电器的常开触点闭合,使接在Q0.0对应的输出端子的外部负载工作。输出模块中的每一个硬件继电器仅有一对常开触点,但是在梯形图中,可以多次使用输出位的常开触点和常闭触点。
除了操作系统对过程映像的自动刷新外,S7-400 CPU可以将过程映像划分为较多15个区段,这意味着如果需要,可以独立循环,刷新过程映像表的某些区段,用STEP 7*的过程映像区段中的每一个I/O地址不再属于OBl过程映像输入/输出表。需要定义哪些I/O模块地址属于哪些过程映像区段。
可以在用户程序中用SFC(系统功能)刷新过程映像。SFC 26“UPDAT_PI”用来刷新整个或部分过程映像输入表,SFC 27“UPDAT_PO”用来刷新整个或部分过程映像输出表。
某些CPU也可以调用OB(组织块)由系统自动地对*的过程映像分区刷新。
2.内部存储器标志位存储器区
内部存储器标志位(M)用来保存控制逻辑的中间操作状态或其他控制信息。虽然名为“位存储器区”,表示按位存取,但是也可以按字节、字或双字来存取。
3.定时器存储器区
定时器(T)相当于继电器系统中的时间继电器。给定时器分配的字用于存储时间基值和时间值(0~999)。时间值可以用二进制或BCD码方式读取。
4.计数器存储器区
上海庆惜自动化设备有限公司
S7-300/400的指令系统
与其他控制器一样,西门子S7-300/400系列PLC有着丰富的指令,其功能兼顾的控制及运算,可满足绝大多数基本控制需求。
6.3.1 位逻辑指令
位逻辑指令用于二进制数的逻辑运算,二进制数只有0和1这两个数,位逻辑指令只使用1和0两个数字。在触点和线圈领域中,1表示激活或激励状态,0表示未激活或未激励状态。位逻辑指令对1和0信号状态加以解释,并按照布尔逻辑组合它们。这些组合产生由1或0组成的结果,位逻辑指令如表6-2所示。
——/——存储在*<地址>的位值为0时,(常闭触点)处于闭合状态。触点闭合时,梯形图轨道能流流过触点,RLO=1。否则,如果*<地址>的信号状态为1,将断开触点。触点断开时,能流不流过触点,RLO=0。常闭触点对应的地址位为0状态时该触点闭合。
串联使用时,通过AND逻辑将——/——与RLO位进行连接。并联使用时,通过OR逻辑将其与RLO位进行连接。
【例6-2】常闭触点指令实例
常闭触点指令实例如图6-2所示。
[图片]图 6-2 常闭触点指令实例图
满足下列条件之一时,将会通过能流,Q16.4通电。
3.能流取反
符号:
——|NOT|——
——|NOT|——表示取反RLO位。取反触点的中间标有“NOT”,用来将它左边电路的逻辑运算结果RLO取反(见图6-3),运算结果若为1则变为0,为0则变为1,该指令没有操作数。换句话说,能流到达该触点即停止流动;若能流未到达该触点,该触点给右侧供给能流。
【例6-3】能流取反指令实例
能流取反指令实例如图6-3所示。
[图片]图 6-3 能流取反指令实例图
满足下列条件之一时,输出端Q16.4的信号状态将是0。
——()的工作方式与继电器逻辑图中线圈的工作方式类似。如果有能流通过线圈(RLO=1),将置位<地址>位置的位为1。如果没有能流通过线圈(RLO=0),将置位<地址>位置的位为0。只能将输出线圈置于梯级的右端。可以有多个(较多16个)输出单元(请参见实例)。使用——NOT——单元可以创建取反输出。
【例6-4】输出线圈指令实例
输出线圈指令实例如图6-4所示。
满足下列条件之一时,输出端Q16.4的信号状态将是1。
[图片]图 6-4 输出线圈指令实例图
输入端I4.0和I4.1的信号状态为1时或输入端I4.2的信号状态为0时。
满足下列条件之一时,输出端Q16.5的信号状态将是1。
输入端I4.0和I4.1的信号状态为1时或输入端I4.2的信号状态为0且输入端I4.3的信号状态为1时。
例6-4的输入/输出状态如表6-9所示。
——(N)——检测地址中1到0的信号变化,并在指令后将其显示为RLO=1。将RLO中的当前信号状态与地址的信号状态(边沿存储位)进行比较。如果在执行指令前地址的信号状态为1,RLO为0,则在执行指令后RLO将是1(脉冲),在所有其他情况下将是0。指令执行前的RLO状态存储在地址中。
【例6-10】下降沿检测指令实例
下降沿检测指令实例如图6-10所示。
边沿存储位M0.0保存RLO的先前状态。RLO的信号状态从1变为0时,程序将跳转到标号CAS1。
2.将RLO状态保存到BR
符号:
——(SAVE)
——(SAVE)将RLO保存到状态字的BR位。未复位*一个校验位/FC,因此,BR位的状态将包含在下一程序段的AND逻辑运算中。
指令“SAVE”(LAD、FBD、STL)适用下列规则,手册及在线帮助中提供的建议用法并不适用:
用户不要在使用SAVE后在同一块或从属块中校验BR位,因为这期间执行的指令中有许多会对BR位进行修改。用户在退出块前使用SAVE指令,因为ENO输出(=BRNEG是单个地址位提供的信号的下降沿检测指令,比较<address1>的信号状态与**次扫描的信号状态(存储在<address2>中)。如果当前RLO状态为1且其**状态为0(检测到下降沿),执行此指令后RLO位将是1。相应的输出线圈“通电”一个扫描周期。
【例6-13】地址下降沿检测指令实例
地址下降沿检测指令实例如图6-13所示。
[图片]图 6-13 地址下降沿检测指令实例图
同时满足下列条件时,输出Q4.0的信号状态将是1。
·输入I0.0、I0.1和I0.2的信号状态是1。
·输入I0.3有下降沿。
·输入I0.4的信号状态为1。
14.POS地址上升沿检测
位)此时已设置为RLO的值,所以可以检查块中是否有错误。
1.定时器的种类
定时器相当于继电器电路中的时间继电器,S7 300/400的定时器分为脉冲定时器(SP)、扩展脉冲定时器(SE)、接通延时定时器(SD)、保持型接通延时定时器(SS)和断开延时定时器(SF)。
脉冲定时器在输入信号的上升沿开始定时,输出为1,当定时时间到或输入信号变为0或者复位输入信号为1时,则输出为0。
扩展脉冲定时器在输入信号的上升沿开始定时,输出为1,当定时时间到或复位输入信号为1,则输出为0,脉冲定时器和扩展脉冲定时器的主要区别在于开始定时后,在定时时间未到时是否受到输入信号的影响。
接通延时定时器是使用较多的定时器,在输入信号的上升沿开始定时,当输入信号为1且定时时间到时输出才为1,否则输出为0。
保持型接通延时定时器在输入信号的上升沿开始定时,定时时间到时输出为1,当复位输入信号为1时,输出为0,与接通延时定时器的主要区别在于开始定时后是否受到输入信号的影响。
断开延时定时器在输入信号的上升沿输出为1,在输入信号的下降沿才开始定时,时间到时或复位输入信号为1时,输出为0。
2.定时器的存储区
S5是西门子PLC老产品的系列号,S7-300S5定时器是S5系列PLC的定时器,在梯形图中用指令框(Box)的形式表示。此外每一个S5定时器都有功能相同的用线圈形式表示的定时器。
S7 CPU为定时器保留了一片存储区域。每个定时器有一个16位的字和一个二进制位,定时器的字用来存放当前的定时时间值,定时器触点的状态由位的状态来决定。用定时器地址(T和定时器号,如T6)来存取时间值和定时器位,带位操作数的指令存取定时器位,带字操作数的指令存取定时器的时间值。不同的CPU支持32~512个定时器。梯形图逻辑指令集支持256个定时器。
下列功能可访问定时器存储区。
1)定时器指令。
2)通过定时时钟更新定时器字。当CPU处于RUN模式时,此功能按以时间基准*的时间间隔,将给定的时间值递减一个单位,直至时间值等于零。
3.定时器字的表示方法
用户使用的定时器由3位BCD码时间值(0~999)和时基组成,时基是时间基准的简称,时间值以*的时基为单位。在CPU内部,时间值以二进制格式存放,占定时器字的0~9位。时间值*单位数。时间更新操作按以时间基准*的时间间隔,将时间值递减一个单位,递减至时间值等于零。可以用二进制、十六进制或以二进制编码的十进制(BCD)格式,将时间值装载到累加器1的低位字中。
可以使用以下任意一种格式预先装载时间值。
1)十六进制数W#16#wxyz,其中,w=时间基准(即时间间隔或分辨率);xyz=以二进制编码的十进制格式表示的时间值。
2)S5T#aH_bM_cS_dMS,其中,H=小时,M=分钟,S=秒,MS=毫秒;a、b、c、d为用户设置的值。
时基是CPU自动选择的,选择的原则是在满足定时范围要求的条件下选择较小的时基。可以输入的较大时间值是9990秒或2小时46分钟30秒。
下面举例说明
·S5T#4S=4秒。
·s5t#2h_15m=2小时15分钟。
·S5T#1H_12M_18S=1小时12分钟18秒。
4.时基
S7-300定时器字的*12位和*13位用于时基(时间基准),时间基准定义为将时间值递减一个单位所用的时间间隔。较小的时间基准是10毫秒;较大的时间基准是10秒。时基代码为二进制数00、01、10和11时,对应的时基分别为10ms、100ms、1S和10s。实际的定时时间等于时间值乘以时基值。例如,定时器字为W#16#3999时,时基为l0s,定时时间为9990s。时基反映了定时器的分辨率,时基越小分辨率越高,定时的时间越短;时基越大分辨率越低,定时的时间越长。
如果在启动(S)输入端有一个上升沿,S_PULSE(脉冲S5定时器)将启动*的定时器。信号变化始终是启用定时器的必要条件。定时器在输入端S的信号状态为1时运行,但较长周期是由输入端TV*的时间值。只要定时器运行,输出端Q的信号状态就为1。如果在时间间隔结束前,S输入端从1变为0,则定时器将停止。这种情况下,输出端Q的信号状态为0。
如果在定时器运行期间定时器复位(R)输入从0变为1时,则定时器将被复位。当前时间和时间基准也被设置为零。如果定时器不是正在运行,则定时器R输入端的逻辑1没有任何作用。
可在输出端BI和BCD上扫描当前时间值。时间值在BI端是二进制编码,在BCD端是BCD编码。当前时间值为初始TV值减去定时器启动后经过的时间。