WinCC WinCC7.3 und Faceplate

derwestermann

Level-2
Beiträge
628
Reaktionspunkte
65
Zuviel Werbung?
-> Hier kostenlos registrieren
Moin!

Ich habe ein Faceplate aus einem Beispielprojekt in mein Projekt kopiert, aber das tut nicht.

Folgend, der Code der durch Mauscklick aufgerufenen C-Aktion:

Code:
#include "apdefap.h"
void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
{
   #include "BST_FPDEF.h"
   BST_TopfieldOpen(lpszPictureName, lpszObjectName, BST_FP_PIDCTRL);    //Return-Type: long int 
}

Im Debugger muss ich aber sehen, dass die Variable lpszPropertyName NULL ist. Ein Screenshot der Fehlermeldung habe ich angehängt. Ich finde auch gar nicht, wo die Variablen lpszPictureName, lpszObjectName und zugewiesen werden.

Für jede Erhellung dankbar

der Westermann

ScriptError.jpg
 
lpszPropertyName wird nur von Ereignissen ausgefüllt die auch eine Property besitzen, wenn du z.B. bei einem EA-Feld an den Ausgabewert ein Eregnis hängst, dann sollte etwas darin übergeben werden.

Das ist aber wahrscheinlich nicht das Problem. Dieses Siemens Beispielprojekt erwartet soweit ich weiß, dass du Basic Process Control in deinem WinCC Projekt anwendest. Denn nur dort liegen in einem der übergeordneten Bildern die Bildfenster in die das Popup geladen wird. Die Bildfenster heißen dort TOP01 bis TOP20, zumindest meine ich dass dort insgesamt 20 Bildfenster liegen. Die Scripte dazu solltest du natürlich ebenfalls in dein WinCC Projekt kopiert haben. Wenn du das BPC nicht verwenden willst, musst du die Scripte entsprechend deinen Vorstellungen anpassen.
 
Ok, mir fällt grad ein ich habe das bei mir selber auf BPC angepasst ;-)

Das Prinzip ist aber ähnlich. Aus dem Beispielprojekt benötigst die Bilder für die Bildverwaltung, wie @BST_DESK, @BST_WORK, usw.
Die mitgelieferten WinCC Skripte erwarten die Bildfenster TOP01 bis TOP10 im Bild @BST_WORK.

Wenn du diese Bilder nicht in deinem Projekt hast, musst du die Skripte entsprechend anpassen.
 
Weia! Das war wohl das Problem. Aber ich habe nirgends in den Scripten einen Hinweis auf diese Bildfenster finden können und eine Tag lang gesucht.
 
Wahrscheinlich ist am Bildobjekt Qfval ein VB-Skript auf Änderungsereignis von OutputValue angelegt. Darin werden wohl die Bits ausmaskiert, und auf die internen Variablen geschrieben.
Das Bildobjekt wird meistens versteckt, unsichtbar geschaltet / in den Hintergrund gelegt. Zur Not kommst du über das Objektauswahlfeld an das Objekt. Wenn es ein Ereignis hat, dann ist der Text fett.
 
Zurück
Oben