ADDM
: Konvertieren einer Zeichenkette in eine Adresse
Der Funktionsbaustein ADDM
konvertiert eine als Zeichenkette dargestellte Zieladresse in eine ADDRESS-Struktur. Sie können die ADDRESS-Struktur als Eingang für einen Kommunikationsfunktionsbaustein verwenden.
ADDM
-spezifischen Parameter
Ein-/Ausgang |
Typ |
Kommentar |
---|---|---|
|
ADDRESS |
Dies ist die vom Funktionsbaustein zu füllende ADDRESS-Struktur. |
Eingang |
Typ |
Kommentar |
---|---|---|
|
BOOL |
Führt die Funktion an der steigenden Flanke aus. |
|
STRING |
Adresse des Typs STRING, die in den Typ ADDRESS konvertiert werden soll (Details siehe unten). |
Ausgang |
Typ |
Kommentar |
---|---|---|
|
BOOL |
HINWEIS: Bei Abbruch des Vorgangs durch den Eingang Abort wird Done nicht auf 1 gesetzt (nur
Aborted ).
|
|
BOOL |
|
|
BYTE |
|
Execute
wird die Konvertierung ausgeführt und die sofortige Aktualisierung von AddrTable
zurückgegeben. AddrTable
behält jedoch den letzten Wert bei, wenn ein Fehler erkannt wird (d. h. wenn die Zeichenkette Addr
nicht richtig ist).
Zur Initialisierung von Funktionsbausteinen ist eine steigende Flanke erforderlich. Der Funktionsbaustein muss zunächst den Eingang Execute
als FALSE
ansehen, um eine nachfolgende steigende Flanke zu erkennen.
WARNUNG | |
---|---|
Bei einer ASCII-Adressierung wird nur die Nummer des Kommunikationsports angefordert:
'<communication port number>'
Wenn Sie z. B. eine benutzerdefinierte Nachricht über die serielle Verbindung 2 senden möchten, verwenden Sie den String '2'
.
In dieser Tabelle werden die Felder des ADDM-Ausgangs für das ASCII-Adressformat definiert:
Feld |
Typ |
Wert |
Beispiel |
---|---|---|---|
|
BYTE |
Reserviert |
Nicht verwendet |
|
BYTE |
Reserviert |
Nicht verwendet |
|
BYTE |
Racknummer (immer 0) |
0 |
|
BYTE |
Modulnummer (immer 0) |
0 |
|
|
2 |
|
|
BYTE |
Nicht verwendet |
Nicht verwendet |
|
BYTE |
0 |
0 |
|
BYTE |
Nicht verwendet |
Nicht verwendet |
|
ADDR_EXT |
Nicht verwendet |
Nicht verwendet |
Adresse eines Modbus-TCP-Standard-Slaves
Für das Adressformat von Modbus TCP-Standard-Slaves werden die Nummer des Kommunikationsports (3 für den integrierten Ethernet-Port) und die Ziel-IP-Adresse angefordert:
'<communication port number>{<IP address>}'
UnitId
). Ein Modbus-TCP-Gerät kann jedoch einen anderen Wert haben (ein TeSys hat z. B. die Modbus-Adresse 1). Fügen Sie in diesem Fall den UnitId
-Wert hinzu:
'<communication port number>{<IP address>}<UnitId>'
TCP-Port 502 wird standardmäßig verwendet. Es besteht die Möglichkeit, einen Nicht-Standardport zu verwenden. In diesem Fall muss die angeforderte Portnummer der IP-Adresse hinzugefügt werden:
'<communication port number>{<IP address>:<port>}'
Wenn Sie z. B. eine Nachricht an den Modbus TCP-Slave mit der IP-Adresse 192.168.1.2 über den TCP-Standardport 502 senden möchten, verwenden Sie diese Zeichenkette: '3{192.168.1.2}'
Die Funktion ADDM
füllt den Eingang/Ausgang AddrTable
mit folgenden Werten:
Feld |
Typ |
Wert |
Beispiel |
---|---|---|---|
|
BYTE |
Reserviert |
Nicht verwendet |
|
BYTE |
Reserviert |
Nicht verwendet |
|
BYTE |
Racknummer |
0 |
|
BYTE |
Modulnummer |
0 |
|
|
3 |
|
|
BYTE |
0 für Modbus |
0 |
|
BYTE |
|
7 |
|
BYTE |
Modbus-Adresse (standardmäßig 255) |
255 |
|
TCP_ADDR_EXT |
A |
192 |
B |
168 |
||
C |
1 |
||
D |
2 |
||
<Port> (Standard = 502) |
502 |
Adresse eines seriellen Modbus-Slaves über ein Ethernet-/SL-Gateway
Ein Modbus-Slave kann auch über ein Ethernet-/serielles Verbindungs-Gateway adressiert werden:
Der Request umfasst die Nummer des Kommunikationsports, die IP-Adresse des Gateways (mit oder ohne TCP-Port) sowie die Adresse des seriellen Modbus-Slaves (UnitId-Parameter):
'<communication port number>{<IP address>}<slave address>'
Wenn Sie z. B. eine Nachricht an einen seriellen Modbus-Slave mit der Adresse 5 über ein Ethernet-/SL-Gateway an IP-Adresse 192.168.1.2 über den TCP-Standardport 502 senden möchten, verwenden Sie diese Zeichenkette: '3{192.168.1.2}5'
Die Funktion ADDM
füllt den Eingang/Ausgang AddrTable
mit folgenden Werten:
Feld |
Größe |
Wert |
Beispiel |
---|---|---|---|
|
BYTE |
Reserviert |
Nicht verwendet |
|
BYTE |
Reserviert |
Nicht verwendet |
|
BYTE |
Racknummer |
0 |
|
BYTE |
Modulnummer |
0 |
|
|
3 |
|
|
BYTE |
0 für Modbus |
0 |
|
BYTE |
|
7 |
|
BYTE |
<Slave-Adresse> |
5 |
|
TCP_ADDR_EXT |
A |
192 |
B |
168 |
||
C |
1 |
||
D |
2 |
||
TCP-Portnummer (Standard = 502) |
502 |
Dieses Beispiel zeigt die Implementierung des Funktionsbausteins ADDM
in Verbindung mit dem Funktionsbaustein SINGLE_WRITE
. Der Funktionsbaustein ADDM
konvertiert den angegebenen STRING '1.8' in die Variable stSlave8OnSL1
des Typs ADDRESS
. Bei einer erfolgreichen Konvertierung wird der Eingang Execute
des nachfolgenden Funktionsbausteins SINGLE_WRITE
ausgelöst.