-> Hier kostenlos registrieren
ja, deswegen schrieb ich:
> Config-Bytes z.B.: 0x17, 0x27 d.h. je 8 Bytes rein und raus.
die Bytes werden letztlich aus einem String (der im Prinzip aus einer Einstellungs-Datenbank oder Ini-Datei kommt) extrahiert (z.B. sscanf) und dann in die Config-Bytes reingeschrieben.
Diese Bytes sind IMHO korrekt konfiguriert, da der Slave im Master mit denselben Bytes konfiguriert ist (0x17, 0x27) und die Verbindung aufgebaut wird und auch grundsätzlich funktioniert. Mit falschen Config-Bytes (und ebenso z.B. User-Parameter-Bytes) würde die Verbindung gar nicht erst zustande kommen (das habe ich auch ausprobiert). Man kann außerdem im Hilscher-Master die eingestellte Konfiguration des Slaves mit der tatsächlichen vergleichen und sieht dort auch genau diese Bytes sowie ein OK dazu.
Unsere GSD-Datei enthält einige Module die in Zweier-Potenzen gestaffelt sind, so daß man sich damit beliebige Längen zusammenstellen kann.
Wir verwenden aber im Test bisher nur die Bytes 0x11, 0x17, 0x21, 0x27 (also unidirektional, der Gedanke war, daß es bei diesen keine gemeinsamen Puffer geben sollte, im Gegensatz dazu vermuten wir bei den bidirektionalen z.B. 0x31 und 0x37 daß da derselbe Puffer verwendet werden könnte. Bei Hilscher ist es mit den uni- und bidirektionalen Modulen jedenfalls so.
Bei Hilscher sieht das übrigens so aus:
D.h. hier wird read und write nicht getrennt aufgerufen, aber die Puffer jeweils auf Null gesetzt, man könnte aber auch beide Puffer gleichzeitig austauschen. Deswegen vermute ich jetzt, daß bei Siemens DPS_get_output und DPS_set_input vielleicht immer zusammen benutzt werden müssen, wobei *ich* dann als Library-Entwickler dann nicht zwei getrennte Routinen anbieten würde.
Ich muß dazusagen, daß ich zwar Software-Profi bin (seit bald 30 Jahren, wir haben übrigens ein ganz ähnliches Geburtsdatum), aber nicht gerade ein Profibus-Spezialist (hier im Forum wird mich wahrscheinlich jeder in die Tasche stecken oder gar auslachen )
Bei Hilscher und deren Konfigurationstool war und ist das alles für mich recht logisch und intuitiv, bei Siemens habe ich jetzt eher das umgekehrte Erlebnis.
> Config-Bytes z.B.: 0x17, 0x27 d.h. je 8 Bytes rein und raus.
die Bytes werden letztlich aus einem String (der im Prinzip aus einer Einstellungs-Datenbank oder Ini-Datei kommt) extrahiert (z.B. sscanf) und dann in die Config-Bytes reingeschrieben.
Diese Bytes sind IMHO korrekt konfiguriert, da der Slave im Master mit denselben Bytes konfiguriert ist (0x17, 0x27) und die Verbindung aufgebaut wird und auch grundsätzlich funktioniert. Mit falschen Config-Bytes (und ebenso z.B. User-Parameter-Bytes) würde die Verbindung gar nicht erst zustande kommen (das habe ich auch ausprobiert). Man kann außerdem im Hilscher-Master die eingestellte Konfiguration des Slaves mit der tatsächlichen vergleichen und sieht dort auch genau diese Bytes sowie ein OK dazu.
Unsere GSD-Datei enthält einige Module die in Zweier-Potenzen gestaffelt sind, so daß man sich damit beliebige Längen zusammenstellen kann.
Wir verwenden aber im Test bisher nur die Bytes 0x11, 0x17, 0x21, 0x27 (also unidirektional, der Gedanke war, daß es bei diesen keine gemeinsamen Puffer geben sollte, im Gegensatz dazu vermuten wir bei den bidirektionalen z.B. 0x31 und 0x37 daß da derselbe Puffer verwendet werden könnte. Bei Hilscher ist es mit den uni- und bidirektionalen Modulen jedenfalls so.
Bei Hilscher sieht das übrigens so aus:
Code:
bool Kommun_Hilscher::
COM_send()
{
int iError =
DevExchangeIO(
mDevice,
0, mOutputDataLength, mOutputData,
0, 0, 0,
mWriteTimeout
);
if(IsError(iError, "DevExchangeIO/write"))
{
COM_close();
return false;
}
return true;
}
Code:
bool Kommun_Hilscher::
COM_receive()
{
int iError =
DevExchangeIO(
mDevice,
0, 0, 0,
0, mInputDataLength, mInputData,
mReadTimeout
);
if(IsError(iError, "DevExchangeIO/read"))
{
COM_close();
return false;
}
return true;
}
Ich muß dazusagen, daß ich zwar Software-Profi bin (seit bald 30 Jahren, wir haben übrigens ein ganz ähnliches Geburtsdatum), aber nicht gerade ein Profibus-Spezialist (hier im Forum wird mich wahrscheinlich jeder in die Tasche stecken oder gar auslachen )
Bei Hilscher und deren Konfigurationstool war und ist das alles für mich recht logisch und intuitiv, bei Siemens habe ich jetzt eher das umgekehrte Erlebnis.