Bit sezten /zurücksetzen

Bender25

Level-2
Beiträge
584
Reaktionspunkte
20
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen. Steh mal wieder vor einem kleinen Problem, bzw. nicht wirklich einem Problem nur würde ich gerne mal wissen wir ihr das so macht.

2 S7 Steuerung tauschen via Funk Daten aus.
Problem ist jetzt nur, wird z.b. ein Befehl (Bit wird gesetzt) von der 1. Steuerung zur 2.Steuerung gesendet kann ich es in der 2. Steuerung nicht einfach zurück setzen, da dieses Bit ja wieder mit 1 überschrieben wird, da es in der 1. S7 noch gesetzt ist.

Jetzt könnte ich dieses Bit wieder zurück melden und in der 1. S7 zurück setzen. Aber dann hab ich ja wieder das Bit von der 2. Steuerung :confused:

2. Alternative wäre das Bit jeweils nur eine gewisse Zeit anstehen zu lassen. Aber wird es dann auch übertragen?

Wie macht ihr das ganze???

Ich weiß kleines Problem. Aber finde keine saubere lösung.

Edith: Sorry für den schreibfehler in der Überschrift
Und in der ersten S7 werden die Daten via Profibus Ein/Ausgelesen
in der 2. S7 via RK512
 
Zuletzt bearbeitet:
Kommt natürlich darauf an, wieviele Bits, Daten. Ich würde die zu schreibenden Daten in SPS 1 beschreiben, dann ein Sendebit setzen. Die 2. SPS empfängt das Sendebit, übernimmt die Daten und schickt ein Bestätigungsbit zurück, woraufhin die SPS 1 das Sendebit auf False setzt. SPS2 erkennt, daß das Sendebit False ist und setzt ihr Bestätigungsbit ebenfalls zurück. Nun kann das ganze wieder starten.

Startbedingung der Kommunikation
Sendebit SPS 1 = 0
Empfangsbit SPS 2 = 0

SPS 1 Daten beschreiben
SPS 1 setzt Sendebit = 1

SPS 2 empfängt Sendbit = 1
SPS 2 kopiert die gesendeten Daten um
SPS 2 setzt Empfangsbit = 1

SPS 1 empfängt Empfangsbit = 1
SPS 1 setzt Sendebit = 0

SPS 2 empfängt Sendebit = 0
SPS 2 setzt Empfangsbit = 0

Fertig, nun kann der Vorgang wieder starten.
Sende und Empfangsbit kann man Zeitüberwachen um mit einer Timeoutmeldung auf Fehler zu reagieren.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
ich würde nicht die zu setzenden/rückzusetzenen Bits übertragen.
Ich würde nur die Setz- und Rücksetzbedingungen über die Kommunikation austauschen. So kann ich dann auch in jeder Steuerung gleich sehen von welcher Steuerung gerade der Setz- oder Rücksetzbefehl kommt. Diese Variante erhöht allerdings das Datenaufkommen welches auszutauschen ist.

MfG Fritze.
 
Danke erst einmal für die schnelle Antworten.

Ich muss wie gesagt folgende Dinge übertragen

8 REAL -Sollwerte
16 Befehle
 
Also, ich muss gestehen, dass ich den Beitrag von Fritze nicht so recht verstanden habe ...

Wenn ich die Sache machen würde, dann würde das bei mir sicherlich grundsätzlich mit einem Handshake (also ähnlich Vorschlag Ralle) laufen. Ggf. kann man sich von der anderen Seite zurückschicken lassen, was sie verstanden hat (bei haarigen Sachen).

Gruß
LL
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Also, ich muss gestehen, dass ich den Beitrag von Fritze nicht so recht verstanden habe ...

Wenn ich die Sache machen würde, dann würde das bei mir sicherlich grundsätzlich mit einem Handshake (also ähnlich Vorschlag Ralle) laufen. Ggf. kann man sich von der anderen Seite zurückschicken lassen, was sie verstanden hat (bei haarigen Sachen).

