Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Ergebnis 1 bis 5 von 5

Thema: Programmablauf TwinCat2 PLC - Deklarations-Parameter

  1. #1
    Registriert seit
    09.12.2014
    Beiträge
    2
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Frage


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen,

    habe mich extra für Verständnisfragen hier angemeldet. Ich bin recht unerfahren, was SPS-Steuerungen angeht, daher entschuldigt die vielleicht etwas blöde Frage.

    Ein Prüfstand zeichnet Messdaten auf. Das Setup besteht aus der National Instruments DIAdem Software, die über einen OPC-Server an eine Beckhoff-Steuerung angeschlossen ist sowie der Messtechnik, Hydraulik usw.
    Vom Prüfstand werden einige Signale direkt von der SPS ausgewertet (Impulszählung pro Zeiteinheit), an eine Ausgangsklemme (EL4104) gesendet und von dort als Spannungssignal an eine USB-Eingangskarte in den PC geschickt. Dieses Spannungs-Signal geht auf dem Rückweg zum PC nicht mehr über den Bus/OPC, sondern direkt in die Karte. Auf dem "Hinweg" vom PC zur SPS werden Parameter aber zur Auswertung durch den OPC übertragen. Die USB-Karte wird von DIAdem ausgelesen.

    Bei der Auswertung der Signale durch die SPS habe ich ein Verständnisproblem, wie das Programm abgearbeitet wird:

    In TwinCat PLC gibt es einen Funktionsblock-Baustein "VolAB", der das Signal vom Volumenstromsensor auswertet. In den globalen Variablen in TwinCat PLC wird eine Variable "Volumenstrom: VolAB;" erzeugt. Der Funktionsblock VolAB besteht aus dem Deklarationsteil und dem Ablaufteil. Im Deklarationsteil sind einige Parameter definiert und mit Werten vorbelegt. Über den OPC-Server, der mit 10 Hz läuft, kann ich aber genau diese Parameter mit anderen Werten überschreiben. Die Parameter beeinflussen die Auswertung des Sensors.

    Das SPS-Main-Programm läuft nun zyklisch mit 1ms (1000 Hz) ab und ruft dabei „Volumenstrom()“ auf. Jetzt zur Frage: Bedeutet dies, dass eine neue Instanz vom Funktionsblock „VolAB“ erstellt wird, also jedes Mal die im Deklarationsteil beschriebenen Werte neu gesetzt werden? Denn ich möchte natürlich immer nur die Werte der Parameter verwenden, die über den OPC gesendet werden. Dieser läuft außerdem nur mit 10 Hz statt 1000 Hz, wie das Main-Programm.
    Oder ist es so, dass der Deklarationsteil nur ein einziges Mal beim Programmstart, bei den globalen Variablen, aufgerufen wird, und danach nur noch die vom OPC übergebenen Parameter gesetzt sind?

    Die Frage dreht sich also darum, wie sich die im Deklarationsteil eines Funktionsblockes definierten Variablen verhalten, wenn sie über einen OPC-Server verändert werden, aber das Main-Programm diesen Funktionsblock jeden Zyklus neu aufruft (oder neu erstellt?).

    Viele Grüße
    Thomaso
    Zitieren Zitieren Programmablauf TwinCat2 PLC - Deklarations-Parameter  

  2. #2
    Registriert seit
    13.10.2013
    Ort
    shertogenbosch niederlande
    Beiträge
    120
    Danke
    0
    Erhielt 8 Danke für 6 Beiträge

    Standard

    wenn es konstante sind dan werden die jedes mahl gefragt, wenn es normale variabelen sind wenn das block angerufen wird.
    aber du kannst naturlich die variabelen in global andern. nicht im FB

  3. #3
    Registriert seit
    25.11.2010
    Ort
    OWL
    Beiträge
    745
    Danke
    27
    Erhielt 164 Danke für 142 Beiträge

    Standard

    Die VolAB-Instanz wird nur einmal beim Programmstart erzeugt und ihre Variablen initialisiert. Das Main-Programm beschreibt beim Aufruf von "Volumenstrom" keine Input-Variablen. Diese behalten also die vom OPC-Server geschriebenen Werte, es sei denn, der FB selbst würde sie ändern.

  4. #4
    Thomaso ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    09.12.2014
    Beiträge
    2
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Im Deklarationsteil sind die Parameter zwischen VAR und END_VAR eingetragen, es handelt sich also um lokale Variablen, über die laut Beckhoff nicht von außen zugegriffen werden kann? Es gibt außerdem noch Teile mit VAR_INPUT und VAR_OUTPUT.

    Ausschnitt:
    VAR
    parCountToVolume = 500;
    END_VAR

    Über den OPC teile ich parCountToVolume = 100 mit. Also kann ich trotz der lokalen Deklaration scheinbar den Wert ändern. Ist der Wert beim nächsten Zyklus wieder 500, bis der OPC (niedrigere Frequenz) wieder einmal die 100 gesendet hat?

  5. #5
    Registriert seit
    03.12.2014
    Beiträge
    57
    Danke
    3
    Erhielt 1 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Die Variable "Volumenstrom" ist sozusagen die Datenbank zu dem FB, und besteht ja auch aus einem solchen Typ.
    Wenn du nun "Volumenstrom()" aufrufst, wird der nur abgearbeitet. Wenn in den Klammern Werte übergeben werden, bsp. "Volumenstrom(Input:=Wert)", dann würdest du Werte übergeben und die im FB überschreiben. Da du das nicht tust, rufst du ihn nur jedes mal auf.
    Die Werte muss nun vom FB selbst, oder von aussen geändert werden.

Ähnliche Themen

  1. Programmablauf Prozessalarm
    Von SCLNewbie im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 22.01.2013, 14:09
  2. Anfängerfragen zum Programmablauf
    Von Casimyr im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 23.08.2011, 20:14
  3. TwinCat-PLC-HMI Parameter speichern
    Von tisler im Forum CODESYS und IEC61131
    Antworten: 4
    Letzter Beitrag: 28.09.2009, 15:58
  4. Programmablauf
    Von Deep Blue im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 30.05.2007, 13:54
  5. PCS 7 - Programmablauf
    Von SchoberGabriel im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 07.03.2007, 10:58

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •