WinCC Flexible: Bereichszeiger symbolisch

Markus

Administrator
Teammitglied
Beiträge
6.323
Reaktionspunkte
2.341
Zuviel Werbung?
-> Hier kostenlos registrieren
hallo,

wie lassen sich Bereichszeiger symbolisch anbinden?

In der SPS habe ich z.B. die Struct "Steuerungsauftrag" angelegt, darin sind die Variablen für Auftragsnummer, parameter-1, Parameter-2 und Parameter-3


WinCC flexible will aber nicht an die Struct angebunden werden, gehe ich eine Ebene tiefer auf die Auftragsnummer, dann meckert es weildie Varibale zu kurz ist.

Habe das also bisher immer direkt gemacht, aber das muss doch auch irgendwie symbolisch gehen!

Was mache ich schon wieder falsch?
 
... ich kann jetzt nicht für Flex sprechen ...

aber hast du beachtet, das dieser Bereichszeiger 4 Worte (8 Byte) groß ist ?

Gruß
LL
 
Zuviel Werbung?
-> Hier kostenlos registrieren
... ich kann jetzt nicht für Flex sprechen ...

aber hast du beachtet, das dieser Bereichszeiger 4 Worte (8 Byte) groß ist ?

Gruß
LL

ja, wie meinst du das jetzt?

In der SPS habe ich z.B. die Struct "Steuerungsauftrag" angelegt, darin sind die Variablen für Auftragsnummer, parameter-1, Parameter-2 und Parameter-3
 
... das habe ich gelesen ...
Wie sieht denn die Struct aus bei dir ?
Code:
    OP_Auftragsfach    : STRUCT         // OP-Auftragsfach für Daten-Austausch
                   Res : BYTE ;         // Res.
                 JobNr : BYTE ;         // Job-Nr.
            Parameter1 : STRUCT         // Parameter 1
                         L : BYTE ;    
                         H : BYTE ;    
                         END_STRUCT ;    
            Parameter2 : STRUCT         // Parameter 2
                         L : BYTE ;    
                         H : BYTE ;    
                         END_STRUCT ;    
            Parameter3 : STRUCT         // Parameter 3
                         L : BYTE ;    
                         H : BYTE ;    
                         END_STRUCT ;
so ist das bei mir aufgebaut und zumindestens ProTool schluckt das so. Warum dann nicht auch Flex ...?

Gruß
LL
 
im prinzip auch so, aber die parameter sind word, nicht h-byte und l-byte.

an protool kann ich mich mehr genau erinnern, aber ich glaube da ging es.
nur bekomme ich das mit flex nicht hingebogen...
 
SCL mit AT

Hallo
Symbolisch muss mit Arrays gearbeitet werden, darum habe ich dieses Problem mit SCL gelöst.
Befehl AT siehe auch FAQ: http://support.automation.siemens.com/CH/view/de/21946854

Code:
  VAR
  BeZe_Steuerungsauftrag                         : ARRAY [1..4] OF WORD;  //an HMI: Bereichszeiger Steuerungsauftrag
  AT_Steuerungsauftrag AT BeZe_Steuerungsauftrag : STRUCT                 //Datensicht auf Steuerungsauftrag an HMI
     s_I_AuftrNr                                 : INT;                   //Steuerungsauftrag an HMI: Auftrags-Nr.
     s_I_Para1                                   : INT;                   //Steuerungsauftrag an HMI: Parameter 1
     s_I_Para2                                   : INT;                   //Steuerungsauftrag an HMI: Parameter 2
     s_I_Para3                                   : INT;                   //Steuerungsauftrag an HMI: Parameter 3
                                                   END_STRUCT;            
  BeZe_Bildnummer                                : ARRAY [1..5] OF WORD;  //von HMI: Bereichszeiger Bildnummer
  AT_Bildnr AT BeZe_Bildnummer                   : STRUCT                 //Datensicht auf Bereichszeiger Bildnummer vom HMI
     s_I_Bildtyp                                 : INT;                   //Aktueller Bildtyp (1=Grundbild;4=Permanentfenster)
     s_I_Bildnr                                  : INT;                   //Aktuelle Bildnummer (1 bis 65535)
     s_I_Res1                                    : INT;                   //Reserve
     s_I_Feldnr                                  : INT;                   //Aktuelle Feldnummer (1 bis 65535)
                                                   END_STRUCT;            
  BeZe_Datum_Uhrzeit                             : ARRAY [1..6] OF WORD;  //von HMI: Bereichszeiger Datum/Uhrzeit
  AT_Datum_Uhrzeit AT BeZe_Datum_Uhrzeit         : STRUCT                 //Datensicht auf Bereichszeiger Datum/Uhrzeit vom HMI
     s_B_Res1                                    : BYTE;                  //Reserve
     s_B_Stunde                                  : BYTE;                  //Uhrzeit vom HMI: Stunde [BCD, 0-23]
     s_B_Minute                                  : BYTE;                  //Uhrzeit vom HMI: Minute [BCD, 0-59]
     s_B_Sekunde                                 : BYTE;                  //Uhrzeit vom HMI: Sekunde [BCD, 0-59]
     s_B_Res2                                    : BYTE;                  
     s_B_Res3                                    : BYTE;                  
     s_B_Res4                                    : BYTE;                  
     s_B_Woch_Tag                                : BYTE;                  //Datum vom HMI: Wochentag [BCD, 1-7, 1=So]
     s_B_Tag                                     : BYTE;                  //Datum vom HMI: Tag [BCD, 1-31]
     s_B_Monat                                   : BYTE;                  //Datum vom HMI: Monat [BCD, 1-12]
     s_B_Jahr                                    : BYTE;                  //Datum vom HMI: Jahr [BCD, 80-99/0-29]
                                                   END_STRUCT;            
  BeZe_Koordinierung                             : WORD;                  //von HMI: Bereichszeiger Koordinierung
  AT_Koordinierung AT BeZe_Koordinierung         : STRUCT                 //Datensicht auf Koordinierungsdaten vom HMI
     s_B_Res1                                    : BYTE;                  //Reserve
     s_X_Anlaufbit                               : BOOL;                  //Das HMI setzt das Bit kurzeitig während dem Anlauf auf log.0
     s_X_Betriebsart                             : BOOL;                  //Betriebsart HMI (0=Online;1=Offline)
     s_X_Lebensbit                               : BOOL;                  //Lebensbit HMI (invertiert im 1 Sek. Takt)
                                                   END_STRUCT;            
END_VAR
 
Zurück
Oben