您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 咨询培训 > 西门子PLC编程举例.
第四章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.1=Q125.1例3功能块图方式I124.1&I124.0I124.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)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关键字长度(位)该类型的常数举例用户定义的变量或常数可以为以上基本数据类型五、S7-300PLC的特殊功能寄存器累计器1(ACCU1)32位累计器2(ACCU2)32位地址寄存器1(AR1)32位地址寄存器2(AR2)32位数据块地址寄存器DB(共享数据块)32位数据块地址寄存器DI(背景数据块)32位状态寄存器16位状态字状态字用于表示CPU执行指令时所具有的状态。某些指令可否执行或以何种方式执行可能取决于状态字中的某些位,指令执行时也可能改变状态字中的某些位,可以用位逻辑指令或字逻辑指令访问并检测状态字。状态字的结构1.首位检测位(FC)2.逻辑操作结果(RLO)3.状态位(STA)4.或位(OR)5.溢出位(OV)6.溢出状态保持位(OS)7.条件码1(CC1)和条件码0(CC0)8.二进制结果位(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小于IN2=表示IN1大于等于IN2=表示IN1小于等于IN2如果比较结果为真,则功能的RLO为“1”。下述比较指令可供使用:·CMP?I整数比较·CMP?D双整数比较·CMP?R实数比较CMP?I整数比较例如果下列条件成立,则输出Q4.0置位:在输入I0.0和I0.1的信号状态为“1”并且MW0=MW2CMP?D双整数比较例如果下列条件成立,则输出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_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中。如果不执行转换(ENO=EN=0),则输出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方块激活。MW0+MW2相加的结果放入MW10中。如果结果在整数的允许范围之外,则输出Q4.0置位。例1例2解决算术问题如何使用3种整数算术运算指令产生如下列方程一样的结果:MW4=((IW0+DBW3)x15)/MW0打开数据块DB1。五、浮点数运算指令P12132位标准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方块激活。MD0+MD4相加的结果放入MD10中。如果结果在浮点数的允许范围之外或程序语句没有执行(I0.0=“0”),则输出Q4.0置位。六、数据块指令例数据块10(DB10)被打开。接点地址(DBX0.0)指的是数据块DB10中包含的当前数据记录的数据字节0的0位。该位的信号状态被赋值给输出Q4.0。---(OPN)打开数据块:DB或DI七、赋值指令P197MOVE赋值例如果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)L+5//16-位常数(整数)LL#523123//32-位常数(双整数)LB#16#EF//十六进制字节L2#0010011011100011//16-位二进制值L3.14//32-位常数(实数)MOVEENINOUTENOMB55FBDL+5TMB5STLMOVEENOUTENOMB5LADIN5数据装入和传递(2)00000000::LW#16#CAFELW#16#AFFE:::XXXXXXXXCAFEAFFEACCU2内容ACCU1内容程序YYYYYYYYXXXXXXXX0000CAFE数据装入和传递(3)31231570000000000000000000000000MB0312315700000000000000000MB1MB031231570MB3MB2MB0MB1装载LMB0程序TQD4QD4QW4QB4传递ACCU1内容LMW0LMD0TQW4TQB4八、逻辑控制指令P133逻辑控制指令可以用于所有逻辑块:组织块(OB),功能块(FB)和功能(FC)。可执行下列功能的逻辑控制指令:•---(JMP)---无条件跳转•---(JMP)---条件跳转•---(JMPN)---若非则跳转例1无条件跳转例2有条件跳转无条件跳转(不依赖于RLO)(JMP)NEW1Network1Network2::::NetworkxNEW1()M69.0I2.7M5.5LADNEW1JMP....NEW1&M5.5I2.7=M69.0Network1Network2::::NetworkxFBDNetwork1JUNEW1Network2::::NetworkxNEW1:ANM5.5ANI2.7=M69.0STL条件跳转(依赖于RLO)AI0.0AI0.1JCNEW1NEW1I0.0I0.1&I0.0I0.1JMPNEW1(JMP)如果RLO=1就跳转AI0.2AI0.3JCNNEW2JMPNI0.2I0.3NEW2NEW2I0.2I0.3如果RLO=0就跳转(JMPN)&LADFBDSTL九、程序控制指令下述程序控制指令可供使用:•---(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置位。下图所示为包括两台传送带的系统,在两台传送带之间有一个临时仓库区。传送带1将包裹运送至仓库区。传送带1靠近仓库区一端安装的光电传感器确定已有多少包裹运送至仓库区。传送带2将临时库区中的包裹运送至装货场,在这里货物由卡运送至顾客。传送带2靠近仓库区一端安装的光电传感器确定已有多少包裹从仓库区运送至装货场。含5个指示灯的显示面板表示临时仓库区的占用程度。输入点:光电传感器1I12.0光电传感器2I12.1仓库置初值I12.2设备启动I12.4设备停止I12.5输出点:仓库区空Q12.0仓库区不空Q12.1仓库区装入大于等于50%Q15.3仓库区装入大于等于90%Q15.4仓库区满Q15.4传送带1前进Q15.5传送带2前进Q15.6()I2.4I2.5M0.0()M0.0I12.0Q15.5M0.0()M0.0I12.1Q15.6进库出库置初值清零Q12.0S7-300指令
本文标题:西门子PLC编程举例.
链接地址:https://www.777doc.com/doc-4349925 .html