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

Ergebnis 1 bis 5 von 5

Thema: WINCC 7.0 Eigenschaft eines E/A-Feldes mit C dynamisieren

  1. #1
    Registriert seit
    25.02.2008
    Ort
    Bayern
    Beiträge
    611
    Danke
    64
    Erhielt 27 Danke für 23 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    wie kann man mit einen C-Script die Eigenschaft "Hintergrundfarbe" eines E/A-Feldes dynamisieren?

    Aktueller Stand:

    #include "apdefap.h"
    long _main(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
    {
    SetBackColor(lpszPictureName,lpszObjectName,CO_RED); //Return-Type: BOOL
    return 0;
    }


    Leider blitzt der Hintergrung nur regelmäßig in der Farbe.

    Ich habe als Trigger den Bildzyklus eingestellt.
    Bei Standartzyklus kommt die Warnung für die Zyklusbelastung.
    Warum ist standartmäßig kein "return 0" angelegt?
    Was bedeutet eigentlich die Variable _main im Header?
    Was mache ich falsch?

    Es grüßt

    Sailor
    Always look on the bright side of life
    Zitieren Zitieren WINCC 7.0 Eigenschaft eines E/A-Feldes mit C dynamisieren  

  2. #2
    Registriert seit
    29.03.2004
    Beiträge
    5.735
    Danke
    143
    Erhielt 1.685 Danke für 1.225 Beiträge

    Standard

    Woran hast du dein C-Skript denn angekoppelt?

    Wenn es an der Eigenschaft "Hintergrundfarbe" des EA Feldes hängt, muss der Rückgabewert der Funktion der Farbwert als RGB sein.
    Am einfachsten ist es für den Anfang, eine Basis-Animation über den Dynamik-Dialog anzulegen, und dann die Dynamik auf C-Aktion zu ändern. Der Dynamik-Dialog wird dann mehr oder weniger in ein C-Skript konvertiert. Zumindest hat man dann schonmal die Farbwerte, und der Variablentrigger wird auch passend gesetzt.

    Damit die Animation funktioniert muss in der Darstellung das globale Farbschema deaktiviert werden.

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

    sailor (15.05.2013)

  4. #3
    Avatar von sailor
    sailor ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    25.02.2008
    Ort
    Bayern
    Beiträge
    611
    Danke
    64
    Erhielt 27 Danke für 23 Beiträge

    Standard

    Hallo,
    soweit wäre ich jetzt:

    #include "apdefap.h"
    long _main(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
    {

    #define TAG_1 ".Messwert"
    #define maxmax ".Alarm_maxmax"
    #define max ".Alarm_max"
    #define min ".Alarm_min"

    static double limitValue[3] = {maxmax,max,min};
    static long value[4] = {14342874,65280,230,14342874};
    return value[Check_LimitsD (GetTagDouble (TAG_1),4, &limitValue[0])];
    }

    Ich arbeite mit einen Bildfenster mit TagPrefix. Ich bekomme beim Syntaxcheck die Warnung "different levels of indirection"

    Ich will also in Abhänigkeit von Variablen (Alarmgrenzen) verschiedene Hintergrundfarben haben. Vergleich ist ".Messwert"

    Kanns erst morgen testen. Ist das trotzdem ok? Was bedeutet die Warnung?


    Gruß
    Sailor
    Always look on the bright side of life

  5. #4
    Registriert seit
    29.03.2004
    Beiträge
    5.735
    Danke
    143
    Erhielt 1.685 Danke für 1.225 Beiträge

    Standard

    Nein, das ist nicht ganz richtig. Du musst ja erstmal die Variablenwerte anhand des Tagnamens mit der passenden GetTag... Funktion einlesen.

    Prinzipiell so in der Art
    Code:
    // WINCC:TAGNAME_SECTION_START
    // next TagID : 2
    #define TAG_wert ".Messwert"
    #define TAG_maxmax ".Alarm_maxmax"
    #define TAG_max ".Alarm_max"
    #define TAG_min ".Alarm_min"
    // WINCC:TAGNAME_SECTION_END
    
    DWORD farbwert = 0;  // hier default Wert einsetzen, 0 wäre schwarz
    float wert, maxmax, max, min;
    
    // Variablenwerte einlesen
    wert = GetTagFloat(TAG_wert);
    maxmax = GetTagFloat(TAG_maxmax);
    max = GetTagFloat(TAG_max);
    min = GetTagFloat(TAG_min);
    
    
    if (wert > maxmax) {
      farbwert = der wert für maxmax;
    } else if (wert > max) {
    .
    .
    .
    
    
    return farbwert;
    Musst dir nur die passenden Farbwerte heraussuchen.

  6. Folgender Benutzer sagt Danke zu Thomas_v2.1 für den nützlichen Beitrag:

    sailor (16.05.2013)

  7. #5
    Avatar von sailor
    sailor ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    25.02.2008
    Ort
    Bayern
    Beiträge
    611
    Danke
    64
    Erhielt 27 Danke für 23 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    OK, der Code steht ja in der Palette.

    Sailor
    Always look on the bright side of life

Ähnliche Themen

  1. Grafiken dynamisieren mit WinCC Flexible
    Von quadrulschke im Forum HMI
    Antworten: 3
    Letzter Beitrag: 05.06.2012, 08:04
  2. Löschen eines E/A - Feldes
    Von bommel_nrw im Forum HMI
    Antworten: 10
    Letzter Beitrag: 24.08.2011, 11:27
  3. Antworten: 19
    Letzter Beitrag: 20.12.2010, 07:52
  4. Eigenschaft eines WPF UserControls im Editor anzeigen
    Von Marc_Quark im Forum Hochsprachen - OPC
    Antworten: 7
    Letzter Beitrag: 23.09.2010, 19:21
  5. Antworten: 4
    Letzter Beitrag: 28.08.2007, 11:02

Lesezeichen

Berechtigungen

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