Hoe kunnen we helpen?

Print

ASCII-tekens verzenden en ontvangen via de seriële poort van de HMI

 

In sommige gevallen moeten we de HMI gebruiken voor directe communicatie met een specifiek apparaat (printplaat, elektronisch apparaat,…) Dit voorbeeld laat zien hoe ASCII-tekens kunnen worden verzonden en ontvangen via de seriële poort van de HMI. Download dit voorbeeld om deze functie te testen.

Bekijk hoe het werkt in het gedeelte Macro’s van de HMI-Tool-software.

De 2 macro’s in de HMI zijn als volgt

Voor ontvangen gegevens

#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]) //Stop met het ontvangen van gegevens tijdens het wijzigen van ASCII, en ontvang ze weer na voltooiing
terugkeren;
memset(ch , 0 , 512);
length = GETCHARS(PortID,ch); /Ontvangst van gegevens
if(length > 2) /De ontvangstconditie van de gegevens is ingesteld, de eerste byte wordt niet weergegeven einde de laatste byte
{
LocalBit[1] = 1; //Bit ingesteld voor informatie (datalog, oproepscherm, ..)
memset(&LocalWord[100], 0 , 256);
memcpy((unsigned char *)(&LocalWord[100]) , &ch[0], length-0);
CLEARBUFFER(PortID); //leegmaken
}
}

Voor het verzenden van gegevens

#include "MacroInit.h"
#include
// KNOP VERZENDEN
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; //Ontvangen data
}