西门子博途 SCL: 索引寻址PEEK读地址

科技   2024-11-16 00:57   吉林  

PEEK:读取存储地址

“读取存储地址”指令用于在不指定数据类型的情况下从存储区读取存储地址。

使用以下语法更改指令的数据类型:

PEEK_<data type>();

使用存储区 16#84:DB

如果将数据块用作存储区且在创建程序代码时未知,则可通过 EN/ENO 机制识别可能的访问错误:



SCL

#Peeker := PEEK(AREA := 16#84,

DBNUMBER := 1,

BYTEOFFSET := 2,

ENO => ENO);

IF NOT ENO THEN;

#Peeker := 16#ffff;

END_IF;


参数

下表列出了该指令的参数:



参数

声明

数据类型

存储区

说明

AREA

Input

BYTE

I、Q、M、D

可以选择以下区域:

  • 16#81:Input

  • 16#82:Output

  • 16#83:位存储区

  • 16#84:DB

  • 16#1:外设输入(仅 S7-1500)

DBNUMBER

Input

DINT、DB_ANY

D

如果 AREA = DB,则为数据块数量,否则为“0”

BYTEOFFSET

Input

DINT

I、Q、M、D

待读取的地址

仅使用 16 个最低有效位。

_<数据类型>

位字符串
默认值:BYTE

-

函数值的数据类型:

  1. 可以使用“_”明确指定指令的数据类型。

  2. 如果未明确指定数据类型,将由使用的变量或类型编码的常数来确定。

  3. 如果既未明确指定数据类型,也未指定定义的变量或类型编码的常数,则使用默认数据类型。

函数值

位字符串

I、Q、M、D

指令的结果


说明

如果要读取输入、输出或位存储区中的存储地址,则必须将参数 DBNUMBER 的值设置为“0”,否则指令将无效。

示例

以下示例说明了该指令的工作原理:



SCL

"Tag_Result1" := PEEK(AREA := "Tag_Area",

DBNUMBER := "Tag_DBNumber",

BYTEOFFSET := "Tag_Byte");



SCL

"Tag_Result2" := PEEK_WORD(AREA := "Tag_Area",

DBNUMBER := "Tag_DBNumber",

BYTEOFFSET := "Tag_Byte");


下表将通过具体的操作数值对该指令的工作原理进行说明:



参数

操作数

AREA

Tag_Area

16#84

DBNUMBER

Tag_DBNumber

5

BYTEOFFSET

Tag_Byte

20

函数值

Tag_Result1

字节值“20”

函数值

Tag_Result2

字值“20”


该指令从数据块“5”中的“Tag_Byte”操作数内读取地址值“20”,并将结果作为“Tag_Result”操作数的函数值返回。


§ PEEK指令只从存储器地址中读取数据,不指定数据类型 ;寻址结果通过赋值语句传递给变量。

索引寻址PEEKM区地址

索引寻址PEEKDB



机器人及PLC自动化应用
机器人技术讲解,PLC程序分析讲解,PLC机器人自动化培训. 以工业自动化培训为主.也会有些个人喜爱的军事和休闲.
 最新文章