S7300plc地址寻址

上传人:灯火****19 文档编号:124911996 上传时间:2020-03-14 格式:PDF 页数:18 大小:1.59MB
返回 下载 相关 举报
S7300plc地址寻址_第1页
第1页 / 共18页
S7300plc地址寻址_第2页
第2页 / 共18页
S7300plc地址寻址_第3页
第3页 / 共18页
S7300plc地址寻址_第4页
第4页 / 共18页
S7300plc地址寻址_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《S7300plc地址寻址》由会员分享,可在线阅读,更多相关《S7300plc地址寻址(18页珍藏版)》请在金锄头文库上搜索。

1、第8章地 址 寻 址 s 7 300 400系 列PLC地址寻址分为直接地址寻址和间接地址寻址两大类 直 接地址寻 址通过指令直接对地址进行访问 地 址通常是一个常数 不 可以改变 间 接地址寻址时地址 存储于地址指针中 地 址是一个变量 程 序执行时才能确定实际的地址 在各 自寻址的方式 下又进行细的划分 不 同的寻址方式如图8 1所示 图8 1 寻址方式 8 1 绝 对 地 址 寻 址 与 符 号 地 址 寻 址 绝对地址寻址是指存储单元地址可以直接包含在指令 中 指 令通过地址标识符号直接对 变量进行读写访问 在 STE 中 I O信号 标志位存储区 定时器 计数器 程序块 数 据块等都

2、可以通过绝对地址进行访问 地 址区及直接访问举例见表8 1所示 表8 1 直接地址寻址类型 地址 区符号及访 问长度说 明举 例 I IB I硒 ID 过程映像区输人IW4 D12 Q QB Q聒 厂 QD 过程映像区输出 Q 3 2 Q B 1 2 Q V 2 0 Q D 4 0 PIB PI硒 厂 PID 外设输人 或立即读 PIB256 PI珥 厂 3o o PID400 PQB PQ环 厂 PQD 外设输出 或立即写 PQB256 PQ环 严 288 PQD300 M MB MW MD 标志位存储区M4 0 MB3 MW12 MD42 L LB LW LD区域数据L2 2 LB1 L吊

3、 20 LW42 定时器 计数器 直接寻址 绝对地址 符号地址 间接寻址 存储器 寄 存器 间接寻址 间 接寻址 16位指针 32位指针 DBJC 内 部区域 32位指针 32位 指针 内部区域 交叉区域 地址 区符号及访问长度 FC FB s FC SFB FC1 s FC67 DBX DBB DB职 DBD DBX12 0 DBB20 DB r 40 DBD100 DIX DIB DI环 厂 DID DIX12 0 DIB20 DIW40 DID100 I Q M L有 位寻址 字节寻址 字寻址 双字寻址几种方式 PI类型和PQ类型只 有字节寻址 字寻址 双字寻址几种方式 符号地址寻址是指

4、为每个绝对地址分配一个符号名称 便 于识别和记忆 增 强用户程序 的可读性 便 于设备的调试 例 如用符号 M优 o r St a r t 来代替绝对地址 0 STEPT中符 号寻址分为全局符号 在 符号表 中定义 和区域符号 在 程序块 的通信接口及临时变量 静态变量中定义 全局符号在整个用户程序范围内有效 局 部符号只能在一个程序块 内部 使用 8 2 间 接寻址 间接寻址分为存储 区间接寻址和寄存器 间接寻址 前 者寻址 的地址指针存储于存储器 中 如 M L区 等 后 者存储于CPU的地址寄存器AR1或AR2中 8 2 1 存 储 器 间接 寻 址 存储于存储器中的地址指针分为16位地

5、址指针和32位地址指针 允 许存储地址指针自 存储器为M 标志位 L 区域数据 及 数据块 DB或DI 下 面分别介绍两种地址指针 的使用 怔边姣栋钛 例 爽 慰嗯菸 灾 旷诋 凇 时 汛 丬罚 汛 n 讷 寻让 161立 考 作是一个无符号整数 取 值 范 围0 535 它 指 向定 时器 T 计数器 C 叙 DB DI 或 程序块 FB FC 的 号 16位指针的格式如下 2 5 2 2 2 3 7 指 针指向3 7 所有的定时器 计数器及程序块都可以使用 间接寻址访 问 访问时需要使用T DB DI FB Fc 等 区域标识符 寻 址的指针存储于一个16位的字中 地 址寻址表示 为 区域

