1 / 21

如何读 STL 程序:

如何读 STL 程序:. 如果读程序时发现自己不明白的语言,可以: 1,转换成梯形图:快捷键 ctrl+1 ,当然大多数都转换不过去 ; 2,按下 F1 寻求帮助; 3,下载此程序到模拟器中,单步观察效果,看一看哪些寄存器发生改变。 系统的逻辑错误造成的停机往往是由于提示错误前面的错误引起的。. STL 指令及其结构:. 定义要执行的功能. 执行该操作所需要的信息. 语句指令: 操作码 操作数. A I 0.1 // 对输入继电器 I 0.1 进行与操作. L MW10 // 将字 MW10 装入累加器1.

oscar-diaz
Download Presentation

如何读 STL 程序:

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 如何读STL程序: 如果读程序时发现自己不明白的语言,可以:1,转换成梯形图:快捷键ctrl+1,当然大多数都转换不过去;2,按下F1寻求帮助;3,下载此程序到模拟器中,单步观察效果,看一看哪些寄存器发生改变。 系统的逻辑错误造成的停机往往是由于提示错误前面的错误引起的。

  2. STL指令及其结构: 定义要执行的功能 执行该操作所需要的信息 语句指令: 操作码 操作数 A I 0.1 //对输入继电器 I 0.1 进行与操作 L MW10 //将字MW10装入累加器1  有些语句指令不带操作数,它们操作的对象是唯一的。 NOT //对逻辑操作结果(RLO)取反。

  3. 表示操作数存放区域及操作数位数(位、字节、字等) 表示操作数在该存储区域内的具体位置 操作数: 标识符标识参数 辅助标识符进一步说明操作数的位数长度 包括有:X(位),B(字节), W(字——2字节), D(双字——4字节) L M W 10 主标识符:表示操作数所在的存储区 主要有:I(输入映像区),Q(输出映像区),M(位存储区),PI(外部输入),PQ(外部输出),T(定时器),C(计数器),DB(数据块),L(本地数据)等 操作数:

  4. 操作数表示:

  5. 寻址方式 : 立即寻址 立即寻址:对常数或常量的寻址方式,操作数本身包含在指令中 SET //把 RLO (Result of Logic Operation)置“1” L 27 //把整数27装人累加器1 L C#0100 //把 BCD码常数0100装入累加器1

  6. 数据格式: 系统及网络介绍 MB10 MW10 编程、调试及故障排除 MB11 MD10 MW11 MB12 MD11 MW12 MB13 现场设备详细介绍 MD12 MB14 MB15

  7. 实例: 系统及网络介绍 编程、调试及故障排除 现场设备详细介绍 • 数据分配举例

  8. 数字表示方法: INT: L 1D INT :L L#1REAL: L 1.234567e+13 TIME: L S5T#1H1M50S BYTE:L B#16#10L byte#16#10WORD:L 2#1000000000000L W#16#1000L word#16#1000DWORD:L DW#16#A21234L dword#16#A21234

  9. 寻址方式 : 直接寻址 直接寻址:在指令中直接给出操作数的存储单元地址 A I0 . 0 //对输入位I0.0进行“与”逻辑操作 S L20 . 0 //把本地数据位L20.0置1 = M115 . 4 // 将RLO的内容传给位存储区中的位M115.4 L DB1 . DBD 12 //把数据块DB1双字DBD12中的内容传送给累加器1 //双字表示32位,如浮点数为32为双字

  10. 寻址方式 : 存储器间接寻址 存储器间接寻址:标识参数由一个存储器给出,存储器的内容对应该标识参数的值(该值又称为地址指针) 这种寻址方式能动态改变操作数存储器的地址,常用于程序循环过程中的寻址。 A I[MD 2] //对由MD 2指出的输入位进行“与”逻辑操作,如: MD 2值为 //2#0000 0000 0000 0000 0000 0000 0101 0110表示I 10. 6 L IB[DID 4] //将由双字DID 4指出的输入字节装入累加器1,如:DID 4值为 //2#0000 0000 0000 0000 0000 0000 0101 0000表示对IB10操作 OPN DB[MW 2] //打开由字MW2指出的数据块,如MW2为3,则打开DB3

  11. 寻址方式 : 寄存器间接寻址(指针) 寄存器间接寻址:在S7中有两个地址寄存器(AR1和AR2) 地址寄存器的内容 + 偏移量 = 地址指针 L P#8.6 //将P#8.6装入A 1 LAR1 //将累加器1的内容传送至地址寄存器1 L P#10.0 //将P#10.0装入A1 LAR2 //将累加器1的内容传送至地址寄存器2 A I[AR1,P#1.0] //AR1+偏移量(9.6) = Q[AR2,P#4.1] //AR1+偏移量(14.1) LAR1 P##STAT53// 把指针指向STAT53L 0 // 把0装入ACCU1T DIW [AR1,P#0.0] //把地址寄存器内指向起始地址区的数据赋值

  12. 在线监视 很多时候需要在线监视的。 在线监视的情况如图,各个寄存器的情况详见下页。

  13. 累加器 32位 累加器1 (ACCU1) 主 2个32位累加器*** 累加器2 (ACCU2) 辅 地址寄存器 32位 地址寄存器1 (AR1) 2个32位地址寄存器** 地址寄存器2 (AR2) 数据块地址寄存器 32位 共享数据块 DB 2个32位数据块地址寄存器 背景数据块 DI 状态字寄存器 16位 1个16位状态字寄存器* 状态位 系统的内部寄存器: S7 CPU的寄存器有(7个):

  14. 外设I/O存储区 P 输出(映像区) Q 输入(映像区) I 系统存储区―存放操作数据(I/O、位存储、定时器等) 物理上是CPU的RAM ,存储区的大小因CPU型号而异。 位存储区 M 定时器 T 计数器 C 工作存储区―①存放CPU运行时,所执行的用户程序单元逻辑块(OB、FB、FC)、数据块(DB)的复制件;②存放临时本地数据,这部分存储区称L堆栈(主要是存放用户程序的临时变量) 物理上是CPU模块的部分RAM 可执行用户程序: ·逻辑块(OB、FB、FC) ·数据块(DB) 临时本地数据存储区 (L堆栈) 系统存储区: S7-300 CPU有三个基本存储区: 装载存储区――存放用户程序 物理上是CPU的部分RAM、EEPROM、外置FEPROM等 动态装载存储区: 存放用户程序

  15. 1,外设访问(P)不通过映像区; 2,有些变频器等超出了映像区的范围所以,只能使用外设访问(P) ; 3,外设访问(P)在程序执行到此位置时进行读写操作,而普通的输入输出,则在程序开始读入,结束输出;

  16. 状态字: 状态字表示CPU执行指令时所具有的状态,用户程序可以访问和检测状态字,并可以根据状态字中的某些位决定程序的走向和进程。 首次检测位* 逻辑操作结果* 状态位 或位 溢出位 溢出状态保持位 条件码0 条件码1 二进制结果位

  17. 逻辑操作结果(RLO): Result of Logic Operation, RLO 位置:状态字位 “1” 作用:存储位逻辑指令或算术比较指令的结果。 无法判断RLO的数值时,可以查看FC位的情况。 在某行按下F1,就知道该指令是否影响RLO。见下页

  18. STA • STA表示被操作的数据的当前状态,0或者1; • 仅表示布尔量; • 非布尔量的数值以ACCU累加器表示 • 例如第一句为 AN I0.0 • I0.0 现在为0,则STA为0; • 但是执行完毕后RLO为1。

  19. Q1.0 I0.0 I0.1 FC/RLO的变化示例:

  20. DI 和 DB 的区别 • 访问背景数据块时,使用DI;当然也可以使用DB访问背景数据块; • DI的作用体现在:再单个FB里面调用了除背景数据块外的其他数据块时,可以用DB进行操作,而背景数据块可以使用DI进行操作。如右图:可以 OPN DB #DBMS //以后所有的DB*操作均是对应DB4, 而所有的DI*操作均对应DB433 CDB交换数据块内容,例如把背景数据块里面的内容与共享数据块交换,可以访问共享数据块,进行操作处理。

  21. L 的对应 好多程序里面直接使用L变量,此时你可以上Temp里面查看,寻求对应关系,如果找不到对应关系也无所谓,当一个临时变量使好了,出了这个块就什么都没了。

More Related