jeudi 25 janvier 2018

DOMOTIQUE et PLCs en ARDUINO.

Suite de mon étude sur un automate programmable à usage général dont j'ai publié un aperçu du développement plus bas.

Pour rappel, la raison majeur qui m'a poussé à développer un matériel personnel provient de la nécessité d'une communication de type GSM.  Cet impératif me conduisait à une impasse avec le matériel proposé. Soit je partais sur du matériel professionnel présentant un cout d'achat non négligeable et une méthode de mise en œuvre elles aussi de type professionnelle basée le plus souvent sur la norme de programmation 61131-3. Cette norme, tout aussi intéressante qu'elle soit, n'est gérable que par un professionnel de l'automatisme et ne peut que très difficilement être 'imposée' à un amateur, même éclairé.

Reste donc la solution beaucoup plus abordable de la compatibilité Arduino. Les ressources nécessaires pour la mise en œuvre logicielle de ce type de solution se bornent à une pratique 'suffisante' du langage C. Nul besoin d'être expert. La maintenance d'applications s'en trouve dans ce cas grandement facilité, et peut être délégué à des personnes 'suffisamment' compétentes, sans obligation d'expertise dans le domaine. Surtout s'il s'agit de corriger un éventuel problème sur un code déjà existant et bien documenté.

La conception d'un système particulier reposant sur une base Arduino pose quand même quelques problèmes, et notamment l'intégration d'un module GSM. N'existant pas sur la marché de solutions intégrées, on se retrouve dans l'obligation de recourir à des modules professionnels dont la caractéristique principale est de ne supporter QUE la liaison RS232 pour communiquer avec un automate. Cela tombe très bien puisque la totalité des automates possèdent une liaison de terrain de type RS485 et non pas de type RS232!

De plus, ces modules GSM sont à programmer 'from scratch' comme l'on dit, car il n'existe pas de bibliothèques de mise en œuvre pour la plateforme Arduino. Alors que la plateforme Arduino propose l'utilisation d'un module GSM standard utilisant la 2G, largement suffisant pour émettre des sms voir quelques requêtes réseau, accompagné de sa bibliothèque logicielle d'intégration :


Le tout pour un prix somme toute abordable. Le problème de cette solution, est l'obligation d'utiliser une carte de type Arduino, comme la 2560 :


Carte au prix, la aussi, abordable, mais qui ne propose absolument aucune entrée/sortie de type automate, donc prévues pour être utilisées en milieu réel. Toutes les ressources de la carte ne peuvent être utilisée que pour des signaux à la norme TTL, c'est à dire de 5V au plus. S'ajoute à cela un système de connexion tout à fait inadapté à un usage de terrain impliquant de facto la création d'une carte d'adaptation électrique ET mécanique.

Non content de ces inadaptations par rapport à ma demande, j'ai en plus décidé de rajouter un clavier et un écran LCD sur le système. Il me semble en effet assez peu pertinent de devoir reprogrammer la carte à chaque fois qu'un numéro de téléphone ne doit plus être contacté ou, au contraire, que l'on souhaite en rajouter dans le répertoire, même si ce mode de fonctionnement habituel est 'imposé' par les entreprises car générateur de couts cachés forts rémunérateurs.

Toutes ces considérations m'ont amené à construire entièrement une machine capable de répondre à mes besoins, c'est à dire qui possède des entrées.sorties diverses capable de s'adapter à l'environnement d'utilisation et à d'éventuelles demandes d'extensions, des organes de commande et de visualisation pour une interactivité minimum, un emplacement pour une carte GSM, une compatibilité Arduino pour une mise en œuvre pratique et efficace.

Cela m'a conduit à créer ce schéma :


Quelques modifications ont été apportées par rapport au schéma initial. Les entrées/sorties sont maintenant TOTALEMENT isolées du cœur du système ET universelles. Les entrées sont par exemple compatibles avec les normes industrielles c'est à dire de 5 à 24V (36V en vrai). Les sorties à relais sont de facto isolées, mais les deux sorties à transistor MosFet le sont maintenant aussi et sont capable de fournir 10A sous 60V, idéales pour commander des charges en 12 ou 24V à fréquence élevée. Une entrée de détection 230V opto-isolée est aussi présente et agit en tant qu'entrée compatible 230VAC, entrée imposée par le type d'application initialement prévue. J'oubliais, une liaison de communication à la norme RS485 est aussi présente. Elle n'est pas isolée, mais quand même protégée. Il sera donc nécessaire de se méfier à minima du mode commun en cas de liaison sur une longue distance.

Après la longue phase de recherche de matériels, de tests divers, de validation des solutions retenues, vient le temps de la création proprement dite de la carte d'application. La recherche des composants adéquates effectuée, la première étape à passer consiste à vérifier que les empreintes choisies sur le logiciel de CAO correspondent bien à celles des composants.


Une fois cette étape assez laborieuse effectuée, il ne reste plus qu'à passer à celle de la création proprement dite du circuit imprimé.

Encore de longues heures de travail en perspective pour atteindre l'objectif, à savoir un circuit imprimé fonctionnel, ou tous les composants ont bien trouvé leur place de façon à ne pas se perturber mutuellement d'un point de vue électrique et/ou mécanique, et ou les normes d'isolation électrique auront pu être correctement implantées parce que cette carte comportera des zones soumises à la tension secteur.

[06-02-2018]
Après plusieurs heures de réflexion sur le sujet, de mise en place et de modifications, j'en suis arrivé à une première implémentation des composants :


Mettre en place tous les composants en respectant des zones d'isolation minimum entre les parties potentiellement soumises à des niveaux de tension très différents, ainsi que la taille des empreintes puisque j'utilise des empreintes pour soudage à la main, donc plus importantes que ce qu'elles pourraient être, prend finalement beaucoup de place.

Il s'agit d'un premier jet en mesure d'être potentiellement modifié selon les difficultés que je rencontrerai lors du routage des pistes. La topologie de ce circuit ne ressemble pas du tout à ce à quoi j'aboutis d'habitude. Cela est du en grande partie à la taille imposante de certains composants.



On ne le dirait peut-être pas comme ça, mais le routage avance. Du fait de la topologie de la carte, il est totalement exclu d'utiliser le routage automatique. La tactique adoptée consiste à d'abord router chaque fonction de la machine avec une épaisseur de piste adaptée. Une fois cette opération effectuée, il ne restera plus qu'à router ces fonctions vers le processeur. Autrement dit, pour l'instant ce sont les liaisons les plus courtes, hormis celles d'alimentations, qui sont traitées en laissant le plus d'espace possible au milieu de la carte pour y acheminer par la suite les liaisons longues. Il reste encore du travail!

Après un bon nombre d'heures de travail avec l'aide toutefois de l'auto-routeur, j'ai fini par obtenir un routage 100% à peut près satisfaisant. Il me reste encore à travailler manuellement sur le circuit pour modifier les quelques aberrations restantes ainsi que les aménagements nécessaires dus aux spécificités de ce type de circuit :


Allez, encore quelques heures de travail et le bout du travail devrait arriver...

[01/03/2018]
Le routage de la carte est terminé.


Les quelques dernières modifications ont été apportées à la main sur le circuit. Il ne reste plus qu'à le transmettre au fabricant en espérant qu'il soit réalisable tel quel, malgré la finesse du dessin de la portion se situant aux alentours du processeur. Sans doute un bon mois d'attente avant de pouvoir commencer à implanter les premiers composants et effectuer les premiers tests.

Aucun commentaire:

Enregistrer un commentaire