西门子S7-300高级编程培训教材,内部教材_4、间接寻址和.ppt_第1页
西门子S7-300高级编程培训教材,内部教材_4、间接寻址和.ppt_第2页
西门子S7-300高级编程培训教材,内部教材_4、间接寻址和.ppt_第3页
西门子S7-300高级编程培训教材,内部教材_4、间接寻址和.ppt_第4页
西门子S7-300高级编程培训教材,内部教材_4、间接寻址和.ppt_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

间接寻址及地址寄存器指令 LW AR1 P 200 0 1 2 9 10 Ini Value Par Pointer Counter STEP7中可能的寻址方式 寻址方式 直接寻址 间接寻址 绝对寻址 符号寻址 存储器间接寻址 寄存器间接寻址 示例 AI4 0A Mot on OPNDB MW10 AI MD30 AI AR1 P 0 0 A AR1 P 0 0 LIW10L NumSPT runtime LIW Number LID AR1 P 5 0 TW AR1 P 0 0 16位指针 DB T C 32位指针内部区域 32位指针内部区域 32位指针交叉区域 变量直接寻址 存储单元位置 示例 I 37 4 地址 附加访问宽度 字节 字 双字 含义 输入 Q 27 7 字节 字 双字 输出 PIB 655 字节 字 双字 外设输入 PQB 653 字节 字 双字 外设输出 M 55 0 字节 字 双字 位 Bit 存储器 T 114 定时器 C 13 计数器 DBX 2001 6 字节 DBB 字 DBW 双字 DBD 通过DB寄存器寻址的数据 DIX 406 1 字节 DIB 字 DIW 双字 DID 通过DI寄存器寻址的数据 L 88 5 字节 LB 字 LW 双字 LD 本地数据堆栈 DB中地址标识符直接寻址 打开的数据块 在数据块中装载和传递 OPNDB19OPN Values OPNDI20组合指令 包含OPNDDB LDBB1装载数据字节1LDBW2装载数据字2 字节2 3 L5装载数字5TDBW4传递到字4L A 装载ASCII字符ALDIB28装载数据字节28 I比较ADBX0 0从0字节的第0位开始扫描LDB19 DBW4从DB19中装载数据字4L Values Number 1符号访问变量Number 1 DB19具有变量名 Values ADB10 DBX4 7从DB10的第4个字节的第7位开始扫描 用于DB寄存器的指令 CDB 交换DB寄存器内容将DB寄存器内容装载到ACCU1中LDBNO 将打开的DB号装载到ACCU1中 LDINO 将打开的DI号装载到ACCU1中 装载数据块长度LDBLG 将打开的DB的长度 字节装载到ACCU1中 LDILG 将打开的DI的长度 字节装载到ACCU1中 在程序中分析数据块DB相关信息 指令执行前 指令执行后 CDB 123 24 24 123 DB寄存器 DI寄存器 字格式的16位指针 用于对DB T C进行寻址 L11TMW60OPNDB MW60 OPNDB11双字格式的32位指针 用于对I Q M 进行寻址 LP 24 0TMD50LIW MD50 LIW24存储访问地址区域宽度 存储器间接寻址 用于存储器间接寻址的指针结构 16位指针的结构 为0 65535之间的无符号整数 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 1514131211109876543210 20 215 27 146 32位指针的结构 内部区域 B B B B B B B B B B B B B X X X 1514131211109876543210 0 0 0 0 0 0 0 0 0 0 0 0 0 B B B 31302928272625242322212019181716 20 22 位地址 字节地址 无符号整数 20 215 未定义 装载32位指针常量 内部区域 LP 25 3 P 指针 字节地址 25 位地址 3 存储器间接寻址的特性 用于存储16位和32位指针的地址区域 位 Bit 存储区 绝对寻址或符号寻址 例如 OPNDB MW30 OPNDI Motor 1 等 AI MD30 TQD Speed 1 等 本地数据堆栈 绝对寻址或符号寻址 例如 OPNDB LW10 OPNDI DB NO 等 AI LD10 TQD Par Pointer 等 全局 共享 数据块 只能进行绝对寻址 DB必须预先打开 例如 OPNDB DBW0 覆盖掉DB寄存器内容 OPNDI DBW22 等 AI DBD10 TQD DBD22 等 背景数据块 只能进行绝对寻址 DI必须预先打开 例如 OPNDB DIW20 OPNDI DIW0 覆盖掉DI寄存器内容 等 AI DID10 TQD DID22 等 向FB和FC传递指针的特点在参数里传递的指针不能直接用于存储器间接寻址 用于存储器间接寻址而传递的指针 在访问之前必须拷贝到临时变量里去 间接寻址示例 FC30 间接寻址示例Network 段 1 使用间接寻址方式打开DBL dbnumber 将DB号拷贝到MW100TMW100 OPNDB MW100 打开DBNetwork 段 2 循环删除LP 18 0 将终端地址 DBW18 作为指针TMD40 传送到MD40 L10 将循环计数器值设置为10next TMB50 传到MB50中 L0 装载初始值TDBW MD40 传到DB50中 LMD40 装载指针LP 2 0 并减去2个字节 D 然后再传回TMD40 到MD40 LMB50 装载循环计数器LOOPnext 减去2个字节 条件满足则跳转 练习4 1 用间接寻址的方法进行循环编程 Meas Value 1 Meas Value 2 Meas Value 9 Meas Value 10 Meas Value 11 Ini Value 1 0 2 0 9 0 10 0 11 0 等等 DB41 0 4 32 36 40 DB中指向地址的指针 Par Pointer Counter 字节地址 内部区域 寄存器间接寻址 LAR1P 10 0 设置AR1AR1 00000000000000000000000001010000 200LMW AR1 P 200 0 存储区域访问地址偏移扩展指令 LMW210宽度寄存器常量 AR1或AR2中的内部区域指针 B B B B B B B B B B B B B X X X 1514131211109876543210 0 0 0 0 0 0 0 0 0 0 0 0 0 B B B 31302928272625242322212019181716 20 22 位地址 字节地址 无符号整数 20 215 未定义 指令语法规则 交叉区域 寄存器间接寻址 LAR1P I10 0 设置AR1AR1 10000001000000000000000001010000LW AR1 P 200 0 200访问地址偏移扩展指令 LIW210宽度寄存器常量 AR1或AR2中的交叉区域指针 B B B B B B B B B B B B B X X X 1514131211109876543210 1 0 0 0 0 R R R 0 0 0 0 0 B B B 31302928272625242322212019181716 位地址 字节地址 无符号整数 地址标识符 指令语法规则 Bit31 0 内部区域Bit31 1 交叉区域 地址标识符 000I O001输入 PII 010输出 PIQ 011位 Bit 存储器100DB寄存器中的数据101DB寄存器2中的数据 DI 110自有本地数据111调用块的LD 本地数据 用于装载地址寄存器的指令 装载地址寄存器LARn n 1or2 将ACCU1中的内容装载到ARnLARn将中的内容装载到ARnLARnP 将中的地址装载到ARn 处理器寄存器 AR1 AR2 比如 LAR1AR2及LAR2AR1 32位变量 MD LD DBD DID 比如 LDBD5等 32位符号变量 32位全局变量 比如 LAR1 索引 等 全局和局域的 以及OB FB及FC的TEMP 临时 变量 比如 LAR1 Address 等 P 指向布尔型绝对地址En m An m Mn m Ln m DBXn m DIXn m指针 比如 LAR1P M5 3 LAR2P I3 6 等 指向本地 符号地址OB TEMP 临时 变量 比如 LAR1P Par Pointer 等 FB IN OUT INOUT STAT 及TEMP FC TEMP 临时 变量 LAR1P Loop 等 其它用于地址寄存器的指令 传送出地址寄存器内容TARn n 1or2 从Arn传送到ACCU1TARn从Arn传送到 处理器寄存器 AR2 比如 TAR1AR2 32位绝对地址变量 MDn LDn DBDn DIDn 如TAR2MD5等 32位符号变量 32位全局变量 比如TAR1 Index 等 全局和局域的 及OB FB及FC的TEMP 临时 变量 比如TAR1 Address等 地址寄存器内容交换 Swap 指令TAR将地址寄存器AR1和AR2的内容相互交换地址寄存器加指令 ARn将ACCU1 L内容加到ARn ARnP n m将内部区域指针P n m加到AR1或AR2中去 寄存器间接寻址的特性 在STL LAD FBD编辑器内使用AR1当访问FC中的参数时 如果参数为复杂数据类型 ARRAY STRUCT DATE AND TIME 则AR1寄存器和DB寄存器内容将会被覆盖掉 当访问FB中的INOUT参数时 如果该INOUT参数是复杂数据类型 ARRAY STRUCT DATE AND TIME 则AR1寄存器和DB寄存器内容将会被覆盖掉 在装载地址寄存器和对目标变量进行寄存器间接寻址的时候 不允许访问局部参数在STL LAD FBD编辑器内使用AR2在对FB内部所有参数和静态变量进行寻址的时候 AR2寄存器和DI寄存器均用作基址寄存器 如果用户在FB内部将AR2或DI覆盖了 之后就可以访问该FB专用参数或静态变量 也就是说 未恢复两个寄存器时不可访问 在FC内 对AR2寄存器和DI寄存器没有限制 ACCU1 DB中指向地址的指针 AR1 ACCU2 Number 1 Number 2 Number 9 Number 10 Number 11 1 2 9 10 11 等等 DB42 0 4 32 36 40 字节地址 练习4 2 用寄存器间接寻址进行循环编程 POINTER类型和ANY类型数据的块参数 地址声明名称类型0 0输入参数DB NumWORD2 0输入参数Area PointerDWORD6 0输入参数LengthWORD L DB NumT I DB NumOPNDB I DB Num L Area PointerLAR1L Length FC 分别传送实际地址的各个信息 STEP5里的方式 DB号 起始地址 区域长度 等 缺点 程序员必须进行拆分 在调用期间 不能使用实际地址的符号名 一个地址 区域 需要好几个参数 无一致性检查纠正 地址声明 名称类型0 0输入Measure 1POINTER 8 0输入Measure 2ANY LP Measure 1LAR1LW AR1 P 0 0 T I DB NumOPNDB I DB Num LD AR1 P 2 0 LAR1 FC 使用POINTER或ANY类型参数传递 STEP7方式 调用时 程序员可以使用实际地址的符号名 由LAD FBD STL编辑器拆分成单个信息 一个地址只需要一个参数 进行一致性检查纠正 POINTER类型的结构和参数赋值 Byten Byten 2 Byten 4 Byten 1 Byten 3 Byten 5 DB号 INT 1OOO ORRR OOOO OBBB 32位交叉区域指针 BBBB BBBB BBBB BXXX POINTER类型参数赋值指针显示P DBn DBXx y其中 n DB号 x 字节数 y 位数P DIn DIXx y 比如P DB5 DBX3 4 P DI2 DIX10 0 等 P Zx y其中 Z 区域 比如 P I Q M及L 比如P I5 3 P M10 0 等 地址声明 MD30 这种情况下 DB号区域标识符及位地址自动输入 Motor on到POINTER参数中 Motor 1 speed 数据类型结构 POINTER ANY数据类型的结构 ANY数据类型指针 Byten Byten 2 Byten 4 DB号 1OOO ORRR OOOO OBBB BBBB BBBB BBBB BXXX 16 10 Datatype 复制系数 Byten 6 Byten 8 数据类型标识符VOID00BOOL01BYTE02CHAR03WORD04INT05DWORD06DINT07REAL08DATE09TOD0ATIME0BS5TIME0CDT0ESTRING13参数类型标识符BLOCK FB17BLOCK FC18BLOCK DB19BLOCK SDB1ACOUNTER1CTIMER1D ANY参数类型指针 Byten Byten 2 Byten 4 16 0000 定时器 计数器或块的号 16 10 参数类型 16 0001 Byten 6 Byten 8 16 0000 ANY数据类型的参数赋值 指针显示 P 数据块 位地址类型号P DB10 DBX12 0REAL20指向DB10中的一个区域 从Byte12开始的20个REAL类型的地址 ARRAY 1 20 OFREAL P I10 0BOOL8指向IB10里的一个8位区域地址声明 绝对地址 DB5 DBD10数据类型 DWORD 复制系数 1DB号 5 指针 P DB5 DBX10 0IW32类型 WORD WF 1 DB号 0 指针 P I32 0T35类型 TIMER 编号 35符号地址 Motor 1 speed使用基本数据类型 编译器建立正确 Pump Start的数据类型 复制系数1以及指针注意事项符号 ARRAY STRUCT STRING UDT 赋值时 数据类型标识符02 BYTE 以及区域字节长度只能由编译器来建立 并输入到ANY指针 ANY类型间接参数分配 使用临时变量对ANY数据类型进行实际参数赋值在调用块中声明ANY数据类型临时变量例如 tempaux pointerANY用指针信息对ANY临时变量进行赋值例如 LAR1P aux pointer 装载辅助指针地址LB 16 10 装载标识符10TLB AR1 P 0 0 并传送到Offset0

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论