Allgemeine Fragen zu CoDeSys V2.1

Anonymous
2006-01-11
2006-02-16
  • Anonymous - 2006-01-11

    Originally created by: blackenslaver666

    Hallo Leute,

    bin neu hier und habe ein paar allgemeine Fragen. Ich schreibe derzeit meine Diplomarbeit, die die Portierungsaufgabe von einem S7 SPS300-Proggie auf eine Lenkelektronik (incl. CodeSys-Unterstützung) umfasst. Jetzt zeichnen sich mir erste Probleme ab:

    1. Gibt es für Codesys so etwas wie eine Operationsliste? Bei Siemens SIMANTIC gibt es ein kleines Heftchen, wo die Befehle inkl. Manipulation des Statuswortes (gibt's das überhaupt bei Code?) übersichtlich in Tabellen aufgelistet sind.

    Wenn dies in irgendwelchen IEC-Standards festgelegt ist, reicht ein verweis darauf.

    1. Bei meinem Programm wäre es hilfreich, mit einer Struktur zu arbeiten, da eine Vielzahl von Variablen deklariert werden müssen. Im Handbuch steht nun, dies solle man in der Registerkarte "Datentypen" erleidigen. Habe ich gemacht, die Struktur ist auch existent, allerdings kann ich weder auf Struktur noch Komponenten zugreifen, obwolh sie im gesamten Projekt gültig sein sollten. Versuche ich, in einem FB darauf zuzugreifen, öffnet sich die Eingabehilfe und verlangt eine (schon existente) Deklaration. Dies funktioniert allerdings dann, wenn ich die Variablen der Struktur global definiere.

    2. Auch erscheint die Struktur und seine Variablen nicht in der Eingabehilfe unter "Operand", ist das normal?

    3. SIMANTIC von Siemens gibt, sofern man eine Variable benutzt, hinter der Operation stets noch den Kommentar zur Variablen aus. Halte ich insgesamt für eine nützliche Funktion zur Überprüfung, gibt's sowas auch?

    Muss noch erwähnen, dass ich bisher nie in die Steuerung eingeloggt war, und simuliert habe. Nimmt das irgendeinen Einfluss (von den Realwerten mal abgesehen)?

    Wäre fein, wenn mir einer die Fragen beantworten könnte.

    Gruss Andy aka blacki

     
  • Anonymous - 2006-01-12

    Originally created by: joohrte

    Zu2. So wie es scheint hast Du woll die Stucktur angelegt.

    Aber vergessen einer Variablen mit der Strucktur zu Deklarieren.

    Z.B.

    TYPE HMI :

    STRUCT

    AX1Enable : BOOL := FALSE ;
    
    AX2Enable : BOOL := FALSE ;
    

    END_STRUCT

    END_TYPE

    unter Globale Variablen

    VAR_GLOBAL

    HMI : HMI;
    

    END_VAR

    um Fragen zu beantworten wäre es Gut immer ein Projekt beizufügen

     
  • Anonymous - 2006-01-12

    Originally created by: blackenslaver666

    Danke dir für die Antwort.

    Im Grunde hast du Recht, ich habe diese Deklaration auch so im Original-Programm gefunden. Allerdings funktioniert es so, wie du beschrieben hast, auch nicht. Ich füge mal das Projekt an, evt. schaust du mal drüber...

    Ziel: Im FB18 möchte ich auf eine Variable der Struktur zugreifen. Bisher öffnet sich dabei stets die Eingabehilfe, weil "Variable nicht deklariert".

    Hast du auf die anderen Fragen noch Antworten? Gerade Punkt 1) ist wichtig für mich.

    Gruss Andy

    Ps: Projekt dann bitte nicht speichern. Da die Version schon alt ist, kann ich es nicht öffnen. Hatte dies schon einmal mit V2.3.5 versucht.

    Projekt.rar [7.09 KiB]

     
  • Anonymous - 2006-01-12

    Originally created by: joohrte

    Deine Variablen wurden nicht angezeigt da deine Stuctur nicht Fehlerfrei war. Den Typ "S5Time" gibt es nur bei Siemens bei IEC ist Time zu verwenden. Beispiel im Anhang.

    zum Punkt 1. Dokumentation

    Ich finde das Codesys Handbuch nicht schlecht.

    Im Anhang A findest du eine Kurzbeschreibung der Befehle.

    Um Codesys Kennenzulernen ist das Dokument

    "Erste Schritte mit CoDeSys V23.pdf" nicht schleucht.

    Die Dateien werden normalerweise mit Instaliert.

    CoDeSys_Hub neu.rar [3.86 KiB]

     
  • Anonymous - 2006-01-12

    Originally created by: blackenslaver666

    Dank dir!

    Kann dein File zwar nicht öffnen, jetzt funktioniert es aber.

    Das mit dem Anhang kenne ich natürlich, allerdings habe ich den Befehl "LD" dort nicht gefunden.

    Weisst du, ob es bei Code eine Art "Statuswort" gibt? Siemens hat dies in seine CPU integriert, und die meisten Operationen im Original-Proggie laufen über das Bit "Verknüpfungsergebnis (VKE)" des Statuswortes.

    Gruss Andy

     
  • Anonymous - 2006-01-13

    Originally created by: joohrte

    Ich kenne mich nicht so sehr mit Programmierung in AWL aus.

    Meines wissen nach gibt es kein Statusword.

    ( wird aber auch nicht benötigt )

    Um ein Überblick der Befehle in AWL zu haben würde ich in der CodeSyskilfe (F1)

    Nach „Modifikatoren“ suchen. Da sind die AWL Befehle beschrieben.

    Ich Benutze die Programmierung in AWL überhaupt nicht und halte diese für unübersichtlich.

    Meine Empfehlung ist für Bitprogrammierung eine Grafische Sprache zu wählen.

    Z.B. FUP,KOP oder CFC.

    Zur Programmierung von Berechnungen oder bedingt Bearbeitung würde ich in Strukturierter Text (ST) Programmieren.

    Zum Punkt Variablendokumentation.

    Du solltest dir Angewöhnen der Variablen einen aussagekräftigen Nahmen zu geben.

    z.B.

    schlechtes Beispiel :

    LD N E1 ( Tor oben )

    AND E2 ( Taste heben )

    ST A1 ( Tor Heben )

    Besser währe :

    ( Ansteuerung von Tor Heben )

    LD N E_TorOben

    AND E_TasteHeben

    ST A_TorHeben

    Normalerweise sollte dieses dann auch noch in Englisch sein.

     
  • Anonymous - 2006-01-15

    Originally created by: blackenslaver666

    Ja, danke! Finde mich immer besser zurecht.

    Programmiere bisher tatsächlich meist in ST, und die anderen Sprachen werde ich sicher auch nutzen.

    Manches muss man einfach ausprobieren. Zuletzt habe ich herausgefunden, dass es in ST keine Sprungbefehle gibt.

    Gruss Andy

     
  • Anonymous - 2006-01-16

    Originally created by: blackenslaver666

    Mir ist noch eine Frage gestern gekommen:

    Für was werden eigentlich Instanzen benötigt?

    Im SIMANTIC ist es so, dass jedem FB automatisch eine Instanz zugeordnet wird bei dessen Erstellung. Beim parametrierten FB-Aufruf werden die Werte in die Instanz geschrieben/gelesen, die ihrerseits mit dem FB interagiert. Was ist nun der Zweck in Code, da ich bei FB-Aufruf ja Eingangs-/Ausgangsparameter einfach deklarieren, lesen und schreiben kann?

    Gruss Andy

     
  • Anonymous - 2006-02-08

    Originally created by: blackenslaver666

    Keiner eine Antwort auf die Frage:

    blackenslaver666 hat geschrieben:
    Für was werden eigentlich Instanzen benötigt?

    Ich habe mittlerweile noch ein Problem. Ich muss einen Taktgeber generieren, der ein periodisches Signal, am besten mit variabler Vorgabe von TIMEHIGH bzw. -LOW, erzeugt. Dummerweise steht mir die UTIL.BIB nicht zur Verfügung. Realisieren wollte ich dies mit dem Impulsgeber und der Einschaltverzögerung. Der FB soll dabei ein unendliches Signal generieren, so dass ich eine while-Schleife benutzen wollte.

    Irgendwelche Anregungen?

    Gruss Andy

     
  • Anonymous - 2006-02-08

    Originally created by: joohrte

    • Für was werden eigentlich Instanzen benötigt?

    In der Instanz liegen die Lokalen Variablen vom Baustein.

    Möchte man ein Baustein öfters aufrufen braucht jeder Aufruf seine eigene Variablen. Also unterschiedliche Instanzen.

    -Dummerweise steht mir die UTIL.LIB nicht zur Verfügung

    Warum glaubst du das du die UTIL.LIB nicht verwenden kannst.

    Die Util.Lib setzt auf Standard befehle auf und kann somit in allen Steuerungen verwendet werden. Außerdem kann die Lib. Geöffnet werden so das Du den Baustein auch aus der Lib. in dein Projekt Kopieren könntest.

     
  • Uwe - 2006-02-13

    Mit der Instanzierung einer Variablen/eines Bausteines wird der entsprechend benötigte Speicherplatz reserviert; die Daten werden dann in diesem Speichzerplatz abgelegt.

    Bei der S7 muss auch, nachdem der FB definiert wurde, ein symbolischer Name mit einem Datentyp (nämlich der FB-Nummer) angegeben werden, d.h. hier wird auch eine Instanz gebildet, die dann den Speicherplatz für das reale Programm repräsentiert.

    Gruss

    Uwe

     
  • Anonymous - 2006-02-16

    Originally created by: Michael_Kowatsch

    Hi Blackenslaver666,

    schick mir deine Mailadresse und ich sende dir einen FB/LIB mit flexiblem Takt.

    Gruß Michael

    e kowatsch@office-dateien.de e

     

Log in to post a comment.