EcoStruxure Machine Expert Version 1.1 unterstützt nicht die Controller M258, LMC058 und LMC078.

ADDMADDM: Konvertieren einer Zeichenkette in eine Adresse

Beschreibung der Funktion

Der Funktionsbaustein ADDM konvertiert eine als Zeichenkette dargestellte Zieladresse in eine ADDRESS-Struktur. Sie können die ADDRESS-Struktur als Eingang für einen Kommunikations­funktionsbaustein verwenden.

Grafische Darstellung

G-RU-0010453.2.gif-high.gif

 

 

Beschreibung der ADDM-spezifischen Parameter

Ein-/Ausgang

Typ

Kommentar

AddrTable

ADDRESS

Dies ist die vom Funktionsbaustein zu füllende ADDRESS-Struktur.

Eingang

Typ

Kommentar

Execute

BOOL

Führt die Funktion an der steigenden Flanke aus.

Addr

STRING

Adresse des Typs STRING, die in den Typ ADDRESS konvertiert werden soll (Details siehe unten).

Ausgang

Typ

Kommentar

Done

BOOL

Done wird auf TRUE gesetzt, wenn die Funktion erfolgreich abgeschlossen wurde.

HINWEIS: Bei Abbruch des Vorgangs durch den Eingang Abort wird Done nicht auf 1 gesetzt (nur Aborted).

Error

BOOL

Error wird auf TRUE gesetzt, wenn die Funktionsausführung aufgrund einer Fehlererkennung angehalten wird. Wenn ein Fehler erkannt wird, enthalten CommError und OperError Informationen über den erkannten Fehler.

CommError

BYTE

CommError enthält Kommunikationsfehlercodes.

HINWEIS: Bei einer steigenden Flanke am Eingang 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 Funktions­baustein muss zunächst den Eingang Execute als FALSE ansehen, um eine nachfolgende steigende Flanke zu erkennen.

Warning_Color.gifWARNUNG

UNBEABSICHTIGTER BETRIEBSZUSTAND DES GERÄTS

Führen Sie den ersten Aufruf eines Funktionsbausteins immer durch, während sein Eingang Execute auf FALSE gesetzt ist, sodass er eine nachfolgende steigende Flanke erkennen kann.

Die Nichtbeachtung dieser Anweisungen kann Tod, schwere Verletzungen oder Sachschäden zur Folge haben.

Addr-STRING für das ASCII-Adressformat

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

_Type

BYTE

Reserviert

Nicht verwendet

_CliID

BYTE

Reserviert

Nicht verwendet

Rack

BYTE

Racknummer (immer 0)

0

Module

BYTE

Modulnummer (immer 0)

0

Link

LinkNumber

<communication port number>

2

_ProtId

BYTE

Nicht verwendet

Nicht verwendet

AddrLen

BYTE

0

0

UnitId

BYTE

Nicht verwendet

Nicht verwendet

AddrExt

ADDR_EXT

Nicht verwendet

Nicht verwendet

Addr STRING für das Modbus-TCP-Adressformat

Adresse eines Modbus-TCP-Standard-Slaves

Für das Adressformat von Modbus TCP-Standard-Slaves werden die Nummer des Kommunikati­onsports (3 für den integrierten Ethernet-Port) und die Ziel-IP-Adresse angefordert:

'<communication port number>{<IP address>}'

HINWEIS: Ein Modbus-TCP-Standard-Slave verwendet die Modbus-Adresse 255 (den Standardwert von 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

_Type

BYTE

Reserviert

Nicht verwendet

_CliID

BYTE

Reserviert

Nicht verwendet

Rack

BYTE

Racknummer

0

Module

BYTE

Modulnummer

0

Link

LinkNumber

<communication port number>

3

_ProtId

BYTE

0 für Modbus

0

AddrLen

BYTE

UnitID + AdrExt-Länge in Byte

7

UnitId

BYTE

Modbus-Adresse (standardmäßig 255)

255

AddrExt

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:

G-SE-0002317.1.gif-high.gif

 

 

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 folgende Zeichenkette: '3{192.168.1.2}5'

Die Funktion ADDM füllt den Eingang/Ausgang AddrTable mit folgenden Werten:

Feld

Größe

Wert

Beispiel

_Type

BYTE

Reserviert

Nicht verwendet

_CliID

BYTE

Reserviert

Nicht verwendet

Rack

BYTE

Racknummer

0

Module

BYTE

Modulnummer

0

Link

LinkNumber

<communication port number>

3

_ProtId

BYTE

0 für Modbus

0

AddrLen

BYTE

UnitID + AdrExt-Länge in Byte

7

UnitId

BYTE

<Slave-Adresse>

5

AddrExt

TCP_ADDR_EXT

A

192

B

168

C

1

D

2

TCP-Portnummer (Standard = 502)

502

Beispiel

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 wrid der Eingang Execute des nachfolgenden Funktionsbausteins SINGLE_WRITE ausgelöst.

G-SE-0005664.2.gif-high.gif