La commande changeModbusPort permet de 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 vérifier que d'autres protocoles ou processus TCP/UDP n'utilisent pas portnum. Une erreur est consignée dans le fichier /usr/Syslog/FWLog.txt si le 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.
Étape |
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);