Welcome to our new forum
All users of the legacy CODESYS Forums, please create a new account at account.codesys.com. But make sure to use the same E-Mail address as in the old Forum. Then your posts will be matched. Close

Programmbausteinen feste Adressen zuordnen

Patrick87
2018-09-23
2018-10-02
  • Patrick87 - 2018-09-23

    Hallo zusammen,

    ich machen meinen Techniker in Fachrichtung Steuerungstechnik und möchte für ein Klassenprojekt ein Programm erstellen in dem ich dem SR, R_Trig und Blink Bausteinen feste Adressen vergebe. Codesys wird bei uns an der Schule leider nicht unterrichtet deshalb finde nicht noch nicht ganz in dieser Umgebung zurecht.
    Da sich das Programmbeispiel auf einen anderes Softwareprogramme (Si.....) bezieht, ich aber aufzeigen möchte das es genau so mit Codesys 3.5 erstellt werden kann möchte ich nun wissen ob ich den besagten Bausteinen auch feste Adressen zuordnen kann. Folgendes habe ich bereits versucht im PLC_PRG in die Variablentabelle ein zu tragen:

    M_Anlage_ein AT %MX2.0: SR; //Merker
    Klar das dies nicht funktioniert hat.

    M_Anlage_ein.Q1 AT %MX2.0: BOOL; //Merker
    Hätte ja sein können das es so funktioniert, mir geht es ja auch nur um den Ausgabe der genannten Bausteine.

    Kann mir jemand Helfen, auch wenn es vielleicht nicht erforderlich ist möchte ich nur ungern vom Beispielprogramm abweichen.

    Vielen Dank

     
  • RolandWagner

    RolandWagner - 2018-09-24

    Hallo,

    prinzipiell fast alles richtig gemacht - nur die Datentypen der Merker passen nicht.

    Probiere es mal mit

    SR1 AT %MW0:SR;
    

    Damit sollte es gehen.

    Zur Erläuterung:
    Du musst bei der Instanziierung Speicher für den ganzen Baustein zuweisen. Mit %MW0 wird der Speicher eben an die erste Stelle im Merkerbereich gelegt, besteht dann aber eben aus mehreren booleschen Variablen.

     
  • Patrick87 - 2018-09-28

    Hallo,

    vielen Dank für deine Antwort, das hat mir auch schon weiter geholfen aber mich auch gleich wieder zu einer neuen Frage geführt

    Ich habe nun dem SR Flip Flop den Datentyp die Zuweisung %MW0 gegeben dem Ausgang Q1 gibt er jetzt automatisch die Zuweisung %MB10. Wenn ich jetzt in FUP Programmiere und den %MB10 an einen anderem Baustein als Bedingung verwende hat dieser aber nicht den Datentyp BOOL sonder 1 Byte. Verwende ich aber die Variable z.B. SR1.Q1 erhalte ich aber den Datentyp BOOl als Ausgabe. Das macht mir noch ein Großes ? über meinem Kopf.

     
  • RolandWagner

    RolandWagner - 2018-10-02

    Nun, auch wenn eine boolesche Variable nun mal nur ein Bit Datentiefe hat, wird in CODESYS eine boolesche Variable bei der Deklaration auf ein ganzes Byte gelegt. Das ist zwar ziemlich Platzverschwendung, allerdings beschleunigt dieses Verfahren den Zugriff und das Laufzeitverhalten (sonst müsste man jede boolesche Variable bitweise in einen Speicherplatz mappen...).

    Ich hoffe, diese Erklärung hilft Dir.

     

Log in to post a comment.