CONTROLLINO PLC compatible Arduino, partie 1

Pour la première fois sur un contrôleur logique programmable du nom de CONTROLLINO, il m'est arrivé d'apprendre en 2014 dans une correspondance aléatoire avec une personne qui avait sélectionné un automate pour la domotique. Je lui ai recommandé des modèles classiques, et en réponse, il a dit qu'ils avaient vu sur kickstarter un projet intéressant appelé CONTROLLINIO. Il s'agit d'un automate industriel programmé de la même manière que l'Arduino dans son IDE natif.

Ce mec travaillait comme programmeur php et C ++ n'était pas un problème pour lui. Il avait de l'argent et des idées, mais il n'y avait aucune envie d'étudier LAD ou Codesys. En conséquence, il s'est désinscrit qu'il avait précommandé CONTROLLINO et ne l'a plus contacté.

Je ne sais pas quoi et comment cela s'est finalement avéré, mais après 3 ans, j'ai dû travailler avec cet appareil.



En grinçant avec un stylo, j'ai réalisé qu'il y aurait beaucoup de matériel. Par conséquent, je vais diviser l'histoire de CONTROLLINO en deux parties: la première sera consacrée au fer, la seconde à la programmation.

Actuellement, 4 modèles CONTROLLINO sont produits: MINI, MAXI, MAXI-AUTOMATION et MEGA. J'ai travaillé avec MAXI.


Caractéristiques courtes du CONTROLLINO MAXI:

  • Microprocesseur ATmega2560
  • 12 entrées numériques / analogiques universelles
  • 12 sorties transistor, peuvent fonctionner en mode PWM
  • 10 sorties relais, ~ 250V / 6A
  • RTC non volatile
  • Ethernet
  • RS-485
  • SPI, I2C, 2xRS-232 TTL
  • Alimentation 12 ou 24V DC
  • Dimensions 72x90x62mm
  • Boîtier sur rail DIN
  • Logiciel compatible avec Arduino MEGA 2560

CONTROLLINO et ARDUINO


Tout d'abord, il faut dire que CONTROLLINO n'est pas un Arduino dans un boîtier avec des bornes au lieu de broches, comme certains pourraient le penser.

CONTROLLINO est un contrôleur logique programmable, PLC. C'est-à-dire un produit fini utilisé dans l'automatisation, avec une protection appropriée des entrées et des sorties. La conception CONTROLLINO avec Arduino en tant que tel (c'est-à-dire avec une carte de débogage basée sur la puce atmega) n'est liée qu'au microprocesseur utilisé.

Si nous démontons CONTROLLINO (et nous l'analysons), alors à l'intérieur nous ne trouverons pas l'arduino soudé aux boucliers chinois, ou, pire encore, juste l'arduino avec des fils torsadés aux bornes.
La compatibilité est assurée au niveau du logiciel CONTROLLINO MAXI peut être programmé à partir de l'IDE Arduino comme une carte Arduino MEGA 2560. Et le même processeur, l'ATmega2560, est là et là.

Beaucoup ici objectent à juste titre que les normes PLC sont certainement bonnes, mais ce PLC est comme un PLC, et à partir d'arduins et de boucliers, vous pouvez assembler un système pour vos besoins beaucoup moins cher. Je ne discuterai pas, je l'ai fait moi-même et tout a fonctionné. Cela ressemblait à la photo prototype du héros de l'article sur la page kickstarter.



D'un autre côté, je connais beaucoup de ceux qui ont allumé les capacités de la plate-forme Arduino, les ont achetées, ont clignoté des LED et ... l'ont coulé dessus. Ayant maîtrisé les bases de la programmation, ils ont soudainement réalisé qu'ils avaient besoin d'un ordre de grandeur plus de temps pour traiter avec l'électronique, penser à tout et assembler le produit fini. Soudain, il s'avère que votre temps en vaut vraiment la peine et que vous ne voulez pas le dépenser sans perspectives visibles.

Dima, salut!
Un camarade de classe vivant dans une autre région a ouvert une merveilleuse startup. Armé des développements de pointe d'Internet, il a quitté la ville et construit un clair de lune à haute productivité. Et tout va bien, le produit s'est avéré excellent (d'après ses mots, je comprends peu à ce sujet). Mais le processus technologique a duré 48 heures, pendant lesquelles quelque chose doit être allumé, quelque chose éteint, dévissé, tordu, etc. Dormir par à-coups pendant deux à trois heures.

Naturellement, l'idée est venue d'automatiser la production. Il s'est tourné vers moi pour des conseils, je lui ai parlé du PLC et de tout ça. Et après un moment, il vient me chercher et dit qu'il a acheté une chose merveilleuse, Arduino est appelé. Des LED déjà clignotantes, en Arduino, le langage C, et il ne l'a pas oublié depuis l'époque où nous avons étudié l'informatique. La seule chose qui reste est d'acheter des boucliers, de souder quelque chose vous-même, puis de porter la production à un nouveau niveau.

Mais une année s'est écoulée, deux, encore plus, puis les LED ne sont pas allées plus loin. Cependant, un nouveau passe-temps, l'apiculture, peut interférer.

À mon avis, CONTROLLINO intéressera les travailleurs Arduino qui ne peuvent pas ou ne veulent pas fabriquer eux-mêmes des automates pour la domotique et sont prêts à acheter un produit fini. De plus, CONTROLLINO a tout pour une utilisation dans une «maison intelligente»: 34 points d'E / S, plusieurs interfaces de communication et la capacité de gérer tout cela à partir d'Internet.

Au final, CONTROLLINO est tout simplement magnifique.

La construction






Retirez le couvercle.



À l'intérieur du boîtier, il y a 3 planches. Nous sortons le sommet.



Nous voyons la bonne vieille puce W5100, qui fournit Ethernet.

Il existe également un microprocesseur atmega16. Non pas que je serais surpris. PLC avec plusieurs microprocesseurs que j'ai déjà observé, par exemple, dans les modèles de la société Aries. Mais que fait ce processeur ici? Tout s'est avéré simple - il est responsable du téléchargement via USB. Tout comme dans la carte italienne d'origine Arduino MEGA 2560.



Vous, comme moi, avez probablement un clone chinois et le convertisseur usb / rs232 habituel est sur le démarrage.

Les panneaux du milieu et du bas du CONTROLLINO MAXI sont soudés ensemble, hélas.



Les relais HF41F sur ~ 250V / 6A sont visibles sur la carte 'relais' inférieure. Nous pouvons voir la planche moyenne d'un côté seulement.



Nous voyons le microprocesseur ATmega2560 et la liaison des entrées et sorties.

Afin de trouver la correspondance des entrées et sorties CONTROLLINO avec les broches de la carte Arduino MEGA 2560, le développeur a dessiné un grand diagramme.



Les noms des terminaux de l'API sont jaunes et les noms des broches Arduino Mega 2560 sont bleus. Par exemple, le relais R0 sur l'API correspond à la broche 22 Arduino Mega 2560.



Pour fermer le relais R0, dans l'esquisse, vous devez écrire les instructions suivantes:

void setup() { pinMode(22, OUTPUT); } void loop() { digitalWrite(22, HIGH); } 

Mais c'est le sujet du prochain article.

Entrées universelles



12 entrées, chacune dans le programme peut être considérée comme analogique ou discrète. Deux d'entre eux, IN0 et IN1, peuvent être utilisés comme entrées d'interruption.



Les entrées analogiques sont en volt, leur plage dépend de la tension d'alimentation de l'automate. Si l'automate est alimenté par 12V, les signaux analogiques ont une plage de 0 ... 13,2V. Si l'automate est alimenté en 24 V, la plage de signaux analogiques est de 0 ... 26,4 V. ADC 10 bits.

Sorties transistor



12 sorties transistor discrètes, chacune pouvant être utilisée comme PWM.



Sorties relais



Relais HF41F à ~ 250V / 6A. 6 ampères ne suffisent pas. Je suppose que ces relais sont sélectionnés car ils sont étroits et peuvent être placés davantage sur une petite zone.



Horloge en temps réel non volatile

En tant qu'horloge en temps réel (RTC), la puce DS1307, qui fonctionne sur le bus I2C, n'est pas utilisée ici. Ici, la puce RV-2123-C2-TA-QC-020 avec l'interface SPI fonctionne pendant des heures.

En général, sur les trois circuits «supplémentaires» (Ethernet, RS-485 et RTC) de CONTROLLINO, deux fonctionnent sur le bus SPI et aucun sur I2C. Ce bus «carré» pratique est entièrement gratuit pour connecter des périphériques utilisateur, comme mon panneau de commande fait maison avec un bus I2C .

Regardez le schéma de câblage RTC et faites attention aux tirets dans les champs bleus.

Les tirets signifient que les jambes du microprocesseur ATmega2560 qui ne sont pas sorties vers les broches Arduino MEGA 2560 sont connectées aux contacts correspondants de celui-ci et d'autres microcircuits "supplémentaires". Vous ne pouvez pas contrôler ces jambes à partir de l'IDE Arduino avec la commande standard DigitalWrite (), mais uniquement avec un accès direct aux ports . Une telle solution schématique a ses propres avantages et inconvénients lors de la programmation (ce qui est plus la question), dont je parlerai dans la partie suivante.

RS-485

Aucun automate moderne ne peut se passer d'un port RS-485 et CONTROLLINO ne fait pas exception. Pour cela, la puce SN65HVD08 y est installée.



RS-485 peut fonctionner en mode maître et esclave.

Ethernet

Enfin une puce familière! La puce W5100 est déjà devenue synonyme du concept de «connexion d'un arduino à Internet». C'est le W5100 qui fournit l'interface Ethernet dans CONTROLLINO.



Le fait que pas 4 pieds Arduino ne soient connectés au contact SCS, comme c'est la coutume dans les schémas de câblage standard, mais un autre `` tiret '', ne complique pas la programmation - tous les exemples fonctionnent sans problème.

En expérimentant avec Ethernet, j'ai déployé un serveur web sur CONTROLLINO et géré cet automate via un smartphone en utilisant l'application android Blynk.

Connecteurs X1 et X2

Certains signaux de microcontrôleur sont transmis non seulement aux bornes sous forme d'entrées et de sorties avec le cerclage correspondant, mais également directement à deux connecteurs 26 broches X1 et X2 via des résistances de protection.




Certains signaux de microprocesseur sont émis vers les bornes et les connecteurs, certains ne sont disponibles que sur les bornes et d'autres uniquement sur les connecteurs. Par exemple, les interfaces SPI et I2C sont sorties uniquement vers le connecteur, les signaux de sortie de relais R0 ... R9 sont disponibles uniquement sur les bornes et les entrées analogiques A0 ... IN1 sont disponibles sur les connecteurs et les bornes.

Bien sûr, le même signal sur la borne et le connecteur est connecté et utilisé de différentes manières. Par exemple, les entrées universelles A0 ... IN1 peuvent être programmées comme sorties dans le programme et utilisées comme telles via le connecteur, mais elles ne pourront pas travailler avec les sorties via le terminal - la liaison interfère.

Les connecteurs X1 et X2 rendent l'utilisation des API plus flexible, vous permettant de connecter les modules utilisés pour utiliser Arduino dans leur métier. Disons, des capteurs DTH22 ou des puces de bus carrées.

J'ai donc créé un panneau de commande qui fonctionne sur I2C et se connecte à CONTROLLINO via le connecteur X1.



C'est tout sur le fer. Dans la partie suivante, je parlerai des fonctionnalités de programmation du CONTROLLINO PLC, comment le contrôler via Internet à partir d'un smartphone depuis n'importe où dans le monde, comment CONTROLLINO fonctionne sur ModbusRTU et bien plus encore.

Les références

Site officiel CONTROLLINO
Page sur kickstarter
→ Projet Facebook
RV-2123 SPI RTC
SN65HVD08 RS-485
Relais HF41F

Source: https://habr.com/ru/post/fr402241/


All Articles