Précédent   Forum des professionnels en informatique > Systèmes > Autres systèmes > Automation
Automation Forum d'entraide sur l'automatisme, la robotique et l'informatique industrielle
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 07/02/2012, 09h44   #1
Invité de passage
 
Homme
Étudiant
Inscription : février 2012
Messages : 1
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : février 2012
Messages : 1
Points : 0
Points : 0
Par défaut Grafcet en C

Bonjour,
Voilà, j'ai un problème assez particulier.
J'ai réalisé une procédure d'automate sur Unity Pro ( ou PL7) en langage Grafcet et Ladder.
Ce programme comporte des régulateurs PID, des divergences en OU, des entrées sorties analogiques et binaires.
On m'a annoncé que l'utilisation d'automate ne sera pas retenue.
On utilisera une carte de contrôle.
Tout se fait en langage C et je suis débutant.

Mes questions sont les suivantes :
Est-il possible de réaliser un programme en C comportant tous les éléments ci-dessus (regulation PID etc..) ? Si oui comment ?
Dans Unity pro ou PL7 est-il possible de traduire automatiquement le langage SFC ou LD en langage littéral ?

PS: carte de contrôle en interne, pas de limitation Hardware.

Merci d'avance
foun26 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/02/2012, 17h44   #2
Responsable outils internes
 
Avatar de Nono40
 
Homme Bruno Guérangé
Ingénieur développement logiciels
Inscription : mai 2002
Messages : 7 880
Détails du profil
Informations personnelles :
Nom : Homme Bruno Guérangé
Âge : 44
Localisation : France, Loir et Cher (Centre)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : Industrie

Informations forums :
Inscription : mai 2002
Messages : 7 880
Points : 11 879
Points : 11 879
Pourquoi faire simple quand on peut faire compliqué.

Les automates sont faits pour ce que tu veux faire.

AU pire achète un automate sous forme de carte s'installant dans un PC, au moins ta vas bénéficier d'un vrai automate. Ensuite tout ce qui est ES se connecte via un bus de terrain (CanOpen pour Schneider, Profibus pour Siemens)

En cherchant sur le net tu devrais trouver des routines de calcul de PID, mais il va falloir faire beaucoup de choses à la main.
__________________
Delphi :
La F.A.Q. , 877 réponses à vos questions !
264 sources à consulter/télécharger !
Nono40 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2012, 23h47   #3
Invité régulier
 
Inscription : décembre 2007
Messages : 7
Détails du profil
Informations forums :
Inscription : décembre 2007
Messages : 7
Points : 6
Points : 6
Salut quand tu parles d'utiliser une carte de contrôle... c'est un micro contrôleur ?
Si oui tu peux faire une régulation PID en soft ou avec des composants externes enfin le mieux la est de voir des exemples sur le net suivant ce que tu veux piloter moteur chauffage etc...
pour les fonction logique pas de problème aussi...
pour finir j'ai aussi fait un G7 pour piloter une petite plateforme mobile en C pour un PIC...
c'est un peu lourd il faut écrire toutes les transitions puis toutes les commande en fonction de ton étape mais ça a l'avantage d'avoir une représentation graphique pour pouvoir si replonger plus-tard ...

l'idée est de travailler avec avec une variable ici Etape_G7_decisions qui sa valeur représente l'étape active...
petit extrait vite fait copié/collé
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
* G7_Decisions gestion transition */

     //X0 -> X1 + X5
     if (Etape_G7_decisions == 0 & Resulat_decision == 1 ) {
     Etape_G7_decisions = 1 ;  //Set X1
     }
     else if (Etape_G7_decisions == 0 & Resulat_decision == 2 ) {
     Etape_G7_decisions = 5 ;   //Set X5
     }
     //X1 -> X2
     if (Etape_G7_decisions == 1 & Fin_calculs_prametres == 1 ) {
     Etape_G7_decisions = 2 ;                                                  //Set X2
     //RAZ bits
     Fin_calculs_prametres = 0;
     }

     /* G7_Decisions gestion commandes */

     /* G7 section résultat_décision == 1 */
     //X0
     if (Etape_G7_decisions == 0) {
     //Commandes étape X0
     }
    //X1
     if (Etape_G7_decisions == 1) {
    //Commandes étape X1
     }
@+
Mgros est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h36.


 
 
 
 
Partenaires

Hébergement Web