Ces technologies sont-elles utilisées ?

a marqué ce sujet comme résolu.

J'aimerais savoir si des langages comme le C# ou le Java étaient utilisés en informatique industrielle/embarquée ?

Sans prétendre que c'est la norme, le club robotique de mon école utilisait pas mal le java. De même pour le département robotique complet au final. Pour C#, il y a le microframework qui peut marcher mais je connais pas son utilisation.

Par embarquée j'entend tout système électronique qui a une batterie et qui n'est pas un ordinateur. Donc ce fait les smartphones sont compris mais je connaissais déjà la réponse pour les smartphones Android -> Java ; Windows Phone -> .Net ; iOS -> Objective-C / Swift. Mais je m'intéresse plutôt aux "objets" connectés, comme les drones, les voitures, les casques VR, les robots, … J'aurais tendance à dire que les principaux langages sont le C, le C++ et (de façon minime de nos jours) l'assembleur. Quelqu'un aurait un avis sur cette dernière affirmation ?

En informatique industrielle, on aime bien travailler avec des automates industriels. Ce sont des espèces d'ordinateurs taillés pour des applications industrielles, et ça se programme généralement avec des langages propriétaires comme certaines implémentations de Grafcet1. Mais c'est très loin de l'informatique "classique" : même les réseaux industriels n'ont rien à voir avec ce qu'on a l'habitude de voir.

Pour des choses un peu plus proches de nous, il y a généralement dans un projet d'informatique embarquée suffisamment de place pour y glisser une framboise. Du coup, on a à notre portée à peu près n'importe quelle technologie. Après, quelle techno pour quel projet, c'est au cas par cas, je pense. Chaque techno a ses avantages et ses inconvénients, et chaque projet a ses attentes.


  1. Le monde de l'industrie est hyper-fermé en ce qui concerne les brevets et la propriété intellectuelle. 

Les drones tu aura problement des technos différentes car pour la stabilité du vol il te faut un OS temps-réel ce qui est déjà très particulier. Tu va surement te retrouver à coder un code en natif. Idem pour les voitures si tu parle de conduite autonome.

Pour les casques de VR, c'est déjà bien moins évident. Ceux de samsung utilisent leur smartphone directement. Pour des appli classique dans une voiture, vu les puissances disponibles aujourd'hui, j'ai du mal a voir l’intérêt de faire ça en C.

Dans le cas général ça dépend beaucoup de l'application et des contraintes. Si tu as des opérations qui nécessitent un asservissement fiable, il faut un OS temps-reel et une appli codé en natif. Pour le reste ça me semble loin d'être automatique. Beaucoup d'objets connectés utilisent un android car c'est bien plus pratique et rapide à concevoir.

En informatique industrielle, on aime bien travailler avec des automates industriels. Ce sont des espèces d'ordinateurs taillés pour des applications industrielles, et ça se programme généralement avec des langages propriétaires comme certaines implémentations de Grafcet1. Mais c'est très loin de l'informatique "classique" : même les réseaux industriels n'ont rien à voir avec ce qu'on a l'habitude de voir.

Pour des choses un peu plus proches de nous, il y a généralement dans un projet d'informatique embarquée suffisamment de place pour y glisser une framboise. Du coup, on a à notre portée à peu près n'importe quelle technologie. Après, quelle techno pour quel projet, c'est au cas par cas, je pense. Chaque techno a ses avantages et ses inconvénients, et chaque projet a ses attentes.

Richou D. Degenne

Merci pour ta réponse, je connais bien les automates programmables mais pour c'est plus de l'automatisme.

Je ne suis pas d'accord avec toi, je pense que les entreprises qui font de l'informatique embarquée/industrielle n'utilisent pas de solutions comme le Raspberry Pi. Il s'agit plus de solution de prototypage à mon sens.

Cependant, je pense que le langage dépend fortement du projet ainsi que de la plateforme.

Ma question serait donc plutôt celle-là, quel serait le langage le plus utilisé en info. indus. / embarquée ?


  1. Le monde de l'industrie est hyper-fermé en ce qui concerne les brevets et la propriété intellectuelle. 

+0 -0

Les drones tu aura probablement des technos différentes car pour la stabilité du vol il te faut un OS temps-réel ce qui est déjà très particulier. Tu va surement te retrouver à coder un code en natif. Idem pour les voitures si tu parle de conduite autonome.

Kje

On peut recompiler le noyau Linux pour faire du temps réel (c'est ce que fait RTWiki d'ailleurs), mais je sais pas si c'est une bonne idée. :P

Merci pour ta réponse, je connais bien les automates programmables mais pour c'est plus de l'automatisme.

On parle aussi d'informatique industrielle, qui était le sujet de ta question. :D

Je ne suis pas d'accord avec toi, je pense que les entreprises qui font de l'informatique embarquée/industrielle n'utilisent pas de solutions comme le Raspberry Pi. Il s'agit plus de solution de prototypage à mon sens.

qarcicault

D'accord, je ne pensais pas à des solutions de qualité professionnelle. Je dois avouer qu'on sort de mon domaine de connaissance. :(

On peut recompiler le noyau Linux pour faire du temps réel (c'est ce que fait RTWiki d'ailleurs), mais je sais pas si c'est une bonne idée. 

Oui on peut mais ça a quelques conséquences, c'est pour ça que la majorité des Linux et en particulier Android ne le sont pas.

Sinon dans certaines automates on a le langage ST, qui est un langage textuel qui évoque un peu le BASIC. Voilà un document qui présente les principaux langages des automates (dont le ST) : http://snmaicpc.chez.com/pdf_zip/MAI2/cours/IEC_61131-3.pdf

Et en effet, c'est très différent de la programmation sur PC. Franchement, je pense qu'un adaptateur 230/400V pour RPI pourrait avoir un gros potentiel en industriel.

+0 -0

Oui on peut mais ça a quelques conséquences, c'est pour ça que la majorité des Linux et en particulier Android ne le sont pas.

Le patch PREEMPT-RT de Linux permet d'ajouter des contraintes de temps-réel "dures" (Wikipedia explique les différentes notions mieux que moi), mais je ne crois pas qu'il implique des grosses contraintes sur les systèmes (à part de coder des applications qui fonctionnent en conséquence). La plupart des systèmes sous Linux (Android inclus) n'ont pas besoin de cette notion de temps de réponse borné, car si ça ne marche pas dans un temps X, il n'y a aucun impact (ou au pire un utilisateur un peu énervé).

Un autre projet très intéressant est Xenomai, qui ajoute un noyau à côté de Linux (un co-noyau) qui va dispatcher le temps de calcul pour effectuer du temps-réel. L'avantage c'est que les programmes normaux n'ont aucune modification pour fonctionner, tandis que les applications Xenomai travailleront directement avec le noyau Xenomai. Comme c'est un peu compliqué, je vous laisse aller regarder sur le site si celà vous intéresse.

Sinon niveau langages, généralement ça dépend du projet et du niveau de criticité. Perso j'ai vu beaucoup de C.

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte