《西门子PLC编程举例.ppt》由会员分享,可在线阅读,更多相关《西门子PLC编程举例.ppt(46页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第四章 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 语句表方式A I124.0A I124.1=Q125.1例3 功能块图方式I124.1&I124.0I124.1=Q125.1二、S7-300指令系统(梯形图方式)1、位逻辑指令 2、比较
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
3、个字节)运算、双整数(4个字节)运算、实数(即浮点数)运算等。四、STEP 7基本数据类型BOOL1True 或 False(1 或0)BYTE8B#16#A9WORD16W#16#12AFDWORD32DW#16#ADAC1EF5CHAR8 w S5TIME16S5T#5s_200msINT16123DINT32L#65539REAL321.2 或 34.5E-12TIME32T#2D_1H_3M_45S_12MSDATE16D#1993-01-20TIME_OF_DAY32TOD#12:23:45关键字关键字长度长度(位位)该类型的常数举例该类型的常数举例用户定义的变量或常数可以为以上基本
4、数据类型五、S7-300PLC的特殊功能寄存器累计器1(ACCU1)32位累计器2(ACCU2)32位地址寄存器1(AR1)32位地址寄存器2(AR2)32位数据块地址寄存器DB(共享数据块)32位数据块地址寄存器DI(背景数据块)32位状态寄存器 16位状态字状态字 状态字用于表示状态字用于表示CPUCPU执行指令时执行指令时所具有的状态。某些指令可否执行所具有的状态。某些指令可否执行或以何种方式执行可能取决于状态或以何种方式执行可能取决于状态字中的某些位,指令执行时也可能字中的某些位,指令执行时也可能改变状态字中的某些位,可以用位改变状态字中的某些位,可以用位逻辑指令或字逻辑指令访问并检测
5、逻辑指令或字逻辑指令访问并检测状态字。状态字。状态字的结构状态字的结构 1.1.首位检测位(首位检测位(FCFC)2.2.逻辑操作结果(逻辑操作结果(RLORLO)3.3.状状态态位(位(STASTA)4.4.或位(或位(OROR)5.5.溢出位(溢出位(OVOV)6.6.溢出状溢出状态态保持位(保持位(OSOS)7.7.条件码条件码1 1(CC1CC1)和条件码和条件码0 0(CC0CC0)8.8.二进制结果位(二进制结果位(BRBR)编程元件 对应的存储区n1.输入继电器I 输入映像寄存器区In2.输出继电器Q 输出映像寄存器区Qn3.辅助继电器M 位存储区Mn4.外部输入寄存器 PI 外
6、部输入寄存器区PI n5.外部输出寄存器PQ 外部输出寄存器区PQ n6.定时器T(共5种)定时器区Tn7.计数器C(共3种)计数器区Cn8.数据块寄存器DB 数据块寄存器区DBn9.本地数据寄存器L 本地数据寄存器区L六、数字指令所用到的操作数地址的表示方法:例如:I 2.1或 IX2.1IB3 Q0.1 区域标识符 访问方式 位置编程元件地址的表示方法例如:QW4 区域标识符区域标识符访问方式位置区域标识符 :指出该地址在存储器的哪个区域,各字母代表的存储区域如下。(P89)I:输入映像寄存器区(数字入)Q:输出映像寄存器区(数字出)PI:外部输入区(模拟输入)PQ:外部输出区(模拟输出)
7、M:标志位存储区T:定时器存储区C:计数器存储区L:局部变量存储区DB:数据存储区访问方式:X:位(一般可省略)B:字节W:字D:双字位置:不同的CPU位置范围不同。参考P47 例I1.0 IB2 IW4 ID0Q2.0 QB0 QW6 QD2PIW2 PQW4M4.0 MB2 MW4 MD8L2.2 LB1 LW4 LD4T1 T5C0 C3DBX10.0 DBW2 DB10.DBX2.3字节单元为存储单元字节单元为存储单元 S7S7系列系列PLCPLC的物理存储器以字节为单位,所以的物理存储器以字节为单位,所以规定字节单元为存储单元,每个字节单元存储规定字节单元为存储单元,每个字节单元存储
8、8 8位位信息。存储单元可以位、字节、字、双字为单位信息。存储单元可以位、字节、字、双字为单位使用,例如,使用,例如,MW0MW0由由MB0MB0和和MB1MB1组成,组成,MB0MB0是高位字是高位字节,节,MB1MB1是低位字节。在分配存储区地址时,要防是低位字节。在分配存储区地址时,要防止因字节重叠造成读写错误。止因字节重叠造成读写错误。七、典型数字指令二、比较指令P124根据所选比较类型,对 IN1 和 IN2 进行比较:=表示IN1 等于 IN2 表示IN1 不等于 IN2 表示IN1 大于 IN2=表示IN1 大于等于 IN2=MW2CMP?D 双整数比较例如果下列条件成立,则输出
9、 Q4.0 置位:在输入 I0.0 和 I0.1 的信号状态为“1”并且 MD0=MD4 并且,输入 I0.2 的信号状态为“1”CMP?R 实数比较例如果下列条件成立,则输出 Q4.0 置位:在输入 I0.0 和 I0.1 的信号状态为“1”并且 MD0=MD4 并且,输入 I0.2 的信号状态为“1”三、转换指令P118下述转换指令可供使用:BCD_I BCD 码转换为整数 I_BCD 整数转换为BCD 码 BCD_DI BCD 码转换为双整数 I_DINT 整数转换为双整数 DI_BCD 双整数转换为BCD 码 DI_REAL 双整数转换为浮点数 INV_I 整数的二进制反码 INV_D
10、I 双整数的二进制反码 NEG_I 整数的二进制补码 NEG_DI 双整数的二进制补码 NEG_R 浮点数求反 ROUND 舍入为双整数 TRUNC 舍去小数取整为双整数 CEIL 上取整 FLOOR 下取整例1例2如果I0.0 为“1”,则 MW10 的内容作为整数读入,并转换为一个双整数。其结果保存在MD12 中。如果不执行转换(ENO=EN=0),则输出 Q4.0 为“1”四、整数算数运算指令P121使用整数算术运算指令,可以进行以下两个整数(16 位和 32 位)之间的运算:ADD_I 整数加法 SUB_I 整数减法 MUL_I 整数乘法 DIV_I 整数除法 ADD_DI 双整数加法
11、 SUB_DI 双整数减法 MUL_DI 双整数乘法 DIV_DI 双整数除法 MOD_DI 回送余数的双整数如果I0.0=“1”,则ADD_I 方块激活。MW0+MW2 相加的结果放入MW10 中。如果结果在整数的允许范围之外,则输出Q4.0 置位。例1例2 解决算术问题如何使用 3 种整数算术运算指令产生如下列方程一样的结果:MW4=(IW0+DBW3)x 15)/MW0打开数据块 DB1。五、浮点数运算指令P12132 位标准IEEE 浮点数完成以下算术运算:ADD_R 实数加法 SUB_R 实数减法 MUL_R 实数乘法 DIV_R 实数除法 完成一个浮点数的绝对值运算(ABS)完成一
12、个浮点数的平方(SQR)和平方根(SQRT)运算 完成一个用 32 位标准IEEE 浮点数表示的角度的以下三角函数运算:-正弦(SIN)和反正弦(ASIN)运算-余弦(COS)和反余弦(ACOS)运算-正切(TAN)和反正切(ATAN)运算例如果I0.0=“1”,则ADD_R 方块激活。MD0+MD4 相加的结果放入MD10 中。如果结果在浮点数的允许范围之外或程序语句没有执行(I0.0=“0”),则输出Q4.0 置位。六、数据块指令例数据块10(DB10)被打开。接点地址(DBX0.0)指的是数据块DB10 中包含的当前数据记录的数据字节 0 的 0 位。该位的信号状态被赋值给输出Q4.0。
13、-(OPN)打开数据块:DB 或DI七、赋值指令P197MOVE 赋值例如果 I0.0=“1”,则执行指令。MW10 的内容被复制到当前打开的数据块的数据字12中。如果执行指令,则 Q4.0 为“1”。参数 数据类型 存储区域 说明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 目的地址装载举例数据装入和传递(1)L +5/16-位常数(整数)L L#523123/32-位常数(双
14、整数)L B#16#EF/十六进制字节L 2#0010 0110 1110 0011/16-位二进制值L 3.14/32-位常数(实数)MOVEENIN OUT ENO MB55FBDL+5TMB5STLMOVEEN OUT ENO MB5LADIN5数据装入和传递(2)00000000:L W#16#CAFEL W#16#AFFE:XXXXXXXXCAFEAFFE ACCU2内容内容 ACCU1内容内容程序程序YYYYYYYYXXXXXXXX0000CAFE数据装入和传递(3)312315700 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0MB0
15、312315700 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0MB1MB031231570MB3MB2MB0MB1装载装载L MB 0程序程序T QD 4QD 4QW 4QB 4传递传递ACCU1内容内容L MW 0L MD 0T QW 4T QB 4八、逻辑控制指令P133逻辑控制指令可以用于所有逻辑块:组织块(OB),功能块(FB)和功能(FC)。可执行下列功能的逻辑控制指令:-(JMP)-无条件跳转-(JMP)-条件跳转-(JMPN)-若非则跳转例1 无条件跳转例2 有条件跳转无条件跳转(不依赖于 RLO)(JMP)NEW1Network 1Network 2:Netwo
16、rk xNEW1()M69.0I 2.7M5.5LADNEW1JMP.NEW1&M5.5I 2.7=M69.0Network 1Network 2:Network xFBDNetwork 1JU NEW1Network 2:Network xNEW1:AN M5.5 AN I 2.7=M69.0STL条件跳转(依赖于 RLO)A I0.0A I0.1JC NEW1NEW1I 0.0I 0.1&I0.0I0.1JMPNEW1(JMP)如果RLO=1就跳转A I0.2A I0.3JCN NEW2JMPNI0.2I0.3NEW2NEW2I 0.2I 0.3如果RLO=0就跳转(JMPN)&LADFB
17、DSTL九、程序控制指令下述程序控制指令可供使用:-(CALL)从线圈调用 FC/SFC(无参数)CALL_FB 从方块调用 FB CALL_FC 从方块调用 FC CALL_SFB 从方块调用 SFB CALL_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 置位。下图所示为
18、包括两台传送带的系统,在两台传送带之间有一个临时仓库区。传送带1 将包裹运送至仓库区。传送带1 靠近仓库区一端安装的光电传感器确定已有多少包裹运送至仓库区。传送带2 将临时库区中的包裹运送至装货场,在这里货物由卡运送至顾客。传送带2 靠近仓库区一端安装的光电传感器确定已有多少包裹从仓库区运送至装货场。含 5 个指示灯的显示面板表示临时仓库区的占用程度。输入点:光电传感器1 I12.0光电传感器2 I12.1仓库置初值 I12.2设备启动 I12.4设备停止 I12.5输出点:仓库区空 Q12.0仓库区不空 Q12.1仓库区装入大于等于50%Q15.3仓库区装入大于等于90%Q15.4 仓库区满
19、 Q15.4传送带1前进 Q15.5传送带2前进 Q15.6()I2.4 I2.5M0.0()M0.0I12.0Q15.5M0.0()M0.0I12.1Q15.6进库出库置初值清零Q12.0S7-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)手册
限制150内