Script Vijéo Designer développement de fonction[Résolu]

Forum traitant des automates industriels de marque Schneider - Telemecanique
Répondre
DurandO
Maître du binaire
Maître du binaire
Messages : 482
Enregistré le : 21 mars 2021, 15:31

Script Vijéo Designer développement de fonction[Résolu]

Message par DurandO »

Bonjour,
est-il possible de créer ses propres fonctions java que l'on puisse ensuite utiliser dans des scripts?

N'ayant pas trouvé cela, j'ai tenté de faire ainsi :
- J'ai créer une variable Bool Req
- J'ai créer une variable String Param
- cette variable Req déclenche un script conditionné qui fait le traitement voulu en utilisant Param et en fin de traitement Remet à 0 Req
- Dans Commutateur je déclenche les actions suivantes
____o Action 1 : Chargement "un texte" dans Param
____o Action 2 : Execution du script suivant
_______Req.write(1);
_______do {} while(Req.getIntValue() !=0) ;

Le problème c'est que le script conditionné par req ne s'exécute pas lorsque l'autre script en action 2 active Req.
Par conséquent, la boucle do while me plante le script en action 2 et à ce moment la seulement le script conditionné par Req s’exécute.

Quelqu’un aurait-il une solution ?

Merci.
Modifié en dernier par DurandO le 29 mars 2021, 21:17, modifié 1 fois.
Avatar du membre
Béryl
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 1959
Enregistré le : 20 oct. 2015, 12:00
Localisation : localhost

Re: Script Vijéo Designer développement de fonction

Message par Béryl »

L'appel de ton script utilisant param est dans tes actions générales ?
Si oui, tu farcis param comme tu veux et tu passes req à 1 dans ton commutateur. Et c'est tout. Pas besoin de script pour cette partie.
Si dans ton action, le script qui utilise param est appelé dès que req passe à 1, il va se lancer automatiquement.
DurandO
Maître du binaire
Maître du binaire
Messages : 482
Enregistré le : 21 mars 2021, 15:31

Re: Script Vijéo Designer développement de fonction

Message par DurandO »

Béryl a écrit : 27 mars 2021, 14:05 L'appel de ton script utilisant param est dans tes actions générales ?
Si oui, tu farcis param comme tu veux et tu passes req à 1 dans ton commutateur. Et c'est tout. Pas besoin de script pour cette partie.
Si dans ton action, le script qui utilise param est appelé dès que req passe à 1, il va se lancer automatiquement.
Bonjour,
je me suis peut-être mal expliqué.
En fait, le script exécuté par Req relit le paramètre Param traite l'action et retourne un résultat Retour.
L'action étant :
Envoi trame envoi trame RS232
Réception de données
Ecriture des données dans une variable

La variable retournée Retour devant être utilisée dans le script appelant pour traiter la suite qui sera suivi de plusieurs appels via Req avec un param différent.
C'est pour cette raison que je comptais bloquer mon script appelant (par do while) jusqu'à obtention du résultat et ensuite continuer.
Mais visiblement, on ne peut pas exécuter deux scripts simultanément.
D'où ma question sur la possibilité de créer sa propre fonction (ou méthode plutôt).

Espérant que ce soit plus clair ainsi.
Avatar du membre
itasoft
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 7807
Enregistré le : 20 oct. 2015, 10:15
Localisation : Lyon
Contact :

Re: Script Vijéo Designer développement de fonction

Message par itasoft »

slts,
est-il possible de créer ses propres fonctions java que l'on puisse ensuite utiliser dans des scripts?
------
NON
Automaticien privé (de tout)
itasoft@free.fr
Avatar du membre
Béryl
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 1959
Enregistré le : 20 oct. 2015, 12:00
Localisation : localhost

Re: Script Vijéo Designer développement de fonction

Message par Béryl »

J'ai pas tout compris, mais fais gaffe avec l'exécution des scripts sous Vijeo Designer.
M'étant fait piéger, j'ai remarqué qu'ils n'étaient pas forcément prioritaires dans le flux d'exécution. Certaines fonctions prévues pour être traitées après l'exécution d'un script se retrouvent gérées avant la fin de traitement du script en question, par exemple.
J'ai l'impression que le traitement des scripts est géré par des tâches asynchrones du cycle.
De plus, si un script met trop de temps à s'exécuter, il est purement et simplement abandonné (ce qui se comprend, au final).
DurandO
Maître du binaire
Maître du binaire
Messages : 482
Enregistré le : 21 mars 2021, 15:31

Re: Script Vijéo Designer développement de fonction[Résolu]

Message par DurandO »

Béryl a écrit : 29 mars 2021, 08:13 De plus, si un script met trop de temps à s'exécuter, il est purement et simplement abandonné (ce qui se comprend, au final).
J'ai testé pour vous la boucle infernale dans le script : je confirme !

Finalement, je m'en sors avec les scripts actions.
Suivant tes conseils, j'ai mis dans une action les opérations suivantes :
1) Chargement du texte de ma commande ma variable Param
2) Raz de ma variable de retour de données Retour
3) Appel d'un script qui gère l'envoi de la trame commande Param et réception des données rangées dans Retour
4) Appel d'un script qui extrait de la variable Retour les données et les range dans une variable
5) Raz de ma variable d'appel de ma requête Reqx

J'ai créé suivant ce modèle 4 actions déclenchées respectivement par les variables bool Req1, Req2, Req3, Req4.

Dans une autre action(Cmd), je surveille le changement d'état d'une variable que je reçois de mon automate (mot de commande) dont les bits commandent mes requêtes. Ce script m'active donc mes bits de requêtes Req1, Req2, Req3, Req4 si les conditions sont remplies. A la différence qu'il n'attend pas l'exécution de la requête!

Finalement, sur changement d'état de mon mot de commande, j'obtiens le scénario suivant :
1) action(Cmd)
2) Action Req1 Si demandée par mot de commande
3) Action Req2 Si demandée par mot de commande
4) Action Req3 Si demandée par mot de commande
5) Action Req4 Si demandée par mot de commande

Cela fonctionne bien et me convient. :D
Merci de votre aide.
Répondre