Anlauf oder Sondermerker in Codesys für 750-881

bInit noch bei den Variablen als Bool definieren, wenn du die überall im Programm benötigst, dann am Besten bei den globalen Variablen.
 
Hab jetzt ein PRG "Einschaltinitialisierung" in ST eingefügt, das PRG in der Taskkonfig eingefügt, den bInit als globale Variable deklariert, ich bekomme aber nur Fehlermeldungen.......
 

Anhänge

  • Einschalt.JPG
    Einschalt.JPG
    108,4 KB · Aufrufe: 47
Zuviel Werbung?
-> Hier kostenlos registrieren
Hab jetzt ein PRG "Einschaltinitialisierung" in ST eingefügt, das PRG in der Taskkonfig eingefügt, den bInit als globale Variable deklariert, ich bekomme aber nur Fehlermeldungen.......

Hi,

die Fehlermeldung ist ein rekursiver Aufruf. In Einschaltinitialisierung() kommen deinen Programmteile die nur bei der Initialisierung ausgeführt werden. Dein Problem ist, dass du das Programm in dem du den die Initialisierungsselektion (IF NOT bInit) geschrieben hast auch Einschaltinitialisierung nennst.

Probiere das doch erst einmal in dem Main Programm, dass direkt dem Task zugeordnet ist und in der Initialisierungsroutine deine Startaufrufe. Und dann ohne Return

Wenn du das weiter als Programm verwenden willst, dann nenne lediglich das Programm um.

Gruß

Sascha
 
Zuletzt bearbeitet:
Ok, hab das ganze zum probieren mal in ein neues PRG geschrieben, hab das PRG Anlaufmerker getauft, die IF Schleife heißt Einschaltinitialsierung!
Das PLC_PRG und das PRG Anlaufmerker ist in der Taskkonfig drinnen!

Ich bekomm jetzt nur mehr eine Fehlermeldung:
Anlaufmerker (2): Variable 'Einschaltinitialisierung' nicht deklariert

Macht auch Sinn das die Einschaltinitialisierung deklariert werden muss, damit das IF abgearbeitet wird, nur wie?
 
Ok, hab das ganze zum probieren mal in ein neues PRG geschrieben, hab das PRG Anlaufmerker getauft, die IF Schleife heißt Einschaltinitialsierung!
Das PLC_PRG und das PRG Anlaufmerker ist in der Taskkonfig drinnen!

Ich bekomm jetzt nur mehr eine Fehlermeldung:
Anlaufmerker (2): Variable 'Einschaltinitialisierung' nicht deklariert

Macht auch Sinn das die Einschaltinitialisierung deklariert werden muss, damit das IF abgearbeitet wird, nur wie?

Darf ich mal fragen ob du bisher ein laufendes Programm auf dem Controller erstellt hast? Nach den Problemen die du schilderst hast du grundlegende Wissenslücken bei den Basics.

Das ganze funktioniert mit 3 Programmblöcken.

Main (Hauptprogramm im Taskzyklus)
Anlaufmerker
Einschaltinitialisierung

Diese musst du natürlich auch deklarieren.

Programm Main
Zu deinem Hauptprogramm muss ich dir hoffentlich nichts näheres erläutern.

Programm Anlaufmerker
Hier schreibst du deine IF Anweisung (IF Schleifen gibt es nicht!) und setzt nach Ausführung des "THEN" Zweiges die bInit Variable auf TRUE. Vor der Zuweisung des True Wertes auf die Variable führst du natürlich das Programm Einschaltinitialisierung aus.


Programm Einschaltinitialisierung
Hier werden zusätzliche Anweisungen rein gepackt die du bei der Initialisierung einmalig ausführen möchtest. Beispielsweise dass du hier mehrere Variablen auf einen gesicherten Wert zurücksetzt.

Gruß
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich hab schon mehrere am laufen, den Anlaufmerker brauch ich aktuell für den letzten schliff!! Ich mach immer alles in CFC mit ST hab ich nichts am Hut!!!
Auf jeden Fall, läuft das ganze jetzt!! Nochmals, danke!

ST sieht sehr intressant aus, gibts da vielleicht eine Art Anleitung die ich mal durchgehen kann..., um mich da ein bischen einzulesen!?
 
Ich hab schon mehrere am laufen, den Anlaufmerker brauch ich aktuell für den letzten schliff!! Ich mach immer alles in CFC mit ST hab ich nichts am Hut!!!
Auf jeden Fall, läuft das ganze jetzt!! Nochmals, danke!

ST sieht sehr intressant aus, gibts da vielleicht eine Art Anleitung die ich mal durchgehen kann..., um mich da ein bischen einzulesen!?

Na passt doch wenn es nun läuft.

Du hast es anfänglich leichter mit CFC und es wird dir wie in einem Stromlaufplan einfacher visualisiert.
ST gibt dir ein paar zusätzliche Strukturen, mit denen du komplexe Logiken schnell umsetzen kannst.

Über Google gibt es reichlich Quellen zur ST Programmierung, wie auch hier im Forum. Ansonsten hier ein Beispiel:

http://www.ipsta.de/download/automationstechnik/Kap13_ST .pdf

Gruß
 
Zurück
Oben