说明
“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条评论
快来发表一下你的评论吧 !