Step 7 Datenaustausch mit DP Slave

matziane

Level-1
Beiträge
120
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Guten Morgen,
habe ein kleines Problem beim Datenaustausch mit einem DP Slave.
Das Problem liegt meiner Meinung nach nicht am DP Slave selbst, eher an meinem Programm wie ich vermute.

Ich beschreibe mal im groben worum es geht.
Ich kommuniziere mit einem DP Slave, schicke einen Befehl, der DP Slave reagiert auf diesen Befehl und sendet mir Daten, so weit nicht spektakulär.
Ich bekomme Daten mit einer Maximallänge von 5 Byte, ordne die Daten die an den Peripherieeingangsadressen anstehen 2 tempvariablen zu (ein DWORD und ein BYTE).
Vergleiche den Befehl der zurück kommt und ordne die empfangenen Daten entsprechenden Stellen in einem DB zu.
Insgesamt werden Daten zu ca. 15 Befehlen geholt.
Für diese Vergleiche habe ich im Programm diverse Programmteile die je nach dem ob der entsprechende Befehl zurückgemeldet wurde bearbeitet oder übersprungen werden.

So, nun zum Problem.
Löse ich diesen "Datenholeprozess" aus, also Befehle nach und nach senden und Daten zuordnen so kommt es ab und an vor, dass die Daten eines Befehls bei einem anderen zugeordnet werden.
Es ist, wenn es passiert, immer um einen versetzt.
Habt ihr eine Idee was ich tun kann um das ganze sicherer zu machen?
Ich dachte an eine Pause zwischen den einzelnen Befehlen, falls es alles zu schnell ist.

Vielen Dank im voraus.
 
Zuletzt bearbeitet:
Wenn Sie z.b. 1 byte brauch fur das senden von ein bevel, muste sie bei die slave auch ein byte zuruch senden mit das befehl. in slave de entspechende date in ausgang platzen und ein kopie von das befel auch zurck senden (das gans ausgang bereich wie konsitense daten declarieren) in master konte sie dan wie auftrag nr und zuruck entfang auftrag gleich sind die daten auswerken.

Joop
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ah ja, der DP Slave sendet mir den empfangenen Befehl und die dazugehörigen Daten zurück.
Vergaß ich dazu zu schreiben´.
Über meinen zuletzt gesendeten Befehl und den zurück gemeldeten Befehl ordne ich die empfangenen Daten zu.
 
Bei die Slave 5 byte Ausgange deklarienen und bei konsitenz gesamt eingeben, dieser ausgangen in slave mit SFC15 schreiben und in master mit SFC14 lesen. Hiermit wurde die Data wie ein Block gelesen.
 
Zuletzt bearbeitet:
Zurück
Oben