Hallo liebes Forum,
ich habe eine Frage bezüglich Strukturübergaben an Funktionen/Funktionsbausteinen.
Das System ist einer CPU 1512C-1 PN und wird aus dem TIA-Portal projektiert.
Ich möchte in einem Funktionbaustein mehrere Analogwerte auswerten.
Dafür habe ich eine Funktion programmiert in der ich die SCALE-Funktion calle und noch ein paar anschließende Auswertungen mache wie Drahtbruch, Warnwert und Fehlerwert. Die SCALE-Funktion benötigt bekanntlich Grenzwerte, Bipolareinstellung und den entsprechenden Analogwert. Um die Daten leichter zu händeln habe ich eine Struktur(UDT) erstellt und in einem globalen DB abgelegt, da diese mehrmals genutzt wird. Weiter habe ich so den Vorteil, dass ich einfach die Einstellwerte wie die Grenzwerte ändern kann und die Struktur nicht jedesmal neu programmieren muss.
Wie oben beschrieben möchte ich mehrere Analogwerte und weiteres in einem Funktionsbaustein auswerten. Den Funktionsbaustein kann man sich so vorstellen, dass dieser ein Anlagenteil darstellt.
Also habe ich ein Eingangsparameter im Integerformat und die Analogstruktur(oben beschrieben) für jeden Analogwert im Eingangsbereich des FB erstellt. Das sind in der Summe 8 Analogwerte und somit 8 Strukturen. Die Anlogwerte lege ich im OB mit der Adresse %IWxxx an und an die IN-Struktur entsprechend DB10.StructX an den FB an. So habe ich den Vorteil das ich immer nur die Struktur an den FB anlegen muss und nicht ständig die Werte für die SCALE-Funktion einzeln als Übergabeparameter angeben muss.
Simuliert klappt das Fehlerfrei, aber lade ich dies nun in die CPU springt diese mir auf STOP.
Nun ist meine Frage, was habe ich falsch gemacht oder gibt es eine bessere Möglichkeit?
Weiter interessiert mich ob es eine Beschränkung bezüglich Strukturen als Übergabeparameter im IN und OUT Bereich von Funktionen gibt?
Gibt es eine Wertbeschränkung bei Strukturen?
Ich hoffe mir kann jemand auf die Sprünge helfen und mir mit Rat beistehen.
ich habe eine Frage bezüglich Strukturübergaben an Funktionen/Funktionsbausteinen.
Das System ist einer CPU 1512C-1 PN und wird aus dem TIA-Portal projektiert.
Ich möchte in einem Funktionbaustein mehrere Analogwerte auswerten.
Dafür habe ich eine Funktion programmiert in der ich die SCALE-Funktion calle und noch ein paar anschließende Auswertungen mache wie Drahtbruch, Warnwert und Fehlerwert. Die SCALE-Funktion benötigt bekanntlich Grenzwerte, Bipolareinstellung und den entsprechenden Analogwert. Um die Daten leichter zu händeln habe ich eine Struktur(UDT) erstellt und in einem globalen DB abgelegt, da diese mehrmals genutzt wird. Weiter habe ich so den Vorteil, dass ich einfach die Einstellwerte wie die Grenzwerte ändern kann und die Struktur nicht jedesmal neu programmieren muss.
Wie oben beschrieben möchte ich mehrere Analogwerte und weiteres in einem Funktionsbaustein auswerten. Den Funktionsbaustein kann man sich so vorstellen, dass dieser ein Anlagenteil darstellt.
Also habe ich ein Eingangsparameter im Integerformat und die Analogstruktur(oben beschrieben) für jeden Analogwert im Eingangsbereich des FB erstellt. Das sind in der Summe 8 Analogwerte und somit 8 Strukturen. Die Anlogwerte lege ich im OB mit der Adresse %IWxxx an und an die IN-Struktur entsprechend DB10.StructX an den FB an. So habe ich den Vorteil das ich immer nur die Struktur an den FB anlegen muss und nicht ständig die Werte für die SCALE-Funktion einzeln als Übergabeparameter angeben muss.
Simuliert klappt das Fehlerfrei, aber lade ich dies nun in die CPU springt diese mir auf STOP.
Nun ist meine Frage, was habe ich falsch gemacht oder gibt es eine bessere Möglichkeit?
Weiter interessiert mich ob es eine Beschränkung bezüglich Strukturen als Übergabeparameter im IN und OUT Bereich von Funktionen gibt?
Gibt es eine Wertbeschränkung bei Strukturen?
Ich hoffe mir kann jemand auf die Sprünge helfen und mir mit Rat beistehen.