Wie können wir helfen?

Print

Senden und Empfangen von ASCII-Zeichen über die serielle Schnittstelle des HMI

 

In einigen Fällen müssen wir die HMI für eine direkte Kommunikation mit einem bestimmten Gerät (elektronische Platine, elektronisches Gerät,…) verwenden. Dieses Beispiel zeigt, wie man ASCII-Zeichen über die serielle Schnittstelle der HMI sendet und empfängt. Laden Sie dieses Beispiel herunter, um diese Funktion zu testen.

Sehen Sie sich die Funktionsweise im Abschnitt Makros der HMI-Tool Software an.

Die 2 Makros in der HMI sind wie folgt

Für den Empfang von Daten

#include "MacroInit.h"
#include
void Macro_main(IN *p)
{
MarcoInit
//ToDo
unsigned char ch[512];
int Länge = 0;
int PortID = 0; //com1:0 com2:1
if(LocalBit[0]) //Beim Ändern von ASCII den Datenempfang stoppen und nach Fertigstellung wieder empfangen
zurückgeben;
memset(ch , 0 , 512);
length = GETCHARS(PortID,ch); //Empfang von Daten
if(length > 2) //Die Empfangsbedingung der Daten ist gesetzt, das erste Byte wird nicht angezeigt und das letzte Byte
{
LocalBit[1] = 1; //Bit gesetzt für Informationen (Datenprotokoll, Aufrufbildschirm, ..)
memset(&LocalWord[100], 0 , 256);
memcpy((unsigned char *)(&LocalWord[100]) , &ch[0], length-0);
CLEARBUFFER(PortID);/Entleeren
}
}

Zum Senden von Daten

#include "MacroInit.h"
#include
// TASTE SENDEN
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; //Empfang von Daten
}