Bonjour à tous,
Si vous avez déjà eu besoin d'une fonction automate, voici une solution.
---(1)--- Bilan des entrées sorties disponibles sur Digibutler -------
4 ports (GPT0-3) dont 1 connecté au relais.
8 entrées ana utilisables aussi en port d'entrée sortie.
---(2)--- File Manager et IO --------------------------------------------
Il est nécessaire d'avoir un gestionnaire de fichiers (SD carte avec EFSL).
Pour le SPI de la carte SD, je propose 2 solutions:
1/ Utiliser 4 entrées analogiques en ports d'IO (voir précédents post).
2/ Souder 4 fils sur RN1 et RN2 (schéma dans "HardDigilogger.pdf").
---(3)--- Total IO --------------------------------------------------------
Dans le meilleur des cas, nous avons 4 ports GPT0-3 plus 8 ports Ana.
---(4)--- Alternative -----------------------------------------------------
Si vous avez besoin de plus d'IO TOR, voici une carte d'extension IO-EXP-01A
- 16 entrées TOR 24Vdc (ou autre si vous changez les résistances)
- 8 sorties relais
- 8 ports sans affectation (ex:contrôle de LCD)
La raison d'abandonner 8 ports est que j'ai utilisé EAGLE 4.15 (Elektor nov 2005).
La version Free limite à une page le schéma et à 100x90mm le cuivre.
Cependant, on peut cascader plusieurs cartes IO-EXP-01A.
---(5)--- Réalisation carte d'extension --------------------------------
J'ai fait fabriquer les cuivres par "www.elektorpcbservice.fr"
Avec ce fichier de fabrication: "IO_EXP01A.zip (29/05/2009 10h34)"
Voici schéma, nomenclature, sérigraphie et photos d'assemblage.
Schéma électronique : "IO_EXP_01A.pdf"
Liste des composants: "IO_EXP_01A_components.pdf"
Sérigraphie : "IO_EXP_01A_SER.pdf"
Montage : "IO_EXP_01A_montage.pdf"
---(6)--- Raccordement à Digibutler -----------------------------------
L'alimentation de la carte J9 est la reprise de +Vext et Gnd.
On utilise les mêmes relais que Digibutler.
Les expanders sont alimentés par un régul IC3 (énorme vu la conso ridicule).
On utilise du cable en nappe avec 1 connecteur 10points serti de chaque coté.
Pour établir la liaison entre J6 de IO-EXP-01A et J6 de Digibutler.
Sur Digibutler, J6 n'a que 8 pins.
Donc le connecteur femelle a les pins 9 et 10 dans le vide.
Les cartes sont adressables.
Pour chaque expander, il faut mettre une adresse différente ("IO_EXP_01A_montage.pdf").
---(7)--- Soft carte d'extension ----------------------------------------
Si on a au moins une carte IO-EXP-01A,
On active le code avec #define HLA_HARDWARE 1 (dans "ipport.h")
Ainsi que #define NB_IO_EXPANDERS 2 (si on a une carte)
ou #define NB_IO_EXPANDERS 4 (si on a 2 cartes)
Le code dans "IO_SPI.c" programme les expanders impairs en entrée
et les expanders pairs en sortie.
---(8)--- ENFIN l'Automate ---------------------------------------------
Sur Digibutler, nous avons un moteur PLC (Programmable Logic Controller) qui
interprète du PLCcode se trouvant dans un fichier "plc.txt".
Le fichier "plc.txt" est généré par un programme sur PC "H_DigiPLC.exe".
Voir doc de "H_DigiPLC.exe" dans "H_DigiPLC_fr.pdf".
Ce programme possède:
- Editeur graphique de Ladder
- Compilateur (traduction de graphique vers "plc.txt")
- Transfert fichier "plc.txt" sur Digibutler
- Marche arrêt moteur PLC Digibutler
- Monitoring (animation du graphique en fonction de l'état des variables)
PLC fonctionne avec ou sans carte IO-EXP-01A.
Il est lancé périodiquement (chaque tick: 5ms).
Le Ladder supporte:
- contact simple
- contact inversé
- front montant ou descendant
- sortie simple
- sortie inversée
- sortie SET ou RESET
- Tempos (TON, TOF, TMP, BLINK) base de temps 5ms
- Comparaisons (CMP_LT, EQ, GT) pour les entrées Ana
Lorsqu'on lance la compilation, le graphique est convertit en équation booléenne:
((GPT1./GPT2)+/GPT3)=GPT0
Ensuite, l'équation devient:
- AND PUSH
- AND PUSH
- AND 2,1001,0,0,
- AND 3,1002,0,0,
- POP
- OR 3,1003,0,0,
- POP
- OUT 6,1000,0,0,
- END
Après le transfert, le moteur PLC décode le PLCcode "plc.txt" en objets exploitables
puis l'exécute une fois pour avoir ainsi sa taille et son temps d'exécution (en 10µs avec PIT1).
Si taille et timing vous conviennent, vous activez le moteur pour debugger le Ladder.
A l'issue du debug, vous le rendez autorun pour repartir après un reset.
PLC est activable avec #define HL_PLC 1 (dans "ipport.h")
Transfert et controle se font via le Tunnel FTP.
Le monitoring quant à lui se fait via le serveur de debug
activable avec #define HL_DEBUG_SVR 1 (dans "ipport.h")
Les fichiers pdf et zip sont dans DigiButler_V30\Doc\
sources: http://pagesperso-orange.fr/HLaidet/Digibutler.htm
Salut
Henri
