您好,欢迎访问三七文档
AutomationandDrives如何读STL程序:如果读程序时发现自己不明白的语言,可以:1,转换成梯形图:快捷键ctrl+1,当然大多数都转换不过去;2,按下F1寻求帮助;3,下载此程序到模拟器中,单步观察效果,看一看哪些寄存器发生改变。系统的逻辑错误造成的停机往往是由于提示错误前面的错误引起的。AutomationandDrivesSTL指令及其结构:语句指令:操作码操作数执行该操作所需要的信息有些语句指令不带操作数,它们操作的对象是唯一的。NOT//对逻辑操作结果(RLO)取反。AI0.1//对输入继电器I0.1进行与操作LMW10//将字MW10装入累加器1定义要执行的功能AutomationandDrives操作数:操作数:标识符标识参数LMW10表示操作数在该存储区域内的具体位置主标识符:表示操作数所在的存储区主要有:I(输入映像区),Q(输出映像区),M(位存储区),PI(外部输入),PQ(外部输出),T(定时器),C(计数器),DB(数据块),L(本地数据)等辅助标识符进一步说明操作数的位数长度包括有:X(位),B(字节),W(字——2字节),D(双字——4字节)表示操作数存放区域及操作数位数(位、字节、字等)AutomationandDrives操作数表示:存储区域位字节字双字输入映像区(I)√I√IB√IW√ID输出映像区(Q)√Q√QB√QW√QD位存储区(M)√M√MB√MW√MD外部输入存储区(PI)√PIB√PIW√PID外部输出存储区(PQ)√PQB√PQW√PQD数据块(用“OPNDB”打开)√DBX√DBB√DBW√DBD数据块(用“OPNDI”打开)√DIX√DIB√DIW√DID临时堆栈(L)√L√LB√LW√LDAutomationandDrives寻址方式:立即寻址SET//把RLO(ResultofLogicOperation)置“1”L27//把整数27装人累加器1LC#0100//把BCD码常数0100装入累加器1立即寻址:对常数或常量的寻址方式,操作数本身包含在指令中AutomationandDrives编程、调试及故障排除现场设备详细介绍系统及网络介绍数据格式:7654321010.710.610.510.410.310.210.110.0MB10MB11MB12MB13MB14MW10MW12MW11MD11MB15MD12MD10AutomationandDrives编程、调试及故障排除现场设备详细介绍系统及网络介绍实例:•数据分配举例AutomationandDrives数字表示方法:BYTE:LB#16#10Lbyte#16#10WORD:L2#1000000000000LW#16#1000Lword#16#1000DWORD:LDW#16#A21234Ldword#16#A21234INT:L1DINT:LL#1REAL:L1.234567e+13TIME:LS5T#1H1M50SAutomationandDrives寻址方式:直接寻址AI0.0//对输入位I0.0进行“与”逻辑操作SL20.0//把本地数据位L20.0置1=M115.4//将RLO的内容传给位存储区中的位M115.4LDB1.DBD12//把数据块DB1双字DBD12中的内容传送给累加器1//双字表示32位,如浮点数为32为双字直接寻址:在指令中直接给出操作数的存储单元地址AutomationandDrives寻址方式:存储器间接寻址存储器间接寻址:标识参数由一个存储器给出,存储器的内容对应该标识参数的值(该值又称为地址指针)这种寻址方式能动态改变操作数存储器的地址,常用于程序循环过程中的寻址。AI[MD2]//对由MD2指出的输入位进行“与”逻辑操作,如:MD2值为//2#00000000000000000000000001010110表示I10.6LIB[DID4]//将由双字DID4指出的输入字节装入累加器1,如:DID4值为//2#00000000000000000000000001010000表示对IB10操作OPNDB[MW2]//打开由字MW2指出的数据块,如MW2为3,则打开DB3AutomationandDrives寻址方式:寄存器间接寻址(指针)寄存器间接寻址:在S7中有两个地址寄存器(AR1和AR2)地址寄存器的内容+偏移量=地址指针LP#8.6//将P#8.6装入A1LAR1//将累加器1的内容传送至地址寄存器1LP#10.0//将P#10.0装入A1LAR2//将累加器1的内容传送至地址寄存器2AI[AR1,P#1.0]//AR1+偏移量(9.6)=Q[AR2,P#4.1]//AR1+偏移量(14.1)LAR1P##STAT53//把指针指向STAT53L0//把0装入ACCU1TDIW[AR1,P#0.0]//把地址寄存器内指向起始地址区的数据赋值AutomationandDrives在线监视很多时候需要在线监视的。在线监视的情况如图,各个寄存器的情况详见下页。AutomationandDrives系统的内部寄存器:S7CPU的寄存器有(7个):累加器32位累加器1(ACCU1)主累加器2(ACCU2)辅2个32位累加器***地址寄存器32位地址寄存器1(AR1)地址寄存器2(AR2)2个32位地址寄存器**数据块地址寄存器32位共享数据块DB背景数据块DI2个32位数据块地址寄存器状态字寄存器16位状态位1个16位状态字寄存器*AutomationandDrives系统存储区:S7-300CPU有三个基本存储区:外设I/O存储区P输出(映像区)Q输入(映像区)I位存储区M定时器T计数器C系统存储区―存放操作数据(I/O、位存储、定时器等)物理上是CPU的RAM,存储区的大小因CPU型号而异。临时本地数据存储区(L堆栈)可执行用户程序:·逻辑块(OB、FB、FC)·数据块(DB)工作存储区―①存放CPU运行时,所执行的用户程序单元逻辑块(OB、FB、FC)、数据块(DB)的复制件;②存放临时本地数据,这部分存储区称L堆栈(主要是存放用户程序的临时变量)物理上是CPU模块的部分RAM动态装载存储区:存放用户程序装载存储区――存放用户程序物理上是CPU的部分RAM、EEPROM、外置FEPROM等AutomationandDrives名称存储区存储区功能输入(I)过程输入映像表每个扫描周期开始,读取过程输入值,记录输入映像表访问方式:位、字节、字、双字输出(O)过程输出映像表扫描周期结束,输出映像表内容输出端口访问方式:位、字节、字、双字外设输入(PI)外设输出(PO)外设输入/输出外设存储区允许直接访问现场设备访问方式:字节、字、双字(不能访问位)位存储区(M)中间的变量存放程序运行的中间结果,访问方式:位、字节、字、双字定时器(T)定时器计时时钟访问该存储区中的计时单元定时器指令可以访问该存储区和计时单元计数器(C)计数器计数器指令可以访问该存储区临时本地数据存储区(L)L堆栈在FC、OB块运行时,块变量声明表中临时变量存放在该存储区。数据块(DB)数据块DB块存放数据信息,可被所有逻辑块访问(共享数据块)或被FB块特定占用(背景数据块使用DI访问)1,外设访问(P)不通过映像区;2,有些变频器等超出了映像区的范围所以,只能使用外设访问(P);3,外设访问(P)在程序执行到此位置时进行读写操作,而普通的输入输出,则在程序开始读入,结束输出;AutomationandDrives状态字:15876543210······BRCC1CC0OSOVORSTARLOFC首次检测位*逻辑操作结果*状态位或位溢出位溢出状态保持位条件码0条件码1二进制结果位状态字表示CPU执行指令时所具有的状态,用户程序可以访问和检测状态字,并可以根据状态字中的某些位决定程序的走向和进程。AutomationandDrives逻辑操作结果(RLO):ResultofLogicOperation,RLO位置:状态字位“1”作用:存储位逻辑指令或算术比较指令的结果。无法判断RLO的数值时,可以查看FC位的情况。在某行按下F1,就知道该指令是否影响RLO。见下页AutomationandDrivesSTA•STA表示被操作的数据的当前状态,0或者1;•仅表示布尔量;•非布尔量的数值以ACCU累加器表示•例如第一句为ANI0.0•I0.0现在为0,则STA为0;•但是执行完毕后RLO为1。AutomationandDrivesFC/RLO的变化示例:语句表实际状态检测结果RLOFC说明0FC=0:下一条指令开始新逻辑串AI0.01111首次检测结果存放RLO,FC置1ANI0.10111检测结果与RLO运算,结果存RLO=Q1.010RLO赋值给Q1.0,FC清0I0.0I0.1Q1.0AutomationandDrivesDI和DB的区别•访问背景数据块时,使用DI;当然也可以使用DB访问背景数据块;•DI的作用体现在:再单个FB里面调用了除背景数据块外的其他数据块时,可以用DB进行操作,而背景数据块可以使用DI进行操作。如右图:可以OPNDB#DBMS//以后所有的DB*操作均是对应DB4,而所有的DI*操作均对应DB433CDB交换数据块内容,例如把背景数据块里面的内容与共享数据块交换,可以访问共享数据块,进行操作处理。AutomationandDrivesL的对应好多程序里面直接使用L变量,此时你可以上Temp里面查看,寻求对应关系,如果找不到对应关系也无所谓,当一个临时变量使好了,出了这个块就什么都没了。
本文标题:plc中STL程序
链接地址:https://www.777doc.com/doc-5344424 .html