6、标识符 16位 地址指针 例如打开一个DB块表示为 打 开 t 令 区 甚 识 符 i l 程序块 数据块 使 用0PN DB 米 数据块 使 用OPN DI 苄 米D B 块 的访问也可以直接带有 D B 号 例如 D B 1 D B X 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 170西门子S7可编程序控制器 s TEP7编 程指南 使 丿 从土 行操竹 数拒 16位J 第8章地 址 寻 址 171 使用16位地址指针访问一个定时器和计数器的示例程序如下 CU C MW22 从上面的示例程序中 可 以看出地址指针存储于MW20中 可 以使用普通指令对M

7、W20 f 操 作 MW20中存储数值的变化直接影响定器 计数器访问的地址 数据块可以使用DB打开 也 可以使用DI打开 如 果地址指针为0 CPU不会报错 9使 6位地址指针访问数据块的示例程序如下 L 20 T Mw 4o OPN DB M9 40 打刀二DB20 I T Mw 42 OPN DI Mw 42 打 9于DI21 使用16位地址指针调用程序块 FB FC 时 只能使用UC 无条件调用 或CC 条 件调用 而不能使用CALL指令 函 数块中不能带有任何接口参数或静态变量 使 用 调用函数及函数块的示例程序如下 L 12 T Lw 2o UC FC LW20 L 13 T MW

8、20 A I 2 3 L 11 T MW 20 A I 2 1 L S5T 10S s E T MW20 L Mw 2o I T Mw 22 A I 2 2 将11传 送到累加器1中 将累加器1中 的数值传送到MW20中 如果 1为1 将 预置值10s 装载到T11中 M W 2 0 再 加 1 如果 I 2 2 为 1 C 1 2 向 上 计数 一 次 无条件调用FC12 C C F B M W 2 0 如 果 I 2 3 为1 调 用 F B 1 3 FC12和FB13不 能带有形参 这 是由CC和 UC调 用指令决定的 2 32位 地址指针 32位 地址指针用 于I Q M L数据块 等

9、存储 器 中位 字 节 字及双 字 的寻址 32 的地址指针可以使用一个 双字表示 第 0位 第 2位 作为寻址操作 的位地址 第 3位 18位 作为寻址操作的字节地址 第 19位 第 31位 没有定 义 32位地址指针 的格式如 172 西门子S7可编程序控制器 STEP7编程指南 BBBBBB BBBB BXX 未定义 字节地址 2 位 地 址 访问时需要使用地址存储器标识符及32位地址指针 地 址寻址表示格式为 地址存储器标识符 32位地址指针 例如指针存储于 LD20中 装 载M存储器一个字节表 示为 L M B LD20 装载指令 存储区域 访问宽度 地 址指针 32位 地址指针也可

10、以使用常数表示 例 如装载32位指针常数LP l Z 0 3 P 指针 字 节地址 们 位 地址 3 32位地址指针数据与双整数可以相互转换 由于指针指到一个 位地址上 地 址指针最小变化为一个位 相 邻两个位的指针转换为双整数相差1 例如P卩 0 0转 换双整数为L Cl P 0 1转换双整数为L 1 每 一个字节地址加1 相 应转换 的整数值 加8的倍数 例 如P 2 0转换双整数为 L树 6 P 3 1转 换双整数为L辊 5 在指针寻址时 可以使用指针的格式 也 可以使用整数格式进行运算 使用32位地址指针寻址参考下面的 示例程序 打 开 D B 1 打开DB3 最多可以同时打开两个DB

11、块 装载4到累加器1中 累加器1中数值左移3位 将逻辑操作结果传送到MD20中 MD20包含地址 指针为 P Z I 0 L P f z 0 0 将 地 址 指 针 P 袍0 0 装 载 到 M D 中 T MD 24 L 3 3 转 换 指 针 为 P f Z 1 0 0 并 装 载 到 M D 2 8 中 T MD 28 L D B W M D 2 0 装 载 D B 1 D B W 4 L D B W M D 2 4 装 载 D B 1 D B W 2 0 I 才g 力 口 L D I W M D 2 8 装 载 D B 3 D B W 4 0 I 相 减 T DI V 2 将运算结果传

