SIEMENS/西门子S7-300 CPU模块6ES7318-3EL01-0AB0标准型CPU319-3PN/DP
- 供应商
- 上海跃韦科技集团有限公司
- 认证
- 西门子
- 西门子PLC总代理
- 西门子PLC
- 西门子PLC总代理商
- 德国
- 西门子PLC一级代理商
- 手机号
- 18674345958
- 经理
- 李经理
- 所在地
- 上海跃韦科技集团有限公司
- 更新时间
- 2024-11-12 07:00
存储器间接寻址分为两种指针格式:
寄存器间接寻址
分为内部区域间接寻址和交叉区域寻址。
内部区域寄存器间接寻址
包含有存储器区域信息的指针,称为交叉区域指针。
同样,交叉区域指针为 32 位,寄存器间接寻址要使用地址寄存器 ar1 或 ar2。
32 位交叉区域指针,左起 0~18 位格式与 32 位内部区域指针相同,19~23 位,27~20 位未定义,
31 位为交叉区域指针标识位。
24~26 位是存储区域地址标识,8 中组合表示 8 种存储器区域:
000 表示没有地址区,例如 p#12.0;
001 表示输入地址区 i,例如 p#i12.0;
010 表示输出地址区 q,例如 p#q12.0;
011 表示标志位地址区 m,例如 p#m12.0;
100 表示数据块(db)中的数据,例如 p#db1.dbx12.0
101 表示数据块(di)中的数据,例如 p#di1.dix12.0
110 表示区域地址区 l,例如 p#l12.0;
111 表示调用程序块的区域地址区 v,例如 p#v12.0;
交叉区域指针格式如下:
p#指针
pointer 是一种用于传递指针的形参数据类型,长度为 6 个字节。用于向被调用的函数 fc 及函数块fb 传递复合数据类型(如 array、struct 及 dt 等)的实参。在被调用的函数 fc 及函数块 fb内部可以间接访问实参的存储器。
图6 p#指针
any指针
<section powered-by="xiumi.us" helvetica="" neue",="""pingfang="" sc",="" "hiragino="" sans="" gb",="" "microsoft=""yahei="" ui",="" yahei",="" arial,="" sans-serif;=""background-color:="" rgb(255,="" 255,="" 255);="" font-size:=""15px;="" color:="" rgb(29,="" 29,="" 29);="" letter-spacing:=""1px;="" line-height:="" 2;="" overflow-wrap:="" break-word=""!important;"="" microsoft yahei"; font-size: 14px; white-space: normal;background-color: rgb(255, 255, 255); margin: 0px 0px 24px;padding: 0px; outline: 0px; max-width: ****; box-sizing:border-box; text-align: justify;">
pointer 是一种用于传递指针的形参数据类型,可视为 pointer 类型的扩展,较 pointer 类型为 复杂,长度为 10个字节,增加的 2 字节,*高字节 (byte 0) 固定为 b#16#10,第二字节 (byte 1) 为 any指针所指向区域的数据类型,而接下来的 2 字节 (byte 3, 4) 组合为一个 int,为 any 指针所**定区域的长度,称为重复系数 repetition factor) 。其余 6 字节作用与 pointer类型相同。格式如下:
图7 any指针
展开全文