# Problem mit WinCC ("OpenPicture" Unresolved External Function)



## Jochen Kühner (24 Mai 2007)

Wenn Ich an einem WinCC Client Projekt über einen Taster auf ein nächstes Bild wechslen will, kommt dieser Fehler. Dies passiert aber nur an einem Client (5 sind in Betrieb). Hat jemand eine Idee was das ist??


----------



## cod3sys (24 Mai 2007)

Welche WinCC Version benutzt du ?
welches Bild ?


----------



## Jochen Kühner (25 Mai 2007)

*Weiteres...*

WinCC Version 6, es ist das Startbild.
Das komische: es hatten schon funktioniert, kaum weg von der baustelle dann das. die restlichen clients laufen!


----------



## cod3sys (25 Mai 2007)

Ich bin mir nicht 100% sicher aber das hört sich nach einer beschädigten Datenbank Struktur von WinCC an.
Die nächste Frage wäre logischer Weise ob WinCC auf jedem Client installiert ist oder ob du es mit dem Web Navigator fährst ?


----------



## Maldito (29 Mai 2007)

Ich hatte mal das Problem das im Diagnose System auch bei allen aufgerufenen Funktionen diese Fehlermeldung kam.
Das Problem war eine defekte C-Funktion.
Geh am Besten in den C-Editor und übersetze alle Funktionen.
Im Output Fenster siehst du ob es beim Übersetzen Probleme gab.
Alle Probleme in C-Funktionen beheben und nochmal Übersetzen.
Danach nochmal Header erzeugen und ich tippe das wars.

Für WinCC ist im Moment wohl die OpenPicture Funktion unbekannt da das Header File nicht richtig generiert wurde.

Und das es nur auf einer Workstation auftritt lässt darauf schliessen das auf dieser die Funktion erzeugt wurde, im C-Editor kompiliert und Header neu erzeugt. Wenn das dann nur auf dieser gemacht wurde laufen die anderen trotzdem.

Hoffe ich konnte helfen.


----------



## Jochen Kühner (30 Mai 2007)

*Behoben....*

Es war das Problem das der User nicht in der Gruppe Simatic HMI war.

Denke es lag daran das man dadurch nicht auf das Verzeichnis SCRIPTFCT des Servers zugreifen konnte.

Zummindest geht es nun!


----------



## derwestermann (24 November 2016)

Ist ja schon etwas betagt der Task, aber ich habe das selbe Problem: Auf dem Server läuft die C-Funktion einwandfrei, auf dem Client bekomme ich eben diese Meldung "unresolved external function". Der Benutzer ist Mitglied von Simatic HMI. Es ist das Verzeichnis C:\Program Files\Siemens\WinCC\aplib in SCRIPTFCT eingetragen. Allerdings ist die Projektfunktion auch auf dem Server gar nicht in diesem Verzeichnis zu finden.
Bei mir handelt es sich allerdings um die WinCC-Version 7.3.


----------



## derwestermann (24 November 2016)

So schauts auf dem Server aus und dort werden die Bildfenster korrekt aufgerufen:

```
ActSteu: 228109.903710 msec  ..\AP_SERV\APSVCALL.CPP 107 : Server: Request for Start
ActSteu: 228110.025457 msec Start Action explizit dwAppID: 1
ActSteu: 228110.326285 msec after WaitForEvent
ActSteu: 228110.508905 msec before Execute dwID 16
ActSteu: 228110,802655 msec lpszPictureName:      @BST_MAIN_1M.DESK:@BST_DESKTS.WND_DESK:TESTSTRECKE
ActSteu: 228110,877684 msec lpszParentPicure:     @BST_MAIN_1M.DESK:@BST_DESKTS
ActSteu: 228110,886532 msec lpszTopPictureName:      BST_PIDCTRL_MAIN.pdl
ActSteu: 228110,894672 msec lpszObjectName:      fp02HHZ21AH003
ActSteu: 228111,257435 msec szTopObjectName: TOP01
ActSteu: 228111,400063 msec szTopObjectName: TOP02
ActSteu: 228111,545522 msec szTopObjectName: TOP03
ActSteu: 228128.145199 msec  ..\AP_SERV\APSVCALL.CPP 88 : Server: Request for TransAct
ActSteu: 228128.293843 msec after WaitForEvent
ActSteu: 228128.459475 msec Begin Start Transaction dwTransID: 9 dwAktionen 1
ActSteu: ActSteu: 228128.536983 msec 228128.539106 msec after WaitForEvent
```

Und so schauts auf dem Client aus, wo die Bildfenster nicht funktionieren, bei Aufruf durch eine C-Funktion. Mit direkter Zuweisung einer Konstante auf die Eigenschaft Anzeige, eines Bildfensters, funktioniert es, mit VBS auch:

```
ActSteu: 10450.408091 msec  ..\AP_SERV\APSVCALL.CPP 107 : Server: Request for Start
ActSteu: 10450.464541 msec Start Action explizit dwAppID: 1
ActSteu: 10451.536800 msec before Execute dwID 12
ActSteu: 10454,781802 msec 'BST_TopfieldOpen': unresolved external function
ActSteu: 10467,035091 msec after Execute dwID 12
ActSteu: 10467,154833 msec ====================================OnErrorExecute====================================
ActSteu: 10471,059840 msec SystemTime:        (ThreadId 7528)    2016-11-24 17:08:24.271 
ActSteu: 10475,566692 msec dwErrorCode1:        (ThreadId 7528)    1007001
ActSteu: 10479.124448 msec CycleProc Timeout
ActSteu: 10479.181183 msec Begin Cycleprocedure
ActSteu: 10479.209978 msec Ende Cyclesprocedure
ActSteu: 10479,719451 msec dwErrorCode2:        (ThreadId 7528)    4099
ActSteu: 10482,318988 msec szErrorText:        (ThreadId 7528)    Exception in Action
ActSteu: 10484,755447 msec szErrorTextException:    (ThreadId 7528)    unresolved external function or variable
ActSteu: 10487,637233 msec szApplicationName:     (ThreadId 7528)    PDLRuntimeSystem
ActSteu: 10490,529567 msec bCycle:            (ThreadId 7528)    acycle
ActSteu: 10493,175860 msec szFunctionName:        (ThreadId 7528)    @12
ActSteu: 10495,848952 msec lpszPictureName:        (ThreadId 7528)    @BST_MAIN_2M.DESK1:@BST_DESKVB.WND_DESK:VERSUCHSBEHÄLTER
ActSteu: 10498,772077 msec lpszObjectName:        (ThreadId 7528)    fp01SBC40CT017
ActSteu: 10501,649015 msec lpszPropertyName:        (ThreadId 7528)    (NULL)
ActSteu: 10504,261952 msec dwParamSize:        (ThreadId 7528)    12
ActSteu: 10506,818724 msec ====================================OnErrorExecute====================================
ActSteu: 10509,205006 msec ExecuteResult 1003
ActSteu: 10509,399729 msec  ..\AP_SERV\CSHANDLE.CPP 264 : Server: Failure Start Result Innerhalb der Aktion wurde während der Ausführun
ActSteu: 10509,612413 msec Ende Execute dwID 12
```

Aufgezeichnet mit apdiagnose


----------

