优秀的编程知识分享平台

网站首页 > 技术文章 正文

博途中的 ANY指针

nanyue 2024-12-06 18:03:18 技术文章 9 ℃


ANY 类型的参数指向数据区的起始位置,并指定其长度。ANY 指针使用存储器中的 10 个字节,可能包含以下信息:

  • 数据类型: 数据区元素的数据类型
  • 重复系数: 系统区的元素数
  • DB 编号: 包含数据区元素声名的数据块。
  • 存储区: CPU 中存储数据区元素的存储区。
  • 数据的起始地址(格式为“字节.位”): 通过 ANY 指针确定的数据区起始位置。
  • 零指针: 使用零指针,可以指出缺少的值。缺少的值可以表示值不存在,或为未知值。零值表示缺少值,但仍然是值。

在编程语言 SCL 和 STL 中,如果在块参数中设定了一个 ANY 指针,则任意类型的存储器都可以在块调用时传递。

声明 ANY 指针的格式:

表示法

格式

输入值示例

说明

符号

P#DataBlock.MemoryArea DataAddress Type Number

"MyDB".StructTag.InitialComponents

全局 DB11 中从 DBB20.0 开始带有 10 个字的区域

P#MemoryArea DataAddress Type Number

"MyMarkerTag"

以 MB 20.0 开始包含 4 个字节的区域

"MyTag"

输入 I1.0

P#零值

-

零值

绝对

P#DataBlock.MemoryArea DataAddress Type Number

P#DB11.DBX20.0 INT 10

全局 DB11 中从 DBB20.0 开始带有 10 个字的区域

P#MemoryArea DataAddress Type Number

P#M20.0 BYTE 10

以 MB 20.0 开始包含 10 个字节的区域

P#I1.0 BOOL 8

包含来自输入 I1.0 的 8 个位的范围(指定的范围长度必须可被 8 除尽)。

P#零值

P#P0.0 VOID 0, NULL 1)

零值

1) 在编程语言 LAD 和 FBD 中,只有 NULL 才是零值的值条目。


ANY 指针的数据类型编码。


十六进制代码

数据类型

说明

B#16#00

NIL

Null 指针

B#16#011)

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#0B

TIME

持续时间

B#16#0C

S5TIME

持续时间

B#16#09

DATE

日期

B#16#0A

TOD

日期和时间

B#16#0E

DT

日期和时间

B#16#13

STRING

字符串

B#16#171)

BLOCK_FB

函数块

B#16#181)

BLOCK_FC

函数

B#16#191)

BLOCK_DB

数据块

B#16#1A1)

BLOCK_SDB

系统数据块

B#16#1C1)

COUNTER

计数器

B#16#1D1)

TIMER

定时器

ANY 指针的存储区编码。

十六进制代码

区域

说明

B#16#801)

P

I/O

B#16#81

I

输入存储区

B#16#82

Q

输出存储区

B#16#83

M

位存储的存储区

B#16#84

DBX

数据块

B#16#851)

DIX

背景数据块

B#16#86

L

本地数据

B#16#87

V

先前的本地数据

Tags:

最近发表
标签列表