• {{item.name}}
{{item.name}}
{{item2.name}}
更多
常问问题

如何计算ANY 型指针的偏移量或改变指针?

star star star star star
5.0 分
  • 软件编程
文档编号:22422028| 文档类型:常问问题| 发布时间:2023年10月24日
  • 0
  • 262
  • 6342
内容预览: 描述: 本文描述了如何计算ANY 型指针的偏移量或改变指针? ......

用法说明:
STEP 7 中用10个字节保存参数类型为ANY 型指针的数据。必须占用所有10 个字节来设定 ANY 型指针和计算偏移量。 有关设定参数类型为指针和ANY型指针的详细信息可以查询STEP 7 在线帮助中的以下主题:

  • 参数类型ANY的格式
  • 参数类型指针的格式

偏移量被添加到保存信息的存储器区,并被存储在为ANY型指针保留的双字6中。图01说明了一个存储数据在已定义区的实例。


Fig. 01

图01

通过系统函数SFC20可从DB10到DB20逐字节地复制数据。在DB20中定义数据存储区起始点(比如DB20.DBX2.0)。使用这个存储区起始点和偏移量(这里是4个字节),数据被存储在DB20的目标存储区中。于是从地址DB10.DBX0.0 开始的存储区中的第一个数据被复制到从地址DB20.DBX6.0开始的存储区中。

No.步骤
1FC12添加偏移量(INT型输入变量"Offset" )到存储区地址的起始点(BOOL型输入变量"Start of area" ),其结果存储在地址寄存器AR1的双字6中。然后通过ANY型输出变量"Area_Pointer" 输出数据要存储到的数据区地址。
2在OB1中调用和参数化FC12。来自函数FC12的输出变量 "Area_Pointer"的结果 被复制到一个缓冲区(ANY型临时变量"Area"),再被传送到系统函数SFC20的"DSTBLK"参数。通过这种方式数据从DB10传送到DB20的目标地址的存储区。

下载
复制文件"STEP7_V55_Offset_P.zip"到一个独立的目录,然后双击自动解压缩该STEP 7 V5.5项目及其所有相关子目录。然后可用STEP 7 V5.5打开和处理解压缩后的项目。

STEP7_V55_Offset_P.zip ( 32 KB )  

用来改变指针的块
可以用附件中的函数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。
  • 选择位地址或字节地址,且地址改变的结果是“负”字节地址。
  • 选择位地址或字节地址,且地址改变的结果是不允许的大字节地址。

下载
复制文件"STEP7_ChangePointer.zip"到一个独立的目录,然后双击自动解压缩该STEP 7 V5.5项目及其所有相关子目录。然后可用STEP 7 V5.5打开和处理解压缩后的项目。

STEP7_V55_ChangePointer.zip ( 35 KB )  

创建环境
本FAQ中的图片和下载包用STEP 7 V5.5创建。下表列出了创建此条目和验证上述函数的要素。

测试环境版本
PC platformIntel(R) Core(TM)2 Duo CPU P8700 2.53 GHz
PC operating systemMS Windows XP SP3
STEP 7V5.5
S7 PLCSIMV5.4+SP4

关键字Keywords
间接寻址,符号寻址,ANY型指针


您可以前往全球资源库查看此文档: https://support.industry.siemens.com/cs/cn/zh/view/22422028


  • 评论
更多
  • 分享

    扫码分享

提示
您即将前往“全球技术资源库”。
“全球技术资源库”的用户名与本地支持中心(下载中心、技术论坛、找答案、1847工业学习平台)的用户名不通用。如果需要在全球技术资源库下载文档,您需要重新登录或注册。
确定

扫码进入移动端

信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。