SFC20 (BLK_MOVE) fertig

eloboy

Level-1
Beiträge
70
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ich glaube ich machmal Probleme mit dem SFC20.
Wann weis ich, dass der SFC20 fertig ist. Und alles richtig kopiert wurde?
Er braucht doch mehr als einen Zyklus, Oder?

Danke im vorraus.
 
Setz mal den Cursor auf den SFC20 und drück F1. So bekommst Du eine Hilfeinformation angezeigt. Am Ende der Seite ist ein Link zu einer beispielhaften Aufgabenstellung, wo auch gezeigt wird, wie Du abfragen kannst, ob der Baustein erfolgreich durchlaufen wurde.


Gruss,
Jörg
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Das kommt darauf an, wieviele Daten man per SFC übertragen will, ob der SFC20 innerhalb eines Zyklus fertig wird oder nicht.

Überprüfen kann man das anhand des Statusworts.
Dieses wechselt auf 0 zurück, sobald die Daten übertragen wurden.
 
Hatte auch noch nie Probleme mit "falschen" Daten. Ich lade Fahrdaten oft unmittelbar vor dem Verschicken an den Servo mit dem SFC 20 um. Die Daten werden in einem Rutsch umkopiert. RET_VAL gibt nur Fehlercodes zurück, wenn man Fehler beim Input macht, sonst ist RET_VAL immer 0.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wie Unregistrierter gast schon schrieb: SFC20 kopiert immer in einem Rutsch - nach dem Aufruf ist die Kopieraktion beendet (gut oder schlecht, siehe RET_VAL).

Allerdings sollte man bei größeren Kopieraktionen bedenken, dass der SFC20 durch höherpriore OBs unterbrochen werden kann. Wer also z.B. im OB35 oder Prozessalarme im OB40 verarbeitet und hier Daten im Quell- bzw. Zielbereich der SFC20-Aktion manipuliert kann sich richtig schön selbst ein Bein stellen und inkonsistente Daten erzeugen.
Hier also entweder Unterbrechungen vor dem SFC20 sperren und danach wieder freigeben oder den SFC81 verwenden (der kann allerdings bei den meisten CPUs nur kleinere Datenmengen kopieren als der SFC20)
 
Zurück
Oben