SCL sichten

s7Opa

Level-1
Beiträge
128
Reaktionspunkte
8
Zuviel Werbung?
-> Hier kostenlos registrieren
hallo,

habe eben meine deklaration um einen struct block (kennzeichnung //-----Fehler) erweitert. seit dem kommt ein fehler. wenn der block auf 5 einträge begrenzt wird geht es.
manchmal nervt es gewaltig. hat jemand eine idee?

Code:
VAR_TEMP
  RET_V:  INT;
  RET_M:  INT;
  ReNew:  BOOL;
  i:      INT;
  BOff:   DINT;
  NULL:   DWORD;
  
//------ Fehler start
 
  IniA:   ANY;
  Ini AT IniA: STRUCT
    DevIDB_DBNo:    INT;
    DefRcp_DBNo:    INT;
    DevRcp_DBNo:    INT;
    HMIRcp_DBNo:    INT;
    RcpCnf_Offset:  INT;
    RcpCnf_Length:  INT;
    RcpPar_Qffset:  INT;
    RcpPar_Length:  INT;
    RcpEdt_Offset:  INT;
    RcpEdt_Length:  INT;
    HMIRed_Offset:  INT;
    HMIRed_Lenght:  INT;
    HMIWrt_Offset:  INT;
    HMIWrt_Length:  INT;
    HMIBtn_Offset:  INT;
    HMIBtn_Length:  INT;
  END_STRUCT; 
  
//------ Fehler end

     
  ANY1:   ANY;
  sAny1 AT ANY1: STRUCT
    S7BYTE :BYTE;   // Byte 0       Reserviert für S7 (10h)
    DatTyp :BYTE;   // Byte 1       Datentyp *1
    Anzahl :INT;    // Byte 2+3     Länge der Variablen
    DBNR   :INT;    // Byte 4+5     DB-Nummer
    //SpBer1 :BYTE;   // Byte 6       Datentyp beim Auslesen *3 (Speicherbereich *2)
    //Null   :BYTE;   // Byte 7       Null beim Auslesen
    //SpBer2 :WORD;   // Byte 8+9     Speicherbereich Nummer beim Auslesen *3
    Zeiger :DWORD;  // Byte 6+7+8+9 Bereichszeiger_DW OR Adressword_DW (ShiftLinks 3)
  END_STRUCT;

  ANY2:   ANY;
  sAny2 AT ANY2: STRUCT
    S7BYTE :BYTE;   // Byte 0       Reserviert für S7 (10h)
    DatTyp :BYTE;   // Byte 1       Datentyp *1
    Anzahl :INT;    // Byte 2+3     Länge der Variablen
    DBNR   :INT;    // Byte 4+5     DB-Nummer
    //SpBer1 :BYTE;   // Byte 6       Datentyp beim Auslesen *3 (Speicherbereich *2)
    //Null   :BYTE;   // Byte 7       Null beim Auslesen
    //SpBer2 :WORD;   // Byte 8+9     Speicherbereich Nummer beim Auslesen *3
    Zeiger :DWORD;  // Byte 6+7+8+9 Bereichszeiger_DW OR Adressword_DW (ShiftLinks 3)
  END_STRUCT;
  
  Head1: STRUCT
    DvID: INT;
    Leng: INT;
    RcpQ: INT;
    RcpN: INT;
  END_STRUCT;  
  Head2: STRUCT
    DvID: INT;
    Leng: INT;
    RcpQ: INT;
    RcpN: INT;
  END_STRUCT;  
END_VAR

//--------------------------------------------------------------------------
//
//F: .... Der Typ der Sicht ist nicht mit dem Typ der Variablen verträglich.
 
der Punkt war, ich wollte den gesamten Struct-kladradatsch in Einem in einen auf einen Ausgang legen...
 
...so muß es aussehn.

Code:
VAR_OUTPUT
  IniData: STRUCT
    DevIDB_DBNo:    INT;
    DefRcp_DBNo:    INT;
    DevRcp_DBNo:    INT;
    HMIRcp_DBNo:    INT;
    RcpCnf_Offset:  INT;
    RcpCnf_Length:  INT;
    RcpPar_Qffset:  INT;
    RcpPar_Length:  INT;
    RcpEdt_Offset:  INT;
    RcpEdt_Length:  INT;
    HMIRed_Offset:  INT;
    HMIRed_Lenght:  INT;
    HMIWrt_Offset:  INT;
    HMIWrt_Length:  INT;
    HMIBtn_Offset:  INT;
    HMIBtn_Length:  INT;
  END_STRUCT; 
END_VAR
 
Zuviel Werbung?
-> Hier kostenlos registrieren
In SCL kannst du doch Strukturen direkt einander zuweisen, wenn sie denn die gleiche Größe besitzen.
Code:
VAR_OUTPUT
  oIni : STRUCT 
    a : INT;
    b : INT;
  END_STRUCT;
END_VAR

VAR_TEMP
  tIni : STRUCT 
    a : INT;
    b : INT;
  END_STRUCT;
END_VAR

BEGIN
oIni := tIni;
 
...vollkommem richtig.
Ich binn völlig daneben. Bin hier an Irakischer Grenze in einer Stahlbude. 50° Umgebung:sm17:, Höllenlärm usw. da verliert man schonmal die kühle Übersicht::sm21:
 
Zurück
Oben