没有合适的资源?快使用搜索试试~ 我知道了~
首页S7-300400PLCANY指针使用详解.pdf
S7-300400PLCANY指针使用详解.pdf

西门子STL SCL 语句表 中指针用法,详细介绍了如何判别指针的状态,适合不熟悉指针的人学习,充分利用指针写程序更快捷。
资源详情
资源评论
资源推荐

ANY 指针讲解
STEP 7 以 10 个字节存储参数类型 ANY 。当构造类型为 ANY 的参数时,必须
确保所有 10 个字节都被占用,因为调用块估计参数整个内容的值。例如,如果
以字节 4 指定 DB 编号,也必须以字节 6 明确地指定存储器区。
STEP 7 管理基本和复杂数据类型的数据与参数类型的数据不同。
数据类型的 ANY 格式
对于基本和复杂数据类型, STEP 7 存储下列数据:
数据类型
重复因子
DB 编号
信息存储的存储区域
数据的起始地址
重复因子识别由参数类型 ANY 传送的指示数据类型的数量。这意味着可以指
定数据区,也可以和参数类型 ANY 结合使用数组和结构。 STEP 7 将数组和结
构识别为数据类型的编号 (借助重复因数 )。例如,如果要传送 10 个字,必须为
重复因子输入数值 10,并且必须为数据类型输入数值 04。
地址以格式 Byte.Bit 存储,此处字节寻址存储在字节 7 的位 0 - 2 ,
节字 8 的位 0 - 7 ,节字 9 的位 3 - 7 。位地址存储在字节 9 的位 0 - 2。
对于类型 NIL 的空指针,所有来自字节 1 的字节设置为 0。
下表给出参数类型 ANY 的数据类型或存储区域的编码。
数据类型的编码
十六进制代码 数据类型 描述
b#16#00 NIL 空指针

b#16#01 BOOL 位
b#16#02 BYTE 字节 (8 位)
b#16#03 CHAR 字符 (8 位)
b#16#04 WORD 字(16 位)
b#16#05 INT 整数 (16 位)
B#16#06 DWORD 字(32 位)
b#16#07 DINT 双整数 (32 位)
b#16#08 REAL 浮点数 (32 位)
b#16#09 DATE 日期
b#16#0A TIME_OF_DAY (TOD) 时间
b#16#0B TIME 时间
b#16#0C S5TIME 数据类型 S5TIME
b#16#0E DATE_AND_TIME (DT) 日期和时间 (64 位)
b#16#13 STRING 字符串
存储器区的编码
十六进制代码 区域 描述
b#16#80 P I/O 区域
b#16#81 I 输入区域
b#16#82 Q 输出区域
b#16#83 M 位存储区域
b#16#84 DB 数据块
b#16#85 DI 背景数据块
b#16#86 L 本地的数据 (L 堆栈)
b#16#87 V 先前的本地数据
参数类型的 ANY 格式
对于参数类型, STEP 7 存储数据类型和参数的地址。重复因子始终是
1。字节 4、5 和 7 始终是 0。字节 8 和 9 指示定时器、计数器或块的编号。
下表为参数类型显示参数类型 ANY 的数据类型编码。

十六进制代码 数据类型 描述
b#16#17 BLOCK_FB FB 编号
b#16#18 BLOCK_FC FC 编号
b#16#19 BLOCK_DB DB 编号
b#16#1A BLOCK_SDB SDB 编号
b#16#1C COUNTER 计数器编号
b#16#1D TIMER 定时器编号
使用参数类型 ANY
可以为适合于任何数据类型的实际参数的块定义形式参数。 当调用块是
未知或可以改变时 (和当允许任何数据类型时 ),已提供了实际参数的数据类型时,
这尤其有用。在块的变量声明中,可以声明参数为数据类型 ANY。然后可以在
STEP 7 中分配任何数据类型的实际参数。
STEP 7 为 ANY 数据类型的变量分配存储器的 80 个位。如果分配实际参数
给此形式参数, STEP 7 在 80 个位中编码起始地址、数据类型和实际参数的长
度。调用块为 ANY 参数分析保存数据的 80 个位,并获取进一步处理所需的信
息。
分配实际参数给 ANY 参数
如果为参数声明数据类型 ANY,可以分配任何数据类型的实际参数
给形式参数。在 STEP 7 中,可以指定下列数据类型为实际参数:
基本数据类型:指定实际参数的绝对地址或符号名称。
复杂数据类型:指定复杂数据类型的数据符号名称 (例如,数组和结构 )。
定时器、计数器和块:指定编号 (例如, T1 、C20 或 FB6) 。
下图说明数据如何传送到具有 ANY 数据类型参数的 FC。

在此实例中, FC100 具有三个参数 (in_par1 、in_par2 和 in_par3 ),
声明为 ANY 数据类型。
当 FB10 调用 FC100 时, FB10 传送一个整数 (静态变量 speed) 、一个字
(MW100) 和一个双字到 DB10 (DB10.DBD40) 。
当 FB11 调用 FC100 时,FB11 传送一个实数数组 (临时变量 "Thermo") 、一
个布尔值 (M 1.3) 和一个定时器 (T2) 。
为 ANY 参数指定数据区
不仅可以分配各个地址 (例如, MW100) 给 ANY 参数,而且可以指定数
据区。如果希望指定数据区为实际参数, 使用下列常数格式指定要传送的数据总
量:
p# 区域标识符 Byte.Bit 数据类型 重复因数
对于数据类型 元素,可以为常数指定所有基本数据类型和数据类型
DATE_AND_TIME 的格式。如果数据类型不是 BOOL ,必须指定位地址 0 (x.0) 。
下表为指定要传送的存储区域给 ANY 参数的格式的实例。
剩余19页未读,继续阅读

















安全验证
文档复制为VIP权益,开通VIP直接复制

评论5