GetStationInfo(读取 PROFINET IO 设备的 IP 或 MAC 地址)
“GetStationInfo”指令读取位于本地 IO 系统中 PROFINET IO 设备或下级 IO 系统中 PROFINET IO 设备的 IP 或 MAC 地址(使用 CP/CM 模块连接)。
"GetStationInfo_SFB_DB"(
REQ:=_bool_in_,
LADDR:=_uint_in_,
DETAIL:=_uint_in_,
MODE:=_uint_in_,
DONE=>_bool_out_,
BUSY=>_bool_out_,
ERROR=>_bool_out_,
STATUS=>_word_out_,
DATA:=_variant_inout_);
使用 GetStationInfo 指令读取 PROFINET IO 设备的 IP 或 MAC 地址。通过该指令,还可以读取下级 IO 系统中 IO 设备的 IP 或 MAC 地址(使用 CP/CM 模块连接)。
1 .STEP 7 会在插入指令时自动创建 DB。
2 .在 SCL 示例中,“GetStationInfo_SFB_DB”是背景 DB 的名称。
在 LADDR 参数处,使用站的硬件标识符寻址 IO 设备。您可以在如下位置找到硬件 ID:“PLC 变量 > 显示所有变量 > 系统常量选项卡”(PLC tags > Show all tags > System constants tab)。
在“名称”(Name) 列中搜索“IODevice”,然后在“数据类型”(Data type) 列中搜索“Hw_Device”。通过 MODE 参数,选择要读取的信息。
在 DATA 参数处,可分配指令写入的所读取地址数据的数据区。使用“IF_CONF_v4”结构存储 IP 地址。使用“IF_CONF_MAC”结构存储 MAC 地址。
使用 REQ 控制参数启用地址数据读取。这需要能够访问 IO 设备。
指令通过 BUSY、DONE、 ERROR 输出参数和 STATUS 输出参数显示了读取作业的执行状态。
在下面的示例中,使用 GetStationInfo 指令读取 IO 设备的 IP 地址数据并将信息写入数据块。IP 地址数据包括 IP 地址、子网掩码和(如果已使用)路由器的地址数据。
IO 控制器执行 GetStationInfo 指令,该指令读取下级 IO 设备的 IP 地址信息(例如,ET200MP)。
1. 组态 ET 200SP:
– 在网络视图中创建站名称为“Conveyor_1”的 ET 200SP,并将其分配给相同 CPU 的 PROFINET IO 系统。
– 将 CPU 作为 ET 200SP IO 控制器分配。
2. 分配 GetStationInfo 指令的参数:
– 在全局数据块中创建 5 个变量和 1 个结构(数据类型为 IF_CONF_v4),用于存储该 IP 地址数据。可以为该结构指定任意名称。(在此例中,结构名称为“IP_Address”。)
3. 分配 GetStationInfo 指令的参数:
– 在参数 LADDR 中输入 IO 设备的硬件 ID。硬件标识符唯一地标识产品。
在本例中,硬件 ID 为“270”。您可以在如下位置找到硬件 ID:“PLC 变量 > 显示所有变量 > 系统常量选项卡”(PLC tags > Show all tags > System constants tab)在“名称”(Name) 列中搜索 IO 设备,然后在“数据类型”(Data type) 列中搜索“Hw_Device”。关联值是您在 LADDR 参数中输入的硬件 ID 标识符。
– 为 MODE 参数选择“1”(根据 IPv4 读取地址参数)。
– 在 DATA 参数处连接 IF_CONF_v4 结构。
– 从全局 DB 中为该指令的输出参数定义 PLC 变量(存储区、标记)。
4. 正在执行 GetStationInfo 指令:
– 当 REQ 输出 = 1(FALSE)时,指令显示在 DATA 输入/输出参数处无 IP 地址信息或在 STATUS 输出参数处无错误代码信息。
5. 完成 GetStationInfo 指令的执行:
– 当 REQ 输入 = 1 时 (TRUE),程序执行该指令并将 IP 址写入数据块。程序将 IP 地址“C0 A8 02 1A”(“192.168.2.26”十进制数的值)写入 DATA 输入/输出参数。
审核编辑:刘清
全部0条评论
快来发表一下你的评论吧 !