处理器/DSP
CPU的内存区域是全系统声明的区域。由此,这些区域不必在逻辑块中声明。每个CPU均提供以下有各自地址范围的内存区域:
在存贮映象中的输入/输出(如Q1.0)
外部输入/输出(如PQ1.0)
位内存(如M1.0)
定时器、计数器(C1)
存取的语法(Syntax for Access)
在逻辑块的代码部分,用赋值方式存取一个CPU内存区域,像简单存取,能够指定为一个绝对地址或符号或
用索引方式存取。
要通过绝对内存定位方式存取CPU的内存区域,使用将一个绝对标识符赋值给同类型的变量。
绝对标识符指示CPU中的内存区域。通过指定地址标识符(此处为IB)后面跟一个地址(此处为10)来指定内存区域。
绝对标识符的语法(Syntax of the Absolute Identifier)
内存前缀(Memory Prefix)
用内存前缀,指定要寻址的内存类型。
依你选择的语种,德语和英语地址标识符有所不同。
大小前缀(Size Prefix)
用大小前缀,指定要从外部I/O读取的内存区域的长度。例如能够读一个籽节或一个字。如果只要指定一个位时,则使用大小前缀是可选的。
地址(Address)
对于地址,首先指定绝对的字节地址,然后是用一个点分开的位地址。位地址是可选的。
例子(Examples)
STATUSBYTE :=IB10;
STATUS_3 :=I1.1;
MEASVAL :=IW20;
用符号地址,代替绝对地址,能够用符号名来寻址CPU内存区域。
通过建立符号表在用户程序中将一个符号名指定给实际地址。用菜单命令选项(Options) > 符号表(Symbol Table)在S7-SCL中能够打开符号表任意次来增加符号。
对于数据类型说明,能够用使用能接受的指定数据元素大小的任何数据类型。下表说明符号表中怎么样显现的:
符号 |
绝对地址 |
数据类型 |
注释 |
Motor_contact_1 |
I 1.7 |
BOOL |
Contact switch 1 for Motor A |
Input1 |
IW 10 |
INT |
Status word |
存取(Access)
通过将一个值指定给同类型的已经声明符号的变量存取地址。
例子(Example)
MEASVAL_1 := Motor_contact_1;
Status_Motor1 := Input1 ;
也能够用一外索引来存取CPU的内存区域。与绝对地址比较,此方式的优点是能够用变量索引动态寻址。例如,能够将FOR循环的控制变量用作地址。
执行索引存取内存区域与绝对方式的做法一样,仅提供了地址的长处。取代绝对地址,指定的索引能够是一个常量、一个变量或一个算术表达式。
对于索引存取,绝对标识符由地址标识符(内存前缀和大小前缀)和用于索引的基本表达式组成。
绝对标识符的语法(Syntax of the Absolute Identifier)
索引(基数表达式)必须遵循以下规则(The indexing (base expression) must adhere to the following rules)
每个索引必须是一个INT类型的算术表达式。
当存取BYTE、WORD或DWORD类型的数据时,只能使用一个索引。索引被看作字节地址。存取的长度由大小前缀指定。
当存取BOOL类型的数据,必须使用双索引。第一个索引指定字节地址,第二个索引指定字节内的位地址。
例子(Example)
MEASVAL_1 :=IW[COUNTER];
OUTLABEL :=I[BYTENO, BITNO];
全部0条评论
快来发表一下你的评论吧 !