FR 3011102 A1 20150327 FR 1359126 A 20130923 0 1 1 1 0 2 1 DOMAINE TECHNIQUE GENERAL La présente invention concerne le domaine de la programmation graphique. Plus précisément, elle concerne un procédé de programmation graphique d'un système. ETAT DE L'ART La programmation graphique est une technique de programmation dans laquelle les programmes sont écrits par assemblage d'éléments graphiques. La syntaxe d'un langage de programmation graphique est composée d'objets disposés spatialement pour former des programmes. Le plus souvent sont utilisés des « blocs » et des « flèches », les premiers étant des entités reliées par les flèches qui représentent des relations (par exemple la valeur d'une variable). On connait de nombreux documents traitant de ces langages, tel que le brevet FR 2826746. Un tel paradigme de programmation est plus ergonomique que la syntaxe de lignes de codes, et rend ainsi plus abordable le développement de programmes par des personnes novices en informatique, en d'autres termes qui ne maîtrisent pas de syntaxes complexes. Pour cette raison, la programmation fonctionnelle est souvent préférée pour le développement d'applications embarquées, en particulier à des fins d'automatisation de systèmes. Ce sont en effet les utilisateurs de tels systèmes qui vont être amenés à programmer, et non des informaticiens. Toutefois, on constate que les programmes graphiques ne sont pas toujours clairs et intuitifs. Dès lors que le nombre de blocs augmente (et en particulier si un même type de bloc est utilisé plusieurs fois), il devient facile de faire des erreurs, par exemple si l'utilisateur confond deux blocs. A titre d'exemple, l'utilisateur peut par une erreur de câblage des blocs permuter les variables correspondant respectivement aux sorties d'un capteur de pression et d'un capteur de température. De telles erreurs n'empêcheront pas le programme de se lancer, mais il produira des résultats incorrects du système sur lequel il est mis en oeuvre. La vigilance requise pour que la programmation soit correcte alourdit le travail du développeur. Il serait ainsi souhaitable de disposer d'une façon de développer des applications embarquées qui soit à la fois simple d'utilisation (accessible 10 aux non-experts en programmation) et plus claire en termes de données et de sens (programmes à la compréhension intuitive). PRESENTATION DE L'INVENTION 15 La présente invention se rapporte ainsi selon un premier aspect à un procédé de programmation graphique d'un système comprenant la mise en oeuvre, par des moyens de traitement de données d'un équipement, d'étapes de : (a) Sélection puis disposition via une interface graphique d'une pluralité 20 d'éléments graphiques chacun représentatif d'un objet fonctionnel informatique ; (b) Génération et stockage, sur des moyens de stockage de données de l'équipement, d'un programme informatique exécutable par le système, ledit programme étant défini par les objets fonctionnels 25 informatiques représentés par les éléments graphiques ; caractérisé en ce qu'au moins un élément graphique présente une pluralité de représentations graphiques différentes, chacune porteuse d'un sens propre, l'étape (a) comprenant lors de la sélection dudit élément graphique la sélection d'une représentation graphique. 30 L'utilisation de représentations différentes permet d'apporter une sémantique supplémentaire aux éléments graphiques, de distinguer mieux diverses occurrences d'un bloc, et facilite la compréhension du programme par le développeur. Selon d'autres caractéristiques avantageuses et non limitatives : - chacune des représentations graphiques d'un élément graphique est associée à une grandeur physique, un état ou une valeur ; - chacune des représentations graphiques d'un élément graphique comprend combinés un premier objet graphique générique de l'élément graphique et un deuxième objet graphique spécifique de ladite représentation graphique ; - pour chaque élément graphique est stockée sur les moyens de stockage de données une liste des deuxièmes objets graphiques possibles pour ledit élément graphique, la sélection d'une représentation graphique d'un élément graphique consistant en la sélection d'un deuxième objet graphique dans la liste associée à cet élément graphique ; - une liste commune de deuxièmes objets graphiques est stockée sur les moyens de stockage de données, la sélection d'une représentation graphique d'un élément graphique consistant en la sélection d'un deuxième objet graphique dans la liste ; - le procédé comprend au moins deux modes d'affichage dans l'interface, chaque représentation graphique d'un élément graphique dépendant du mode d'affichage ; - un premier mode d'affichage permet la mise en oeuvre de l'étape (a), la sélection d'une représentation graphique d'un élément graphique étant mise 25 en oeuvre dans le deuxième mode d'affichage ; - le premier mode d'affichage est un mode de programmation graphique, et le deuxième mode d'affichage est un mode d'augmentation sémantique ; - l'étape (a) comprend en outre la génération via l'interface graphique d'au moins un lien entre deux éléments graphiques. 30 Selon un deuxième aspect, l'invention concerne un équipement comprenant des moyens de stockage de données et des moyens de traitement de données configurés pour la mise en oeuvre de : - un module de sélection et disposition via une interface graphique d'une pluralité d'éléments graphiques chacun représentatif d'un objet fonctionnel informatique ; - un module de génération et stockage sur les moyens de stockage de données d'un programme informatique exécutable par le système, ledit programme étant défini par les objets fonctionnels informatiques représentés par les éléments graphiques ; caractérisé en ce qu'au moins un élément graphique présente une pluralité de représentations graphiques différentes, chacune porteuse d'un sens propre, le module de sélection et de disposition permet en outre lors de la sélection dudit élément graphique la sélection d'une représentation graphique. Selon un troisième et un quatrième aspect, l'invention concerne respectivement un produit programme d'ordinateur comprenant des instructions de code pour l'exécution d'un procédé selon le premier aspect de l'invention de programmation graphique d'un système ; et un moyen de stockage lisible par un équipement informatique sur lequel un produit programme d'ordinateur comprend des instructions de code pour l'exécution d'un procédé selon le premier aspect de l'invention de programmation graphique d'un système. PRESENTATION DES FIGURES D'autres caractéristiques et avantages de la présente invention apparaîtront à la lecture de la description qui va suivre d'un mode de réalisation préférentiel. Cette description sera donnée en référence aux dessins annexés dans lesquels : - la figure 1 est une architecture de système pour la mise en oeuvre du procédé selon l'invention ; - la figure 2 représente un exemple de programme graphique affiché lors du procédé selon l'invention ; - la figure 3 représente un exemple d'un second mode d'affichage rencontré lors du procédé selon l'invention. DESCRIPTION DETAILLEE Architecture En référence à la figure 1, le présent procédé est un procédé de programmation graphique d'un système 2. Ce dernier peut être n'importe quel dispositif ou ensemble de dispositifs apte à mettre en oeuvre une application embarquée, par exemple via un microcontrôleur 21. Dans des exemples qui seront détaillés plus loin, le système 2 est un réservoir d'eau chaude. Le procédé est mis en oeuvre via un équipement 1 qui peut être n'importe quel poste informatique comprenant des moyens de traitement de données 11 (par exemple un processeur), des moyens de stockage de données 12 (par exemple un disque dur) et des moyens d'affichage d'une interface graphique 13 (par exemple un écran). Des moyens de saisie 14 (tels qu'un clavier et une souris) permettent à un utilisateur souhaitant programmer graphiquement d'interagir avec l'interface graphique 13. Il est à noter que le présent procédé n'est pas limité à l'utilisation d'un poste de travail, et que d'autres types d'équipements tels qu'une tablette tactile peuvent tout à fait être utilisés. Programmation graphique De façon classique, la programmation graphique comprend la mise en oeuvre par les moyens de traitement de données 11 d'étapes de : (a) Sélection puis disposition via l'interface graphique 13 d'une pluralité d'éléments graphiques B1, B2a, B2b chacun représentatif d'un objet fonctionnel informatique ; et (b) Génération et stockage sur les moyens de stockage de données 12 d'un programme informatique exécutable par le système 2, ledit programme étant défini par les objets fonctionnels informatiques représentés par les éléments graphiques Chaque élément graphique B1, B2a, B2b, appelé également « outil formel » définit un objet fonctionnel informatique, c'est-à-dire une fonctionnalité élémentaire ou complexe d'un programme généré via le procédé. Un élément graphique prend la forme d'un bloc lorsqu'affiché via l'interface graphique 13 dans « l'espace formel » de programmation graphique, c'est-à-dire le mode d'affichage (la vue) dans laquelle un utilisateur code en sélectionnant et disposant des éléments graphiques. On verra par ailleurs plus loin qu'il peut y avoir plus d'un mode d'affichage. A titre d'exemple un élément « Bargraphe », tel que nous le verrons plus loin, affiche une grandeur physique sous forme visuelle lorsque le programme est exécuté. Il s'agit typiquement d'un élément graphique dont 20 l'utilisation peut être source de confusion, car plusieurs grandeurs physiques indépendantes peuvent être utilisées dans un même système 2. La sélection et la disposition d'un élément graphique B1, B2a, B2b dans l'espace de programmation graphique est appelée projection. De façon préférée, elle se réalise par glisser/déposer depuis une zone de 25 l'interface sur laquelle les éléments graphiques B1, B2a, B2b disponibles sont représentés. Alternativement la sélection manuelle des éléments graphiques est possible. Les éléments graphiques B1, B2a, B2b peuvent être dupliqués, déplacés, supprimés via les moyens de saisie 14, et surtout ils peuvent être 30 câblés. En d'autres termes, des liens peuvent être établis entre les éléments graphiques B1, B2a, B2b de sorte à créer des relations telles que la fourniture de variables. Chaque bloc a en effet une ou plusieurs entrées et/ou une ou plusieurs sorties. Un lien va d'une sortie d'un bloc à une entrée d'au moins un autre. Toute modification se traduit directement par une modification correspondante dans l'interface graphique 13. Il est à noter que chaque élément graphique B1, B2a, B2b est identifié de façon unique (y compris si plusieurs occurrences d'un même objet graphique B1, B2a, B2b sont présentes). Lorsque le programme est complété, il est compilé de sorte à être exécutable par le système 2 (par exemple en le transférant dans une mémoire du microcontrôleur 21). Occurrences d'un élément graphique Le présent procédé se distingue en ce qu'au moins un élément 15 graphique B1, B2a, B2b présente une pluralité de représentations graphiques différentes, chacune porteuse d'un sens propre. Par « porteuses d'un sens propre », on entend dont l'apparence est suffisamment modifiée pour enrichir sémantiquement l'élément graphique B1, B2a, B2b, et accroitre la compréhension du programme. 20 Par exemple, changer la couleur ou la taille de l'élément graphique B1, B2a, B2b n'est pas suffisant pour que sa représentation graphique soit porteuse de sens. Au contraire, adjoindre à l'élément graphique B1, B2a, B2b un symbole ou un dessin représentatif d'une grandeur physique, d'un usage, d'une information spatiale, d'une information temporelle d'un état, 25 d'une valeur, etc. : augmente son contenu sémantique. Le développeur fait alors très facilement la différence entre deux occurrences sémantiquement différentes d'un élément graphique lors du câblage. Son travail est simplifié et les erreurs sont évitées. La figure 2 représente un exemple d'éléments graphiques 30 « Bargraphe » ainsi enrichis sémantiquement. Ici, les éléments B1 définissent deux entrées capteurs et les éléments B2 deux objets Bargraphe. Dans le premier cas (ligne du haut), le capteur est un capteur de remplissage du système 2 (un réservoir d'eau chaude) et le bargraphe affiche un niveau d'eau. Dans le deuxième cas (ligne du bas), le capteur est un capteur de température du système 2 et le bargraphe affiche la température de l'eau stockée. On a donc deux fonctionnalités différentes qui peuvent être représentées par l'objet bargraphe. Pour dissiper toute ambiguïté, la première représentation graphique B2a du bargraphe comprend le dessin d'un réservoir d'eau, ce qui symbolise sémantiquement un niveau, et la deuxième représentation graphique B2b du bargraphe comprend le dessin 10 d'un thermomètre, ce qui symbolise sémantiquement une température. Dans cet exemple, chacune des représentations graphiques d'un élément graphique B2a, B2b comprend combinés un premier objet graphique générique de l'élément graphique et un deuxième objet graphique 02a, 02b spécifique de ladite représentation graphique. 15 Le premier objet graphique générique est en particulier l'apparence « par défaut » de l'élément graphique B2a, B2b, en d'autres termes la représentation graphique non enrichie sémantiquement (juste le bloc). Le deuxième objet graphique 02a, 02b est typiquement un symbole additionnel : dans l'exemple le réservoir ou le thermomètre. Le deuxième 20 objet graphique 02a, 02b est par exemple superposé au premier objet graphique dans l'interface graphique 13. De façon à définir l'apparence de l'élément graphique, l'étape (a) comprend lors de la sélection dudit élément graphique B2a, B2b la sélection d'une représentation graphique (correspondant à la signification souhaitée 25 par l'utilisateur). Cette sélection peut se faire manuellement parmi une pluralité de représentations graphiques différentes prédéterminées pour l'élément graphique B2a, B2b, mais de façon préférée la « projection fonctionnelle », qui va à présent être décrite, est utilisée. 30 En cas d'utilisation de seconds objets graphiques 02a, 02b, il peut y avoir une liste d'objets possibles par élément graphique B2a, B2b, ou encore une liste globale pour tous les éléments graphiques B2a, B2b. Projection fonctionnelle Par projection fonctionnelle, on entend la projection d'un élément graphique B1, B2a, B2b dans plus d'un espace formel. L'espace formel de programmation graphique a déjà été évoqué, et l'on peut utiliser un ou plusieurs autres espaces formels, appelé espaces d'affichage, correspondant à d'autres mode d'affichage, en particulier un deuxième mode (mode d'augmentation sémantique). Il peut s'agir d'un mode de simulation, dans lequel l'utilisateur peut apercevoir un exemple de mise en oeuvre de son programme, mais également un mode « Web », qui affiche un rendu sous la forme d'une page internet, ou encore un mode qui reproduit un affichage sur le système 2. Ces différents modes d'affichage peuvent cohabiter. Dans chaque espace formel, la projection d'un élément graphique B1, B2a, B2b prend une apparence particulière dans l'interface graphique 13. Il est possible de passer à tout moment d'un espace à un autre (changer de mode d'affichage). Le deuxième espace formel, dont un affichage est représenté par la figure 3, donne un aperçu de l'objet fonctionnel informatique défini par un élément graphique B1, B2a, B2b (il s'agit en d'autres termes d'un exemple du résultat de la mise en oeuvre de cet élément). On voit dans la figure 3 les deux occurrences du bargraphe. Cet espace permet d'attacher à un élément graphique B1, B2a, B2b toute représentation graphique adéquate. Une fois qu'un élément graphique B1, B2a, B2b y a été projeté (il est tout à fait possible d'introduire de nouveaux éléments graphiques B1, B2a, B2b par simple glisser/déposer, comme dans l'autre espace) l'utilisateur peut définir les représentations graphiques éventuellement en sélectionnant dans une base de données ou en fournissant lui-même des images. Il peut y avoir comme expliqué un vaste réservoir de deuxièmes objets graphiques 02a, 02b (une liste) pouvant être à tout moment consulté de sorte à générer une nouvelle représentation pour n'importe quel objet graphique B1, B2a, B2b au fur et à mesure des signifiances qui apparaissent. Cela permet ainsi de façon très intuitive à un utilisateur de créer les diverses occurrences d'un élément graphique B1, B2a, B2b dont il aura besoin dans l'autre espace formel (l'espace de programmation graphique) : par exemple, voyant les occurrences du bargraphe et l'ambiguïté qui peut en résulter, il peut aisément donner une valeur sémantique différente aux deux occurrences en attachant les représentations décrites précédemment, et en particulier en fixant le deuxième objet 02a, 02b (réservoir/thermomètre). Ainsi, lorsqu'il revient dans l'espace de programmation graphique, les représentations graphiques des éléments graphiques B1, B2a, B2b sont avantageusement automatiquement reportées, et à présent affichées. Cela permet une programmation encore plus intuitive, car l'utilisateur peut ainsi accroître la compréhension du programme au fur et à mesure de sa génération, et ce sans effort de sa part, en passant d'un espace à l'autre et en sélectionnant des représentations graphiques particulières Equipement Selon un deuxième aspect, l'invention concerne un équipement 1 pour la mise en oeuvre du procédé de programmation graphique selon le premier aspect de l'invention, tel que visible sur la figure 1. Il s'agit ainsi d'un équipement de développement d'applications pour le système 2. L'équipement comprend comme expliqué des moyens de stockage de données 12 et des moyens de traitement de données 11 configurés pour la mise en oeuvre de : un module de sélection et disposition via une interface graphique 13 (dans un premier mode d'affichage) d'une pluralité d'éléments graphiques B1, B2a, B2b chacun représentatif d'un objet fonctionnel informatique ; un module de génération et stockage sur les moyens de stockage de données 12 d'un programme informatique exécutable par le système 2, ledit programme étant défini par les objets fonctionnels informatiques représentés par les éléments graphiques ; Un élément graphique B1, B2a, B2b présente comme expliqué une pluralité de représentations graphiques différentes, chacune porteuse d'un sens propre, le module de sélection et de disposition permet ainsi en outre lors de la sélection dudit élément graphique B1, B2a, B2b la sélection d'une représentation graphique, éventuellement via un deuxième mode d'affichage. Produit programme d'ordinateur Selon un troisième et un quatrième aspects, l'invention concerne un produit programme d'ordinateur comprenant des instructions de code pour l'exécution (sur des moyens de traitement de donnés 11, en particulier ceux de l'équipement 1) d'un procédé selon le premier aspect de l'invention de programmation graphique, ainsi que des moyens de stockage lisibles par un équipement informatique (par exemple les moyens de traitement de données 12 de l'équipement 1) sur lequel on trouve ce produit programme d'ordinateur. REVENDICATIONS1. Procédé de programmation graphique d'un système (2) comprenant la mise en oeuvre, par des moyens de traitement de données (11) d'un équipement (1), d'étapes de : (a) Sélection puis disposition via une interface graphique (13) d'une pluralité d'éléments graphiques (B1, B2a, B2b) chacun représentatif d'un objet fonctionnel informatique ; (b) Génération et stockage, sur des moyens de stockage de données (12) de l'équipement (1), d'un programme informatique exécutable par le système (2), ledit programme étant défini par les objets fonctionnels informatiques représentés par les éléments graphiques ; caractérisé en ce qu'au moins un élément graphique (B1, B2a, B2b) présente une pluralité de représentations graphiques différentes, chacune porteuse d'un sens propre, l'étape (a) comprenant lors de la sélection dudit élément graphique (B1, B2a, B2b) la sélection d'une représentation graphique. 2. Procédé selon la revendication 1, dans lequel chacune des représentations graphiques d'un élément graphique (B1, B2a, B2b) est associée à une grandeur physique, un état ou une valeur. 3. Procédé selon l'une des revendications 1 à 2, dans lequel chacune des représentations graphiques d'un élément graphique (B1, B2a, B2b) comprend combinés un premier objet graphique générique de l'élément graphique et un deuxième objet graphique (02a, 02b) spécifique de ladite représentation graphique. 4. Procédé selon la revendication 3, dans lequel pour chaque élément graphique (B1, B2a, B2b) est stockée sur les moyens de stockage de données (12) une liste des deuxièmes objets graphiques (02a,02b) possibles pour ledit élément graphique (B1, B2a, B2b), la sélection d'une représentation graphique d'un élément graphique (B2a, B2b) consistant en la sélection d'un deuxième objet graphique (02a, 02b) dans la liste associée à cet élément graphique (B2a, B2b). 5. Procédé selon la revendication 3, dans lequel une liste commune de deuxièmes objets graphiques (02a, 02b) est stockée sur les moyens de stockage de données (12), la sélection d'une représentation graphique d'un élément graphique (B2a, B2b) consistant en la sélection d'un deuxième objet graphique (02a, 02b) dans la liste. 6. Procédé selon l'une des revendications précédentes, comprenant au moins deux modes d'affichage dans l'interface (13), chaque représentation graphique d'un élément graphique (B1, B2a, B2b) dépendant du mode d'affichage. 7. Procédé selon la revendication 6, dans lequel un premier mode d'affichage permet la mise en oeuvre de l'étape (a), la sélection d'une représentation graphique d'un élément graphique (B1, B2a, B2b) étant mise en oeuvre dans le deuxième mode d'affichage. 8. Procédé selon l'une des revendications 6 et 7, dans lequel le premier mode d'affichage est un mode de programmation graphique, et le deuxième mode d'affichage est un mode d'augmentation 25 sémantique. 9. Procédé selon l'une des revendications précédentes, dans lequel l'étape (a) comprend en outre la génération via l'interface graphique (13) d'au moins un lien entre deux éléments graphiques (B1, 30 B2a, B2b). 10. Equipement (1) comprenant des moyens de stockage de données (12) et des moyens de traitement de données (11) configurés pour la mise en oeuvre de : - un module de sélection et disposition via une interface graphique (13) d'une pluralité d'éléments graphiques (B1, B2a, B2b) chacun représentatif d'un objet fonctionnel informatique ; - un module de génération et stockage sur les moyens de stockage de données (12) d'un programme informatique exécutable par le système (2), ledit programme étant défini par les objets fonctionnels informatiques représentés par les éléments graphiques ; caractérisé en ce qu'au moins un élément graphique (B1, B2a, B2b) présente une pluralité de représentations graphiques différentes, chacune porteuse d'un sens propre, le module de sélection et de disposition permet en outre lors de la sélection dudit élément graphique (B1, B2a, B2b) la sélection d'une représentation graphique. 11. Produit programme d'ordinateur comprenant des instructions de code pour l'exécution d'un procédé selon l'une des revendications 1 à 9 de programmation graphique d'un système (2). 12. Moyen de stockage lisible par un équipement informatique sur lequel un produit programme d'ordinateur comprend des instructions de code pour l'exécution d'un procédé selon l'une des revendications 1 à 9 de programmation graphique d'un système (2).25