2017-08-10 2 views
0

J'utilise un automate (équipé de CODESYS) pour calculer la valeur de sortie d'un bloc fonctionnel. Afin de nous assurer que la fonction fonctionne comme elle le devrait, nous aimerions comparer cette valeur de sortie avec le résultat de sortie d'un autre bloc de fonction, que nous n'avons pas écrit.Comment effectuer des E/S de fichiers dans CODESYS (CEI 61131-3)?

Afin de rapporter le résultat de cette comparaison, nous aimerions avoir les deux valeurs mentionnées ci-dessus dessinées sous forme de graphique. Par conséquent, nous devons avoir une chaîne de temps de ces deux données (en csv ou tout autre format). J'ai fait des recherches google et aussi jeter un oeil à ce question. Il semble qu'il n'y ait pas beaucoup d'informations sur la façon de faire des E/S de fichiers en utilisant CODESYS.

Je me demande si quelqu'un a eu une expérience similaire (effectuer une E/S de fichier synchrone pour générer des données CSV).

Toute idée est très appréciée. Merci.

Répondre

0

La question est posée récemment dans la série de tutoriels Dr. Alizadeh sur Codesys. Voici un link. Il se réduit essentiellement à l'utilisation de la fonctionnalité de trace Codesys.

1

Voir la bibliothèque de fichiers: https://help.codesys.com/webapp/Examples;product=CAA_FILE;version=3.5.11.0

Fondamentalement, ce que vous avez à faire est:

  1. Créer un tampon de données pour vous des lignes CSV, par exemple
    LineArray : ARRAY[1..100] OF STRING[255].
  2. Save the valeurs mesurées au tampon de chaîne avec un certain intervalle. Utilisez CONCAT et REAL_TO_STRING pour créer une ligne CSV valide.

  3. Dans le même temps, ouvrir le fichier avec le bloc de fonction FILE.Open

  4. utiliser la poignée de fichier ouvert pour écrire des données dans le fichier (FILE.Write) à partir du tampon. N'oubliez pas de déplacer le tampon après avoir écrit avec par exemple MemCpy. Après l'écriture de toutes les lignes, utilisez FILE.Close.

+0

Merci Quirzo. Vous vous demandez si vous avez un exemple similaire. –

+0

J'ai seulement codé quelque chose de similaire avec les blocs TwinCAT. Il y a quelques exemples de blocs de fichiers TwinCAT, mais ils fonctionnent assez bien (ouvrir, écrire, fermer, etc.). [Lien vers la page de Beckhoff] (https://infosys.beckhoff.com/english.php?content=../content/1033/tcplclibsystem/html/tcplclibsys_fileio_example.htm&id=) – Quirzo

+0

super! Je vous remercie! –