Bonjour, je suis actuellement étudiant en Génie Mécanique et n'ai jamais eu d'initiation sérieuse à la programmation.
J'étudie depuis l'année dernière dans le cadre de mes études un mode de représentation d'un automatisme appelé "Grafcet", cette année nous l'avons mis en application lors de TP où nous devions programmer des automates à l'aide de ce langage et d'un autre appelé LADDER.
Nous nous sommes alors rendus compte qu'il n'existait aucun logiciel (gratuit en tout cas) pédagogiques sur ces langages pourtant très utilisés dans le monde de l'automatisme.
Je me suis donc mis en tête d'essayer de créer un tel logiciel pour mon plaisir personnel, car j'aime l'informatique bien qu'étant néophite en programmation, et également pour approfondir dans le même temps ma connaissance de ces langages.
Seulement voilà je ne sais par où commencer, je souhaiterais créer un logiciel ayant une interface "user-friendly" mais pour le moment je ne connais aucun langage de programmation et je n'ai aucune idée de comment tout emboiter pour créer un logiciel in fine.
Je m'en remet donc à vous pour m'aiguiller vers des langages, des cours, peut-être en m'expliquant les avantages de certains par rapport à d'autres je ne sais pas.
Merci d'avance pour vos réponses.
En gros tu souhaite créer un logiciel ou on peut créer des connections avec des portes logiques, Output, Input ?
ça s'appelle du Visual Scripting.
Par exemple: Unreal (moteur de jeu vidéo) qui utilise un système de "Node" pour simplifier et rendre plus lisible la programmation 
Sinon il me semble que Flowcode fait plus ou moins la même chose.
Personnellement, je me suis déjà penché sur ce type de programme, Pour Unity (moteur de jeu) où je voulais créer ce genre d'interface pour simplifier l'intégration d'assets perso pour certains projets. Mais c'est tout sauf simple de créer ce genre de truc.
Si tu veux créer des logiciels. Sur Windows t'as Visual Studio, créé par Microsoft qui permet de créer tout et n'importe quoi (Framework, Windows Form, Programme console...). https://docs.microsoft.com/fr-fr/visualstudio/ide/visual-studio-ide
Sinon t'as Python, qui est populaire et simple à prendre en main (je l'ai jamais utilisé, mais j'en entend que du bien).
Tu peux aussi créer des applications avec Java, voir Javascript qui est normalement plus utilisé dans le Web, mais qui est utilisé depuis quelques temps dans les applications bureau avec Node.js et d'autres framework obscur (c'est un peu le bordel pour ça je trouve).
Mais pour ton projet, je peux pas vraiment te conseiller quelque chose de spécifique. Tu commence vraiment avec un truc mastoc. Sans savoir trop programmer ça va être chaud.
Salut et merci pour ta réponse ![]()
Tu as compris là où je voulais en venir, c'est effectivement ce genre d'interface que je cherche à réaliser. Mon but ultime serait d'avoir un logiciel avec une partie "Grafcet" avec toutes les entrées logiques de ce langage et une partie "Machine" avec la représentation d'une machine industrielle avec tous ses capteurs/actionneurs qui réagirait en temps réel au grafcet.
Cela permettrait de s’entraîner sur du virtuel avant de programmer de véritables machines.
Tu as parlé de "Visual Studio", ce programme aurait-il un lien quelconque avec "Visual Basic" ?
Car je viens d'apprendre avec un collègue que j'allais avoir des cours de Visual Basic à partir de début 2018.
Je ne connais pas ce langage mais selon toi est-ce qu'il me permettrait de réaliser ce logiciel ?
Microsoft autorise plusieurs langages, tel que le C, C#, C++ (ils sont tous plus ou moins similaires). Dont le Visual basic (VB.net) qui est un dérivé du BASIC. C'est d’ailleurs mon premier langage de programmation.
Ils sont tous plus ou moins pareils les uns des autres (je parle des langages C, C#, C++, VB...). Les plus grandes différences sont surtout les Syntaxes
Sinon t'as un peu plus d'info ici sur leurs différences : https://en.wikipedia.org/wiki/Comparison_of_C_Sharp_and_Visual_Basic_.NET#Features_of_Visual_Basic_.NET_not_found_in_C#
En soit, je vois pas pourquoi tu pourrais pas faire ton projet en VB.NET.
De ce que tu m'as dit, tu veux une distinction entre la partie "Visual Scripting" et une autre partie où on voit ce que fait notre code à la "machine" de façon virtuel ? Il faut bien faire la distinction entre les deux. J'ai aucune idée de comment tu peux faire un modèle 3D d'une machine, mais en cherchant un peu tu devrai trouver.
En principe, T'as un module de visual scripting, qui va "Générer" du "code pur" quand l'utilisateur va lancer le programme. Ce "code pur" va ensuite se lancer et agir sur ta simulation.
A toi de voir par la suite la liste de t'es features, et qu'elles sont leurs solutions et comment tu souhaite les relier entre-elles. La difficulté que tu as, c'est que tu ne connais pas les Framework .NET de Microsoft, ni leurs langages ou leurs fonctionnement. Je te conseil de te documenter un max sur ce qui existe. Pour ensuite définir les différentes parties de ton logiciel. (Visual scripting -> "Code Pur" -> Simulation). Le but étant de développer ces X modules relativement séparément (Ici 3 modules, pour l'exemple). Chaques modules auront des Input et des Output. qui leurs serviront pour communiquer entre elles. et ainsi faire ton logiciel.
C'est assez complexe à faire pour un débutant je pense ![]()
Déjà faut gérer la programmation de "base", savoir organiser un projet, savoir faire des interfaces graphiques, et interpréter Grafcet c'est quand même beaucoup de boulot.
@Le_Tryall Encore merci, la partie visualisation machine se fera après tout le reste en fonction des outputs de la partie Grafcet, je ne sais pas si je partirai sur de la modélisation 3D mais si c'est le cas ça ne me posera aucun problème puisque la CAO est mon domaine de prédilection.
@RegleGraduee Merci de ta réponse.
Savoir organiser un projet et interpréter le Grafcet sont des compétences que je possède déjà. Il me manque donc la partie la plus complexe de la programmation pure ^^
Après ce que m'a dit ton VDD j'ai commencé à me renseigner sur Visual Basic et j'ai commencé à appréhender le langage.
D'après ce que je vois pour le moment le langage en lui même est assez simple à comprendre, je pense que ce qui va me poser des soucis c'est quand je devrai réaliser l'interface graphique, car le Grafcet est avant tout un langage graphique et je souhaite réaliser un programme qui parle à l'utilisateur dès les premières secondes de prise en main ![]()
Je suis bien conscient que réaliser un logiciel n'est pas quelque chose de simple et que cela va déjà me prendre beaucoup de temps pour apprendre la programmation, mais je suis motivé et je sais déjà où je vais ![]()
Puisqu'il s'agit en fait d'une sorte de doc -tutoriel je ferais ça avec des pages html interconnectées (liens) et des images et des gifs
Parce que rien que la mise en place du système électromécanique virtuel (3D) va prendre beaucoup de temps avant de parler d'agir dessus.
Le tutoriel pouvant être ouvert en parallèle des logiciels cités.
@ouimaisquoi Bonjour, je ne suis pas certain de bien comprendre de quoi tu parles mais ce que je souhaite réaliser n'a rien d'un doc-tutoriel ![]()
Merci pour ta réponse
Le 16 décembre 2017 à 22:02:50 PilouTheLord a écrit :
@ouimaisquoi Bonjour, je ne suis pas certain de bien comprendre de quoi tu parles mais ce que je souhaite réaliser n'a rien d'un doc-tutorielMerci pour ta réponse
Si tu veux interagir avec un soft existant (celui qui contient le système électro-mécanique) depuis "ailleurs" (grafcet) il faut mettre les mains dans le camboui du premier soft (si il est open source) pour en trouver les points d'entrées et y injecter tes données (et bien sûr recompiler le soft nanti de tes "doors". et mettre aussi les mains dans grafcet pour en extraire les données dans un format compatible de tes "doors".
Un sacré challenge.
Il faut déjà savoir sous quel format les données sortent de grafcet (si il en sort) , en général c'est des formats spécifiques, et si le soft n'est pas open source, c'est mort (sauf à décoder le format).
Une solution plus simple serait de simuler grafcet dans un soft dont tu aura la pleine maîtrise (en Vb ou en n'importe quel langage)
En ajoutant les fonctionnalités au fil du temps.
Je viens d'aller voir de quoi tu parle; en fait grafcet n'est ni un logiciel ni un langage, mais un mode de représentation
Il existe un éditeur de grafcets "SFCEDIT" qui est payant.
Donc ce que tu veux faire c'est un éditeur de grafcets couplé à un modélisateur (2D ou 3D).
C'est faisable.
Le 16 décembre 2017 à 16:28:02 PilouTheLord a écrit :
J'étudie depuis l'année dernière dans le cadre de mes études un mode de représentation d'un automatisme appelé "Grafcet"
Effectivement le Gracet n'est qu'un mode de représentation, cependant il est très important de bien comprendre son fonctionnement dans le monde de l'automatisme car il a donné naissance à un véritable "langage" de programmation nommé SFC.
Le SFC est le véritable langage qui sera implémenté dans la machine industrielle mais souvent couplé à un autre langage tel que le LADDER car il ne suffit pas pour tout gérer tout seul.
De son côté le Grafcet peut virtuellement tout gérer seul et c'est pour ça qu'il est idéal pour apprendre.
Par contre je pense que tu n'as pas très bien lu ce que je souhaite faire car je n'ai aucunement l'intention d’interagir avec un soft préexistant ^^
Le logiciel dont tu parles (SFCEDIT) n'édite pas des Grafcet mais des graphes en SFC et il y a des différences fondamentales entre les deux.
Le 17 décembre 2017 à 12:10:48 PilouTheLord a écrit :
Le 16 décembre 2017 à 16:28:02 PilouTheLord a écrit :
J'étudie depuis l'année dernière dans le cadre de mes études un mode de représentation d'un automatisme appelé "Grafcet"
Effectivement le Gracet n'est qu'un mode de représentation, cependant il est très important de bien comprendre son fonctionnement dans le monde de l'automatisme car il a donné naissance à un véritable "langage" de programmation nommé SFC.
Le SFC est le véritable langage qui sera implémenté dans la machine industrielle mais souvent couplé à un autre langage tel que le LADDER car il ne suffit pas pour tout gérer tout seul.
De son côté le Grafcet peut virtuellement tout gérer seul et c'est pour ça qu'il est idéal pour apprendre.
Par contre je pense que tu n'as pas très bien lu ce que je souhaite faire car je n'ai aucunement l'intention d’interagir avec un soft préexistant ^^
Le logiciel dont tu parles (SFCEDIT) n'édite pas des Grafcet mais des graphes en SFC et il y a des différences fondamentales entre les deux.
Tiens, je t'en ai fait un en Basic ancestral (seules les fonction "A" et "a" sont actives
C'est là: http://www.mediafire.com/file/10ribusndq38s21/grafcet.zip
J'espère que tu a le sens de l'humour.
Le 17 décembre 2017 à 13:51:07 ouimaisquoi a écrit :
Tiens, je t'en ai fait un en Basic ancestral (seules les fonction "A" et "a" sont actives
C'est là: http://www.mediafire.com/file/10ribusndq38s21/grafcet.zip
J'espère que tu a le sens de l'humour.
Tu n'a plus qu'à le compléter
C'est pas le tout de savoir comment programmer en ladder ou grafcet, il faudra aussi simuler le passage d'une étape à une transition etc.. par exemple.
Sur Excel, j'ai déjà fait un grafcet dont les étapes et transitions s'activaient et se désactivaient.
C'est un bon projet que tu as là (j'y avais déjà pensé également).
@Cap-nCrunch Un bon projet qui me prendra du temps vu que je suis novice en programmation ^^
Ceci dit j'ai commencé à apprendre le VB.NET et ça me parait assez accessible donc je ne désespère pas ![]()
Bonjour / bon soir à tous les intervenants dans cette discussion.
Étant enseignant de technologie, j'utilise fréquement ce type d'outils
(Grafcet, Ladder, etc..). Je peine beaucoup pour trouver un logiciel qui
peut faire l'affaire et en plus gratuit.
J'ai parcouru pas mal de forums pour trouver quelques choses qui parlent
de ce sujet mais en vain.
Heureusement cette fois-ci je suis tombé sur votre discussion et j'aimerai
bien en profiter si vous le permettez. Mes questions sont les suivantes :
1- A PilouTheLord : est-ce-que votre projet à finalement abouti et avec
quel langage de programmation ? (C, C++ ou visual Basic)
2- A ouimaisquoi : est-ce que je peux avoir le code source que vous avez
proposé comme test (a et A)?
3- A tous le monde si quelqu'un d'entre vous possède une alternative je
suis preneur.
Merci d'avance pour vos réponses actuelles & futures.
Bonsoir @zramzi94.
Depuis 2017 j'ai quitté ma formation de Génie mécanique pour me lancer dans le développement informatique. Ce projet était tombé à l'eau car je m'étais rendu compte des nombreuses compétences que son exécution supposait et que je ne possédait pas à l'époque.
J'ai une bien meilleure vision du développement aujourd'hui et effectivement c'est un projet qui pourrait me réintéresser.
Avez-vous réalisé une veille des outils existant concernant le Grafcet/Ladder ? Avez-vous une idée précise des fonctionnalités que vous attendez d'un tel outil ?
Le 20 juillet 2020 à 16:14:59 zramzi94 a écrit :
Bonjour / bon soir à tous les intervenants dans cette discussion.
Étant enseignant de technologie, j'utilise fréquement ce type d'outils(Grafcet, Ladder, etc..). Je peine beaucoup pour trouver un logiciel qui
peut faire l'affaire et en plus gratuit.
J'ai parcouru pas mal de forums pour trouver quelques choses qui parlentde ce sujet mais en vain.
Heureusement cette fois-ci je suis tombé sur votre discussion et j'aimeraibien en profiter si vous le permettez. Mes questions sont les suivantes :
1- A PilouTheLord : est-ce-que votre projet à finalement abouti et avecquel langage de programmation ? (C, C++ ou visual Basic)
2- A ouimaisquoi : est-ce que je peux avoir le code source que vous avezproposé comme test (a et A)?
3- A tous le monde si quelqu'un d'entre vous possède une alternative jesuis preneur.
Merci d'avance pour vos réponses actuelles & futures.
Le code est dans le zip, c'est le fichier: "grafcet.bas" et c'est un Basic