Iso-on-TCP FC5, FC6 im 100ms Takt versenden

Outrider

Level-1
Beiträge
745
Reaktionspunkte
5
Zuviel Werbung?
-> Hier kostenlos registrieren
Moin ich habe eine ISO-ON-TCP Verbindung mit FC5 und FC6 realisert.
Nun soll ich im 100ms-Takt den Sendebaustein FC5 anstoßen.
Ich habe den FC5 und FC6 in einen OB35 gelegt der im Zeitraster 100ms aufgerufen wird.

Nun ist meine Frage ob das ACT-Bit vom FC immer mit einem "High" belegt sein darf und den rest der OB35 macht oder muß ich dieses Sendebit auch jeweils immer auf High stzen und danach wieder auf "Null"

Wie programmiert man einen Merker der im OB35 zyklisch pulst ?

Ja, ich weis, es gibt noch den Taktmerker !

Ich möchte aber einen Impuls erzeugen dann Senden und dann den Impuls wieder zurücksetzen u.s.w.

Danke für Tipps
 
1. Nein, dein ACt-Bit muss auch "0" werden und dann wieder auf "1" wechseln, damit die steigende Flanke vom FC5 erkannt wird
2. Du kannst einen zyklischen Puls-Merker auch im OB1 erzeugen, sofern der OB1 unter einer Zykluszeit von deinem 100ms-Takt bleibt
3. Zur zyklischen Impulserzeugung gibt es auch hier Bausteine von anderen Usern, du musst die Suchfunktion nutzen ;)

Ansonsten gibt es hier das "S"-Programm-Beispiel: FC5/FC6
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ach so, bevor ich es vergesse:
Der FC5 muss natürlich seinen laufenden Auftrag abgearbeitet haben, bevor du ihm mit der steigenden Flanke auf "ACT" einen neuen Auftrag übergibst.
Ist der vorangegangene Auftrag nicht abgeschlossen (DONE="1"), wir der neue Auftrag einfach ignoriert und du hast ein fehlendes Telegramm beim zyklischen Senden
 
Und wenn der Flankenwechsel beim Aufruf erkannt werden muss, dann ist die minmale Taktzeit doch 2 * OB35-Aufrufzeit, in diesem Fall 2 * 100 ms. Denn ein Wechsel des Eingangs ohne Aufruf hat ja keine Auswirkung. Oder irre ich mich da?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Aus dem Kopf: Der FC5/FC6 braucht mehrere Zyklen für die vollständige Bearbeitung eines Sende-/Empfangsvorgangs.
Wenn Du also schnell hintereinander senden willst, ist der 100ms Zeit-OB nicht geeignet. Würde den FC im OB1 aufrufen,
den Sendeanstoß mit einer 100ms Zeitflanke anstoßen (alle 100ms das Request-Bit setzen, zurücksetzen mit Done ODER Error.
Dein OB1-Zyklus darf dann max. 50 ms haben, damit die 100ms-Zeitflanke aus dem Taktmerkerbyte noch sauber kommen kann.

Gruß,
Flinn
 
Hallo Rainer, Hallo flinn,

der FC5 muss zyklisch bearbeitet werden, auch während einer laufenden Auftragsbearbeitung, damit also zwingend im OB1

- im 1. Zyklus wird der Sendeanstoss gesetzt (steigende Flanke)
- im 2. Zyklus sollte er wieder "0" sein, damit der FC5 auch die fallende Flanke sieht
- im 3. Zyklus muss er dann wieder als steigende Flanke am FC5 anliegen, sofern der FC5 fertig ist (DONE="1") und auch wieder gesendet werden soll

Ergibt das nach eurer Berechnung nicht 1/3 des 100ms-Taktes, also eine max. OB1-Zykluszeit von ca. 30ms ? :)

Gruss
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Rainer, Hallo flinn,

der FC5 muss zyklisch bearbeitet werden, auch während einer laufenden Auftragsbearbeitung, damit also zwingend im OB1

- im 1. Zyklus wird der Sendeanstoss gesetzt (steigende Flanke)
- im 2. Zyklus sollte er wieder "0" sein, damit der FC5 auch die fallende Flanke sieht
- im 3. Zyklus muss er dann wieder als steigende Flanke am FC5 anliegen, sofern der FC5 fertig ist (DONE="1") und auch wieder gesendet werden soll

Ergibt das nach eurer Berechnung nicht 1/3 des 100ms-Taktes, also eine max. OB1-Zykluszeit von ca. 30ms ? :)

Gruss

Nö, da hast Du mich missverstanden. Bei den 50ms ging es mir ausschließlich um den Taktmerker unabhängig vom FC5.
Und Rainer ging es um den theoretischen Aufruf im Zeit-OB, welcher natürlich nicht den Anforderungen des TE genügt.
Ansonsten volle Übereinstimmung.

Schönen Abend,
Flinn
 
Das hier nur als grundsätzlichen Hinweis.

Im Handbuch "Programmbausteine für SIMATIC NET S7-CPs" steht auf S.31...

Zitat...
Der Sendeauftrag wird ausgeführt, sobald der Parameter ACT = 1 übergeben wird.
Anschließend müssen Sie in mindestens einem weiteren Aufruf den Parameter ACT = 0
übergeben.
Die Statusanzeige in den Ausgabeparametern DONE, ERROR und STATUS wird bei jedem
Bausteinaufruf aktualisiert und kann ausgewertet werden. Zur weiteren Aktualisierung der
Statusanzeige ohne erneuten Sendeauftrag ist daher jeweils ein weiterer Bausteinaufruf mit
dem Parameter ACT = 0 abzusetzen.
Zitat Ende

Der FC5 kann auch mehrmals in einem Zyklus aufgerufen werden, um ACT = 0 zu übergeben und das DONE Bit abzufragen.
 
Zurück
Oben