Änderung des Modbus TCP-Ports

Befehl changeModbusPort

Der Befehl changeModbusPort kann zur Änderung des Ports verwendet werden, der für den Austausch von Daten mit einem Modbus TCP-Master eingesetzt wird.

Der Modbus-Slave-Port wird im Modbus TCP-Konfigurationsfenster angezeigt.

Die Modbus-Standardportnummer lautet 502.

Befehl

Beschreibung

changeModbusPort “portnum”

portnum ist die neue zu verwendende Modbus-Portnummer. Sie wird als Zeichenfolge übergeben.

Lesen Sie vor der Ausführung des Befehls die Informationen unter Verwendete Ports, um sicherzustellen, dass portnum nicht von einem anderen TCP/UDP-Protokoll oder -Prozess verwendet wird.

Wenn die angegebene Portnummer bereits in Verwendung ist, wird in der /usr/Syslog/FWLog.txt-Datei ein Fehler aufgezeichnet.

Durch das Aus- und anschließende Wiedereinschalten der Steuerung wird die Modbus-Portnummer wieder auf den Standardwert (502) zurückgesetzt. Aus diesem Grund muss der changeModbusPort-Befehl nach jedem Aus- und Wiedereinschalten ausgeführt werden.

HINWEIS: Nach der Änderung der Portnummer ist die aktive Protokollauswahl für den Modbus-Server in der Gruppe Sicherheitsparameter im Ethernet-Konfigurationsfenster nicht mehr gültig.

Ausführen des Befehls mithilfe eines SD-Kartenskripts

Schritt

Aktion

1

Erstellen Sie eine Skriptdatei, z. B.:

; Change Modbus slave port

changeModbusPort "1502";

2

Geben Sie der Skriptdatei den Namen Script.cmd.

3

Kopieren Sie die Skriptdatei auf die SD-Karte.

4

Setzen Sie die SD-Karte in die Steuerung ein.

Ausführen des Befehls mithilfe des Funktionsbausteins ExecuteScript

Der changeModbusPort-Befehl kann innerhalb einer Anwendung mithilfe des Funktionsbausteins ExecuteScript.

Der nachstehende Beispielcode ändert den Modbus TCP-Slave-Port von der Standardeinstellung (502) zu 1502.

IF (myBExe = FALSE AND (PortNum <> 502)) THEN

   myExecSc( // falling edge for a second change
   xExecute:=FALSE ,
   sCmd:=myCmd , 
   xDone=>myBDone , 
   xBusy=> myBBusy, 
   xError=> myBErr, 
   eError=> myIerr);
   string1 := 'changeModbusPort "';
   string2 := WORD_TO_STRING(PortNum);
   myCmd := concat(string1,string2);
   myCmd := concat(myCmd,'"');
   myBExe := TRUE;
END_IF

myExecSc(
xExecute:=myBExe ,
sCmd:=myCmd , 
xDone=>myBDone , 
xBusy=> myBBusy, 
xError=> myBErr, 
eError=> myIerr);