Question

Nous connaissons tous les différentes manières de tester les systèmes OO. Cependant, il semble que je vais faire un projet dans lequel je traiterai de la logique à relais PLC (ne demandez pas: /), et je me demandais s'il y avait un bon moyen de tester la validité du système.

Pour l'instant, la seule façon dont je vois les choses est simplement de construire un grand tableau avec tous les états connus du système et les états de sortie générés. Ceci ferait pour les cas simples «si l'entrée A est activée, activez la sortie B». Je ne pense pas que cela fonctionnera pour des constructions plus compliquées cependant.

Était-ce utile?

La solution

La vérification de "logique" Les systèmes du domaine de la conception de circuits intégrés sont appelés "vérification de conception", processus permettant de s'assurer que le système que vous concevez en matériel (RTL) implémente la fonctionnalité souhaitée.

La logique à relais peut être transformée en l'un des HDL modernes comme Verilog .. transformer chaque échelle

|---|R15|---+---|/R16|---------(R18)--------|
|           |
|---|R12|---+

à une expression comme

always @(*) R18 = !R16 && ( R15 | R12);

ou vous pouvez utiliser une instruction d'affectation

assign R18 = R16 && (R15 | R12); 

un relais à verrouillage

assign R18 = (set condition) || R18 && !(break condition);

Utilisez ensuite un simulateur Verilog gratuit, comme Icarus , pour développer un banc d'essai et tester votre système. . Assurez-vous que vos tests donnent une bonne couverture de votre logique par CODE! Et si votre logiciel d’édition en échelle vous offre des capacités de nommage convenables, utilisez-les plutôt que Rnn.

(Remarque: dans la convention Ladder Logic pour PLC, Rnn est destiné aux relais internes, alors que Xnn est une entrée et Ynn est une sortie, comme le montre rapidement l'un des didacticiels en ligne.

Verilog sera un langage plus simple pour développer vos tests et vos bancs d’essais!

Il peut être utile de programmer des retards dans certaines unités.

Désolé, je n’ai jamais cherché de logique d’échelle vers / depuis les traducteurs de Verilog .. mais la logique du ladder de ma journée ne faisait que figurer dans un ordinateur pour la programmation des automates. La plupart des systèmes de relais que j’utilisais étaient de vrais relais, câblés dans des armoires!

Bonne chance. jbd

Il existe plusieurs éditeurs de logique à relais (avec des simultateurs) disponibles gratuitement. voici un qui fonctionne sur Windows soi-disant:

http://cq.cx/ladder.pl

Autres conseils

Nous avons expérimenté des outils de couverture de test pour les contrôleurs Rockwell Control Logix. La plupart des outils de couverture de test linguistique procédural couvrent une branche ou une autre; Parce que la logique à relais de relais ne branche généralement pas, cela ne fonctionne pas très bien.

Ce que nous avons créé comme prototype est MC / DC (modification / condition / décision, couverture ) pour le code RLL pour les contrôleurs Rockwell .. Cela indique, pour chaque condition de la ligne, si cette condition a été testée comme TRUE, testée comme FALSE et, ce qui est plus important, si la condition contrôlait la sortie de la décision dans la ligne (bien au moins l'action contrôlée par la décision) dans les deux sens vrai et faux sous un test.

Ce travail est effectué à l'aide d'un outil d'analyse et de transformation de programme à usage général appelé DMS était utilisé pour donner au code RLL une logique supplémentaire permettant de collecter les données nécessaires.

Vous devez encore coder les tests unitaires. Pour ce faire, le plus simple consiste à faire en sorte qu'un autre automate remplace le matériel mécanique que vous souhaitez contrôler et écrivez simplement un autre programme RLL pour exercer le premier.

Il existe un programme appelé LogixPro qui possède un simulateur d'E / S pour la logique à relais, vous pouvez l'essayer.

Parfois, dans les petits programmes d'automate, un programme de test (ou sous-routine ou fichier schéma) est écrit dans le projet, qui n'est exécuté que lorsque le projet est émulé. Le fichier a une logique simple qui dit que lorsqu'une sortie est activée, activez l'entrée associée au retour. Vous pouvez ensuite contrôler votre automate par le biais de l'interface HMI et voir que le code se comporte comme prévu. Il est très important de désactiver ou de supprimer le programme de test lorsque le logiciel est téléchargé sur un site Web réel, car il peut faire des choses très étranges dans le monde réel.

Sur les projets plus importants, chaque appareil dispose d'un mode de simulation qui fait quelque chose de légèrement similaire. http://www.batchcontrol.com/s88/01_tutorial/06-modules.shtml

Cela n’a rien de comparable avec l’utilisation de structures de test pour les langages orientés objet, mais je n’ai pas vraiment vu de développement piloté par les tests pour les automates programmables, ni même de nombreux tests automatisés.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top