12、送到DB3 DBW2中 使用32位地址指针寻址数据块地址时 数 据块必须先打开 然 后才能寻址 数 据块寻 址方法参考 下 面 的示 例程 序 如果 直接 使 用 指令 则对 完 整数 据格 式 地 址 例 如地址 DB1 DBB MD100 进 行间接寻址被视为非法 使用LOOP指令和32位地址指针可 以进行循环操作 假 设一个编程应用 一 个字变量 MW2 与 一个数组 假 设存储于DB1中 包 含100个元素为字的数组 存 储 的值相 比较 OPN DB 1 OPN DI 3 L 4 SLD 3 T MD 20 第8章地 址 寻 址173 如果数值相同 则 指出第一个相同数值存储在DB块

13、中的位置 数 组中的位置 使用通常 的编程方法 需 要逐字进行比较 因 而程序量比较大 如 果实际需要与很多个数值比较 一 个小型的CPU将无法完成控制任务 使 用LOOP指令和地址指针相结合的方法 可 以轻松 地解决上述问题 参 考下面的示例程序 初 始 化M W 1 0 0 和M D 4 T开DB1 循环操作的次数 100次 将循环100次 装载到MW100中 固 定格式 进行 比较的数值存储于MW2 与DB块 中存储的值进行 比较 开 始地址为DBWo 如果数值相等跳到m 1 将地址指针加2 每 个相邻的字地址相差2 次数减 1 跳 回 ne t 如 果 M W 1 0 0 等 于 0

14、跳 出循 环操作LOOP指令 LO0P指 令固定格式 如果数值相等 记 录MD4存 储的指针 转 换为数 组的位置 地址值 P 2 0 1 值 并 存储于 MD8中 JCN m 2 L MD 4 L P 2 0 D 1 T MD 8 m 2 NOP o 上述示例程序中编程量减少 但 是程序执行时间并没有减少 32位地址指针指向一个 位地址 在 编程应用中注意P 1 0不等于整数1 否则CPU会因为无法处理而停机 参 考下 面错误的程序 OPN DB 1 L 20 T MD 20 L 11 T DBB MD20 块 指 针 字 升指到一个 l 例 如P 换的整数值 莒针寻址 时 参考下面的 20

15、包含地址 数据块寻 二 例 如地 址 一个字变量 妁值相 比较 L 0 T MW 100 T MD 4 OPN DB 1 L 100 n e x t T MW 100 L MW 2 L DBW MD4 I JC m 1 L MD 4 L P 2 0 D T MD 4 L MW 100 LOOP n e x t m 1 FP M 10 0 s 中 MD20装 载的地址指针为P核 4 指针指向 P 矽 4 相 当于 L D B B 2 4 C P U 因 无法 174西门子S7可编程序控制器 s TEP7编 程指南 识别地址而停机 编程 小技巧 如果对字节进行操作 则 指针转换为双整数最小变化率必

16、须 为 8 指 针为P 1 0 的 倍 数 如 果对字进行操作 则 指针转换为双整数值 最小变化率必须为16 指 针为P z 0 的 倍数 如 果对双字 浮点变量进行操作 则 指针转换为双整数值最小变化率必须为 32 指 针为P枇 0 的 倍数 对 指 向字与双字的地址指针 9这 样的要 求避免数据 间的冲突 例如 D B W M D 2 M D 2 为1 6 的 倍 数 时 按 照D B W 2 D B W 4 D B W 6 寻 址 如 果 为8 的倍 数 按照 D B W 1 D B W 2 D B W 3 寻 址 则 造 成 数据 冲突 8 2 2 寄 存 器 间接 寻 址 与存储器间接寻址不同 寄 存器间接寻址使用CPU内部集成的两个32位地址寄存器 AR1 AR2存 储地址指针 使用地址寄存器指令可以对AR1 AR2地 址寄存器进行操作 指 指针 实际装载 2 3 32位 M等 32 31 30 29 内 部指钅 交 叉指钅 第0 苇24位 000舅 001 完 010完 011菁 100菁 101茅 110扌 111扌 第31 吏 用交叉 I 令如下所示 LARl LAR

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > IT计算机/网络 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号