CODESYS - the IEC 61131-3 automation software

Welcome to the official CODESYS Forum by 3S-Smart Software Solutions GmbH | A member of the CODESYS Group
Deutsche Version English version russian version 
It is currently Sun Dec 08, 2019 3:35 am

All times are UTC+01:00




Post new topic  Reply to topic  [ 6 posts ] 
Author Message
 Post subject: Simulation of a program
PostPosted: Sat Oct 05, 2019 7:34 am 
Offline

Joined: Fri Oct 04, 2019 9:07 pm
Posts: 4
Hello everyone !

Sorry for my bad English. I'm Learning to use Codesys and I have a problem with Codesys and my program when I simulate him (I Don't have any error on this program). Indeed, when I put "access to the system" my program have "???" in action boxes and I can't simulate the program with my visualisation.

I hope you could help me because I'm blocked with my program and I can't go ahead.

Thank you !


You do not have the required permissions to view the files attached to this post.


Top
   
PostPosted: Sat Oct 05, 2019 10:12 pm 
Offline
Frequent User
Frequent User

Joined: Sun Apr 15, 2007 1:18 am
Posts: 173
Hello GuillaumeC7.

As the picture you post is in French, I will answer in french too. :lol:

Les points d’interrogations indiquent en général que le module programme n'est pas exécuté par l'API.
A cela 2 raisons possibles :

1°) Dans votre image, on voit en bas à droite que l'API n'est pas en Marche.
Même en mode simulation il faut démarrer l'API de simulation (En ligne -> Démarrer).
A chaque fois que vous allez vous mettre Hors ligne, l'API de simulation va s’arrêter. Il faudra donc le redémarrer à chaque nouvelle mise en ligne.

2°) Le module programme doit être appelé par une tâche ou par le PLC_PRG (lui même appelé par une tâche).

Cordialement.

English version (!!)
Interrogation points generally indicate that the program module is not executed by the API.
2 possible reasons:

1) In your image, we see, in the bottom right, that the PLC is not running.
Even in simulation mode you have to start the simulation PLC (Online -> Start).
Whenever you go offline, the simulation API will stop. It will be necessary to restart it after each new connection.

2 °) The program module must be called by a task or by the PLC_PRG (itself called by a task).

Best regard


Top
   
PostPosted: Sun Oct 06, 2019 11:15 am 
Offline

Joined: Fri Oct 04, 2019 9:07 pm
Posts: 4
Hello JAPIB,

thank you very much to have answer me. As you have seen, I think it will be better communicate in French :D
Alors malgré tes deux réponses, je n'ai pas réussi à simuler mon programme sans les "???".

1) En mettant l'API en marche, les "???" restent quand même en place et je ne peux donc pas simuler (comme tu pourras le voir sur la photo ci-dessous).

