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

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

Thema: Problem TwinCAT

  1. #1
    Registriert seit
    22.07.2009
    Beiträge
    98
    Danke
    18
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    YUHU ich habe endlich mal wieder ein Problem wo ich euch um Hilfe bitten darf.
    Also es geht um Folgendes. Ich habe in TwinCAT PLC Control 3 Programm Bausteine und 1 FB und nun will ich im FB aus den Programmen eine Variable Rausholen und zwar
    Code:
    LastReceivedByte: ARRAY[0..18] OF BYTE;
    so is die Variablen Deklaration im Programm.
    in meinem FB steht nun
    Code:
    VAR_INPUT
        Bytelist:Sample_KL6001;
    END_VAR
    Da das Programm Sample_KL6001 heist dachte ich eigentlich ich könnte es mit
    Code:
    Bytelist.LastReceivedByte;
    Rausholen also das Array um damit meinen Algorithmus zu füttern. aber iwie funzt das ganze nich wirklich. Der sagt mir immer das Sample_KL6001 ein unbekannter Typ is.
    Bitte um Fachmännische beratung xD.
    Mfg
    COOLT
    Zitieren Zitieren Problem TwinCAT  

  2. #2
    Registriert seit
    19.11.2006
    Beiträge
    1.346
    Danke
    6
    Erhielt 254 Danke für 231 Beiträge

    Standard

    FBs [FB] musst du wie Variablen deklarieren und kannst das dann auch so machen.
    Wenn dein Sample_KL6001 aber ein Programm [PRG] ist, geht das nicht, denn Programme werden nicht instanziiert.

  3. #3
    Registriert seit
    06.07.2007
    Beiträge
    2.811
    Danke
    174
    Erhielt 274 Danke für 253 Beiträge

    Standard

    Deklariere doch einfach eine globale Variable. Die kannst du dann in allen Bausteinen verwenden.
    A programmer is just a tool which converts caffeine into code.

  4. #4
    Registriert seit
    19.11.2006
    Beiträge
    1.346
    Danke
    6
    Erhielt 254 Danke für 231 Beiträge

    Standard

    Zitat Zitat von COOLT Beitrag anzeigen
    Ich habe in TwinCAT PLC Control 3 Programm Bausteine und 1 FB und nun will ich im FB aus den Programmen eine Variable Rausholen
    finde ich auch eigentlich nicht richtig.
    Besser wäre du machst nur ein einziges Programm [PRG] und steckst deine Funktionalitäten in mehrere FBs. Dann hast du auch das Problem mit dem Zugriff nicht.

  5. #5
    COOLT ist offline Benutzer
    Themenstarter
    Registriert seit
    22.07.2009
    Beiträge
    98
    Danke
    18
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Ich hab von meinen Arbeitskolegen jetz gesagt bekommen das ich doch bitte die Programme so lasse und das nötige array als Structure bei den Datentypen angeben soll. Nur wie bekomm ich das jetz aus der Structure in mein Fb rein?
    Code:
    TYPE Bytelist :
    STRUCT
        LastReceivedByte: ARRAY[0..18] OF BYTE;
    END_STRUCT
    END_TYPE

  6. #6
    Registriert seit
    19.11.2006
    Beiträge
    1.346
    Danke
    6
    Erhielt 254 Danke für 231 Beiträge

    Standard

    Na mit Deklaration als VAR_INPUT, oder VAR_IN_OUT
    Code:
    VAR_INPUT
       stLastReceivedByte: LastReceivedByte;
    END_VAR
    oder
    Code:
    VAR_IN_OUT
       stLastReceivedByte: LastReceivedByte;
    END_VAR
    Wobei VAR_IN_OUT als eine Art Pointer arbeitet, ohne umkopieren in den FB.
    Geändert von trinitaucher (24.07.2009 um 08:54 Uhr)

  7. #7
    COOLT ist offline Benutzer
    Themenstarter
    Registriert seit
    22.07.2009
    Beiträge
    98
    Danke
    18
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Naja jetz sagt er mir: "Unbekannter Typ 'LastReceivedByte'"
    Code:
    TYPE Bytelist :
    STRUCT
        LastReceivedByte: ARRAY[0..18] OF BYTE;
    END_STRUCT
    END_TYPE
    Code:
    FUNCTION_BLOCK DecodePersonalID
    VAR_INPUT
        aData: LastReceivedByte;
    END_VAR

  8. #8
    Registriert seit
    19.11.2006
    Beiträge
    1.346
    Danke
    6
    Erhielt 254 Danke für 231 Beiträge

    Standard

    Sehe gerade: dein Typ heißt doch "Bytelist"

  9. #9
    COOLT ist offline Benutzer
    Themenstarter
    Registriert seit
    22.07.2009
    Beiträge
    98
    Danke
    18
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Das is nur die Bezeichnung des Datentyps. also der Name davon.

  10. #10
    Registriert seit
    19.11.2006
    Beiträge
    1.346
    Danke
    6
    Erhielt 254 Danke für 231 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Ja genau:

    Code:
    VAR_INPUT
      stBytelist: Bytelist;
    END_VAR
    VAR
      byMyByte: BYTE;
    END_VAR
    ----------------------------------------
    ...
    byMyBYte := stBytelist.LastReceivedByte[2];
    ...
    von außen:
    Code:
    VAR
       stByByteList: Bytelist;
    END_VAR
    
    ...
    fbMyFunctionBlock.stBytelist := stByByteList;
    ...
    Geändert von trinitaucher (24.07.2009 um 10:48 Uhr)

Ähnliche Themen

  1. TwinCat Problem
    Von samtrigger im Forum CODESYS und IEC61131
    Antworten: 10
    Letzter Beitrag: 22.03.2011, 00:57
  2. TwinCAT Problem
    Von tech007 im Forum CODESYS und IEC61131
    Antworten: 21
    Letzter Beitrag: 26.11.2010, 15:59
  3. TwinCAT Problem
    Von tech007 im Forum CODESYS und IEC61131
    Antworten: 0
    Letzter Beitrag: 18.08.2010, 23:09
  4. Antworten: 4
    Letzter Beitrag: 03.11.2009, 14:05
  5. Problem mit TwinCat
    Von tigger im Forum Sonstige Steuerungen
    Antworten: 0
    Letzter Beitrag: 13.12.2006, 16:27

Lesezeichen

Berechtigungen

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