说明
“GET_NAME”指令用于读取 IO 设备或 DP 从站的名称。该名称将显示在网络视图和 IO 设备或 DP 从站的属性中。在以下截图中,以 IO 设备为例。

通过 PROFINET IO 系统或 DP 主站的硬件标识符(LADDR 参数中)以及 IO 设备的设备编号或 DP 从站的 PROFIBUS 地址(STATION_NR 参数),可选择该 IO 设备或 DP 从站。
指令成功执行后,IO 设备或 DP 从站的名称将写入由 DATA 参数寻址的区域中。
所读取的名称取决于 IO 设备的类型:
对于 DP 从站或 IO 设备,将输出前端模块的名称。
对于智能从站或智能设备,将输出接口模块的名称。
对于 HMI 面板,将输出接口名称。
对于 PC 站,将输出接口模块的名称。
对于 GSD 设备,将显示设备接入点 (DAP) 的名称(接口或前端模块的名称)。
并通过参数 LEN 输出该名称的长度。如果该名称的长度大于 DATA 参数指定的区域,则将只写入寻址区域的最大长度的部分名称。
该名称的最大长度为 128 个字符。
|
说明 读取的 CPU 的名称 (V 1.1) 如果参数 LADDR 和 STATION_NR 的值均为“0”,则该指令将输出 CPU 的名称。 如果 R/H 系统处于 RUN-Redundant 模式,则该指令将返回主 CPU 的名称。 |
参数
下表列出了“GET_NAME”指令的参数:
| 参数 | 声明 | 数据类型 | 存储区 | 说明 |
|---|---|---|---|---|
| LADDR | Input | HW_IOSYSTEM | I、Q、M、D、L 或常量 | PROFINET IO 或 DP 主站系统的硬件标识符该值来自系统常量或 PROFINET IO 系统/ DP 主站系统的属性。 |
| STATION_NR | Input | UINT | I、Q、M、D、L 或常量 | PROFINET IO 设备的设备编号或 DP 从站的 PROFIBUS 地址。该编号将显示在网络视图和 IO 设备或 DP 从站的属性中。 |
| DATA | InOut | VARIANT | I、Q、M、D、L | 指向该名称待写入的目标区域的指针。 |
| DONE | Output | BOOL | I、Q、M、D、L | 指令执行成功。IO 设备或 DP 从站的名称已传送到 DATA 参数处指定的区域内。 |
| BUSY | Output | BOOL | I、Q、M、D、L |
状态参数 0:指令执行完成。 1:指令的执行尚未完成。 |
| ERROR | Output | BOOL | I、Q、M、D、L |
状态参数 0:无错误。 1:指令执行过程中发生错误。 详细信息将在 STATUS 参数中输出。 |
| LEN | Output | DINT | I、Q、M、D、L | IO 设备或 DP 从站的名称长度(字符数)。 |
| STATUS | Output | WORD | I、Q、M、D、L |
状态参数 该参数设置仅维持一次调用所持续的时间。因此,要显示该状态,需将 STATUS 复制到一个空闲数据区内。 |
有关有效数据类型的更多信息,请参见“有效数据类型概述”。
参数 STATUS
| 错误代码* (W#16#...) | 说明 |
|---|---|
| 0 | 无错误 |
| 7001 | 第一次调用“GET_NAME”异步指令。指令的执行尚未完成 (BUSY = 1,DONE = 0)。 |
| 7002 | 另一次调用“GET_NAME”异步指令。指令的执行尚未完成 (BUSY = 1,DONE = 0)。 |
| 8090 | 在 LADDR 参数中指定的硬件标识符在项目中不存在。 |
| 8092 | LADDR 参数的值无法寻址 PROFINET IO 系统或 DP 主站系统。 |
| 8093 | 指令不支持 DATA 参数中的数据类型。 |
| 8095 |
所选的 PROFINET IO 系统中没有该设备编号(STATION_NR 参数),或者找不到 IO 设备。 在所选的 DP 主站系统中,PROFIBUS 地址(STATION_NR 参数)不存在。 |
| 80B1 | 所用 CPU 不支持该指令。 |
| 80C3 | 临时资源错误:CPU 当前正在处理的同步块调用的最大数量。仅当至少一个块调用执行完成后,才能执行“GET_NAME”。 |
| 8852 |
DATA 参数中指定的区域过短,无法写入 IO 设备或 DP 从站的完整名称。只能写入最大允许长度的部分名称。 要读取完整名称,需在 DATA 参数处指定一个较大的数据区域。此区域的大小必须至少与 LEN 参数处指定的字符数相一致。 |
| * 在程序编辑器中,错误代码将显示为整数或十六进制值。有关切换显示格式的信息,请参见“另请参见”。 | |
示例
以下举例说明了如何读取 HMI 面板的站名称。
HMI 面板的组态:
创建以下变量,在全局数据块中进行数据存储:

为指令“GET_NAME”分配参数:
执行指令:
在网络视图中创建站名称为“HMI_IO-Device”的 HMI 面板,并分配给相同 CPU 的 PROFINET IO 系统。
在硬件配置的属性中激活该 HMI 面板的操作模式“IO 设备”,并将 CPU 指定为 IO 控制器。
在“以太网地址”(Ethernet addresses) 下的属性内,设置设备编号“20”

在输入参数 LADDR 中,输入 IO 系统(262)的硬件标识符。
在输入参数 STATION_NR 中,输入 HMI 面板(2)的设备编号。
互连“GET_NAME”指令的其它数,如下所示:

执行该指令之后,HMI 面板 (HMI_IO-Device) 的站名称将保存到参数 DATA(“moduleName”)中。
并在参数 LEN 中输出该名称的字符个数 (13)。
成功读取 IO 设备后,如果 GET_NAME 的执行未停止,则输出参数BUSY(“busy”)将显示值“TRUE”;输出参数 STATUS(“status”)将显示值“16#7002”。

全部0条评论
快来发表一下你的评论吧 !