Falls du nur 3 Einträge hast, könntest du aus der APL den Baustein OpDi03 verwenden. Dann hast du gleich alle Features wie Faceplate und Bedienberechtigungen inklusive.
Ansonsten musst du selber schreiben.
Einen ganz simplen Baustein der dir eine Integer-Variable automatisch im WinCC anlegt könnte so aussehen:
Code:
FUNCTION_BLOCK "KombinationsSollwert"
{ S7_m_c := 'true'; }
VAR_INPUT
SP_Int { S7_visible := 'false'; S7_m_c := 'true' }: INT := 1; //Internal setpoint
END_VAR
VAR_OUTPUT
SP_Out { S7_dynamic := 'true'; }: STRUCT //Output Value
Value : INT; //Value
ST : BYTE := 16#80; //Signal Status
END_STRUCT;
END_VAR
BEGIN
SP_Out.Value := SP_Int;
SP_Out.ST := 16#80;
END_FUNCTION_BLOCK
Das Innenleben kannst du nach Bedarf ergänzen.
Die Variable mit dem Attribut S7_m_c := 'true' wird dir beim OS übersetzen in WinCC automatisch mit dem Namen der FB Instanz in CFC-Plan angelegt.
Nennst du die Instanz z.B. MEIN_SW1 dann heißt die Variable im WinCC MEIN_SW1.SP_Int.
Je nach Einstellung in der technologischen Hierarchie hast du bei evtl. noch etwas davor stehen.
Die anderen Attribute sind so wie sie auch bei den anderen Bausteinen der APL gesetzt sind:
Mit S7_visible := 'false' wird der OS-Parameter im CFC Plan unsichtbar geschaltet,
und mit S7_dynamic := 'true' wird erreicht dass beim Online-Status dieser Wert automatisch im CFC Plan angezeigt wird.
Wenn du dann deine OS übersetzt solltest du im WinCC Variablenhaushalt die Variable wiederfinden.
Zu deinem Kombinationsfeld in WinCC:
Im Kombinationsfeld stellst du für jeden Index den entsprechenden Text ein.
Dazu wählst du unter den Eigenschaften des Feldes "Schrift" an, und setzt dann erst den Index auf die gewünschte Nummer und stellst den zugehörigen Text ein.
Das Attribut "Sonstiges" -> "Selektiertes Feld" verknüpfst du mit deiner im WinCC angelegten Variable.
Wenn du das erste Feld auswählst erhältst du als Wert in der SPS den Wert 1, darum habe ich diesen auch als Startwert im FB angegeben.
PS:
Du bräuchtest nichtmal einen extra FB dafür, du könntest auch einen extra HMI-DB anlegen mit der Variable und dem zugehörigen Attribut dazu. Dann ist das Schema mit der technologischen Hierarchie jedoch dahin.