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 aktuelle Modbus-Modbus TCP-Konfigurationsfenster angezeigt.
wird imDie Modbus-Standardportnummer lautet 502.
Befehl |
Beschreibung |
---|---|
|
portnum ist die neue zu verwendende Modbus-Portnummer. Sie wird als Zeichenfolge übergeben. Sehen Sie sich vor Ausführung des Befehls die Informationen zu den verwendeten Ports an, um sicherzustellen, dass portnum von keinem 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. |
Um die Anzahl der offenen Sockets zu begrenzen, kann der changeModbusPort-Befehl nur zweimal ausgeführt werden.
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.
Schritt |
Aktion |
---|---|
1 |
Erstellen Sie eine Skriptdatei, z. B.:
|
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. |
Der Befehl changeModbusPort kann innerhalb einer Anwendung mithilfe des Funktionsbausteins ExecuteScript ausgeführt werden.
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);