第4章西门子PLC编程举例3(数字指令).ppt
第四章S7-300指令系统数字指令,要求1、了解S7-300编程软件STEP7的基本数据类型。2、了解S7-300系列PLC的各种数字指令3、能编写简单程序。,一、S7-300系列PLC编成语言-STEP7,详细资料见梯形图LAD手册或语句表(STL手册,PLC的编程语言有3种1、梯形图(LAD方式2、语句表(STL方式3、功能块图(FBD方式,I124.0,,,,,,Q125.1,,,例1梯形图方式,例2语句表方式,AI124.0AI124.1Q125.1,例3功能块图方式,I124.1,,,I124.0,I124.1,,,,,,Q125.1,二、S7-300指令系统梯形图方式),1、位逻辑指令2、比较指令3、转换指令4、计数器指令5、数据块指令6、逻辑控制指令7、整数算术运算指令8、浮点算术运算指令9、赋值指令10、程序控制指令11、移位和循环指令,12、状态位指令13、定时器指令14、字逻辑指令详细资料见梯形图LAD手册或语句表(STL手册,三、S7-300系列PLC数字指令,2、比较指令3、转换指令4、计数器指令5、数据块指令6、逻辑控制指令7、整数算术运算指令8、浮点算术运算指令9、赋值指令10、程序控制指令11、移位和循环指令,12、状态位指令13、定时器指令14、字逻辑指令详细资料见梯形图LAD手册或语句表(STL手册注这些运算分整数(2个字节)运算、双整数(4个字节)运算、实数(即浮点数)运算等。,,,,四、STEP7基本数据类型,BOOL1True或False(1或0)BYTE8B16A9WORD16W1612AFDWORD32DW16ADAC1EF5CHAR8wS5TIME16S5T5s_200msINT16123DINT32L65539REAL321.2或34.5E-12TIME32T2D_1H_3M_45S_12MSDATE16D1993-01-20TIME_OF_DAY32TOD122345,,,,关键字,长度位,该类型的常数举例,,,,,用户定义的变量或常数可以为以上基本数据类型,五、S7-300PLC的特殊功能寄存器,累计器1ACCU132位累计器2ACCU232位地址寄存器1(AR132位地址寄存器2(AR232位数据块地址寄存器DB共享数据块)32位数据块地址寄存器DI背景数据块)32位状态寄存器16位,状态字,状态字用于表示CPU执行指令时所具有的状态。某些指令可否执行或以何种方式执行可能取决于状态字中的某些位,指令执行时也可能改变状态字中的某些位,可以用位逻辑指令或字逻辑指令访问并检测状态字。,,状态字的结构,首位检测位(FC)逻辑操作结果(RLO)状态位(STA)或位(OR)溢出位(OV)溢出状态保持位(OS)条件码1(CC1)和条件码0(CC0)二进制结果位(BR),编程元件对应的存储区1.输入继电器I输入映像寄存器区I2.输出继电器Q输出映像寄存器区Q3.辅助继电器M位存储区M4.外部输入寄存器PI外部输入寄存器区PI5.外部输出寄存器PQ外部输出寄存器区PQ6.定时器T共5种定时器区T7.计数器C共3种计数器区C8.数据块寄存器DB数据块寄存器区DB9.本地数据寄存器L本地数据寄存器区L,六、数字指令所用到的操作数,地址的表示方法,例如I2.1或IX2.1IB3Q0.1,区域标识符访问方式位置,编程元件地址的表示方法,例如QW4,区域标识符,访问方式,位置,,,,区域标识符指出该地址在存储器的哪个区域,各字母代表的存储区域如下。(P89)I输入映像寄存器区(数字入)Q输出映像寄存器区(数字出)PI外部输入区(模拟输入)PQ外部输出区(模拟输出)M标志位存储区T定时器存储区C计数器存储区L局部变量存储区DB数据存储区,访问方式X位(一般可省略)B字节W字D双字位置不同的CPU位置范围不同。参考P47,例I1.0IB2IW4ID0Q2.0QB0QW6QD2PIW2PQW4M4.0MB2MW4MD8L2.2LB1LW4LD4T1T5C0C3DBX10.0DBW2DB10.DBX2.3,字节单元为存储单元,S7系列PLC的物理存储器以字节为单位,所以规定字节单元为存储单元,每个字节单元存储8位信息。存储单元可以位、字节、字、双字为单位使用,例如,MW0由MB0和MB1组成,MB0是高位字节,MB1是低位字节。在分配存储区地址时,要防止因字节重叠造成读写错误。,,七、典型数字指令,二、比较指令P124,根据所选比较类型,对IN1和IN2进行比较表示IN1等于IN2表示IN1不等于IN2表示IN1大于IN2表示IN1大于等于IN2MW2,CMPD双整数比较,例,如果下列条件成立,则输出Q4.0置位在输入I0.0和I0.1的信号状态为“1”并且MD0MD4并且,输入I0.2的信号状态为“1”,CMPR实数比较,例,如果下列条件成立,则输出Q4.0置位在输入I0.0和I0.1的信号状态为“1”并且MD0MD4并且,输入I0.2的信号状态为“1”,三、转换指令P118,下述转换指令可供使用BCD_IBCD码转换为整数I_BCD整数转换为BCD码BCD_DIBCD码转换为双整数I_DINT整数转换为双整数DI_BCD双整数转换为BCD码DI_REAL双整数转换为浮点数INV_I整数的二进制反码INV_DI双整数的二进制反码,NEG_I整数的二进制补码NEG_DI双整数的二进制补码NEG_R浮点数求反ROUND舍入为双整数TRUNC舍去小数取整为双整数CEIL上取整FLOOR下取整,例1,例2,如果I0.0为“1”,则MW10的内容作为整数读入,并转换为一个双整数。其结果保存在MD12中。如果不执行转换(ENOEN0),则输出Q4.0为“1”,四、整数算数运算指令P121,使用整数算术运算指令,可以进行以下两个整数(16位和32位)之间的运算ADD_I整数加法SUB_I整数减法MUL_I整数乘法DIV_I整数除法ADD_DI双整数加法SUB_DI双整数减法MUL_DI双整数乘法DIV_DI双整数除法MOD_DI回送余数的双整数,如果I0.0“1”,则ADD_I方块激活。MW0MW2相加的结果放入MW10中。如果结果在整数的允许范围之外,则输出Q4.0置位。,例1,例2解决算术问题如何使用3种整数算术运算指令产生如下列方程一样的结果MW4IW0DBW3x15/MW0,打开数据块DB1。,五、浮点数运算指令P121,32位标准IEEE浮点数完成以下算术运算ADD_R实数加法SUB_R实数减法MUL_R实数乘法DIV_R实数除法完成一个浮点数的绝对值运算(ABS)完成一个浮点数的平方(SQR)和平方根(SQRT)运算完成一个用32位标准IEEE浮点数表示的角度的以下三角函数运算-正弦(SIN)和反正弦(ASIN)运算-余弦(COS)和反余弦(ACOS)运算-正切(TAN)和反正切(ATAN)运算,例,如果I0.0“1”,则ADD_R方块激活。MD0MD4相加的结果放入MD10中。如果结果在浮点数的允许范围之外或程序语句没有执行(I0.0“0”),则输出Q4.0置位。,六、数据块指令,例,数据块10(DB10)被打开。接点地址(DBX0.0)指的是数据块DB10中包含的当前数据记录的数据字节0的0位。该位的信号状态被赋值给输出Q4.0。,---OPN打开数据块DB或DI,七、赋值指令P197,MOVE赋值,例,如果I0.0“1”,则执行指令。MW10的内容被复制到当前打开的数据块的数据字12中。如果执行指令,则Q4.0为“1”。,参数数据类型存储区域说明ENBOOLI,Q,M,L,D使能输入ENOBOOLI,Q,M,L,D使能输出IN所有数据类型,长度可为8位、16位或32位I,Q,M,L,D或常数源数值OUT所有数据类型,长度可为8位、16位或32位I,Q,M,L,D目的地址,,,,,,,,,,,装载举例,数据装入和传递1,,L5//16-位常数整数LL523123//32-位常数双整数LB16EF//十六进制字节L20010011011100011//16-位二进制值L3.14//32-位常数实数,,数据装入和传递2,,,LW16CAFE,LW16AFFE,,ACCU2内容,,ACCU1内容,,,,程序,,,X,X,X,X,X,X,X,X,,,,,数据装入和传递3,装载,,LMB0,程序,,TQD4,,,QD4,,,,QW4,,,,,,,QB4,,,,传递,LMW0,LMD0,TQW4,TQB4,,八、逻辑控制指令P133,逻辑控制指令可以用于所有逻辑块组织块(OB),功能块(FB)和功能(FC)。可执行下列功能的逻辑控制指令---JMP---无条件跳转---JMP---条件跳转---JMPN---若非则跳转,例1无条件跳转,例2有条件跳转,无条件跳转不依赖于RLO,,条件跳转依赖于RLO,,九、程序控制指令,下述程序控制指令可供使用---CALL从线圈调用FC/SFC(无参数)CALL_FB从方块调用FBCALL_FC从方块调用FCCALL_SFB从方块调用SFBCALL_SFC从方块调用SFC调用多背景块从库中调用块,十、移位和循环指令P199,下述移位指令可供使用SHR_I整数右移SHR_DI双整数右移SHL_W字左移SHR_W字右移SHL_DW双字左移SHR_DW双字右移,例,如果I0.0“1”,则SHR_I方块激活。MW0装入,并右移使用MW2指定的位数。其结果被写入MW4中。Q4.0置位。,下图所示为包括两台传送带的系统,在两台传送带之间有一个临时仓库区。传送带1将包裹运送至仓库区。传送带1靠近仓库区一端安装的光电传感器确定已有多少包裹运送至仓库区。传送带2将临时库区中的包裹运送至装货场,在这里货物由卡运送至顾客。传送带2靠近仓库区一端安装的光电传感器确定已有多少包裹从仓库区运送至装货场。含5个指示灯的显示面板表示临时仓库区的占用程度。,输入点光电传感器1I12.0光电传感器2I12.1仓库置初值I12.2设备启动I12.4设备停止I12.5,输出点仓库区空Q12.0仓库区不空Q12.1仓库区装入大于等于50Q15.3仓库区装入大于等于90Q15.4仓库区满Q15.4传送带1前进Q15.5传送带2前进Q15.6,,,,,,I2.4,I2.5,M0.0,,,,,,,M0.0,I12.0,Q15.5,,,,,M0.0,,,M0.0,I12.1,Q15.6,,,,进库,出库,置初值,清零,Q12.0,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手册,S7-300指令系统梯形图方式),1、位逻辑指令2、比较指令3、转换指令4、计数器指令5、数据块指令6、逻辑控制指令7、整数算术运算指令8、浮点算术运算指令9、赋值指令10、程序控制指令11、移位和循环指令,12、状态位指令13、定时器指令14、字逻辑指令详细资料见梯形图LAD手册或语句表(STL手册,