用法说明:
step 7 中用10个字节保存参数类型为any 型指针的数据。必须占用所有10 个字节来设定 any 型指针和计算偏移量。 有关设定参数类型为指针和any型指针的详细信息可以查询step 7 在线帮助中的以下主题:
参数类型any的格式
参数类型指针的格式
偏移量被添加到保存信息的存储器区,并被存储在为any型指针保留的双字6中。图01说明了一个存储数据在已定义区的实例。
通过系统函数sfc20可从db10到db20逐字节地复制数据。在db20中定义数据存储区起始点(比如db20.dbx2.0)。使用这个存储区起始点和偏移量(这里是4个字节),数据被存储在db20的目标存储区中。于是从地址db10.dbx0.0 开始的存储区中的个数据被复制到从地址db20.dbx6.0开始的存储区中。
no.步骤
1.fc12添加偏移量(int型输入变量offset )到存储区地址的起始点(bool型输入变量start of area ),其结果存储在地址寄存器ar1的双字6中。然后通过any型输出变量area_pointer 输出数据要存储到的数据区地址。
2.在ob1中调用和参数化fc12。来自函数fc12的输出变量 area_pointer的结果 被复制到一个缓冲区(any型临时变量area),再被传送到系统函数sfc20的dstblk参数。通过这种方式数据从db10传送到db20的目标地址的存储区。
用来改变指针的块
可以用附件中的函数fc5改变指针的位或字节地址。当调用该函数时,要改变的指针被传送到pointer变量。可以使用双字格式的内部或交叉区域指针。用bit_byte 参数选择改变指针的位地址或字节地址(0: 位地址, 1: 字节地址)。必须在inc_value变量(整型格式)中指定从上述地址要加或减的数。这里也可用负数减小地址编号。
如果改变位地址,也可能有字节地址的传送 (减小时也一样); 例如:
p#m 5.3, bit_byte = 0, inc_value = 6 => p#m 6.1, 或
p#m 5.3, bit_byte = 0, inc_value = -6 => p#m 4.5.
注意事项
指针的存储区信息不会被函数影响。
若指针计算中发生超过上限和低于下限的情况,指针不会被改变,且直到下次该函数正确工作之前,输出端的ret_val 变量都被置为 true。这种现象在以下情况时会发生:
选择位地址,且inc_value >7, 或 <-7。
选择位地址或字节地址,且地址改变的结果是“负”字节地址。
选择位地址或字节地址,且地址改变的结果是不允许的大字节地址。