Danke für die schnelle Antwort.
Also ich wollte das OB1_SCAN_1 aus der Schnittstelle des FB1 raus nehmen, um nicht unnötig viele Eingänge zu haben.
Und ich wollte den FB1 später aus einem anderen FB aufrufen. Dann müsste ich OB1_SCAN_1 durch diesen auch durchreichen.
Das ganze ist ein Hobbyprojekt und zum Lernen gedacht. Ich hab mir einen Kran aus Fischertechnik gebaut. An dem sind mehrere Motoren, Endschalter Lichtschranken usw. Alles wird über eine SPS gesteuert.
Nun wollte ich die Motoren gerne auch in der Geschwindigkeit bzw. Drehzahl steuern können. Da eine analoge Ausgabebaugruppe verdammt teuer ist, griff ich zu einem Microcontroller. Der erzeugt eine PWM-Frequenz, um die Motoren zu steuern.
Über mehrere Ausgänge der SPS wird seriell ein Signal an den Microcontroller übermittelt, um die Drehzahl aus der SPS heraus einstellen zu können. Funktioniert soweit ganz gut. Ich habe somit 8 analoge Ausgänge, die ich steuern kann.
Mein FB1 erzeugt nun das Signal, damit der Microcontroller arbeiten kann. Er wird für jeden Motor einzeln aufgerufen. Also instanzmäßig.
In dem FB1 ist ein Zähler. Der muss bedingt durch mein Programm im Microcontroller für jede Instanz syncron arbeiten.
Ich habe das zunächst über eine Variable im L-Stack gelöst und einen eigenen Taktgeber mit Zähler im FB programmiert.
Naja, und damit der Zähler nicht immer bei jedem FB1-Aufruf hochzählt, benötige ich die Anzahl der Bausteinaufrufe, damit er nur beim ersten Aufruf des FB1 zählt. Wollte die gerne automatisch ermitteln lassen.
Also soviel zu meinem Vorhaben. ;-)
Wollte das Programm nun in SCL neu schreiben, um es übersichtlicher zu machen. Wie würde das funktionieren?
Gruß
Frank