2) Je pense avoir bien appelé mon sous programme (celui contenant les actions avec "???") dans mon PLC_PROG (comme tu pourras le voir sur l'autre photo ci-dessous).

Si tu as d'autres suggestions je suis preneur! et merci encore pour ta précédente réponse :lol:

Cordialement,


You do not have the required permissions to view the files attached to this post.


Top
   
PostPosted: Sun Oct 06, 2019 11:10 pm 
Offline
Frequent User
Frequent User

Joined: Sun Apr 15, 2007 1:18 am
Posts: 173
Bonsoir,
Dans la première photo du PLC_PRG, je ne vois qu'une étape appelée Init, mais je ne vois nulle part d'appel du module programme Prog_Init.
Pour appeler ton module programme PROG_INIT il faut ajouter une action dans ton étape initiale du PLC_PRG, voir exemple ci dessous.

Sinon, si ton PLC_PRG ne sert qu'à appeler PROG_INIT, écrit le directement en langage ST, plus simple à écrire que le SFC.

Cordialement.


You do not have the required permissions to view the files attached to this post.


Top
   
PostPosted: Mon Oct 07, 2019 6:55 pm 
Offline

Joined: Fri Oct 04, 2019 9:07 pm
Posts: 4
Bonjour,

Merci beaucoup pour votre réponse. Effectivement je n'avait pas mis "PROG_INIT" dans l'action "INIT" du PLC_PROG. (Par contre, l'image que vous avez mis joint à votre message n'est pas visible).

Par ailleurs, je rencontre un autre soucis concernant la programmation de temporisation. Je souhaite mettre une tempo de 2s qui à la fin de ce temps passe à l'action suivante (et valide donc la transition). Je travaille sur la programmation d'un ascenseur et vais donc, par la suite, parler uniquement d'un étage.

J'ai donc mis une action intitulé "Tempo_porte_ET1_2s" dans laquelle j'ai inscrit à l'intérieur "Tempo_porte_ET1(IN:=TRUE,PT:=T#2s);". J'ai déclaré la variable "Tempo_porte_ET1: TON;" comme vous pouvez le voir sur la photo ci-dessous. Puis j'ai inscrit à l'intérieur de la transition Tempo que vous pouvez voir à la suite de l'action Tempo ceci "Tempo_porte_ET1.Q(FALSE);". Cependant, lorsque je compile j'ai 3 erreurs concernant les 3 tempos (voir deuxième photo concernant l'erreur sur la tempo de l'étage 1. Je pense que je n'ai pas bien programmé les tempos mais je ne vois pas ce que je dois modifier.

SVP aidez moi!!!!

N'hésitez à me dire si vous avez besoin d'autres infos.

Cordialement,


You do not have the required permissions to view the files attached to this post.


Top
   
PostPosted: Mon Oct 07, 2019 11:02 pm 
Offline
Frequent User
Frequent User

Joined: Sun Apr 15, 2007 1:18 am
Posts: 173
Bonsoir,

Dans la transition il suffit d'écrire simplement "Tempo_porte_ET1.Q" si tu veux que la transition soit franchie au bout des 2 secondes, c'est à dire quand Tempo_porte_ET1.Q=TRUE.
Si tu voulais franchir la transition si Tempo_porte_ET1.Q=FALSE, il faudrait écrire "NOT Tempo_porte_ET1.Q".

Rappel concernant les blocs fonctionnels :
Pour tout bloc fonctionnel, il est possible d'utiliser (en écriture ou lecture, suivant le type de paramètre) les différentes entrées/sorties du bloc.
Pour une tempo TON, on à donc :
Tempo_porte_ET1.In pour lancer la tempo
Tempo_porte_ET1.PT pour fixer la durée
Tempo_porte_ET1.Q pour l'info de fin de tempo
Tempo_porte_ET1.ET pour lire le temps écoulé.

Gestion des tempos avec le langage SFC :
Pour gérer le temps dans le SFC, il existe une autre solution, qui évite les temporisations.
Il faut, juste après avoir créé le module SFC, faire un clic droit dans l'éditeur SFC du module, et choisir l'option (tout en bas) "Utiliser les étapes CEI".
Ceci permet d'avoir accès à 2 variables créées automatiquement pour chaque étape.
- un BOOL : Nom_étape.x qui vaut TRUE quand l'étape est active
- une durée de type TIME : Nom_étape.t, qui s'incrémente quand l'étape est active et qui repasse à 0 quand on quitte l'étape.
Il suffit alors d'écrire dans la transition une équation du type : "Nom_étape.t>=T#2s"
Par contre le fait d'utiliser les étapes CEI n'autorise plus à écrire du code dans les étape, mais oblige d'utiliser un petit rectangle qui s'affiche à droite de l'étape (comme les actions du Grafcet papier) dans lequel on peut piloter soit des variables soit des modules actions (modules créés par clic gauche sur le module SFC, dans l'explorateur de module, et en choisissant l'option "Ajouter une action").

Si on utilise pas les étapes CEI, on à uniquement accès à une variable de type BOOL, appelée simplement Nom_étape (qui vaut TRUE quand l'étape est active).

Cordialement.


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 6 posts ] 

All times are UTC+01:00


Who is online

Users browsing this forum: No registered users and 3 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Limited