Comment pouvons-nous aider ?

Print

Envoi et réception de caractères ASCII via le port série de l’IHM

 

Dans certains cas, nous avons besoin d’utiliser l’IHM pour une communication directe avec un dispositif spécifique (carte électronique, dispositif électronique,…) Cet exemple montre comment envoyer et recevoir des caractères ASCII à travers le port série de l’IHM. Téléchargez cet exemple pour tester cette fonctionnalité.

Voir comment cela fonctionne dans la section macros du logiciel HMI-Tool.

Les 2 macros de l’IHM sont les suivantes

Pour la réception 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 l’envoi de données

#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
}