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

Ergebnis 1 bis 5 von 5

Thema: WinCC: C-Skript an Eingabewert. String in unsigned long

  1. #1
    Registriert seit
    18.02.2011
    Beiträge
    17
    Danke
    5
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo ihr Experten.

    Ich habe das Problem, dass eine Time_Of_Day Variable aus der S7 in WinCC in einem EA-Feld dargestellt werden soll und auch geschrieben werden soll.

    Ich habe mir ein Skript geschrieben, dass an dem Ausgabewert hängt und aus der im Variablenhaushalt angelegten vorzeichenlosen 32-Bit-Variable einen String in dem Format

    hh:mm:ss

    macht.

    In diesem Format soll der neue Wert auch eingegeben werden. Dieses muss dann auseinandergedröselt werden und wieder zu jener 32-Bit-Variable kompatibel und dann in die Steuerung geschrieben werden.
    Das Skript hänge ich denke ich mal an "Eingabewert", oder? Wie kann die Konvertierung aussehen? Ich stehe da auf dem Schlauch. Strings auslesen ist nicht meine Stärke :/

    Vielen Dank für eure Hilfe.
    Zitieren Zitieren WinCC: C-Skript an Eingabewert. String in unsigned long  

  2. #2
    Registriert seit
    17.07.2009
    Ort
    Am Rande der Ostalb
    Beiträge
    5.541
    Danke
    1.154
    Erhielt 1.254 Danke für 983 Beiträge

    Standard

    Ich mach das ganze in der Steuerung. Bei mir wird DATE_AND_TIME in einzelne INTs zerlegt und dann an WinCC übergeben
    Ist - für mich zumindest - einfacher zu handeln.

    Gruß
    Dieter

  3. #3
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.794
    Danke
    398
    Erhielt 2.417 Danke für 2.013 Beiträge

    Standard

    Hallo,
    ich bin jetzt nicht der C-Programmierer und kann dir somit auch kein Script liefern.
    Es müßte aber auch in C den Befehl (die Methode) Split geben. Dieser befehl zerlegt einen Quell-String nach einem übergebenen Trenner. Das könnte hier der ":" sein. Zurück geliefert wird dir dann ein Array mit der Anzahl der Teilstrings. Im Teilstring(0) ständen nun die Stunden, in (1) die Minuten und in (2) die Sekunden.
    Wenn du die umgekehrte Wandlung schon gemacht hast dann weißt du ja, dass TOD die Anzahl der Millisekunden sind, die seit 0:00 Uhr vergangen sind. Also nimmst du deine Teilstrings und multiplizierst die entsprechend := clng(Teilstring(2))*1000 + clng(Teilstring(1))*60000 + clng(Teilstring(0)) * 3600000.

    Eine alternative Zerlegung wäre über die Befehle Left, Mid, Right zu realisieren.

    Gruß
    Larry

  4. Folgender Benutzer sagt Danke zu Larry Laffer für den nützlichen Beitrag:

    Aerosail (14.11.2012)

  5. #4
    Aerosail ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    18.02.2011
    Beiträge
    17
    Danke
    5
    Erhielt 0 Danke für 0 Beiträge

    Standard

    @blkmove:

    Es geht nicht darum, dass es einfacher in der Steuerung ist. Das ist mir auch klar. Es soll ein WinCC an eine Steuerung angebunden werden, an der vorher nur flexible lief. Daher das TOD.
    Klar könnt man das hinzuprogrammieren, aber die Problematik soll auch als Referenz von WinCC-Seite mal gelöst werden.

    @Larry:
    Danke, das mit dem split werd ich mir mal anschauen. Die Bibliotheken von C sind in WinCC leider so gut wie gar nicht dokumentiert.
    Die Formatierung von TOD hab ich in der Tat auf dem Schirm.

  6. #5
    Registriert seit
    29.03.2004
    Beiträge
    5.800
    Danke
    144
    Erhielt 1.710 Danke für 1.240 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Du brauchst dazu keine speziellen WinCC Bibliotheken. Die Funktionen die du brauchst sind alle in der Standard C Library vorhanden. Da es diese schon an die 40 Jahre gibt, ist die auch ausreichend dokumentiert.

Ähnliche Themen

  1. Long Integer in Real Wert umwandeln
    Von ThermoFisher im Forum Simatic
    Antworten: 7
    Letzter Beitrag: 24.10.2011, 16:31
  2. Eingabewert speichern OP
    Von zloyduh im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 22.10.2009, 20:53
  3. REAL Wert in unsigned INT umwandeln
    Von caret im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 08.07.2008, 18:44
  4. WCF flex Eingabewert bergrenzen
    Von Tito im Forum HMI
    Antworten: 2
    Letzter Beitrag: 09.01.2007, 11:15
  5. SiemensLogo v2.0 long version updaten?oder läuft 5.0 drauf?
    Von Freddy im Forum Sonstige Steuerungen
    Antworten: 2
    Letzter Beitrag: 21.06.2005, 08:11

Lesezeichen

Berechtigungen

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