Gruß
LL

geh mal näher auf deinen Handshake ein :ROFLMAO:
Noch hab ich nichts gemacht *g*
 
Zur Erklärung:
Ich arbeite lieber mit getrenntem Sende- und Empfangsdatenfach.
Wenn in beiden Steuerungen ein entsprechendes Bit gesetzt- / zurückgesetzt werden soll, so würde ich im Sendefach der Steuerung 1 die Bits für "Setze_Bit_in_Steuerung_2" und "Rücksetze_Bit_in_Steuerung_2" definieren, wobei das zweite entfallen kann, wenn es nur eine Negation des Ersten ist. Dementsprechend würde ich dann in der Steuerung 2 die Bits für "Setze_Bit_in_Steuerung_1" und "Rücksetze_Bit_in_Steuerung_1" definieren.
Im Programm käme dann :
ODER Setze_Bit_in_Steuerung_2
ODER Setze_Bit_in_Steuerung_1
S Bit_1
ODER Rücksetze_Bit_in_Steuerung_1
ODER Rücksetze_Bit_in_Steuerung_2
R Bit_1
Gegenenfalls noch bei Kommunikationsüberwachung und detektierter Störung den sicheren Zustand herstellen.

MfG Fritze.
 
geh mal näher auf deinen Handshake ein :ROFLMAO:
Noch hab ich nichts gemacht *g*

Ich denke, Larry wird das ähnlich handhaben, wie ich es vorgeschlagen habe, das ist ja ein Handshake, was Sendebit SPS1 und Empfangsbit SPS2 da machen. Auf diese Weise kannst du auch deine Real-Daten per Handshake der anderen Steuerung überantworten.

Es muß auch kein Bit sein.


1. SPS 1 schreibt die Daten in ihr Sendefach.

2. SPS 1 schreibt eine 1 in IntVar Senden.

3. SPS 2 liest die 1 in IntVar Senden

4. SPS 2 kopiert die Daten aus ihrem Empfangsfach

5. und schreibt eine 1 in die IntVar QuittSenden.

6. SPS 1 liest die 1 in IntVar QuittSenden und schreibt eine 0 in die IntVar Senden.

7. SPS 2 liest die die 0 in Intvar Senden und schreibt eine 0 in Intvar QuittSenden.

8. SPS 1 liest die 0 in IntVar QuittSenden ist nun wieder Breit für den nächsten Sendevorgang.
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich denke, Larry wird das ähnlich handhaben, wie ich es vorgeschlagen habe, das ist ja ein Handshake, was Sendebit SPS1 und Empfangsbit SPS2 da machen. Auf diese Weise kannst du auch deine Real-Daten per Handshake der anderen Steuerung überantworten.

aber mit dem gleichen Bit oder? Hatte es jetzt so vor, das ich das Sendebit mit "Sende" und zürück melde. Ist dies zurück gemeldet, kann ich annehmen das der Sollwert übernommen wurde.
 
aber mit dem gleichen Bit oder? Hatte es jetzt so vor, das ich das Sendebit mit "Sende" und zürück melde. Ist dies zurück gemeldet, kann ich annehmen das der Sollwert übernommen wurde.
Habe ich das richtig verstanden, das du das selbe Bit verwenden willst. Das ist keine gute Idee. Nimm lieber 2 Bits.
Eins zum mitsenden und das andere zum bestätigen aus der anderen Steuerung heraus
 
Ich hab oben nochmal geändert, schaus dir mal an.

SPS 1 sendet ein Bit1 (bzw. IntVar) und liest ein anderes Bit2 von SPS 2 (bzw. IntVar)

SPS 2 sendet Bit2 an SPS 1 und liest Bit1 von SPS 1.

Jede SPS schreibt und liest also über kreuz das bit der anderen SPS.
 
Zurück
Oben