Page 2 sur 2
Re: Modification de variables selon état d'un booléen
Posté : 27 avr. 2017, 23:01
par stempfer
https://e-nautia.com/share/49162-9azw4bhu
Je débute dans la programmation,le projet grandit petit a petit pour alléger j'ai supprimé une partie de la visualisation. Sur la visualisation il y a le premier contact au dessus du bouton test tgbt qui est programmé pour la simulation, le programme PLC_Etat contiendra les bloc fonctionnels FBEtat que je souhaite placer. j'avais créé le programme dans un ficher vierge ou cela fonctionnait pour la rotation mais la couleur ne fonctionnait pas, j'ai recopié les mêmes lignes dans le programme final mais a ce moment ça marche plus je suis ouvert a toutes les idées
Re: Modification de variables selon état d'un booléen
Posté : 27 avr. 2017, 23:31
par stempfer
En testant la proposition de itasoft pour les lignes Rotation:=0.0; et Rotation:=30.0; j'ai du supprimer le point sinon il y avait une erreur et j'ai du inverser les lignes rotation et swcolor après plus d'erreur mais toujours le même
![2017-04-27 23_29_22-CoDeSys - Template_PFC200modif 20170207.pro - [FBEtat {PLC_Etat.Etat1} (FB-ST)].png](./download/file.php?id=1307)
- 2017-04-27 23_29_22-CoDeSys - Template_PFC200modif 20170207.pro - [FBEtat {PLC_Etat.Etat1} (FB-ST)].png (9.89 Kio) Vu 4498 fois
résultat
Re: Modification de variables selon état d'un booléen
Posté : 28 avr. 2017, 01:36
par JAPIB
Bonsoir,
Les variables internes d'un bloc fonctionnel ne sont pas lisibles de l'extérieur du bloc.
Il faut déclarer Rotation et SwColor comme VAR_OUTPUT.
Par exemple :
Code : Tout sélectionner
========================================
FUNCTION_BLOCK FBEtat2
VAR_INPUT
xEtat:BOOL;
END_VAR
VAR_OUTPUT
Rotation:REAL;
SwColor:DWORD;
END_VAR
--------------------------------------------------
IF xEtat THEN
Rotation:=0;
SwColor:=16#00FF0000;
ELSE
Rotation:=-30;
SwColor:=16#00000000;
END_IF;
========================================
Puis, dans le programme
========================================
VAR
MonFB:FBEtat2;
Commande: BOOL;
Tourne:REAL;(*A utiliser dans la visu*)
Couleur:DWORD;(*A utiliser dans la visu*)
END_VAR
--------------------------------------------------
MonFB(xEtat:=toto , Rotation=>Tourne , SwColor=>Couleur );
========================================
Cordialement.

Re: Modification de variables selon état d'un booléen
Posté : 28 avr. 2017, 08:41
par filou59
Salut Japib
C'est peu etre preférable de faire comme tu l'as indiqué.
Par contre tu peux très bien utilisé les variables interne a l'exterieur d'un bloc.
En admettant que les variables soit déclarer en VAR, on peut les utiliser comme ceci :
MonFB.Rotation , MonFB.SwColor
Re: Modification de variables selon état d'un booléen
Posté : 28 avr. 2017, 08:52
par Cyril93
Salut,
JAPID on peux voir l'animation des var interne d'un FB sans souci
stempfer ton code fonctionne sur le simulateur de codesys,
mais pour cela, il me semble qu'il faut éviter de se servir des appel de bloc par la configuration des tâches, le simulateur ne gère pas bien cette partie qui est fortement liée à la cible. Il faut mieux pour faire des tests par le simulateur passé les appel par le PLC_PRG. Sinon il te faut un api pour charger le programme et le tester.
Re: Modification de variables selon état d'un booléen
Posté : 28 avr. 2017, 18:55
par JAPIB
Salut Filou59
Parfaitement d'accord avec toi pour utiliser MonFB.Rotation , MonFB.SwColor.
On peut d'ailleurs ausi utiliser MonFB.xEtat pour commander le bloc !
Mais si on utilise plusieurs instances du bloc fonctionnel, parce qu'on à plusieurs éléments de visu à piloter, cela me semble plus "élégant" et simple d'utiliser des variables de sorties (et d'entrée).
D'ailleurs quand on utilise les blocs fonctionnels "standards" (tempos, compteurs, ..) c'est comme ça que l'on programme; il est vrai que dans ces cas là on à pas toujours accès aux variables internes.
Stempfer annonce lui même qu'il débute dans la programmation et il me semble qu'il faut lui donner de bonnes habitudes. (j'ai l'impression d'être un vieux professeur ...

).
Bon programme à tous

Re: Modification de variables selon état d'un booléen
Posté : 05 oct. 2017, 19:08
par stempfer
Merci a tous les participants,
après quelques temps loin du projet suite a de nombreux chantiers je tiens quand même a vous remercier pour votre aide et vous confirme que cela fonctionne totalement j'ai trouvé une erreur de saisie, je ne suis pas au bout du programme mais je n'abandonne pas ; la mise en service partielle se fera prochainement (si java me le permet) et le programme va continuer a évoluer tout en étant en service (c'est pas l'ideal j'en suis conscient, mais je compte si ça va utiliser un 2eme automate pour faire les essais avant le l'injecter dans l'automate principale)
Encore une fois un grand merci pour votre aide