FC_ReadSTRING

概述

类型

功能

适用的版本:

V1.0.4.0

继承

-

执行

-

任务

将以任意数据类型存储的字符复制到类型为 STRING 的变量中。

功能描述

利用此功能,能够轻松地将可能接收的 ASCII 字符从接收缓冲区复制到类型为 STRING 的变量中。

利用指针,通过输入 i_pbyBuffer,将任意数据类型的数据源传送至此功能。利用指针,通过输入 i_psString,将数据目标(即,类型为 STRING 的变量)传送至此功能。通过输入 i_uiMaxLength 确定要复制的字符数上限。

通过输入 i_xStopAtZero,确定此功能是否复制(i_uiMaxLength 指定的)所有字节,或者是否在检测到的第一个 NUL 字符 (16#0) 处停止复制进程。请注意,NUL 字符指示类型为 STRING 的变量的值的结尾。

如果在复制的字符数未达到上限的情况下,或者在输入 i_xStopAtZero 为 FALSE 的情况下,未检测到 NUL 字符,则此功能将 NUL 字符写入到目标存储器的第 n 个字节中。n = i_uiMaxLength +1。即,i_uiMaxLength 的最大值等于目标存储器 - 1 的大小。

注: 为了防止因存储器指针访问无效(在范围外)引起的非法访问,利用算术运算符 SIZEOF 和目标存储器来确定 i_uiMaxLength 的值。

编码示例

在结构化文本中使用 FC_ReadSTRING 的编码示例:

// 将数据复制到类型为 STRING 的变量中

TCPUDP.FC_ReadSTRING(

i_pbyBuffer := ADR(abyReceiveBuffer),

i_psString := ADR(sData),

i_uiMaxLength := SIZEOF(sData)-1,

i_xStopAtZero := TRUE);

接口

输入

数据类型

描述

i_pbyBuffer

POINTER TO BYTE

指向要从(源)复制的存储器地址的指针。

i_psString

POINTER TO STRING

指向要复制到(目标,类型为 STRING 的变量)的存储器地址的指针。

i_uiMaxLength

UINT

要复制的字节数上限。

i_xStopAtZero

BOOL

如为 TRUE,则在检测到第一个 NUL 字符 (16#0) 时停止复制进程。如为 FALSE,将用 i_uiMaxLength 指定的字节数和一个 NUL 字符写入目标存储器中。

返回值

数据类型

描述

UINT

写入目标存储器中的字节数。