Einmalige Ausführung bei Programmstart

chucky
2010-05-04
2010-05-12
  • chucky - 2010-05-04

    Hallo zusammen.

    Ich bin an der zusammenstellung der Hardware. Zur Zeit verwende ich eine 750-841 mit Digitalen In und Out Modulen. Zusätzlich ist eine Enoceanklemme integriert.

    Da ich später ev. noch Analogo Klemme hinzufügen werde, möchte ich einen Offset der digitalen in und Out's machen.

    Dazu stehen die set_digital_input_offset und set_digital_output_offset zu verfügung.

    Wie stelle ich es an, dass diese zwei Funktionen nur bei dem Programmstart aufgerufen werden?

    Vielen Dank für eure Antwort.

    Gruss Chucky

     
  • McNugget2000 - 2010-05-04

    Hallo.

    Du rufst die beiden OFFSET-Funktionen in einem Programm auf (nennen wir es mal "startup").

    Dieses Programm rufst Du folgendermassen einmalig beim Controllerstart auf:

    Ressourcen ->

    Taskkonfiguration ->

    dann nach Klick auf den gelben Blitz System-Ereignisse in der mittleren Spalte klicken.

    Dann rechts bei "start" einen Haken im Kästchen setzen.

    In der Spalte rechts daneben "aufgerufenene POU" das Programm "startup" eintragen. (Muss man etwas genauer für hinschauen.)

    Woanders hinklicken, darauf achten, dass der Name der POU (also "startup") stehenbleibt.

    Fertig.

    Nun wird bei jedem Start des Controllers das Programm "Startup" einmalig ausgeführt.

    Natürlich kann auch noch mehr drin stehen.

    Ich hoffe, es hat geholfen.

    Gruss

    McNugget

     
  • chucky - 2010-05-06

    Hallo McNugget

    Vielen Dank für deinen tip.

    Konnten den Baustein für den Startup erstellen.

    Wenn ich jetzt die beiden Bunktionsblöcke in dem StartUp (FU) aufrufen will bekomme ich bei der Übersetzung folgende Fehlermeldung:

    Fehler 4051. Set_digital_input_offset ist keine funktion.

    Was mache ich falsch?

    Danke für eure Hilfe

     
  • McNugget2000 - 2010-05-06

    Halo chucky,

    sorry, war mein Fehler.

    Du musst natürlich noch die Bibliothek "MOD_COM.lib" in das Projekt einbinden.

    Sonst steht die genannte Funktion nicht zur Verfügung.

    Ich hoffe, dann läuft´s.

    Gruss

    McNugget

     
  • chucky - 2010-05-06

    Hallo McNugget

    Danke für deine Antwort.

    Nein die Bibliothek ist eingefügt, dran kann es nicht liegen.

    Anbei ist das Programm. Vieleich findest du den fehler. Ich werde aus dieser Fehlermeldung nicht schlau.

    EFH_01.pro [170.75 KiB]

     
  • McNugget2000 - 2010-05-08

    Hallo chucky.

    die Datei lässt sich nicht runterladen. Vielelicht kannst Du sie ja noch mal einstellen.

    Gruss

    McNugget

     
  • chucky - 2010-05-08

    Hallo McNugget

    Das ist ja gerade das Problem bei dem übersetzen wird der Fehler angezeigt (siehe Anhang),daher kann es nicht runtergeladen werden.

    Der Baustein der aus der Tasksteuerung erzeugt wird, ist eine Funktion. Muss diese noch durch PCL_PRG aufgerufen werden?

    Sind Inputvariabeln mit Werten zu belegen ode wird dieses von dem System erledigt?

    Ich werde einfach nicht schlau aus dieser Fehlermeldung.

    Es wäre echt toll, wenn du (oder auch sonst jemand) mir einen Typ für dises Problem geben könntet. Das Programm ist auch noch einmal im Anhang.

    Vielen Dank und Gruss

    Chucky

    Codesys.zip [95.27 KiB]

     
  • McNugget2000 - 2010-05-09

    Hallo

    Ich kann das Programm leider nicht hier aus dem Forum zu meinem Rechner downloaden. Da gibt´s eine Fehlermeldung im Browser.

    Auch beim zweiten Versuch zeigt mir das Forensystem einen Fehler.

    Vielleicht kannst du es woanders hochladen, oder mir mailen?

    (Leider ist die PM-Funktion hier deaktiviert und hier möchte ich meine Mailadresse nicht öffentlich kundtun.)

    Unter SPS-Forum könntest du es auch einstellen.

    Mit der Adressierung ist es so:

    Wenn du an den Offset-Bausteinen z.B. 128 (Bytes) angibst, schibt dercontroller die Adressen um 64 Worte (1 Wort = 2 Byte) zurück.

    Dann muss der erste digitale Eingang in der Variablenkonfiguration statt als

    %IX0.0

    als

    %IX64.0

    adressiert werden, usw..

    Alle analogen Klemmen fügesn sich dann in den Bereich von Wort 0 bis Wort 63 ein.

    Mit den Ausgängen verhält es sich genauso.

    Alles klar??

    Gruss

    McNugget

     
  • Codewarrior - 2010-05-10

    Warum so kompliziert !?

    Die einfachste Lösung: (vor allem Zielsystemunabhängig)

    PROGRAM PLC_PRG

    VAR

    Startup:BOOL:=FALSE;

    END_VAR

    IF NOT Startup THEN

    (Hier Initialisierungen vornehmen)

    Startup:=TRUE;

    END_IF;

     
  • chucky - 2010-05-12

    Hallo zusammen

    Vielen Dank für eure Unterstützung und Hilfe.

    Diese Möglichkeit ist eine gute Alternative.

    Also nochmals vielen Dank

    Gruss Chucky

     

Log in to post a comment.