Les fabricants de machines font face à une forte demande de polyvalence des lignes de productions. Ceux des fabricants qui souhaitent y répondre, tout en continuant à être rentables, devront fatalement recourir à des méthodes modernes de développement logiciel.
Un changement voulu par l’industrie
Comme les industries telles que l’automobile, l’agroalimentaire et la chimie/pharmacie cherchent à économiser sur le coût des opérations de fabrication, elles demandent aux concepteurs de machines une plus grande souplesse des lignes de production. Pour pouvoir optimiser les changements de produits, les machines s’adaptent à plus d’outils, à divers matériaux ou encore à des évolutions graduelles du produit fini.
Si cette adaptabilité a historiquement constitué la première réponse aux besoins des industriels, la nouvelle tendance consiste à combiner souplesse et modularité dans l’architecture, ce qui permet aux revendeurs de proposer des versions personnalisées à prix raisonnable.
Les revendeurs se transforment progressivement en intégrateurs-installateurs capables de fournir des lignes et des machines sur mesure. Pour tenir les budgets, la stratégie adoptée se base sur une modularité à la fois mécaniques et électriques. Si la transition, visible de l’extérieur, vers la modularité mécanique s’est effectuée efficacement et graduellement, en particulier la généralisation des servomoteurs dans les machines récentes, l’évolution correspondante du logiciel, invisible, a pris du retard. Les machines, dont les composants électriques et mécaniques sont hautement modulaires, continuent à être pilotées par des logiciels pour la plupart monolithiques. Un phénomène qui s’explique en partie par l’ignorance des fabricants quant aux économies en coût de développement que procure un logiciel modulaire. Cet état de fait ne pourra perdurer lorsque les industriels, soucieux de préserver leurs marges, migreront vers des méthodes modernes de développement logiciel.
Gérer le logiciel pour créer de la valeur
Les méthodes logicielles requises pour fournir des solutions évolutives de contrôle de machine passent par l’utilisation de composants modulaires. Le but consiste à concevoir une bibliothèque de composants logiciels validés une fois pour toutes, puis améliorés et étendus pour l’application par divers perfectionnements. La stratégie qui met en œuvre une méthode de développement réutilisant et enrichissant un socle de bibliothèques logicielles utilisables pour n’importe quelle machine devient indispensable. Elle devra se fonder sur une approche du type améliorations continues dans un contexte de conception itérative. Les avantages d’une telle méthode sont clairs ; toutefois, il faut aussi disposer des langages de programmation et des environnements de développement adéquats, faute de quoi toute tentative est vouée à l’échec. À l’heure actuelle, la plupart des plates-formes logicielles utilisent le langage RLL (Relay Ladder Logic), lequel ne permet ni modularité, ni encapsulation ; il faut donc impérativement planifier une migration vers un langage et un environnement plus moderne que RLL, et compatible avec les besoins économiques des fabricants.
La solution la plus raisonnable pour les revendeurs qui s’engagent dans la modularité logicielle est l’ensemble de langages de programmation IEC 61131-3. L’éventail d’organigrammes, de blocs fonctionnels, de diagrammes de blocs, de texte structuré ainsi que les diagrammes en échelle offrent la possibilité d’écrire des modules qui se comportent comme de véritables composants, et de séparer cette phase du développement du déploiement qui synchronisera et facilitera la communication entre les différents éléments. En sus des langages de programmation, on doit insister sur la disponibilité d’un vaste choix de structures de données et de gestion de fichiers rendant aisé l’échange d’informations entre les machines et les systèmes de production.
Maîtriser la chaîne logicielle
Les leçons tirées des dernières décennies de développement logiciel n’ont trouvé que peu d’échos dans le contrôle de machines. La mode, à l’heure actuelle, implique de définir une vue fonctionnelle du système, puis de traduire cette représentation en logique, fonctionnement opérationnel et déploiement. Quelques fabricants de machines reconnaissent les avantages du développement modulaire, à savoir un temps et un coût de développement réduit allié à une meilleure homogénéité du code quel que soit le produit. Cependant, la plupart des fabricants n’ont pas compris l’importance de rédiger une documentation qui définit clairement le comportement fonctionnel de la machine avant de se lancer dans le code. Chez beaucoup d’industriels la définition du besoin d’utilisateur échoit paradoxalement à l’ingénieur responsable de la conception d’une machine fonctionnelle. Généralement, d’écrire un ensemble de spécifications fonctionnelles pour formaliser le point de vue opérationnel ne fait pas partie du déroulement du projet ; lui ajouter cette perspective, cela signifie obtenir un déploiement cohérent de machine en machine, ainsi que rendre les recettes finales et la validation du fonctionnement du matériel plus aisées.
Pour les fabricants, les aspects du développement – logique, opérationnel, déploiement – ne sont pas perçues comme séparables ; partant, ces concepts ne sont pas fréquemment utilisés dans leurs méthodes de management. À l’inverse, ils s’en remettent à un petit groupe d’ingénieurs compétents pour mener leur projet à bien. Il n’est que temps de s’approprier ces méthodes de conceptions afin d’augmenter la robustesse du déploiement de futurs systèmes.
Conception logique : elle se concentre sur les structures de données et les blocs fonctionnels qui modélisent les éléments et les modes de fonctionnement du système dans son ensemble ;
Conception opérationnelle : elle définit les états opérationnels et se transcrit idéalement grâce aux textes structurés et aux diagrammes fonctionnels séquentiels ;
Déploiement et architecture : permet au développeur de spécifier comment l’application se répartit sur le système physique.Pour la conception logique, on peut recourir à une plate-forme de programmation standard. Une telle plate-forme définit et standardise tous les modes de fonctionnement de la machine, la gestion des erreurs, des événements et des alarmes. Les langages IEC 61131-3 et leurs outils associés sont parvenus à un tel niveau de maturité que les industriels peuvent maintenant les utiliser. En prenant conscience des
concepts sous-tendant le développement logiciel, les concepteurs de machines se constitueront
un référentiel cadre à l’aide duquel ils reconnaîtront les systèmes de contrôle d’automates permettant plus d’efficacité lors de la phase de développement logiciel.