ADDM 功能块可将显示为字符串的目标地址转换为 ADDRESS 结构。您可以将 ADDRESS 结构用作通讯功能块中的条目。
输入/输出 |
类型 |
注释 |
---|---|---|
AddrTable |
ADDRESS |
这是由功能块填充的 ADDRESS 结构。 |
输入 |
类型 |
注释 |
---|---|---|
Execute |
BOOL |
在上升沿执行功能。 |
Addr |
STRING |
要转换为 ADDRESS 类型的 STRING 类地址(参见下面的详细信息)。 |
输出 |
类型 |
注释 |
---|---|---|
Done |
BOOL |
功能成功完成后,Done 设置为 TRUE。 注意: 当使用 Abort 输入中止操作后,Done 不设置为 1(仅限 Aborted)。 |
Error |
BOOL |
当功能由于检测到错误而停止时,Error 设置为 TRUE。检测到错误时,CommError 和 OperError 包含有关检测到的错误的信息。 |
CommError |
BYTE |
CommError 包含通讯错误代码。 |
注意: Execute 输入上的上升沿执行转换,并返回 AddrTable 的立即更新。但是,当检测到错误时(即当 Addr 字符串不正确时),AddrTable 保持上一个值。
功能块需要上升沿才能进行初始化。功能块需要先看到 Execute 输入为 FALSE,然后才能检测后续的上升沿。
|
意外的设备操作 |
请务必首先通过将功能块的 Execute 输入设为 FALSE 来调用功能块,这样它便可以检测后续的上升沿。 |
不遵循上述说明可能导致人员伤亡或设备损坏。 |
对于 ASCII 寻址,只请求通讯端口号:
'<communication port number>'
例如,要在串行线路 2 上发送用户定义的消息,请使用字符串 '2'。
下表定义了 ASCII 地址格式的 ADDM 输出中的字段:
字段 |
类型 |
值 |
示例 |
---|---|---|---|
_Type |
BYTE |
保留 |
未使用 |
_CliID |
BYTE |
保留 |
未使用 |
Rack |
BYTE |
机架编号(始终为 0) |
0 |
Module |
BYTE |
模块编号(始终为 0) |
0 |
Link |
<communication port number> |
2 |
|
_ProtId |
BYTE |
未使用 |
未使用 |
AddrLen |
BYTE |
0 |
0 |
UnitId |
BYTE |
未使用 |
未使用 |
AddrExt |
ADDR_EXT |
未使用 |
未使用 |
Modbus TCP 标准从站的地址
对于 Modbus TCP 标准从站地址格式,会请求通讯端口号(对于嵌入式以太网端口为 3)和目标 IP 地址:
'<communication port number>{<IP address>}'
注意: Modbus TCP 标准从站使用 Modbus 地址 255(UnitId 缺省值)。但是,Modbus TCP 设备的值可能不同(例如,TeSys 具有 Modbus 地址 1)。在这种情况下,请添加 UnitId 值:
'<communication port number>{<IP address>}<UnitId>'
默认情况下使用 TCP 端口 502。也可以使用非标准端口,方法是将请求的端口号添加到 IP 地址:
'<communication port number>{<IP address>:<port>}'
例如,要使用标准 TCP 端口 502 在 Modbus TCP 从站 IP 地址 192.168.1.2 上发送消息,请使用以下字符串:'3{192.168.1.2}'
ADDM 功能使用以下这些值填充 AddrTable 输入/输出:
字段 |
类型 |
值 |
示例 |
---|---|---|---|
_Type |
BYTE |
保留 |
未使用 |
_CliID |
BYTE |
保留 |
未使用 |
Rack |
BYTE |
机架编号 |
0 |
Module |
BYTE |
模块编号 |
0 |
Link |
<communication port number> |
3 |
|
_ProtId |
BYTE |
0(对于 Modbus) |
0 |
AddrLen |
BYTE |
UnitID + AdrExt 长度(以字节为单位) |
7 |
UnitId |
BYTE |
Modbus 地址(默认为 255) |
255 |
AddrExt |
TCP_ADDR_EXT |
A |
192 |
B |
168 |
||
C |
1 |
||
D |
2 |
||
<端口>(默认值 = 502) |
502 |
通过以太网/串行线路网关对 Modbus 串行从站进行寻址
也可以通过以太网/串行线路网关对 Modbus 从站进行寻址:
请求包括通讯端口号、网关 IP 地址(包括或不包括 TCP 端口)以及 Modbus 串行从站地址(UnitId 参数):
'<communication port number>{<IP address>}<slave address>'
例如,要使用标准 TCP 端口 502 通过以太网/串行线路网关(IP 地址为 192.168.1.2)在 Modbus 串行从站地址 5 上发送消息,请使用以下字符串:'3{192.168.1.2}5'
ADDM 功能使用以下这些值填充 AddrTable 输入/输出:
字段 |
大小 |
值 |
示例 |
---|---|---|---|
_Type |
BYTE |
保留 |
未使用 |
_CliID |
BYTE |
保留 |
未使用 |
Rack |
BYTE |
机架编号 |
0 |
Module |
BYTE |
模块编号 |
0 |
Link |
<communication port number> |
3 |
|
_ProtId |
BYTE |
0(对于 Modbus) |
0 |
AddrLen |
BYTE |
UnitID + AdrExt 长度(以字节为单位) |
7 |
UnitId |
BYTE |
<从站地址> |
5 |
AddrExt |
TCP_ADDR_EXT |
A |
192 |
B |
168 |
||
C |
1 |
||
D |
2 |
||
TCP 端口号(默认 = 502) |
502 |
这个示例显示结合 SINGLE_WRITE 功能块执行 ADDM 功能块。ADDM 功能块将给定的 STRING '1.8’ 转换成 ADDRESS 类型的变量 stSlave8OnSL1。如果转换成功,便会触发后续功能块 SINGLE_WRITE 的输入 Execute。