Hoe kunnen we helpen?

Print

Historische gegevensverzamelaar van ASCII-gegevens van seriële poort

 

Het volgende voorbeeld illustreert de toepassing van het Historische gegevensverzamelaar met een macro om ASCII-strings van de seriële poort op te nemen.

De gegevens worden automatisch opgenomen als de lokale bit LB1 is ingesteld. LB1 wordt ingesteld in macro nr. 0 wanneer gegevens binnenkomen op COM

U kunt:

      • Alle historische gegevens wissen
      • gegevens back-uppen op een USB-schijf (geformatteerd FAT32) die op de HMI is aangesloten
      • Een schermafbeelding maken van het scherm van de HMI op de USB-schijf
      • Gegevens bekijken die van de COM-poort komen
      • Gegevens verzenden via de COM-poort

Download dit eenvoudige voorbeeld (HMI-project) : Historische gegevensverzamelaar van ASCII-gegevens van seriële poort

Nadat u op de knop [>USB] hebt gedrukt, vindt u het .csv-bestand op de USB-schijf

De 2 macro’s in de HMI zijn als volgt

Voor gegevens verzenden

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