Accueil > Forum > Discussions sur des problèmes généraux > Analyse de chaîne à partir du port série
- Ce sujet a 2 réponses, 2 participants et a été mis à jour pour la dernière fois 1 année, 10 mois da Stefano.
-
auteurPost
-
Mai 20, 2022 à 3: pm 54 #65318StefanoPartecipante
Je dois interfacer une ancienne presse à un SCADA pour surveiller son fonctionnement.
La presse me donne 4 contacts propres avec les signaux :- Cycle en cours
- Opération automatique
- Opération manuelle
- Arrêt pour alarmeil dispose également d'un port série, auquel une imprimante texte uniquement doit être connectée, qui à la fin de chaque cycle produit une chaîne contenant une dizaine de valeurs de fonctionnement et un caractère de nouvelle ligne. Donc quelque chose comme :
"1.33 84.9 7893 22.5 6.74 etc. etc."
"1.93 87.4 7894 23.5 6.94 etc. etc."Les chaînes sont toujours longues de 80 caractères, les valeurs semblent être des champs à largeur fixe alignés à droite.
Je devrais acquérir les valeurs numériques et les rendre disponibles sur un mot via modbus TCP, ce qui est assez trivial. En même temps, lire la chaîne depuis la ligne série jusqu'au caractère de fin de ligne, écarter les lignes invalides (lorsque la machine calcule qu'elle est sur une nouvelle feuille, elle émet les en-têtes de colonne et les tirets), diviser les champs, convertissez-les du texte en nombre et mettez-les à disposition via modbus. Peut-être enregistrer les chaînes reçues sur un fichier texte pour le débogage.
Je pensais utiliser un MPS056A320.
L'idée était de faire une boucle qui lit un caractère à la fois à partir de la série et l'ajoute à un tampon. Une fois que vous atteignez les 80 caractères, ou le caractère de saut de ligne, divisez la chaîne en X chaînes de dimension Yx et convertissez-les avec SysVarsscanf. Si SysVarsscanf ne donne pas d'erreurs, copiez les données aux emplacements accessibles par modbus.
L'approche est un peu de bas niveau mais elle me semble assez robuste.
Y a-t-il des librairies plus avancées qui m'échappent ?Mai 23, 2022 à 10: 29 am #65321Sergio BertanaAdministrateur du forumJe dirais que c'est la meilleure solution, si vous jetez un oeil au chapitre Semplice protocollo seriale dans la documentation FB SysSerialPort, vous avez déjà trouvé un point de départ pour votre application.
June 8, 2022 à 11: 28 am #65484StefanoPartecipantePour déboguer l'application, il serait utile d'avoir une page Web qui affiche le journal des chaînes arrivées via série. Exactement ce que fait la page Web du système qui affiche les journaux. Existe-t-il un moyen standard de le répliquer en s'appuyant sur un fichier texte différent ?
-
auteurPost
- Vous devez être connecté pour répondre à ce sujet.