资源描述
,单击此处编辑母版标题样式,*,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,S7-300,使用,STEP 7,软件编程,,STEP 7,是,S7-300/400PLC,的通用编程软件。,STEP 7,标准版配备了梯形图(,LAD,)、语句表(,STL,)及功能块图(,FBD,)三种编程语言,各语言中的部分指令在,STEP 7,中可互相转换。,此外,可选编程语言软件还支持顺序功能图(,SFC,)、结构文本(,SCL,)、连续功能图(,CFC,,仅,S7-400PLC,支持)等。,第三章,S7-300PLC,编程基础及指令系统,第,1,节,S7-300PLC,编程语言及基本程序结构,一、,ST-300PLC,的编程语言,二、用户程序的基本结构,S7-300PLC,的用户程序由程序块,(,或称为逻辑块,),和数据块组成。,程序块包括组织块,OB,、系统功能块,SFB,、系统功能,SFC,、功能块,FB,、功能,FC,等。,OB,由操作系统调用,其它块由,OB,调用。,OB,可调用,SFB,、,FB,、,SFC,、,FC,。,FB,、,FC,可调用,SFB,、,FB,、,SFC,、,FC,数据块为程序块提供相应的数据,包扩共享数据块和背景数据块。,1,、基本数据类型,1,)位(,bit,),BOOL,型。其值为,0,或,1,。,2,)字节(,Byte,),BYTE,型,,8,位二进制数组成,1,个字节。,值为,0255,。,3,)字(,Word,),WORD,型。相邻两个字节组成一个字,表示,16,位无符号数(含,BCD,)。值为,065535,。,第,2,节 基本数据类型及,CPU,内部寄存器,一、基本数据类型及常数表示方法,4,)双字(,Double Word,),DWORD,型。相邻两个字组成一个双字,表示,32,位无符号数(含,BCD,)。其值为,04294967295,。,5,)字符(,Character,),CHAR,型,表示一个,ASCII,字符(,8,位) 。,6,),16,位整数(,Integer,),INT,型,表示,16,位有符号数。,其值为,-32768 32767,。,7,),32,位整数(,Double Integer,),DINT,型,表示,32,位有符号数。,其值为,-2147483648 2147483647,。,8,),32,位浮点数(,Real,),REAL,型。表示,32,位,IEEE745,标准格式的浮点数(实数)。,其值为,1.175495E-38 ,3.402823E+38,。,9,),S5,时间(,S5Time,),S5TIMER,型,表示,16,位,S5,时间常数。,其格式为,S5T# a,H,b,M,c,S,d,MS,。(,a,、,b,、,c,、,d,对应时、分、秒、毫秒。,10,),IEC,时间(,Time,),TIME,型,表示,32,位,IEC,格式时间(有符号)。,其值为,-T#24D20H31M23S648MS T#24D20H31M23S648MS,。,11,),IEC,日期(,Date,),DATE,型,表示,16,位,IEC,格式日期。,其值为,D#1990-1-1 D#2168-12-31.,12,),24,小时制时间(,24h Time_Of_Day),TIME_OF_DATE,型,,32,位,24,小时制格式时间。,其值为,TOD#0:0:0.0 TOD#23:59:59.999,2.,常数表示方法(常用部分),16,位,10,进制整数及,32,位浮点数常数输入时不需加字头。如,123,,,-123,,,123.4,,,-123.4,。浮点数将自动转成指数形式,如:,1.234000e+002,。,浮点常数为整数值时,需加小数点。如,123.0,。,符 号,说 明,2#,2,进制常数,B#16#,W#16#,DW#16#,16,进制字节常数,16,进制字常数,16,进制双字常数,L#,32,位整数常数,S5T#,S5,时间常数(,16,位),C#,计数器常数(,3,位,BCD,,,0999,),1.,累加器(,ACCU1,、,ACCU2,),两个,32,位累加器,用于处理字节、字、双字。,2.,状态字寄存器,16,位状态字寄存器用于存储,CPU,执行指令的状态。,第,0,位(,FC,):首次检测位。为,0,时表示一个逻辑网络的开始。,第,1,位(,RLO,):逻辑运算结果位。用于存储执行位逻辑或比较指令的结果。状态为,1,时表示逻辑运算结果为,1,或比较结果成立。,0,15,7,8,1,2,3,4,5,6,9,OR,OV,OS,CC0,CC1,BR,未使用,FC,RLO,STA,二、,CPU,内部寄存器,第,2,位(,STA,):状态位。执行位逻辑指令时,,STA,总是与该位的值一致。,第,3,位(,OR,):或位。在先逻辑“与”后逻辑“或”的逻辑运算中,,OR,位暂存逻辑“与”的操作结果。,第,4,位(,OV,):溢出位。算术运算或浮点数比较指令执行出错时置,1,。后续同类指令执行正常时,该位清,0,。,第,5,位(,OS,):溢出状态保持位。,OV,置,1,时,,OS,置,1,,,OV,清,0,时,,OS,仍保持为,1,。(只能由,JOS,、块调用、块结束指令复位),第,6,位和第,7,位(,CC0,、,CC1,):条件码,0,和条件码,1,。两位结合用于表示算术运算或逻辑运算的结果与,0,的大小关系,以及比较指令的执行结果或移位指令的移出状态。,第,8,位(,BR,):二进制结果位。用于表示字操作的结果是否正确。,1,正确,,0 ,错误。,3.,地址寄存器(,AR1,和,AR2,),两个,32,位地址寄存器用于寄存器间接寻址。,4.,数据块地址寄存器,S7-300PLC,中有两个数据块地址寄存器,一个用于共享数据块,一个用于背景数据块,均为,32,寄存器。寄存器中存有数据块编号及数据块长度。,存储器有,3,个基本区域:装载存储器、工作存储器和系统存储器。,1,、装载存储器,用于保存用户程序(不包括符号地址及注释)和系统数据(即组态、连接和模块参数等)。,部分型号的,CPU,内集成有装载存储器,而有些型号的,CPU,采用,MMC,作为装载存储器。,对于集成的装载存储器具有掉电保护功能。,使用,MMC,的装载存储器,因数据保存在,MMC,上,所以可认为能永久保留。,第,3,节,S7-300PLC,的存储区分布及寻址,一、,S7-300,系列,PLC,的存储区分布,2,、工作存储器,用于存储,CPU,运行时的用户程序和数据,,OB,(组织块)、,FB,(功能块)、,FC,(功能)、,DB,(数据块)等。只有与程序运行有关的块被装入工作存储器,在,CPU,启动时,从装载存储器装入。,工作存储器集成在,CPU,内且不可扩展,其容量及保持性特性与,CPU,型号有关,。,3,、系统存储器,系统存储器是,CPU,为用户程序提供的存储器,也集成在,CPU,内且不可扩展。系统存储器分为若干区域,如:过程映像,I/O,区、位存储区、定时器和计数器、堆栈区、诊断缓冲区,以及临时存储区等,需保持的数据可在组态时设置。,存储系统构成及关系示意图,(以配,MMC,的,CPU,为例),硬盘存储器,MMC,工作存,储器,逻辑块,数据块,系统数据块,注释,符号,逻辑块,数据块,系统数据块,工作存,储器存放与执行相关的逻辑块以及组态数据。,装载存储器,编程设备,CPU,模块,装载存储器的剩余空间可作为一般的文件存储器使用,系统存,储器也集成在,CPU,内,系统存储器:位存储器、定时器和计数器、,I/O,过程映像、本地数据,二、,S7-300,系列,PLC,的寻址(地址分配),1,、基于槽位的寻址,基于槽位的寻址为默认设置。,机架号为,0,3,,号机架为,CPU,机架,其余为扩展机架。,CPU,机架上的槽号为,1,11,,槽号,1,放置电源模块(,PS,),槽号,2,放置,CPU,模块(,CPU,),槽号,3,放置接口模块(,IM,),槽号,4,11,放置其它模块,(SM,、,FM,、,CP,),每个槽分配,4,个字节数字量地址(共,32,位)和,16,字节的模拟量地址(共,8,个字)。,基于槽位的寻址(以字节为单位),PS,IM,SM,SM,SM,SM,SM,SM,SM,SM,PS,CPU,模块,IM,SM,SM,SM,SM,SM,SM,SM,SM,CR,ER,槽号,起始地址(数字),起始地址(模拟),4,5,6,7,8,9,10,11,0,4,8,12,16,20,24,28,256,272,288,304,320,336,352,368,槽号,起始地址(数字),起始地址(模拟),4,5,6,7,8,9,10,11,32,36,40,44,48,52,56,60,384,400,416,432,448,464,480,496,2,、用户自定义寻址,使用用户定义寻址可以从,CPU,控制的地址区域中自由分配任何所选则模块的地址。,应注意,只有某些型号的,CPU,支持用户自定义寻址。,3,、信号模块的寻址,数字量输入,:,I +,字节地址,+,位地址,IB +,字节地址(,0,、,1,、,2,),IW +,字的低字节地址(,0,、,2,、,4,),如,I0.0,IB0,,,IW0 (,字地址为,0,、,2,、,4,、,.,偶数地址,即,IW0,由,IB0,和,IB1,组成,,IW2,由,IB2,和,IB3,组成)等。,数字量输出,:,Q +,字节地址,+,位地址,QB +,字节地址,QW +,字地址,如,Q0.0,QB0,,,QW0 (,字地址为,0,、,2,、,4,、,偶数字节地址)等。,模拟量输入,:,IW +,字地址,如,IW256 (,字地址为偶数字节地址),模拟量输出,:,QW +,字地址,如,QW288,(字地址为偶数字节地址),4,、外设,I/O,寻址,对于没有,I/O,映像区的外部,I/O,,可采用直接访问方式访问(大部分,S7-300PLC,的,CPU,模块对模拟量,I/O,的访问需采用此方式) ,称作过程,I/O,访问,字头为,PI,或,PQ,。,外设,I/O,寻址支持字节(,PIB,、,PQB,)、字(,PIW,、,PQW,)、双字(,PID,、,PQD,)寻址。现以模拟量,I/O,为例:,模拟量输入,:,PIW +,字地址,例如,PIW256 (,字地址为偶数字节地址),模拟量输出,:,PQW +,字地址,例如,PQW272 (,字地址为偶数字节地址),5,、位(状态)存储区寻址,依,CPU,型号,存储器大小为,128,2048B,不等,支持位寻址、字节寻址、字寻址和双字寻址。,位存储区以,M,标识,如:,M0.0,、,MB0,、,MW0,、,MD0 (,字地址为偶数地址,0,、,2,、,4,,双字地址为,0,、,4,、,8,)等。,6,、定时、计数器存储区寻址,依,CPU,型号不同,可有,64,256,个定时器,,32,256,个计数器。定时器标识符为,T,,计数器标识符为,C,。如:,T0,,,C0,等。,7,、数据块,DB,(,1,)共享数据块,(Shared DB),共享数据块为系统或用户自定义的数据结构(与,C,语言中的结构类似),可供所有逻辑块使用。名称为,DBn,,,n,为编号(一般为,1,2047,,具体可定义的个数,视,CPU,型号而定),其属性,Shared,。在,DB,中可定义各种类型的数据变量,且可对变量赋初值。支持,DB,绝对地址访问及变量形式访问。,(,2,)背景数据块,(Instance DB),与某一功能块,(FB),或系统功能块,(SFB),相关联,名称也为,DBn,,但其结构由对应的,FB/SFB,决定。其属性为,Instance,,且属性中有其所归属的,FB,或,SFB,标识。,(,3,)数据块的访问,共享数据块与背景数据块的访问方法相同。,数据块中的数据可采用先打开,后访问或直接访问的方法来访问。,先打开后访问时,,先用数据块打开指令打开要访问的,DBn,,然后可直接采用,DBX,m1.m2,、,DBB,m,、,DBW,m,、,DBD,m,的直接地址形式访问。,DBX,为数据块中数据位的标识,如寻址数据块中某一位时采用,DBX,m1.m2,形式,,m1,为字节地址,,m2,为位地址。,DBB,为数据块中的数据字节,字节寻址为,DBB,m,,,m,为字节地址。,DBW,为数据块中的数据字,字寻址为,DBW,m,,,m,为偶数地址。,DBD,为数据块中的数据双字,双字寻址为,DBDm,,,m,为,0,、,4,、,8,等。,直接访问时,采用绝对地址访问或变量名称访问形式来访问。,采用绝对地址访问的形式为,DBn.DBXm1.m2,、,DBn.DBBm,、,DBn.DBWm,、,DBn.DBDm,。,采用变量名称访问的形式为,DBn.,变量名,8,、寻址方式概述,STEP 7,指令有四种寻址方式,即立即寻址、直接寻址、存储器间接寻址和寄存器间接寻址。,(,1,)立即寻址,操作数本身就在指令中,或因操作数是唯一的,在指令中不再给出。立即寻址主要用于常数操作数和某些状态寄存器操作。例如:,L 25 /,整数,37,装入,ACCU1,L ABCD /ASCII,字符装入,ACCU1,L C#12 /,计数常数装入,ACCU1,AW W#16#0F1A /ACCU1,低字和常数逐位“与”,SET /RLO,置,1,(,2,)直接寻址,所谓直接寻址,就是指令中直接给出操作数的存储单元。例如:,A I0.0 /”,与“,I0.0,L IB0 /,将,IB0,的内容装入运算累加器,1,(,ACCU1,),L MW64 /,将,MW64,的内容装入,ACCU1,= Q0.0 /,将,RLO,的内容赋给,Q0.0,S M1.0 /M1.0,置,1,T DBD10 /,将,ACCU1,中的内容传送至,DBD12,中,(,3,)存储器间接寻址,存储器间接寻址就是以存储器的内容作为地址,通过这个地址间接找到操作数。,对于,T,、,C,、,DB,、,FB,和,FC,的编号,因其范围在,065535,之间,只需,16,位地址,故使用字指针。其它地址(如,I,、,Q,、,M,及,DB,块中的位、字节、字、双字寻址),则采用双字地址。,例如:,16,位地址,OPN DBMW2 /MW2,内容为,5,,则为 打开,DB5,SD TMW4 /MW4,内容为,2,,则为 启动,T2,双字指针格式:,3119,位,均为,0,;,183,位,字节地址;,20,位,位地址;,地址指针常数以,P#,标识,,MD,、,LD,和,DBD,可用于存储地址指针。,32,位地址示例程序:,L P#2.3 /,将地址,2.3,装入,ACCU1,T MD2 /,将,ACCU1,的内容(即地址,2.3,)传送至,MD2,A IMD2 /,对输入位,I2.3,进行与操作,= QMD2 /,结果输出至,Q2.3,(注:,P#2.3,为,2#0000 0000 0000 0000 0000 0000 0001 0011),(,4,)地址寄存器间接寻址,地址寄存器间接寻址是使用地址寄存器,AR1,和,AR2,对存储区寻址。分为区域内寄存器间接寻址和区域间寄存器间接寻址,区域内寄存器间接寻址,程序示例如下:,L P#8.7 /,将地址,8.7,装入,ACCU1,LAR1 /,将,ACCU1,内容装入,AR1,A I AR1,,,P#0.0 /,对,I8.7,进行“与”操作,= QAR1,,,P#1.1 /,结果输出至,Q10.0,注:,AR1,,,P#0.0,为,AR1,内容(,8.7,)加上偏移量,0.0,(仍为,8.7,);,AR1,,,P1.1,为,AR1,内容(,8.7,)加上偏移量,1.1,(为,10.0,),位运算为八进制,字节运算为十进制;,区域间寄存器间接寻址,程序示例如下:,L P#I7.3 /,将,I7.3,的地址装入,ACCU1,LAR1 /,将,ACCU1,内容装入,AR1,L P#Q8.3 /,将,I7.3,的地址装入,ACCU1,LAR2 /,将,ACCU1,内容装入,AR2,A AR1,,,P#0.0 /,对,I8.7,进行“与”操作,= AR2,,,P#1.1 /,结果输出至,Q10.0,与区域内寻址的区别是在前面的地址中直接指定了区域(,I,和,Q,),而在后面的操作中不再指定区域。,(,1,)“与”和“与非” 操作,“与”,是以常开点开始的串联逻辑行,或者是串联单个常开点。,“与非”,是以常闭点开始的串联逻辑行,或者是串联单个常闭点。,触点可以是,I,区、,Q,区、,M,区、,DB,块内的,BOOL,点、定时器,T,和计数器,C,的状态点,以及临时状态点。,第,4,节,S7-300PLC,的指令系统,一、位逻辑、装入,/,传送及定时,/,计数指令,1.,位逻辑指令,例如:,I0.0,I0.1,I0.0,I0.1,LAD,指令,STL,指令,A I0.0,A I0.1,A I0.0,AN I0.1,I0.1,I0.0,AN I0.0,A I0.1,(,2,)“或”和“或非” 操作,“或”,是以常开点开始的并联逻辑行,或者是并联单个常开点。,“或非”,是以常闭点开始的并联逻辑行,或者是并联单个常闭点。,触点同,1,)。,例如:,O I0.0,ON I0.1,I0.0,I0.1,LAD,指,令,STL,指令,O I0.0,O I0.1,I0.0,I0.1,(,3,)“非”操作,RLO,取,“,非,”,。,(,4,)输出 操作,将逻辑运算结果输出至指定存储位。存储位可以是,Q,区、,M,区、,DB,块内的,BOOL,点,以及临时状态点。,|NOT|,LAD,指令,STL,指令,NOT,LAD,指令,STL,指令,(),Q0,.0,= Q0.0,(,5,)“与”操作嵌套开始及结束,由于程序按先“与”后“或”次序执行,当需要先进行“或”操作时,使用该指令。,A,( 开始,) 结束,例如:,LAD,STL,指令,I0.0,I0.1,Q4.1,( ),Q4.1,A (,O I0.0,O Q4.1,),AN I0.1,= Q4.1,A(,ON I0.0,O I0.2,),A(,O I0.1,ON I0.3,),AN C2,= Q4.3,STL,指令,I0.0,I0.2,I0.3,I0.1,C2,( ),Q4.3,LAD,(,6,)逻辑行“或”操作(,O,),由于程序按先“与”后“或”次序执行,当出现逻辑行“或”操作时,使用不带地址的,O,指令。,例如:,AN I0.0,A I0.1,O,A I0.2,AN I0.3,= Q4.2,LAD,STL,指令,I0.0,I0.2,I0.3,I0.1,( ),Q4.2,(,7,)复位(,R,)、置位(,S,)操作、,对应点的置,1,或置,0,。,(,8,)上升沿检测(,P,)和下降沿检测(,N,),RLO,上升沿检测和下降沿检测。,R Q1.2,STL,指令,LAD,指令,S M1.2,STL,指令,LAD,指令,FP M1.2,STL,指令,LAD,指令,(,P,),M1.2,FN M1.2,STL,指令,LAD,指令,(,N,),M1.2,(,R,),Q1.2,(,S,),M1.2,(,9,),RLO,状态保存至,BR,(,SAVE,),(,10,)地址下降沿(,NEG,)和上升沿检测(,POS,),SAVE,STL,指令,LAD,指令,A I0.0,BLD 100,FN M1.0,= Q0.0,STL,指令,LAD,指令,A I0.0,BLD 100,FP M1.0,= Q0.0,NEG,M_BIT,Q,I0.0,M1.0,(),Q0.0,POS,M_BIT,Q,I0.0,M1.0,(),Q0.0,(,SAVE,),(,11,),RS,触发器、,SR,触发器,置位优先触发器(,RS,)和复位优先触发器(,SR,)。,A I0.0,R M0.1,A I0.1,S M0.1,LAD,STL,指令,A I0.0,S M0.2,A I0.1,R M0.2,I0.0,I0.1,RS,R Q,S,M0.1,I0.0,I0.1,SR,S Q,R,M0.2,这两条是,STL,指令,无对应的梯形图指令。,STL,编程及一些梯形图转为,STL,指令时会用到。,(,1,)装入指令(,L,),装入指令,L,将源操作数装入累加器,1,中,累加器,1,中的原有数据移入累加器,2,中。,如:,L MW0,(,2,)传送指令(,T,),传送指令,T,将累加器,1,中的内容传送至目的存储器中,累加器,1,的内容不变。,如:,T MD10,2.,装入指令与传送指令,(,1,)定时器,接通延时定时器,(S_ODT),I0.1,I0.2,当前值,Q4.0,S ,启动端,R ,复位端,TV ,定时时间(,19990s,),Q ,输出端,BI 16,进制当前值,BCD BCD,码当前值,S5T#3S,I0.2,I0.1,( ),Q4.0,MW10,MW12,T1,S_ODT,S,Q,TV,BI,BCD,R,3.,定时,/,计数指令(常用部分),定时器指令使用示例:,AI0.1,LS5T#3S,SDT1,AI0.2,RT1,LT1,TMW10,LCT1,TMW12,AT1,=Q4.0,AT1,=M1.0,S5T#3S,I0.2,I0.1,( ),Q4.0,MW10,MW12,T1,S_ODT,S,Q,TV,BI,BCD,R,T1,M1.0,( ),Network1,Network2,断开延时定时器(,S_OFFDT,),I0.1,I0.2,当前值,Q4.0,各端说明同前,S5T#3S,I0.2,I0.1,( ),Q4.0,MW10,MW12,T1,S_OFFDT,S,Q,TV,BI,BCD,R,定时器指令简化形式:,当不使用强制复位端及不显示当前值时,可使用定时器简化形式指令。例如:,AI0.1,LS5T#3S,SDT1,I0.1,T1,(,SD,),S5T#3S,I0.1,T2,(,SF,),S5T#5S,AI0.1,LS5T#5S,SFT2,S5T#3S,I0.1,T1,S_ODT,S,Q,TV,BI,BCD,R,S5T#5S,I0.1,T2,S_OFFDT,S,Q,TV,BI,BCD,R,(,2,)计数器,减计数器,(S_CD),设定值为,0999,。,CD ,计数端,S ,计数设置端,PV ,计数设定值,R ,复位端,Q ,输出端,CV16,进制当前值,CV_BCD BCD,码 当前值。,C#3,I0.3,I0.1,( ),Q4.0,MW10,MW12,S_CD,CD,Q,PV,CV,CV_BCD,R,I0.2,S,C10,计数当前值不为零时,计数器状态输出为,1,(,ON,),否则为,0,(,OFF,)。,当计数设置端,S,为,1,时,将计数设定值(,PV,端规定)送如计数器。然后,计数端(,CD,端)每接通一次,计数值减,1,。当计数值减为,0,时,计数器状态输出由,1,(,ON,)变为,0,(,OFF,)。,当复位端(,R,端)为,1,(,ON,)时,计数器复位。,再次启动计数前,需再次通过,S,端设置。,减计数器指令应用示例,C#3,I0.3,I0.1,( ),Q4.0,MW10,MW12,S_CD,CD,Q,PV,CV,CV_BCD,R,I0.2,S,C0,A I0.1,CD C0,BLD 101,A I0.2,L C#3,S C0,A I0.3,R C0,L C0,T MW10,LC C0,T MW12,A C0,= Q4.0,Q4.2,( ),C0,A C0,= Q4.2,Network1,Network2,加计数器,(S_CU),计数值为,0,时,状态输出为,0,,否则为,1,。,计数范围为,0999,CD ,计数端,S ,计数设置端,PV ,计数值,R ,复位端,Q ,输出端,CV16,进制当前值,CV_BCD BCD,码 当前值。,C#3,I0.3,I0.1,( ),Q4.0,MW10,MW12,S_CU,CU,Q,PV,CV,CV_BCD,R,I0.2,S,C10,(,1,),延时接通,延时断开,I0.0,Q4.1,6s,3s,I0.0,T0,(,SD,),S5T#3S,Q4.1,( ),T0,Q4.1,T1,Q4.1,I0.0,T1,(,SD,),S5T#6S,4.,位逻辑及定时,/,计数器指令应用,(,2,),振荡器,(,脉冲发生器,),S5T#3S,T2,T1,S_ODT,S,Q,TV,BI,BCD,R,S5T#1S,T2,S_ODT,S,Q,TV,BI,BCD,R,I0.0,I0.0,Q4.0,1s,3s,3s,1s,( ),Q4.0,T1,(,3,),定时器,T0,T1,(,SD,),S5T#10M,N2,T1,T2,T2,(,SD,),S5T#1H,N4,C0,T2,C#3,S_CD,CD,Q,PV,CV,CV_BCD,R,I0.0,S,N3,I0.0,T0,(,SD,),S5T#5S,N1,( ),Q4.0,N5,C0,I0.0,(,4,),一般闪光报警系统,S5T#500MS,T0,T1,(,SD,),N2,T0,Q4.0,( ),N3,M0.1,I0.2,I0.0,I0.1,M0.1,( ),N4,M0.1,I0.0,I0.0,Q4.1,( ),N5,M0.1,I0.0,为报警信号,I0.1,为确认按钮,I0.2,为试灯按钮,闪烁程序,报警灯控制,警铃控制,确认信号,I0.0,T0,(,SD,),S5T#500MS,N1,T1,M0.1,梯形图中的传送指令:,MOVE,移动,EN,ENO,IN,OUT,MOVE,IN,端和,OUT,端可以是所有长度为,8,、,16,或,32,位的基本数据类型,且,IN,端可以是各类常数。,当,EN,端(使能端)为,1,时,将,IN,端数据传入,OUT,端,,且使,ENO=1,。,二、数据处理及算数运算指令,1.,移动(梯形图中传送)指令,移动指令使用示例:,A,(,AI0.1,JNB_001,L100,TMW4,SET,SAVE,CLR,_001: ABR,),/,如,RLO=0,则跳至标号,_001,处,且,BR=RLO,。,/,将常数,100,装入累加器,1,低字,/,将累加器,1,低字内容传至,MW4,/,将,RLO,置,1,/,将,RLO,存入,BR,位(执行正确为,1,),/,将,RLO,置为,0,EN,ENO,IN,OUT,MOVE,100,MW4,I0.1,EN,ENO,IN,OUT,MOVE,MB8,IB2,( ),Q4.0,注:第,2,个,MOVE,的,STL,指令忽略,比较指令用于比较累加器,1,与累加器,2,中的数据大小,被比较的两个数的数据类型应相同。数据类型可以是整数(,I,)、双字整数(,D,)或浮点数(,R,、即实数)如果比较条件满足,则,ROL,为,1,,否则为,0,。,比较条件包括,=,、,、,、,=,、,、,=,、,=,。,梯形图指令,IN2,CMP ?I,IN1,IN2,CMP ?D,IN1,IN2,CMP ?R,IN1,比较指令使用示例:,IN2,CMP =I,IN1,MW2,I0.1,MW4,( ),Q4.0,A I 0.1,A(,L MW2,L MW4, 0,、,= 0,、,0,OV,= =0,7.,状态位指令,状态位指令使用示例:,EN,ENO,IN2,OUT,SUB_R,IN1,MD10,10.1,MD14,=0,( ),Q4.0,A(,L MD10,L 1.010000e+001,-R,T MD14,AN OV,SAVE,CLR,A BR,),A =0,= Q4.0,(,1,)梯形图中的跳转指令,无条件跳转和条件跳转指令,JMP,条件跳转为逻辑运算结果,RLO=1,时跳转,。,RLO=0,跳转指令,JMPN,三、,程序执行控制指令,1.,跳转指令,(JMP),LABEL,(JMP),LABEL,I0.2,条件跳转,无条件跳转,(JMPN),LABEL,I0.2,标号,LABEL,LABEL,为首字符为字母的标识符。,(,2,),STL,指令中的部分跳转指令,无条件跳转:,JU,根据上一指令语句生成的逻辑运算结果,(RLO),来跳转:,JC,(,RLO=1,跳转)、,JNC,(,RLO=0,跳转),根据计算结果来跳转:,JZ,(等于,0,跳转)、,JN,(不等于,0,跳转),JP,(大于,0,跳转)、,JM,(小于,0,跳转),JPZ,(大于等于,0,跳转)、,JMZ,(小于等于,0,跳转),跳转指令使用示例:,A,I,0.4,JC,LAB1,A I 0.5,= Q4.1,LAB1: A I 0.5,= Q4.2,I0.4,LAB1,(,JMP,),N1,I0.5,Q4.1,( ),N2,LAB1,N3,I0.5,Q4.2,( ),只在,STL,中使用,无对应的,LAD,指令。,格式 地址标号:,LOOP,地址标号,LOOP,跳转标号 :,该指令对,ACCU 1-L,(,ACCU 1,的低字)进行减,1,操作,并在,ACCU 1-L 0,时跳转至标号处;若,ACCU 1-L= 0,,则顺序向下执行。,循环体,2.,循环控制指令,LOOP,循环控制指令的使用:,初始化,循环计数器,程序段,A,循环计数器,减,1,循环计数器,= 0,?,Y,N,L 5,LAB1,:,T MW10,L MW10,LOOP LAB1,程序段,A,(,1,)逻辑块指令,逻辑块包括功能,( FC ),、功能块,( FB ),、系统功能,( SFC ),、系统功能块,( SFB ),的调用,相当于子程序或函数调用。,逻辑块指令包括逻辑块结束、逻辑块调用等指令。,(,2,)数据块指令,数据块指令包括数据块的打开、数据块内容交换、数据块长度和编号的获取等。,有关逻辑块和数据块指令的使用将在编程部分介绍。,3.,逻辑块与数据块指令,主控继电器指令包括四条指令,:,MCRA,:激活,MCR,区,MCR,:关闭主控继电器区,MCRD,:取消,MCR,区,MCR,I1,I2,I3,I4,Q1,Q1,MCR,电源母线,A,电源母线,B,继电器式线路,4.,主控继电器指令,主控继电器指令的使用:,I0,Q1,MCR,I1,MCR,Q2,I2,Q3,I3,I4,MCRA,(MCRA),(MCR),(MCRD),A I0.0,MCR (,A I0.1,= Q4.1,O I0.3,O I0.4,= Q4.3,) MCR,MCRD,A I0.2,= Q4.2,这类指令是,STL,指令,无对应的,LAD,指令。,(,1,)程序显示指令,BLD,该指令用于编程设备,(PG),的图形显示。梯形图或,FBD,程序编译时将自动创建,执行程序时不产生任何操作。,指令形式为:,BLD n,(,n=0255,),(,2,)空操作指令,NOP 0,和,NOP 1,占位指令,无任何操作。,NOP 0,指令代码为,16,个,0,(即用,0,占位);,NOP 1,指令代码为,16,个,1,(即用,1,占位) ;,5.,程序显示和空操作指令,程序显示和空操作指令示例:,C#3,I0.3,I0.1,MW12,S_CD,CD,Q,PV,CV,CV_BCD,R,I0.2,S,C0,A I 0.1,CD C10,BLD 101,A I 0.2,L C#3,S C0,A I 0.3,R C0,NOP 0,LC C0,T MW12,NOP 0,Q4.2,( ),C0,A C0,= Q4.2,
展开阅读全文