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

Ergebnis 1 bis 9 von 9

Thema: WinCC TIA V12 Professional - interne INT-Variable

  1. #1
    Registriert seit
    11.02.2009
    Ort
    01968 Brieske
    Beiträge
    105
    Danke
    25
    Erhielt 6 Danke für 6 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,
    ich habe ein Programm geschrieben für eine Schnittbildberechnung. Da ich die vielen Schleifen, Abfragen und Werteverschieben nicht in einem SPS-Zyklus abarbeiten kann (Zykluszeit) habe ich diese Berechnung über xx Zyklen aufgeteilt. Nun benötigt diese Berechnung ca. 15 Sekunden. Dies aber nur am Rande.
    Die Wartezeit habe ich mit einem Bargraph visualisiert. Zusätzlich wollte ich aber ich aber noch solch einen Ladekreis (siehe Anhang) visuell darstellen. Einen Zähler in der SPS zu programmieren macht meiner Meinung nach keinen Sinn, da ich eine Abtastrate zwischen VISU und SPS von ca. 1 Sekunde habe. Dabei wird dieser Kreis zu stark ruckeln.
    Mein neuer Gedanke war, man kann bestimmt eine interne Variable dafür nutzen. Von der SPS kommt ein Bit als Signal zum starten und der Kreis läuft. Leider habe ich keine Ahnung was ich in einen Script schreiben muss um eine Variable zu erhalten, welche in 250 MillisekundenTakt immer von 0 - 11 zählt und wieder bei 0 beginnt.

    Vielen Dank für eure Hilfe schon im Voraus!

    LG Dirk
    Angehängte Grafiken Angehängte Grafiken
    >>> Bestandsschutz gibt es nicht - allenfalls ein: "Nichtvorhandensein einer Anpassungspflicht" <<<
    Zitieren Zitieren WinCC TIA V12 Professional - interne INT-Variable  

  2. #2
    Registriert seit
    13.10.2007
    Beiträge
    12.064
    Danke
    2.793
    Erhielt 3.288 Danke für 2.168 Beiträge

    Standard

    Warum setzt du nicht die Abtastrate dieser einen Variablen auf 100ms herab?
    - - -
    Wer als Werkzeug nur einen Hammer hat, sieht in jedem Problem einen Nagel.

  3. #3
    DiGo1969 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    11.02.2009
    Ort
    01968 Brieske
    Beiträge
    105
    Danke
    25
    Erhielt 6 Danke für 6 Beiträge

    Standard

    Moin,
    Ich bin der Meinung (ohne es getestet zu haben) in dem Bild wo ich diesen Kreis darstellen möchte muss ich ca. 2100 TAG aus der SPS lesen. Und weiterhin, bedingt durch mein eh schon überlastetes Netzwerk (durch Video-Übertragung) bekomme ich das nicht gleichmäßig hin.
    Bei WinCC flexible kann ich jeder einzelnen Variable eine Abtastzeit (Zykluszeit) zuordnen. Bei WinCC TIA V12 geht das nur für das gesamte Bild und dann bekomme ich wieder die 2100 TAG als Problem.

    Weiterhin war dann noch der Gedanke: „Ich kann mich ja auch mal mit was neuem beschäftigen…“ J

    LG Dirk
    >>> Bestandsschutz gibt es nicht - allenfalls ein: "Nichtvorhandensein einer Anpassungspflicht" <<<

  4. #4
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.314
    Danke
    932
    Erhielt 3.329 Danke für 2.688 Beiträge

    Standard

    Kann WinCC TIA V12 Professional animierte GIF abspielen?

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  5. #5
    Registriert seit
    13.10.2007
    Beiträge
    12.064
    Danke
    2.793
    Erhielt 3.288 Danke für 2.168 Beiträge

    Standard

    Meines erachtesn kann man jede Variablen den Erfassungszyklus sperat einstellen,
    es sei den die Variablen sind als Array deklariert.
    Bei 2100 Variablen auf einen Bild, ist da wahrscheinlich einiges Schiefgelaufen bei
    euch in der Ausarbeitung des Projektes.
    - - -
    Wer als Werkzeug nur einen Hammer hat, sieht in jedem Problem einen Nagel.

  6. #6
    DiGo1969 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    11.02.2009
    Ort
    01968 Brieske
    Beiträge
    105
    Danke
    25
    Erhielt 6 Danke für 6 Beiträge

    Standard

    Zitat Zitat von rostiger Nagel Beitrag anzeigen
    Meines erachtesn kann man jede Variablen den Erfassungszyklus sperat einstellen,
    es sei den die Variablen sind als Array deklariert.
    Ich habe das jetzt gefunden wo man das einstellen kann - war ein bisschen versteckt...
    Danke!!!


    Zitat Zitat von rostiger Nagel Beitrag anzeigen
    Bei 2100 Variablen auf einen Bild, ist da wahrscheinlich einiges Schiefgelaufen bei
    euch in der Ausarbeitung des Projektes.
    Wie ich schon erwähnt habe sind das Schnittbilder, welche ich darstelle. Dazu habe ich 400 Linien, welche ich dynamisiert habe. Je Linie habe ich 5 Variablen (sichtbar, Position X, Position Y, Länge, Breite).



    Aber allen vielen Dank. Ich werde doch den Weg gehen, das ich die Ladekreis über die SPS realisiere.

    LG Dirk
    >>> Bestandsschutz gibt es nicht - allenfalls ein: "Nichtvorhandensein einer Anpassungspflicht" <<<

  7. #7
    DiGo1969 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    11.02.2009
    Ort
    01968 Brieske
    Beiträge
    105
    Danke
    25
    Erhielt 6 Danke für 6 Beiträge

    Standard

    Hallo,
    habe das nun versucht über die SPS zu realisieren. Leider musste ich dabei feststellen, dass das ganze sehr stark ruckelt. So kann ich das einfach nicht lassen.

    Sollte es noch jamanden geben, der mir einen Ansatz geben kann, wie ich eine interne Variable anlege, welche ständig von 0-16 zählt in einem Takt von 100ms, würde ich das ganze noch mal darüber probieren.


    MfG Dirk
    >>> Bestandsschutz gibt es nicht - allenfalls ein: "Nichtvorhandensein einer Anpassungspflicht" <<<

  8. #8
    Registriert seit
    13.10.2007
    Beiträge
    12.064
    Danke
    2.793
    Erhielt 3.288 Danke für 2.168 Beiträge

    Standard

    Ich habe mal so etwas wie eine Progressbar gemacht, da habe ich einen Timer mit Scripten gebaut.
    So richtig zufrieden bin ich damit nicht, ich verstehe auch die Siemens Leute nicht, das die ein solches
    Element in WinCC nicht anbieten. Schön wäre auch ein interner Timer in WinCC den man in milisikunden
    auswerten kann.

    Na ja, vielleicht hilft es dir.

    Progressbar.jpg

    Script für das Pop-Up
    Code:
    '--- Variablen definieren ---------------------------------
    Dim i, j, text
    
    
    '--- Auftrag auswerten ------------------------------------
    Select Case Auftrag
    	'Runtime beenden
    	Case 1 text = "wechsel zum Betriebssystem"
    	'Rechner runterfahren
    	Case 2 text = "der Rechner wird runtergefahren"
    End Select
    
    SmartTags("001\Pop_UP\Text_1") = text
    
    
    '--- Auftrag melden --------------------------------------
    'Meldung "warten Sie bitte einen Augenblick"
    SmartTags("001\Pop_UP\Text_1") = "warten Sie bitte einen Augenblick"
    
    For i = 1 To 7
    	SmartTags("Prozessbar\Status") = i
    	Delay 1	
    	If SmartTags("Delay\loop_breacker") = True Then Exit For
    Next
    
    If SmartTags("Delay\loop_breacker") = True Then
    	SmartTags("Delay\loop_breacker") = False
    	Exit Sub
    End If
    
    'Meldung Auftrag
    SmartTags("001\Pop_UP\Text_1") = text
    
    For i = 8 To 20
    	SmartTags("Prozessbar\Status") = i
    	Delay 1	
    	If SmartTags("Delay\loop_breacker") = True Then Exit For
    Next
    
    If SmartTags("Delay\loop_breacker") = True Then
    	SmartTags("Delay\loop_breacker") = False
    	Exit Sub
    End If
    
    
    '--- Auftrag ausführen ----------------------------------
    Select Case Auftrag
    	'Runtime beenden
    	Case 1 StopRuntime hmiStopRuntime
    	'Rechner runterfahren
    	Case 2 StartProgram SmartTags("001\Beenden\Batch"), "", hmiShowNormal, hmiNo
    End Select
    Script für den Timer
    Code:
    '-------------------------------------------------------------------------
    'Delay                                                            29.06.12
    '
    'Mit diesen Script wird eine Verzögerung für WinCCflexibel realisiert,
    'Dazu wird eine Schleife ausgeführt, wo ein Zähler hochgezählt wird.
    'Zusätzlich ist ein Loopbreacker über die Systemzeit und einer Globalen
    'Variabel möglich. Die Zeit wird in 100ms Raster vorgegeben.
    '
    'V1.0 RN
    '
    '-------------------------------------------------------------------------
    
    '--- Variablen Deklarieren --------------------------------
    Dim StartTime, StopTime
    Dim Zaehler, StopZaehler
    Dim abgelaufen
    
    
    '--- Variablen vorbesetzen --------------------------------
    abgelaufen = False
    Zaehler = 0
    SmartTags("Delay\loop_breacker") = False
    
    
    '--- Zaehler berechen -------------------------------------
    StopZaehler	= DelayTime * SmartTags("Delay\ScriptZyklen")
    
    
    '--- Watchdog berechnen -----------------------------------
    DelayTime = Round((DelayTime/10)+0.5)
    StartTime = Now
    StopTime = StartTime + DelayTime / 24 / 3600
    
    
    '--- Warteschleife ----------------------------------------
    Do
    	'Loopbreacker
    	If SmartTags("Delay\loop_breacker") = True Then abgelaufen = True
    	
    	'Zaehler hochzählen
    	Zaehler = Zaehler + 1
    			
    	'Kontrolle ob Zaehler abgelaufen
    	If Zaehler >= StopZaehler Then abgelaufen = True
    		
    	
    	'Kontrolle ob Watchdog abgelaufen	 
    	If Now >= StopTime Then abgelaufen = True	
    	
    Loop Until abgelaufen = True
    - - -
    Wer als Werkzeug nur einen Hammer hat, sieht in jedem Problem einen Nagel.

  9. #9
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.314
    Danke
    932
    Erhielt 3.329 Danke für 2.688 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von DiGo1969 Beitrag anzeigen
    Sollte es noch jamanden geben, der mir einen Ansatz geben kann, wie ich eine interne Variable anlege, welche ständig von 0-16 zählt in einem Takt von 100ms, würde ich das ganze noch mal darüber probieren.
    Mit der Systemfunktion "SimuliereVariable" kann man innerhalb der HMI ohne externe Hilfe eine Variable im 200ms-Raster hochzählen lassen und für Animationen nutzen. Die Systemfunktion "SimuliereVariable" kann man allerdings nur beim Bild-Ereignis "Aufgebaut" aufrufen. (Und man kann damit leider keine Ereignisse auslösen.)

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  10. Folgender Benutzer sagt Danke zu PN/DP für den nützlichen Beitrag:

    DiGo1969 (26.09.2014)

Ähnliche Themen

  1. Antworten: 19
    Letzter Beitrag: 10.08.2013, 17:02
  2. TIA TIA V12 Professional Drucken von Kurven
    Von xeon285 im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 12.07.2013, 10:41
  3. Installation TIA WinCC V12 Professional
    Von OlliHa im Forum HMI
    Antworten: 3
    Letzter Beitrag: 08.03.2013, 18:22
  4. WinCC V7.0 Interne Variable Setzen
    Von MauriceS im Forum HMI
    Antworten: 4
    Letzter Beitrag: 11.07.2012, 08:14
  5. interne WinCC Variable in CFC
    Von dewenni im Forum HMI
    Antworten: 1
    Letzter Beitrag: 26.07.2007, 08:19

Stichworte

Lesezeichen

Berechtigungen

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