下表列出了“CommConfig”指令的参数: 参数 声明 数据类型 说明 REQ Input Bool 控制参数 Request 上升沿时激活该作业。 HW_ID Input HW_IO 要读取或更改其通信参数的子模块的硬件标识符 MODE Input USInt MODE 参数用于选择要执行的“CommConfig”指令的功能: • 0:从子模块读取通信参数,并将其传输到 DATA 引用的区域 • 1:将 DATA 引用的区域中的通信参数传输到子模块 注:确保 DATA 的结构与子模块的通信参数匹配,并且传输到子 模块的值是允许值。否则,“CommConfig”将返回错误。每次组 态前,需直接在设备上设置该参数调整。 • 2 到 255:预留 DONE Output Bool 状态参数,可具有以下值: • 0:作业尚未启动,或仍在执行过程中。 • 1:作业已完成且未出错。此状态仅显示一次调用的时间。 BUSY Output Bool 状态参数,可具有以下值: • 0:作业尚未启动或已完成。 • 1:作业尚未完成。无法启动具有该实例的新作业 ERROR Output Bool 状态参数,可具有以下值: • 0:未发生错误。 • 1:处理期间出错。此状态仅显示一次调用的时间。 STATUS Output Word 指令“CommConfig”的返回值或者错误信息。 DATA InOut Variant • MODE = 0 时:将从子模块读取通信参数目标范围的指针 • MODE = 1 时:将通信参数源范围的指针传输到子模块。DATA 仅 支持某些特定的 UDT(参见下文)。必须选择与 HW_ID 匹配的 UDT。 有关有效数据类型的更多信息,请参见“有效数据类型概述。
UDT 与 HW_ID 的有效值之间的关系 下表列出了各个 UDT 允许使用的 HW_ID 值。 UDT HW_ID 的有效类型 HW_ID 可能的值 Conf_Hostname HW_SubModule Local~Common Conf_Domainname HW_SubModule Local~Common Conf_ClientId HW_Interface 例如: Local~PROFINET_interface_2 Conf_ClientId_Opaque HW_Interface 例如: Local~PROFINET_interface_2 Conf_DNS HW_SubModule Local~Common Conf_DNS_IPV4 HW_SubModule Local~Common Conf_IPSuitev4 HW_Interface 例如: Local~PROFINET_interface_2 Conf_IPSuitev4_IPV4 HW_Interface 例如: Local~PROFINET_interface_2 Conf_NTP HW_Interface Local~CommonSTATUS 参数 STATUS (W#16#...) 说明 0000 “CommConfig”已完成且未出错。 7000 未激活任何作业处理。 7001 开始执行作业 7002 中间调用(与 REQ 无关): 8089 DATA 没有指向有效数据类型。 注:“CommConfig”仅支持 CommConfig 库中提供的 UDT。 8090 参数 HW_ID 无效 可能的原因: • HW_ID 的值与 CPU 中的实际对象不对应。 • HW_ID 引用的对象不是子模块的硬件标识符 8091 组态无效 可能的原因: • 要使用 UDT“Conf_IPSuitev4”或 UDT“Conf_IPSuitev4_IPV4”写入 IP 套件,但是未选 中“直接在设备上设置 IP 地址”(IP address is set directly at the device)。 • 要使用 UDT“Conf_NTP”写入 NTP 服务器地址,但是未选中“与 NTP 服务器的时间 同步”(Time synchronization with NTP server)。 8093 MODE 值无效STATUS (W#16#...) 说明 8094 DATA 引用的 UDT 中的值无效 可能的原因: • UDT“Conf_DNS”中的“Count”参数包含一个大于 4 的值。 • UDT“Conf_DNS”中“DNS_Server”字段的元素的 IPv4 IP 地址格式不正确。 • UDT“Conf_DNS_IPV4”中的“Count”参数包含一个大于 4 的值。 • UDT“Conf_IPSuitev4”中“write_mode”参数的值不为 1(yongjiu)或 2(临时),但 “MODE”参数的值为 1(写入)。 • UDT“Conf_IPSuite v4”中“IPAddress”参数的 IPv4 地址格式不正确。 • UDT“Conf_IPSuitev4”中的参数“SubnetMaskPrefix”超出取值范围 4-30。 • UDT“Conf_IPSuitev4”中“Gateway”参数的 IPv4 地址格式不正确。 • UDT“Conf_IPSuitev4_IPV4”中“write_mode”参数的值不为 1(yongjiu)或 2(临 时),但“MODE”参数的值为 1(写入)。 • UDT“Conf_NTP”中的“Count”参数包含一个大于 4 的值。 • UDT“Conf_NTP”中“NTP_Server”字段的一个元素的 IPv4 地址格式不正确。 • 使用 UDT“ConfClientId”时,使用了长度为 1 的字符串。 • 使用 UDT“ConfClientId”时,使用了超出 0x21 到 0x7E 范围的字符。 • 使用 UDT 时,已将“Conf_ClientId_Opaque”用作长度“1”的值。 80A0 读取通信参数时出错 80A1 写入通信参数时出错 80A9 不支持该功能。 可能的原因: • DATA 指定的 UDT 不支持 MODE 中指定的功能。 • 目标设备不支持此功能。 注:UDT“Conf_NTP”不支持 MODE=0。 80AA 主机名和域名的组合(包括定界符)超出了 254 个字符的Zui大长度。 80AB 名称无效 可能的原因: • 曾试图使用“CommConfig”更改通信参数“DNS hostname”。新名称包含非法字符。 • 曾试图使用“CommConfig”更改通信参数“DNS domain name”。新名称包含非法字 符。 • 域名的某个名称部分 (label) 的长度不在可接受范围内。 80AC 主机名、域名和 ClientId 的总长度超过 260 个字符的限制。 80AD 写入 ClientId 时出错:存储卡已满或受到写保护STATUS (W#16#...) 说明 80B0 索引无效 可能的原因: • 被寻址的子模块 (HW_ID) 不具备通过 DATA 指定的通信参数。请参见“UDT 与 HW_ID 的有效值之间的关系”部分 80B6 访问错误 可能的原因: • 由于当前组态,无法对 DATA 引用的 UDT 进行读写访问。 80B7 范围无效 可能的原因: • CPU 读取的数据记录的值与 DATA 引用的 UDT 的格式不匹配。 80B8 参数无效 可能的原因: • 写入通信参数时的值无效 80C2 资源当前正在使用。 80C3 资源不可用 同时活动作业的Zui大数量 同时活动作业的Zui大数量由以下规则确定: • 在任何给定时间,UDT“Conf_IPSuitev4”、“Conf_IPSuitev4_IPV4”或“Conf_NTP”只有一个 写入操作可处于活动状态。 • 写入 UDT“Conf_IPSuitev4”、“Conf_IPSuitev4_IPV4”或“Conf_NTP”之一时,可以同时写入 任何其它 UDT。其它 UDT 的同时写入请求数量不可超过 20。 • 任何 UDT 的Zui大同时读取作业数量均为 20。 如果不遵守这些规则,则 CommConfig 将返回错误代码 0x80C2 或错误代码 0x80C3。UDT“Conf_Hostname” (S7-1500) UDT“Conf_Hostname” UDT“Conf_Hostname”用于读取或更改“DNS 主机名”通信参数。主机名可与域名结合使用以 形成全限定域名 (FQDN)。 UDT“Conf_Hostname”的结构如下: 参数 数据类型 主机名 字符串[63] 允许的字符与 RFC 1035 中的相同:A…Z、a…z、0…9、_。长度限制为 63 个字符。主机名 必须以字母或数字开头和结尾。主机名和域名的组合不得超过 254 个字符(包括定界符), 并且必须形成 FQDN。末尾不必添加定界符,因为 root-label 始终为空。主机名、域名和 ClientId 的总长度不得超过 260 个字符。 如果使用 UDT“Conf_Hostname”,则必须为 HW_ID 选择一个“HW_SubModule”类型的值。 说明 通过 DHCP 获取的数据的有效性 如果使用“CommConfig”更改主机名,则通过 DHCP 获取的所有数据(IP 套件、域名、NTP 服 务器和 DNS 服务器)都将失效,并且会从 DHCP 服务器再次获取。因此,仅应在紧急情况 下而不是运行期间更改主机名。 如果接口的 IP 地址发生更改,则所有连接都会中断。 UDT“Conf_Domainname” (S7-1500) UDT“Conf_Domainname” UDT“Conf_Domainname”用于读取或更改“DNS 域名”通信参数。域由dingji域和一个或多个 子域组成。域名可与主机名结合使用以形成全限定域名 (FQDN)。