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

Ergebnis 1 bis 7 von 7

Thema: Fragen zu Datenbausteinen und WIN CC

  1. #1
    Registriert seit
    20.04.2006
    Beiträge
    54
    Danke
    7
    Erhielt 0 Danke für 0 Beiträge

    Beitrag


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen,

    Frage 1:
    wenn ich in einem selbstgeschriebenen Baustein als In und Out Varaiblen Datenbausteine verwenden will, ist es dann möglich für die In und Outvariablen verschiedenen Datenbausteine zu verwenden, oder kann ich bei einer Funktion nur auf einen Datenbaustein verzweigen?

    Frage 2:
    Wenn bei einer SPS Daten mit einem WIN CC System austauschen will, muß ich TAG`´s erwerben. Um nun möglichst wenige Tags zu benötigen wollte ich immer Doppelworte verwenden. Wenn ich diese nun in S7 ansprechen will kann ich diesen keine Kommentare zuweisen. Wie löst ihr dieses Problem, da es mit Kommentaren besser zu verstehen ist.

    Euch allen einen schönen und sonnigen 1.Mai.
    Zitieren Zitieren Fragen zu Datenbausteinen und WIN CC  

  2. #2
    Registriert seit
    08.08.2007
    Ort
    Dresden
    Beiträge
    9.648
    Danke
    1.059
    Erhielt 2.046 Danke für 1.627 Beiträge

    Standard

    ich widme mich erstmal der ersten frage

    Zitat Zitat von Keeper Beitrag anzeigen
    Frage 1:
    wenn ich in einem selbstgeschriebenen Baustein als In und Out Varaiblen Datenbausteine verwenden will, ist es dann möglich für die In und Outvariablen verschiedenen Datenbausteine zu verwenden, oder kann ich bei einer Funktion nur auf einen Datenbaustein verzweigen?
    globale Datenbausteine:

    es gibt ja mindestens zwei Möglichkeiten, einem Baustein eine DB-Nummern zu übergeben:

    1. als Zahl im Format Byte, Word oder INT
    2. als "Block_DB" mit der Angabe "DBxy"

    weitere informationen findest du unter Datenbausteinaufruf wie bei S5 ... A DB...

    ja, es ist möglich mehrere zu übergeben

    Instanz-Datenbaustein:

    da gibt es (im Idealfall - hier gibt es noch ein paar Sonderfälle ) nur einen, je FB-Aufruf, dieser kann allerdings auch als Teil eines Multi-Instanz-Datenbausteins sein ...
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  3. Folgender Benutzer sagt Danke zu vierlagig für den nützlichen Beitrag:

    Keeper (30.04.2008)

  4. #3
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.218
    Danke
    533
    Erhielt 2.696 Danke für 1.948 Beiträge

    Standard

    Dann nehme ich mal die 2. Frage .

    Meinst du WinCC-Flex oder WinCC?
    So oder so, du mußt die Variablen in WinCC ja nicht vollsymbolisch anbinden, sondern kannst eine Variable anlegen, ihr einen Namen geben und dann den Typ selbst festlegen. Du kannst also in deinem DB lauter Byte verwenden und auch symolisieren und per WinCC auf ein Doppelword mit 4 Byte zugreifen. Nur mußt du diese Variable in WInCC selbst anlegen und nicht aus dem DB symolisch heraus anlegen!
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

  5. Folgender Benutzer sagt Danke zu Ralle für den nützlichen Beitrag:

    Keeper (30.04.2008)

  6. #4
    Keeper ist offline Benutzer
    Themenstarter
    Registriert seit
    20.04.2006
    Beiträge
    54
    Danke
    7
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Zitat Zitat von Ralle Beitrag anzeigen
    Nur mußt du diese Variable in WInCC selbst anlegen und nicht aus dem DB symolisch heraus anlegen!
    Hallo Ralle,

    kannst du dieses Vorgeben mal einwenig genauer beschreiben.

    Fange gerade erst an mit WIN CC


    Vielen Dank Ralle.
    Zitieren Zitieren Smbolisch anlegen  

  7. #5
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.218
    Danke
    533
    Erhielt 2.696 Danke für 1.948 Beiträge

    Standard

    Ich seh grad, du spricht von Tags, also ist es WinCC 6.0 oder 6.2 ja?

    Du legst im Variablenhaushalt unter deiner Steuerung eine neue Variable an. Dieser gibst du einen Namen. Dann unter Adresse: Wählen wird der Datenbereich, die DB-Nummer und die Adressierung, sowie die Nummer des z.bsp. DD angegeben. Jetzt hast du allerdings das Problem, eine DWord-Variable zu haben, i der du aber u.U. 4 unterschiedliche Byte stehen hast. Kommt darauf an, wozu du die Variablen brauchst. Bei Bool ist das kein Problen, da kann man die einzelnen Bits ja ansprechen. Willst du die Bytes trennen, mußt du bei Wertänderung ein Script laufen lassen, daß die 4 Byte aus dem Wort liest und in 4 interne Byte-Var schreibt. Wenn du auch noch Daten von WnCC in die gleichen Byte zurückschreiben willst, brauchen alle ein weiteres Script, daß die 4 Byte wieder in dein Word schreibt. Ich hab das ganze mit Rohdatenvariablen (max. Länge 204 Byte!!!!) gemacht, allerdings aufpassen, da sind die Bytes vertauscht! Außerdem ist es bei den Rohdaten generell ziemlich ungünstig In Variablen, die die SPS an WinCC liefert, auch rückwärts Werte zurückzugeben, das kann sich gegenseitig böse behindern. Alles in Allem hab ich dann jemanden ein ActiveX-Control schreiben lassen (der kann das echt gut ) mit dem ich Rohdaten aus der SPS auslese und diese dann in interne Variablen schreibe, gleich im richtigen Format, aber das war recht aufwändig, gerade als Anfänger ist da die Aufrüstung auf mehr Tags evtl. preislich und nervlich eher anzuraten.
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

  8. #6
    Registriert seit
    22.09.2008
    Beiträge
    2
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hi, ich bin neu hier und habe genau das Problem, was Ralle in seinem letzten Post beschreibt. Ich versuche Daten an die SPS mittels Rohvariablen zu schreiben, bekomme aber nur seltsame Werte im DB.
    Hat vielleicht jemand einen Lösungsansatz für das "Auseinanderpflücken" der Variablen aus E/A-Feldern (WORD) und dann das Zusammensetzen in die Rohvariable?

    Hier mal ein Beispiel-Code von mir:
    Code:
    void Funktion(Tag Rohdaten)
    {
    #define ANZAHL 200
    BOOL res; 
    BYTE datenbyte[ANZAHL];
    WORD b1=0x100;
    DWORD status;
    int i;
    for (i=0;i<ANZAHL;i++)
    {
      datenbyte[i]=0;
    }
    i=0;
    datenbyte[i]=(BYTE)((WORD)"Schritt_1.Sollzeit_Überwachung_h"/b1);i++;
    datenbyte[i]=(BYTE)((WORD)"Schritt_1.Sollzeit_Überwachung_h"%b1);i++;
    datenbyte[i]=(BYTE)((WORD)"Schritt_1.Sollzeit_Überwachung_m"/b1);i++;
    datenbyte[i]=(BYTE)((WORD)"Schritt_1.Sollzeit_Überwachung_m"%b1);i++;
    usw.
    ...
     
    res=SetTagRawStateWait(Rohdaten,datenbyte,ANZAHL,&status);
    Vielen Dank schon mal im Voraus.

  9. #7
    Registriert seit
    14.06.2005
    Beiträge
    223
    Danke
    9
    Erhielt 15 Danke für 15 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Das mit dem ActiveX würde mich mal näher interesieren. Kannst du das erläutern wie das funktioniert??? Da kann man vielleicht echt Variablen sparen.

    Und generell muss ich sagen, mehr Tags kaufen, kommte echt günstiger, ich habe auch Variablen in DW versteckt, mache es auch noch mit BOOLs, aber den Aufwand ist es echt nicht wert.

    Servus.

Ähnliche Themen

  1. Problem mit Datenbausteinen
    Von marcel_s84 im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 15.04.2010, 14:33
  2. Remanenz bei Datenbausteinen
    Von Roos im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 17.11.2009, 20:36
  3. S7-300 Arbeiten mit Datenbausteinen
    Von veritas im Forum Programmierstrategien
    Antworten: 10
    Letzter Beitrag: 27.08.2009, 02:59
  4. Arten von Datenbausteinen
    Von Anonymous im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 07.05.2005, 20:38
  5. S7-222: Daten in Datenbausteinen
    Von reini69 im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 10.12.2004, 12:48

Lesezeichen

Berechtigungen

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