Guten Tag,
ich möchte eine Verbindung mit einem Arduino UNO und einem MAXON MOTORS
Positioning Controller EPOS 24/5 über die serielle Schnittstelle
herstellen unm damit die Drehgeschwindigkeit regeln.
Hat jemand von euch die Kommunikation schon hergestellt, bzw weiß wo ich
diese finde oder wie das geht?
Ich habe ein Beispiel für Windows Visual . Jedoch weiß nicht weiß ich
nicht wie ich das Senden und Lesen der Daten über die serielle
Schnittstelle richtig übersetzten muss:
aus SerialCtrl.h
BOOL SerialCtrl::Read(char * inputData, const unsigned int & sizeBuffer,
unsigned long & length)
{
if (ReadFile(m_portHandle, // handle of file to read
inputData, // handle of file to read
sizeBuffer, // number of bytes to read
&length, // pointer to number of bytes read
NULL) == 0) // pointer to structure for data
{
// AfxMessageBox("Reading of serial communication has problem.");
return FALSE;
}
if (length > 0)
{
inputData[length] = NULL; // Assign end flag of message.
return TRUE;
}
return TRUE;
}
BOOL SerialCtrl::Write(const char * outputData, const unsigned int &
sizeBuffer, unsigned long & length)
{
if (length > 0)
{
if (WriteFile(m_portHandle, // handle to file to write to
outputData, // pointer to data to write to file
sizeBuffer, // number of bytes to write
&length,NULL) == 0) // pointer to number of bytes written
{
AfxMessageBox(L"Reading of serial communication has problem.");
return FALSE;
}
return TRUE;
}
return FALSE;
}
aus WinBase.h
WriteFile(
__in HANDLE hFile,
__in_bcount_opt(nNumberOfBytesToWrite) LPCVOID lpBuffer,
__in DWORD nNumberOfBytesToWrite,
__out_opt LPDWORD lpNumberOfBytesWritten,
__inout_opt LPOVERLAPPED lpOverlapped
);
WINBASEAPI
BOOL
WINAPI
ReadFile(
__in HANDLE hFile,
__out_bcount_part_opt(nNumberOfBytesToRead, *lpNumberOfBytesRead)
__out_data_source(FILE) LPVOID lpBuffer,
__in DWORD nNumberOfBytesToRead,
__out_opt LPDWORD lpNumberOfBytesRead,
__inout_opt LPOVERLAPPED lpOverlapped
);
Hab es dann doch alleine gelöst, siehe txt-Datei. Für das Beispiel die Geschwindigkeit auf 500 rpm zu setzten. Gruß
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.