Herunterladen Inhalt Inhalt Diese Seite drucken

Programmbeispiel: Umschaltung Auf Netzwerkbetrieb; Programmierungsbeispiel In Microsoft - Mitsubishi Electric FR-A800 Serie Bedienungsanleitung

Vorschau ausblenden Andere Handbücher für FR-A800 Serie:
Inhaltsverzeichnis

Werbung

(N) Kommunikationsbetrieb und Einstellungen
● Programmbeispiel: Umschaltung auf Netzwerkbetrieb

Programmierungsbeispiel in Microsoft

#include <stdio.h>
#include <windows.h>
void main(void){
HANDLE
hCom;
DCB
hDcb;
COMMTIMEOUTS
char
szTx[0x10];
char
szRx[0x10];
char
szCommand[0x10];
int
nTx,nRx;
int
nSum;
BOOL
bRet;
int
nRet;
int
i;
//**** Öffnet COM1 Port ****
hCom = CreateFile("COM1", (GENERIC_READ | GENERIC_WRITE), 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
if(hCom != NULL) {
//**** Kommunikationseinstellung des COM1 Ports ****
GetCommState(hCom,&hDcb);
hDcb.DCBlength = sizeof(DCB);
hDcb.BaudRate = 19200;
hDcb.ByteSize = 8;
hDcb.Parity = 2;
hDcb.StopBits = 2;
bRet = SetCommState(hCom,&hDcb);
if(bRet == TRUE) {
//**** Timeout-Einstellung des COM1 Ports ****
GetCommTimeouts(hCom,&hTim);
hTim.WriteTotalTimeoutConstant = 1000;
hTim.ReadTotalTimeoutConstant = 1000;
hTim.ReadTotalTimeoutConstantSetCommTimeouts(hCom,&hTim); // Setzt die geänderte Timeout-Einstellung
//**** Setzt den Befehl, um die Betriebsart des Station 1-Umrichters auf Netzwerkbetrieb zu wechseln ****
sprintf(szCommand,"01FB10000");
nTx = strlen(szCommand);
//**** Generiert Summencode ****
nSum = 0;
for(i = 0;i < nTx;i++) {
}
//**** Generiert Sende-Daten ****
memset(szTx,0,sizeof(szTx));
memset(szRx,0,sizeof(szRx));
sprintf(szTx,"\5%s%02X",szCommand,nSum);// ENQ code + send data + sum code
nTx = 1 + nTx + 2;
nRet = WriteFile(hCom,szTx,nTx,&nTx,NULL);
//**** Sendevorgang ****
if(nRet != 0) {
//**** Empfangsvorgang ****
}
}
CloseHandle(hCom);
}
}
5 - 598
// Kommunikations-Handle
// Structure für die Kommunikationseinstellungen
hTim;
// Structure für Timeout-Einstellungen
// Sende-Puffer
// Empfangs-Puffer
// Befehl
// Für die Puffergrößen
// Für die Prüfsummen-Berechnung
nSum += szCommand[i];
nSum &= (0xff );
nRet = ReadFile(hCom,szRx,sizeof(szRx),&nRx,NULL);
if(nRet != 0) {
//**** Zeigt die Empfangs-Daten an ****
for(i = 0;i < nRx;i++) {
printf("%02X ",(BYTE)szRx[i]); // Konsolenausgabe der Empfangs-Daten
// Stellt den ASCII-Code in Hexadezimal dar. Zeigt 30 bei „0" an.
}
printf("\n\r");
}
Visual C++
(Ver.6.0)
// Liest aktuelle Kommunikationsinformation aus
// Größe der Structure
// Übertragungsgeschwindigkeit = 19200 bps
// Datenlänge = 8 Bits
// Gerade Parität
// Stoppbit = 2 Bits
// Setzt die geänderten Kommunikationsdaten
// Liest aktuellen Timeout-Wert aus
// Schreibzugriff-Timeout 1 s
// Lesezugriff-Timeout 1 s
//Sende-Daten (Netzwerkbetrieb schreiben)
// Sende-Daten-Größe
// Initialisierung der Prüfsumme
// Berechnet die Prüfsumme
// Maskiert Daten
// Initialisierung des Sende-Puffers
// Initialisierung des Empfangs-Puffers
// Sende-Datenlänge ENQ Code+Länge Sende-Daten+Länge Prüfsumme
// Kommunikations-Port schließen
Parameter

Quicklinks ausblenden:

Werbung

Inhaltsverzeichnis
loading

Inhaltsverzeichnis