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

Seite 2 von 3 ErsteErste 123 LetzteLetzte
Ergebnis 11 bis 20 von 26

Thema: WinCC Automatischer Bildwechsel

  1. #11
    Registriert seit
    09.08.2006
    Beiträge
    3.626
    Danke
    911
    Erhielt 656 Danke für 542 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    evtl. kannst ja auch das Script als lokale oder globale Aktion erstellen und zyklisch (5s) triggern.

    Gruß.

  2. #12
    Registriert seit
    09.01.2007
    Beiträge
    42
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    So habe mal einen Butten erstellt und in diesem Bei Mausklick folgenden Code in C eingetragen.
    Code:
    #include "apdefap.h"
    void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
    {
    #pragma code("Kernel32.dll")
    void Sleep(int Milliseconds);
    #pragma code()
    
    SetTagBit("TestDurchschalten",1);    //Return-Type: BOOL 
    
    Sleep(5000); //Zeitangabe in Millisekunden 
    OpenPicture("S_Test1.pdl");
    }
    Das ganze löse ich per Mausklick aus, das Bit wird auch gesetzt.
    Wie frage ich jetzt das Bit auf der anderen Seite wieder ab, kann es ja nicht wieder mit einem Mausklick auslösen.

    Gruß

  3. #13
    Registriert seit
    09.01.2007
    Beiträge
    42
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Das sagt mir nichts!

    Zitat Zitat von ducati Beitrag anzeigen
    evtl. kannst ja auch das Script als lokale oder globale Aktion erstellen und zyklisch (5s) triggern.

    Gruß.
    Bedenkt bitte ich bin Betriebstechniker und kein Programieren.

  4. #14
    Registriert seit
    09.01.2007
    Beiträge
    42
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    so habe es auf dem zweiten Bild so gemacht.
    Code:
    #include "apdefap.h"
     BOOL _main(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
    {
    #pragma code("Kernel32.dll")
    void Sleep(int Milliseconds);
    #pragma code()
    
    if( GetTagBit("TestDurchschalten")==0)    //Return-Type: BOOL 
    return 0;
    else
    Sleep(5000); //Zeitangabe in Millisekunden 
    OpenPicture("S_test.pdl");
    }

  5. #15
    Registriert seit
    09.08.2006
    Beiträge
    3.626
    Danke
    911
    Erhielt 656 Danke für 542 Beiträge

    Standard

    Hmm, ich würde Sleep nicht verwenden. Hab grad mal geschaut und meine Befürchtungen haben sich bestätigt. Deshalb meine Empfehlung mit dem Trigger:

    Achtung:
    Die Funktion "Sleep()" hat einen äußerst
    negativen Einfluss auf die Performance der Aktionsbearbeitung. Bitte beachten
    Sie daher unbedingt die folgenden Punkte, wenn Sie diese Funktion einsetzen
    möchten.
    • Die Bearbeitung des C-Skriptes wird bei der Benutzung von Sleep() um die
      angegebene Zeit unterbrochen. Auftretende Anforderungen an die unterbrochene
      Funktion können während dieser Zeit nicht bearbeitet werden.
    • Weiterhin werden alle Aktionen mit dem gleichen Trigger nicht mehr
      bearbeitet. Mit dem gleichen Trigger bedeutet, dass alle Aktionen mit zyklischem
      Trigger oder alle Aktionen mit einem Variablentrigger nicht mehr bearbeitet
      werden. Rufen Sie gleichzeitig Aktionen auf, welche zyklisch, azyklisch, auf
      einen Variablentrigger und auf ein Ereignis gestartet werden und wenn alle diese
      Funnktionen die Sleep()-Funktionen nutzen, dann werden sämtliche Aktionen in
      Ihrer Ausführung gestoppt. Im ungünstigsten Fall halten Sie mit vier gestarteten
      Aktionen, sämtliche Aktionen in Ihrer Bearbeitung an.
    • Wenn Sie beispielsweise die Sleep()-Funktion in einer Aktion mit einem 10
      Sekunden Trigger verwenden, dann werden alle zyklisch aufgerufenen Aktionen
      unterbrochen. Dies hat zur Folge, dass z.B. eine Aktion mit einem 1 Sekunden
      Trigger in Ihrer Abarbeitung unterbrochen wird und zusätzlich
      alle noch folgenden Aktionen ebenfalls nicht abgearbeitet werden. Somit werden
      nicht nur aktuelle Aktionen nicht abgearbeitet, sondern auch Aktionen, welche
      noch gestartet werden sollen.
    • Die durch die Unterbrechung nicht abgearbeiteten Aufträge werden in einer
      Warteschlange gespeichert. Ist die Unterbrechung beendet, dann werden alle
      Anforderungen aus der Warteschlange abgearbeitet. Nach der Unterbrechung werden
      die Aktionen aus der Warteschlange aber nicht mehr in Ihrem Zyklus abgearbeitet.
      Wenn also, wie in dem zuvor geschilderten Fall, sich noch Aktionen in der
      Warteschlange befinden, dann werden diese nacheinander abgearbeitet. Bei dieser
      Abarbeitung wird keine Rücksicht mehr auf den Trigger genommen, sondern diese
      Aktionen werden so schnell wie möglich abgearbeitet (theoretisch
      gleichzeitig).
    Im Script am Button würde ich erstmal nur die Variable setzen bzw. bei nochmaligem Click wieder rücksetzen.

    Die Bildumschaltung würde ich in einer lokalen Aktion ausführen. diese wird zyklisch ausgeführt.
    Darin fragst Du zuerst die Variable ab, wenn die 1 dann nächstes Bild, ansonsten nix.

    Gruß.

  6. #16
    Registriert seit
    09.08.2006
    Beiträge
    3.626
    Danke
    911
    Erhielt 656 Danke für 542 Beiträge

    Standard

    Zitat Zitat von GoodOld Beitrag anzeigen
    Das sagt mir nichts!
    Bedenkt bitte ich bin Betriebstechniker und kein Programieren.
    Hilfe im Scripteditor!

    Merkmale von lokalen Aktionen

    Lokale Aktionen ...
    werden von Ihnen selbst erstellt

    können von Ihnen geändert werden

    können gegen Änderungen und Einsicht durch ein Passwort geschützt werden

    besitzen mindestens einen Trigger

    werden nur auf dem zugeordneten Rechner ausgeführt

    besitzen den Dateinamen "*.pas"

    Lokale Aktionen werden im Unterverzeichnis "\<Rechnername>\Pas" des Projektverzeichnisses abgelegt.

    Verwendung von lokalen Aktionen

    Aktionen werden für bildunabhängige Hintergrundtätigkeiten eingesetzt, wie z.B. der tägliche Ausdruck eines Protokolls, die Überwachung von Variablen oder die Ausführung von Berechnungen. Die Ausführung der Aktion wird durch den projektierten Trigger gestartet. Damit die Aktion ausgeführt werden kann, ist es notwendig, Global Script Runtime in die Anlaufliste aufzunehmen.

    Lokale Aktionen können im Gegensatz zu globalen Aktionen einem Rechner zugeordnet werden. Damit wird erreicht, dass beispielsweise ein Protokoll nur auf dem Server ausgedruckt wird.

  7. #17
    Registriert seit
    09.01.2007
    Beiträge
    42
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hi,
    ich habe mir 3 Buttons gemacht.
    Einer Startet die Aktion, auf der Hauptseite.
    Eine Beendet die Aktion indem er das Bit auf Null setzt.
    Der andere Butten zeigt an das das Script aktiv ist und dient halt als aufruf für das nächste bild.

    Das mit der Programmunterbrechung hatte ich schon vorher gelesen, aber das spiel keine Rolle.

    Das mit dem Trigger bin ich mir nicht sicher ob das das richtige ist, da wir einen Server / Client Visu haben.

    Gruß

  8. #18
    Registriert seit
    09.08.2006
    Beiträge
    3.626
    Danke
    911
    Erhielt 656 Danke für 542 Beiträge

    Standard

    Zitat Zitat von GoodOld Beitrag anzeigen
    Das mit der Programmunterbrechung hatte ich schon vorher gelesen, aber das spiel keine Rolle.

    Das mit dem Trigger bin ich mir nicht sicher ob das das richtige ist, da wir einen Server / Client Visu haben.

    Gruß
    Naja, wenn Du der Meinung bist, das es nicht schlimm ist, wenn alle Scripte die durch Dich, den Programmierer oder WinCC angelegt wurden oder noch werden, nicht richtig funktionieren... Genau aus dem Grund sagte ich mal irgendwann, Scripte sind nicht mal eben programmiert...

    Die lokale Aktion ist genau das richtige. die legst Du im Client an. Dann hast schonmal den Vorteil, dass das Script nur auf den Clients läuft und nicht auf den Servern.

    Gruß.

  9. #19
    Registriert seit
    09.01.2007
    Beiträge
    42
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hi,
    also das mal richtiger Bahnhof für mich!
    Habe einen Trigger erstellt, habe ihm einen Namen gegeben und 5 Sec eingestellt.
    Habe die Aktion auf dem PC erstellt, aber dann hört es auch schon auf. Verstehe nichts mehr, wie soll ich ihm den sagen das er die Bilder durchschalten soll.

  10. #20
    Registriert seit
    27.09.2010
    Beiträge
    516
    Danke
    36
    Erhielt 63 Danke für 56 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    in dem du einen array anlegst der id und name speichert, eine for-while schleife programmierst und aus dem array via id den aufzurufenden bildnamen einließt, danach kommt der befehl OpenPicture
    Kompetenz ist mehr als nur (Halb-)Wissen

    --

    Tools und Software unter http://vs208210.vserver.de/dlf

Ähnliche Themen

  1. Automatischer Bildwechsel WinCC Flex
    Von MasterKalle im Forum HMI
    Antworten: 4
    Letzter Beitrag: 18.10.2011, 16:27
  2. Automatischer Befehl von Wincc an s7
    Von klaerbaer2010 im Forum HMI
    Antworten: 1
    Letzter Beitrag: 02.03.2011, 05:55
  3. S7-1200 mit KTP600 automatischer Bildwechsel
    Von sanjuro im Forum Simatic
    Antworten: 0
    Letzter Beitrag: 09.08.2010, 12:49
  4. Automatischer Bildwechsel
    Von andree3005 im Forum HMI
    Antworten: 18
    Letzter Beitrag: 12.03.2010, 13:13
  5. Rezeptur; automatischer BIldwechsel
    Von DiplomandSPS im Forum HMI
    Antworten: 7
    Letzter Beitrag: 26.03.2004, 14:14

Lesezeichen

Berechtigungen

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