WinCC E/A-Feld mit Zahl und Text dynamisieren

  • Ersteller Ersteller Gelöschtes Mitglied 95966
  • Erstellt am Erstellt am
G

Gelöschtes Mitglied 95966

Guest
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich suche eine Möglichkeit, ein E/A-Feld in WinCC zu dynamisieren.
Das Feld soll eine Kombination aus vorgegebenem Text und einer Zahl sein. (also: „+54V(#Zahl)1)
Die Zahl soll über eine Variable vorgegeben werden. Ist das möglich? J
 
Zuletzt bearbeitet von einem Moderator:
WinCC flex oder WinCC Vx.x

Bei WinCC flex gibt es mehrere Wege hierfür. Man kann z.B. ein reines Textfeld reinziehen, deinen Text reinschreiben und dann per Maus => Rechtsklick
auf Variablenfeld einfügen klicken. Dann kannst du mittem im Text oder wo du halt möchtest eine Variable z.B. vom Typ Real anzeigen lassen. Das wäre der einfachste Weg.

Wenn es mehrere Texte sein sollen, könnte man es auch per E/A Feld "Text" und einer Textliste mit integriertem Variablenfeld machen
oder das ganze als String auf der SPS generieren und in WinCC nur den String anzeigen.

Je nach Umfang der Möglichkeiten.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Die Änderung soll in ein WinCC 7.0 - Projekt integriert werden. Der Text soll immer gleich bleiben und eine Zahl soll sich ändern. Diese Zahl soll über eine Variable vorgegeben werden...
 
Beispiel für eine Vorzeichenbehaftete 32 Bit Zahl Namens "TestSInt32"

Den Ausgabetyp des Feldes stellst du auf String ein. Dann fügst du an der Eigenschaft "Ausgabewert" ein VB oder C-Skript hinzu.

In VB:
Code:
Function OutputValue_Trigger(ByVal Item)

  Dim value

  value = HMIRuntime.Tags("TestSInt32").Read
  OutputValue_Trigger = "+54V(" & value & ")1)"

End Function

oder in C:
Code:
 char* _main(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
{
// WINCC:TAGNAME_SECTION_START
#define TAGNAME "TestSInt32"
// WINCC:TAGNAME_SECTION_END

  long int value;
  char *s;
  s = SysMalloc(30);
  value = GetTagSDWord(TAGNAME);	
  sprintf(s, "+54V(%ld)1)", value);
  return s;
}

Als Triggerereignis gibst du bei beiden Skripts die Variable an, auf deren Änderung das Skript reagieren soll. Für dieses Beispiel z.B. "TestSInt32" im 2s Aktualisierungszyklus.
 
Zurück
Oben