ExecuteScript : Exécution de commandes de script

Description du bloc fonction

Ce bloc fonction peut exécuter les commandes de script de carte SD suivantes :

  • Download

  • Upload

  • SetNodeName

  • Delete

  • Reboot

  • ChangeModbusPort

Pour plus d'informations sur le format de fichier de script requis, consultez la section Fichiers de script pour cartes SD.

Représentation graphique

Représentation en langage IL et ST

Pour voir la représentation générale en langage IL ou ST, consultez le chapitre Représentation des fonctions et blocs fonction.

Description des variables d'E/S

Le tableau suivant décrit les variables d'entrée :

Entrée

Type

Commentaire

xExecute

BOOL

En cas de détection d'un front montant, lance l'exécution du bloc fonction.

En cas de détection d'un front descendant, réinitialise les sorties du bloc fonction lorsque toute exécution en cours prend fin.

NOTE : Sur front descendant, la fonction continue de s'exécuter jusqu'au bout et elle met à jour ses sorties en conséquence. Les sorties sont conservées pendant un cycle avant d'être réinitialisées.

sCmd

STRING

Syntaxe de commande de script de carte SD.

L'exécution simultanée de commandes n'est pas autorisée : si une commande est exécutée par un autre bloc fonctionnel ou un script de carte SD, le bloc fonctionnel met la commande en file d'attente et ne l'exécute pas immédiatement.

NOTE : un script de carte SD exécuté à partir d'une carte SD est considéré en cours d'exécution jusqu'au retrait de la carte SD.

Le tableau suivant décrit les variables de sortie :

Sortie

Type

Commentaire

xDone

BOOL

TRUE indique que l'action a réussi.

xBusy

BOOL

TRUE indique que le bloc fonction est en cours d'exécution.

xError

BOOL

TRUE indique une détection d'erreur ; le bloc fonction annule l'action.

eError

ExecuteScriptError

Indique le type de l'erreur détectée lors de l'exécution du script.

Exemple

Cet exemple décrit comment exécuter une commande de script Upload :

VAR
EXEC_FLAG: BOOL;
ExecuteScript: ExecuteScript;
END_VAR
ExecuteScript(
xExecute:= EXEC_FLAG,
sCmd:= 'Upload "/usr/Syslog/*"',
xDone=> ,
xBusy=> ,
xError=> ,
eError=> );