Comment pouvons-nous aider ?

Print

Collecteur de données historiques de données ASCII provenant du port série

 

L’exemple suivant illustre l’utilisation du collecteur de données historiques avec une macro pour enregistrer des chaînes ASCII à partir du port série.

Les données sont automatiquement enregistrées lorsque le bit local LB1 est activé. LB1 est activé dans la macro n°0 lorsque les données arrivent sur COM

Vous pouvez :

      • Effacer toutes les données historiques
      • sauvegarder les données sur un disque USB (formaté FAT32) branché sur l’IHM
      • Faire une capture d’écran de l’écran de l’IHM sur le disque USB
      • Voir les données provenant du port COM
      • Envoyer des données via le port COM

Téléchargez cet exemple simple (projet HMI) : Collecteur de données historiques à partir de données ASCII provenant du port série

Après avoir appuyé sur le bouton [>USB], vous trouverez le fichier .csv sur le disque USB

Les 2 macros dans l’IHM sont les suivantes

Pour l’envoi de données

#include "MacroInit.h"
#include
void Macro_main(IN *p)
{
MarcoInit
//ToDo
unsigned char ch[512];
int length = 0 ;
int PortID = 0 ; //com1:0 com2:1
if(LocalBit[0]) //Arrêter la réception des données lors de la modification de l'ASCII, puis les recevoir une fois terminée
retour ;
memset(ch , 0 , 512) ;
length = GETCHARS(PortID,ch) ; //Réception des données
if(length > 2) //La condition de réception des données est établie, le premier octet n'est pas affiché et le dernier octet est affiché
{
LocalBit[1] = 1 ; //Bit défini pour les informations (enregistrement de données, écran d'appel, ...)
memset(&LocalWord[100], 0 , 256) ;
memcpy((unsigned char *)(&LocalWord[100]) , &ch[0], length-0) ;
CLEARBUFFER(PortID) ; //vidange
}
}

Pour les données de réception

#include "MacroInit.h"
#include
// BOUTON D'ENVOI
void Macro_main(IN *p)
{
MarcoInit
//ToDo
unsigned char ch[512];
unsigned char * data = (unsigned char *)(&LocalWord[0]) ;
int PortID = 0 ; //com1:0 com2:1
memset(ch , 0 , 512) ;
ch[0] = ':' ;
memcpy(&ch[1], data , strlen(data)) ;
ch[strlen(data) 1] = ' !
PUTCHARS(PortID,ch,strlen(data) 2) ;
LocalBit[0] = 0 ; /Réception des données
}