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

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 19

Thema: Digitale Eingänge mit TwinCat auslesen

  1. #1
    Registriert seit
    15.12.2015
    Beiträge
    24
    Danke
    5
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen,

    ich bin noch SPS-Anfänger und habe eine wahrscheinlich recht simple Frage

    Ich betreibe momentan eine KL3403-Leistungsmessklemme mit einem BK9000-Koppler direkt an meinem Rechner. Dies funktioniert soweit auch zufriedenstellend.
    Jetzt soll noch eine digitale Eingangsklemme KL1418 dazukommen. Der Aufbau ist folgender: BK9000-KL1418-KL3403-KL9010 (Abschlussklemme).
    Die Klemmen werden über die Scan-Funktion auch alle erkannt. Nun möchte ich natürlich die digitalen Eingänge auslesen. Hierzu muss ich den einzelnen Eingängen Variablen zuweisen.
    Daran scheitert es momentan noch. Bei der Leistungsmessklemme wurden mir schon Variablen von TwinCat "vorgeschlagen", die aus dem Funktionsblock für diese Klemme kommen. Bei der KL1418 gibt es jedoch keinen Funktionsblock und daher auch keine passenden Variablen. Wie verknüpfe ich nun die reale Adresse (Beispiel: 12.0) eines Kanals mit einer virtuellen Variable, mit der ich dann arbeiten kann? Gehört das in die globale Variablenliste oder eine andere? Und muss in der Gerätekonfiguration noch irgendetwas geändert werden?

    Viele Grüße

    Chris
    Zitieren Zitieren Digitale Eingänge mit TwinCat auslesen  

  2. #2
    Registriert seit
    26.11.2012
    Ort
    Gummersbach
    Beiträge
    502
    Danke
    18
    Erhielt 71 Danke für 69 Beiträge

    Standard

    Hallo,

    die Eingänge können in der Definition der Variablen direkt mit diesen verknüpft werden:

    Code:
    Variable_1 AT %IX0.0: Bool; (* optionaler Kommentar *)
    Als Adresse ist natürlich die tatsächlich vorhandene Hardware-Adresse zu verwenden.

    Diese Variablen-Konfiguration kann in einem Programm oder Global passieren.
    Ganz kurz ganz hell
    ganz lange ganz dunkel....

  3. #3
    Registriert seit
    24.02.2009
    Beiträge
    1.242
    Danke
    23
    Erhielt 276 Danke für 235 Beiträge

    Standard

    Du musst die Eingangsvariablen bei dir im Programm deklarieren.
    z.B.
    Code:
    VAR
      I_xEingang1 AT%I* :BOOL;  (*ein digitaler Eingang*)
      Q_xAusgang1 AT%Q* :BOOL; (*ein digitaler Ausgang*)
    END_VAR
    Das AT%I sagt dem Kompiler, das es sich im eine Eingangsvariable handelt. Der * bedeutet, das du es dem Kompiler überlässt welche Speicheradresse die Variable bekommt. (ist all. die beste Variante finde ich)
    AT%Q ist entsprechend für Ausgangsvariablen.

    Danach übersetzt du dein Programm und liest die .tpy Datei im Systemmanager neu ein. Dann sollte dir für die digi Eingänge auch die passenden Variablen vorgeschlagen werden.
    Sänd from mei Kombjudder mitse Dastadurr.

  4. #4
    sucb76 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    15.12.2015
    Beiträge
    24
    Danke
    5
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Danke schon mal!

    Ich habe nun in der Liste der globalen Variablen folgendes hinzugefügt:

    Code:
    Eingang1 AT %IX12.0 : BOOL;
    12.0 ist die reale Adresse des ersten Kanals der Klemme.

    Außerdem habe ich Eingang1 bereits in das Unterprogramm eingefügt, wo ich ihn brauche. Wird von TwinCat gefunden und es gibt keine Fehlermeldung.

    Die Variable ist allerdings unter Verknüpfungen noch nicht auffindbar, wenn ich sie mit einem Kanal der Klemme verbinden möchte. Ich vermute, es liegt daran:

    Danach übersetzt du dein Programm und liest die .tpy Datei im Systemmanager neu ein
    Wie genau mache ich das? Habe im Systemmanager alles durchsucht und nichts dergleichen gefunden.

    PS: Ich nutze TwinCat 3.
    Geändert von sucb76 (07.03.2016 um 14:49 Uhr)

  5. #5
    Registriert seit
    24.02.2009
    Beiträge
    1.242
    Danke
    23
    Erhielt 276 Danke für 235 Beiträge

    Standard

    Im Baum-Menü auf der linken Seite öffnest du den Ast "SPS - Konfiguration". Darunter findest du dein SPS-Projekt (mit so einem kleinen IEC 1131 Symbol). Wenn du darauf klickst, erscheint auf der rechten Seite die Einstellung für den Projektpfad. Dort müsste der Pfad für die .tpy Datei angeben sein (entweder als absoluter Pfad oder relativ zum SPS-Projekt). Daneben gibt es den Button "Neu Einlesen". Klickst du da drauf, wird die .tpy Datei neu im Systemmanager eingelesen und die Variablen sollten angezeigt werden.

    Wenn die Verknüpfung passt, musst du noch die Konfiguration aktivieren. => Menü => Aktionen => Aktiviert Konfiguration ...
    Sänd from mei Kombjudder mitse Dastadurr.

  6. #6
    sucb76 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    15.12.2015
    Beiträge
    24
    Danke
    5
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Das scheint für TwinCat 3 leider nicht zu gelten. mein Baum-Menü sieht so aus:

    screen99.png

  7. #7
    Registriert seit
    25.11.2010
    Ort
    OWL
    Beiträge
    750
    Danke
    27
    Erhielt 165 Danke für 143 Beiträge

    Standard

    Rechtsklick auf das SPS Projekt "Test Project" und dann "Neu erstellen". Danach einmal alles speichern. Dann solltet Du die Variable im E/A-Baum für die Verknüpfung zur Verfügung haben.

  8. #8
    sucb76 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    15.12.2015
    Beiträge
    24
    Danke
    5
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Jawoll, so hat es funktioniert, danke!
    Hatte immer nur die Konfiguration neu aktiviert, aber scheinbar hat es an dem "Neu erstellen" gehapert. Wird dann morgen in der Praxis erprobt.

  9. #9
    sucb76 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    15.12.2015
    Beiträge
    24
    Danke
    5
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo zusammen,

    ich bin's nochmal....zunächst mal: Eure Hilfe hat mich schon einen Schritt weiter gebracht. Der digitale Eingang wird in der Software erkannt und schaltet auf TRUE, sobald Spannung anliegt. Nun möchte ich diese TRUE Impulse zählen. Dafür habe ich den Eingang vor einen CTU-Block (Aufwärtszähler) geschrieben. Der Zähler bleibt jedoch bei 0 stehen. Mit einer zusätzlichen Flankenerkennung klappt es auch nicht. Auch ein RS-Flipflop wird vom digitalen Eingang nicht angesprochen. Kann ich einen realen Eingang nicht direkt vor einen Funktionsblock schreiben? Die Lösung ist wahrscheinlich unglaublich banal, ich komme jetzt aber schon seit Stunden nicht dahinter. Brauche dringend Hilfe, danke schon mal!

    PS: Ich habe testweise auch eine Programmzeile a la

    Code:
    IF Eingang1 =1 THEN
    x= x+1;
    END_IF
    ausprobiert und dies führte dazu, dass x sich erhöhte. An der generellen Erkennung des Eingangs kann es also nicht liegen.

  10. #10
    Registriert seit
    24.02.2009
    Beiträge
    1.242
    Danke
    23
    Erhielt 276 Danke für 235 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Dann zeig mal den Code-Ausschnitt mit dem CTU. Ohne zu wissen was du gemacht hast, ist es schwer dir da zu helfen.
    Sänd from mei Kombjudder mitse Dastadurr.

Ähnliche Themen

  1. Micromaster 440, digitale Eingänge progr. mit BOP
    Von inging im Forum Antriebstechnik
    Antworten: 0
    Letzter Beitrag: 05.12.2012, 15:14
  2. B&R X20BC0087 digitale eingänge forcen
    Von kag1@softsolution.at im Forum HMI
    Antworten: 3
    Letzter Beitrag: 14.03.2011, 08:51
  3. 358 Digitale Eingänge Erfassen und Auswerten
    Von Hector im Forum Simatic
    Antworten: 25
    Letzter Beitrag: 13.07.2010, 10:13
  4. Kabel für Digitale Eingänge
    Von klaus1 im Forum Elektronik
    Antworten: 5
    Letzter Beitrag: 12.05.2010, 21:01
  5. Adressierung digitale Eingänge S7 CPU224
    Von lan12 im Forum Simatic
    Antworten: 11
    Letzter Beitrag: 13.09.2008, 13:09

Lesezeichen

Berechtigungen

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