Choix d'un logiciel graphique pour programmer l'arduino plus simplement ladder ?

Bonjour.

J'ai un projet de construction d'une installation automatisée.

Cette installation comportera environ 10 entrées numériques, 8 entrées analogiques et 25 sorties numériques.

Mon idée de départ était d'utiliser un automate industriel, mais devant le cout prohibitif, j'envisage de me rabattre sur un Arduino.

Mais la programmation en C me fait peur, j'ai peur d'y passer des heures interminables à le mettre au point.

D'où ma question, exist'il une interface qui permettrai de programmer un Arduino comme un automate, en ladder, pour simplifier la programmation ? Où est'on obligés d'utiliser le langage C ?

Si ce n'est pas du ladder, qu'es-ce qui pourrait se rapprocher le plus possible d'un automate ?

Google : cherche "arduino ladder"

Premier lien : https://www.automation-sense.com/blog/automatisme/comment-programmer-un-microcontroleur-pic-ou-un-arduino-avec-du-ladder.html

Merci pour le lien, mais j'aurais voulu savoir si certain d'entre vous on déja testé une application de ce genre.
Je cherche quelque chose qui soit le plus graphique possible. Quelque chose d'intuitif et convivial, même si ce n'est pas forcement du ladder.

Bonsoir
peut être alors quelque chose comme Ardublock ? .....Scratch....?
juste pour information car je ne suis pas utilisateur de ce genre d'outils

Bonsoir.

J'ai testé Ardublock, et je n'y arrive pas, ça ne fonctionne pas, j'essaye de suivre des tutos, mais ça ne fonctionne pas.

Le premier lien de hbachetti semblait pas mal du tout, mais je n'arrive pas à l'utiliser, on ne peut même pas déplacer les contacts, une fois qu'ils sont en place, si on veut les déplacer, il faut tout effacer, et recommencer, c'est dommage.

Je vais continuer à me pencher sur le programme C, mais je pense que je vais m'orienter vers un automate professionnel avec un langage de programmation à contacts.

Je suis en train de lire un livre sur la programmation Arduino, et quand je vois toutes les lignes de code qu'il faut taper pour simplement filtrer une entrée pour éviter le phénomène de rebond, et la gymnastique du cerveau nécessaire pour arriver à comprendre le code. Ça me décourage. Alors qu'avec un automate c'est intuitif, et ça se fait naturellement.

C'est intéressant l’Arduino, mais malheureusement je n'ai pas assez de temps à consacrer à la programmation.

Bonjour

Ceci n'est pas un outil graphique mais une librairie, plcLIB, qui parait permettre de rédiger son code en gardant un proximité avec' ladder 'ou 'bloc de fonction' ou 'SFC/Grafcet' ou 'texte structuré' donc en adoptant une des représentations type 'automate programmable'

D'où ma question, exist'il une interface qui permettrai de programmer un Arduino comme un automate, en ladder, pour simplifier la programmation ? Où est'on obligés d'utiliser le langage C ?

Oui et non ...... içi ce serait disons du "C assisté avec look PLC", ça vaut peut être le coup de tester ?

Source , utilisation , doc, code içi

Présentation en français içi

jamais testé pour ce qui me concerne.

Voilà un des exemples de codage d'opérations booléennes fournis avec plcLIb :
Capture d’écran du 2019-01-16 08-05-04.png

#include <plcLib.h>

/* Programmable Logic Controller Library for the Arduino and Compatibles

   AND, OR, XOR and Not - Basic Boolean Logic Functions

   Connections:
   Input - switch connected to input X0 (Arduino pin A0)
   Input - switch connected to input X1 (Arduino pin A1)
   Output - ANDed Output - LED connected to output Y0 (Arduino pin 3)
   Output - ORed Output - LED connected to output Y1 (Arduino pin 5)
   Output - XORed Output - LED connected to output Y2 (Arduino pin 6)
   Output - Inverted Output - LED connected to output Y3 (Arduino pin 9)

   Software and Documentation:
   http://electronics-micros.com/software-hardware/plclib-arduino/

*/

void setup() {
  setupPLC();  // Setup inputs and outputs
}

void loop() {
  in(X0);      // Read Input 0
  andBit(X1);  // AND with Input 1
  out(Y0);     // Send result to Output 0

  in(X0);      // Read Input 0
  orBit(X1);   // OR with Input 1
  out(Y1);     // Send result to Output 1
  
  in(X0);      // Read Input 0
  xorBit(X1);  // XOR with Input 1
  out(Y2);     // Send result to Output 2
  
  in(X0);      // Read Input 0
  outNot(Y3);  // Send inverted result to Output 3
}