¿Cómo podemos ayudar?

Print

Recopilador de datos históricos de datos ASCII del puerto serie

 

El siguiente ejemplo ilustra la aplicación del Colector de Datos Históricos con una macro para grabar cadenas ASCII desde el puerto serie.

Los datos se registran automáticamente cuando se activa el bit local LB1. LB1 se establece en la macro n°0 cuando los datos llegan a COM

Se puede:

      • Borrar todos los datos históricos
      • hacer una copia de seguridad de los datos en un disco USB (formateado en FAT32) conectado a la HMI
      • Capturar la pantalla de la HMI en el disco USB
      • Ver los datos que vienen del puerto COM
      • Enviar datos a través del puerto COM

Descargue este sencillo ejemplo (proyecto HMI) : Colector Histórico de Datos ASCII desde Puerto Serie

Después de pulsar el botón [>USB], encontrará el archivo .csv en el disco USB

Las 2 macros en la HMI son las siguientes

Para enviar datos

#include "MacroInit.h"
#include
void Macro_main(IN *p)
{
MarcoInit
/Hacer
unsigned char ch[512];
int longitud = 0
int PortID = 0; //com1:0 com2:1
if(LocalBit[0]) //Detener la recepción de datos al modificar ASCII, y recibirlos al finalizar
devolver;
memset(ch , 0 , 512);
length = GETCHARS(PortID,ch); //Recibir datos
if(length > 2) //Se establece la condición de recepción de los datos, el primer byte no se muestra finaliza el último byte
{
LocalBit[1] = 1; //Bit establecido para información (registro de datos, pantalla de llamada, ..)
memset(&LocalWord[100], 0 , 256);
memcpy((unsigned char *)(&LocalWord[100]) , &ch[0], length-0);
CLEARBUFFER(PortID); //vaciar
}
}

Para recibir datos

#include "MacroInit.h"
#include
// BOTÓN DE ENVÍO
void Macro_main(IN *p)
{
MarcoInit
/Hacer
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(datos) 1] = '!';
PUTCHARS(PortID,ch,strlen(data) 2);
LocalBit[0] = 0; //Recepción de datos
}