La commande changeModbusPort peut être utilisée pour modifier le port utilisé pour les échanges de données avec un maître Modbus TCP.
Le fenêtre de configuration Modbus TCP.
Modbus s'affiche dans laLe port Modbus par défaut est 502.
Commande |
Description |
---|---|
|
portnum est le nouveau numéro de port Modbus à utiliser, transmis sous la forme d'une chaîne de caractères. Avant d'exécuter la commande, consultez la section Ports utilisés pour garantir que portnum n'est pas utilisé par un autre protocole ou processus TCP/UDP. Une erreur est consignée dans le fichier /usr/Syslog/FWLog.txt si le numéro de port spécifié est déjà utilisé. |
Pour limiter le nombre de sockets ouverts, la commande changeModbusPort ne peut être exécutée que deux fois.
Le redémarrage du contrôleur logique ramène le port Modbus à la valeur par défaut (502). La commande changeModbusPort doit donc être exécutée après chaque redémarrage.
Etape |
Action |
---|---|
1 |
Créez un fichier de script, par exemple :
|
2 |
Nommez le fichier Script.cmd. |
3 |
Copiez le fichier de script sur la carte SD. |
4 |
Insérez la carte SD dans le contrôleur. |
La commande changeModbusPort peut être exécutée à partir d'une application à l'aide du bloc fonction ExecuteScript.
L'exemple de code suivant remplace le port esclave Modbus TCP par défaut (502) par 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);