1、单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第四章,S7-300,指令系统,数字指令,要求:,1,、了解,S7-300,编程软件,STEP7,的基本数据类型。,2,、了解,S7-300,系列,PLC,的各种数字指令,3,、能编写简单程序。,1,一、,S7-300,系列,PLC,编成语言,-STEP7,详细资料见梯形图,(LAD),手册或语句表(,STL),手册,PLC,的编程语言有,3,种:,1,、梯形图(,LAD),方式,2,、语句表(,STL),方式,3,、功能块图(,FBD),方式,I124.0,(),Q125.1,例,1,梯形图方式,例,2,
2、语句表方式,A I124.0,A I124.1,=Q125.1,例,3,功能块图方式,I124.1,&,I124.0,I124.1,=,Q125.1,2,二、,S7-300,指令系统,(,梯形图方式),1,、位逻辑指令,2,、比较指令,3,、转换指令,4,、计数器指令,5,、数据块指令,6,、逻辑控制指令,7,、整数算术运算指令,8,、浮点算术运算指令,9,、赋值指令,10,、程序控制指令,11,、移位和循环指令,12,、状态位指令,13,、定时器指令,14,、字逻辑指令,详细资料见梯形图,(LAD),手册或语句表(,STL),手册,3,三、,S7-300,系列,PLC,数字指令,2,、比较指
3、令,3,、转换指令,4,、计数器指令,5,、数据块指令,6,、逻辑控制指令,7,、整数算术运算指令,8,、浮点算术运算指令,9,、赋值指令,10,、程序控制指令,11,、移位和循环指令,12,、状态位指令,13,、定时器指令,14,、字逻辑指令,详细资料见梯形图,(LAD),手册或语句表(,STL),手册,注:这些运算分整数(,2,个字节)运算、双整数(,4,个字节)运算、实数(即浮点数)运算等。,4,四、,STEP 7,基本数据类型,BOOL1True,或,False,(1 或0),BYTE8B#16#A9,WORD16W#16#12AF,DWORD32DW#16#ADAC1EF5,CHAR
4、8 w,S5TIME16S5T#5s_200ms,INT16123,DINT32L#65539,REAL321.2,或,34.5E-12,TIME32T#2D_1H_3M_45S_12MS,DATE16D#1993-01-20,TIME_OF_DAY32TOD#12:23:45,关键字,长度(位,),该类型的常数举例,用户定义的变量或常数可以为以上基本数据类型,5,五、,S7-300PLC,的特殊功能寄存器,累计器,1(ACCU1)32,位,累计器,2(ACCU2)32,位,地址寄存器,1,(,AR1)32,位,地址寄存器,2,(,AR2)32,位,数据块地址寄存器,DB(,共享数据块),32
5、,位,数据块地址寄存器,DI(,背景数据块),32,位,状态寄存器,16,位,6,状态字,状态字用于表示,CPU,执行指令时所具有的状态。某些指令可否执行或以何种方式执行可能取决于状态字中的某些位,指令执行时也可能改变状态字中的某些位,可以用位逻辑指令或字逻辑指令访问并检测状态字。,7,状态字的结构,首位检测位(,FC,),逻辑操作结果(,RLO,),状态位(,STA,),或位(,OR,),溢出位(,OV,),溢出状态保持位(,OS,),条件码,1,(,CC1,)和条件码,0,(,CC0,),二进制结果位(,BR,),8,编程元件 对应的存储区,1.,输入继电器,I,输入映像寄存器区,I,2.
6、,输出继电器,Q,输出映像寄存器区,Q,3.,辅助继电器,M,位存储区,M,4.,外部输入寄存器,PI,外部输入寄存器,区,PI,5.,外部输出寄存器,PQ,外部输出寄存器,区,PQ,6.,定时器,T(,共,5,种,),定时器,区,T,7.,计数器,C,(,共,3,种,),计数器,区,C,8.,数据块寄存器,DB,数据块寄存器,区,DB,9.,本地数据寄存器,L,本地数据寄存器,区,L,六、数字指令所用到的操作数,9,地址的表示方法:,例如:,I 2.1,或,IX2.1,IB3,Q0.1,区域标识符 访问方式 位置,编程元件,地址的表示方法,例如:,QW4,区域标识符,访问方式,位置,10,区
7、域标识符,:指出该地址在存储器的哪个区域,各字母代表的存储区域如下。(,P89,),I,:输入映像寄存器区(数字入),Q,:输出映像寄存器区(数字出),PI:,外部输入区(模拟输入),PQ:,外部输出区(模拟输出),M,:标志位存储区,T,:定时器存储区,C,:计数器存储区,L,:局部变量存储区,DB,:数据存储区,访问方式:,X,:位(一般可省略),B,:字节,W:,字,D,:双字,位置:,不同的,CPU,位置范围不同。参考,P47,11,例,I1.0 IB2 IW4 ID0,Q2.0 QB0 QW6 QD2,PIW2 PQW4,M4.0 MB2 MW4 MD8,L2.2 LB1 LW4 L
8、D4,T1 T5,C0 C3,DBX10.0 DBW2 DB10.DBX2.3,12,字节单元为存储单元,S7,系列,PLC,的物理存储器以字节为单位,所以规定字节单元为存储单元,每个字节单元存储,8,位信息。存储单元可以位、字节、字、双字为单位使用,例如,,MW0,由,MB0,和,MB1,组成,,MB0,是高位字节,,MB1,是低位字节。在分配存储区地址时,要防止因字节重叠造成读写错误。,13,七、典型数字指令,14,二、比较指令,P124,根据所选比较类型,对,IN1,和,IN2,进行比较:,=,表示,IN1,等于,IN2,表示,IN1,不等于,IN2,表示,IN1,大于,IN2,=,表示
9、,IN1,大于等于,IN2,=MW2,16,CMP?D,双整数比较,例,如果下列条件成立,则输出,Q4.0,置位:,在输入,I0.0,和,I0.1,的信号状态为,“,1,”,并且,MD0=MD4,并且,输入,I0.2,的信号状态为,“,1,”,17,CMP?R,实数比较,例,如果下列条件成立,则输出,Q4.0,置位:,在输入,I0.0,和,I0.1,的信号状态为,“,1,”,并且,MD0=MD4,并且,输入,I0.2,的信号状态为,“,1,”,18,三、转换指令,P118,下述转换指令可供使用:,BCD_I BCD,码转换为整数,I_BCD,整数转换为,BCD,码,BCD_DI BCD,码转换
10、为双整数,I_DINT,整数转换为双整数,DI_BCD,双整数转换为,BCD,码,DI_REAL,双整数转换为浮点数,INV_I,整数的二进制反码,INV_DI,双整数的二进制反码,NEG_I,整数的二进制补码,NEG_DI,双整数的二进制补码,NEG_R,浮点数求反,ROUND,舍入为双整数,TRUNC,舍去小数取整为双整数,CEIL,上取整,FLOOR,下取整,19,例,1,例,2,如果,I0.0,为,“,1,”,,则,MW10,的内容作为整数读入,并转换为一个双整数。其结果保存在,MD12,中。如果不执行转换(,ENO=EN=0,),则输出,Q4.0,为,“,1,”,20,四、整数算数运
11、算指令,P121,使用整数算术运算指令,可以进行以下,两个整数,(,16,位和,32,位)之间的运算:,ADD_I,整数加法,SUB_I,整数减法,MUL_I,整数乘法,DIV_I,整数除法,ADD_DI,双整数加法,SUB_DI,双整数减法,MUL_DI,双整数乘法,DIV_DI,双整数除法,MOD_DI,回送余数的双整数,21,如果,I0.0=,“,1,”,,则,ADD_I,方块激活。,MW0+MW2,相加的结果放入,MW10,中。如果结果在整数的允许范围之外,则输出,Q4.0,置位。,例,1,22,例,2,解决算术问题,如何使用,3,种整数算术运算指令产生如下列方程一样的结果:,MW4=
12、(IW0+DBW3)x 15)/MW0,打开数据块,DB1,。,23,五、浮点数运算指令,P121,32,位标准,IEEE,浮点数完成以下算术运算:,ADD_R,实数加法,SUB_R,实数减法,MUL_R,实数乘法,DIV_R,实数除法,完成一个浮点数的绝对值运算(,ABS,),完成一个浮点数的平方(,SQR,)和平方根(,SQRT,)运算,完成一个用,32,位标准,IEEE,浮点数表示的角度的以下三角函数运算:,-,正弦(,SIN,)和反正弦(,ASIN,)运算,-,余弦(,COS,)和反余弦(,ACOS,)运算,-,正切(,TAN,)和反正切(,ATAN,)运算,24,例,如果,I0.0=
13、,“,1,”,,则,ADD_R,方块激活。,MD0+MD4,相加的结果放入,MD10,中。如果结果在浮点数的允许范围之外或程序语句没有执行(,I0.0=,“,0,”,),则输出,Q4.0,置位。,25,六、数据块指令,例,数据块,10,(,DB10,)被打开。接点地址(,DBX0.0,)指的是数据块,DB10,中包含的当前数据记录的数据字节,0,的,0,位。该位的信号状态被赋值给输出,Q4.0,。,-(OPN),打开数据块:,DB,或,DI,26,七、赋值指令,P197,MOVE,赋值,例,如果,I0.0=,“,1,”,,则执行指令。,MW10,的内容被复制到当前打开的数据块的数据字,12,中
14、。,如果执行指令,则,Q4.0,为,“,1,”,。,27,参数 数据类型 存储区域 说明,EN BOOL I,,,Q,,,M,,,L,,,D,使能输入,ENO BOOL I,,,Q,,,M,,,L,,,D,使能输出,IN,所有数据类型,,长度可为,8,位、,16,位或,32,位,I,,,Q,,,M,,,L,,,D,或,常数 源数值,OUT,所有数据类型,,长度可为,8,位、,16,位或,32,位,I,,,Q,,,M,,,L,,,D,目的地址,28,装载举例,数据装入和传递,(1),L +5/16-,位常数,(,整数,),L L#523123/32-,位常数,(,双整数,),L B#16#EF/
15、,十六进制字节,L 2#0010 0110 1110 0011/16-,位二进制值,L 3.14/32-,位常数,(,实数,),MOVE,EN,IN,OUT,ENO,MB5,5,FBD,L+5,TMB5,STL,MOVE,EN,OUT,ENO,MB5,LAD,IN,5,29,数据装入和传递,(2),0,0,0,0,0,0,0,0,:,:,L W#16#CAFE,L W#16#AFFE,:,:,:,X,X,X,X,X,X,X,X,C,A,F,E,A,F,F,E,ACCU2,内容,ACCU1,内容,程序,Y,Y,Y,Y,Y,Y,Y,Y,X,X,X,X,X,X,X,X,0,0,0,0,C,A,F,E
16、,30,数据装入和传递,(3),31,23,15,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,MB0,31,23,15,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,MB1,MB0,31,23,15,7,0,MB3,MB2,MB0,MB1,装载,L MB 0,程序,T QD 4,QD 4,QW 4,QB 4,传递,ACCU1,内容,L MW 0,L MD 0,T QW 4,T QB 4,31,八、,逻辑控制指令,P133,逻辑控制指令可以用于所有逻辑块:组织块(,OB,),功能块(,FB,)和功能(,FC,)
17、。,可执行下列功能的逻辑控制指令:,-(JMP)-,无条件跳转,-(JMP)-,条件跳转,-(JMPN)-,若非则跳转,32,例,1,无条件跳转,例,2,有条件跳转,33,无条件跳转,(,不依赖于,RLO,),(,JMP,),NEW1,Network 1,Network 2,:,:,:,:,Network x,NEW1,(,),M69.0,I 2.7,M5.5,LAD,NEW1,JMP,.,NEW1,&,M5.5,I 2.7,=,M69.0,Network 1,Network 2,:,:,:,:,Network x,FBD,Network 1,JU NEW1,Network 2,:,:,:,:
18、,Network x,NEW1:AN M5.5,AN I 2.7,=M69.0,STL,34,条件跳转,(,依赖于,RLO,),A I0.0,A I0.1,JC NEW1,NEW1,I 0.0,I 0.1,&,I0.0,I0.1,JMP,NEW1,(,JMP,),如果,RLO=1,就跳转,A I0.2,A I0.3,JCN NEW2,JMPN,I0.2,I0.3,NEW2,NEW2,I 0.2,I 0.3,如果,RLO=0,就跳转,(,JMPN,),&,LAD,FBD,STL,35,九、,程序控制指令,下述程序控制指令可供使用:,-(CALL),从线圈调用,FC/SFC,(无参数),CALL_
19、FB,从方块调用,FB,CALL_FC,从方块调用,FC,CALL_SFB,从方块调用,SFB,CALL_SFC,从方块调用,SFC,调用多背景块,从库中调用块,36,十、移位和循环指令,P199,下述移位指令可供使用:,SHR_I,整数右移,SHR_DI,双整数右移,SHL_W,字左移,SHR_W,字右移,SHL_DW,双字左移,SHR_DW,双字右移,37,例,如果,I0.0=,“,1,”,,则,SHR_I,方块激活。,MW0,装入,并右移使用,MW2,指定的位数。其结果被写入,MW4,中。,Q4.0,置位。,38,下图所示为包括两台传送带的系统,在两台传送带之间有一个临时仓库区。传送带,
20、1,将包裹运送至仓库区。传送带,1,靠近仓库区一端安装的光电传感器确定已有多少包裹运送至仓库区。传送带,2,将临时库区中的包裹运送至装货场,在这里货物由卡运送至顾客。传送带,2,靠近仓库区一端安装的光电传感器确定已有多少包裹从仓库区运送至装货场。含,5,个指示灯的显示面板表示临时仓库区的占用程度。,39,输入点,:,光电传感器,1 I12.0,光电传感器,2 I12.1,仓库置初值,I12.2,设备启动,I12.4,设备停止,I12.5,输出点:,仓库区空,Q12.0,仓库区不空,Q12.1,仓库区装入大于等于,50%Q15.3,仓库区装入大于等于,90%Q15.4,仓库区满,Q15.4,传送
21、带,1,前进,Q15.5,传送带,2,前进,Q15.6,40,(),I2.4,I2.5,M0.0,(),M0.0,I12.0,Q15.5,M0.0,(),M0.0,I12.1,Q15.6,41,进库,出库,置初值,清零,42,Q12.0,43,44,S7-300,指令系统,(,语句表,STL,方式),STL,指令与,LAD,和,FBD,相比,指令集更为丰富。因此,LAD,、,FBD,的代码可以转换为,STL,代码,但并非所有的,STL,代码都可以转换成,LAD,或,FBD,。,1,、位逻辑指令,2,、比较指令,3,、转换指令,4,、计数器指令,5,、数据块指令,6,、逻辑控制指令,7,、整数算术运算指令,8,、浮点算术运算指令,9,、装入和传送指令,10,、程序控制指令,11,、移位和循环指令,12,、定时器指令,13,、字逻辑指令,14,、累加器操作指令,详细资料语句表(,STL),手册,45,S7-300,指令系统,(,梯形图方式),1,、位逻辑指令,2,、比较指令,3,、转换指令,4,、计数器指令,5,、数据块指令,6,、逻辑控制指令,7,、整数算术运算指令,8,、浮点算术运算指令,9,、赋值指令,10,、程序控制指令,11,、移位和循环指令,12,、状态位指令,13,、定时器指令,14,、字逻辑指令,详细资料见梯形图,(LAD),手册或语句表(,STL),手册,46,