WinCC Работа и мониторинг Siemens AG All rights reserved.© TC Nbg.-M Date: File: E04ODKe.PPT Catalog: EWINCC ODK - WinCC - API
WinCC Работа и мониторинг Siemens AG All rights reserved.© TC Nbg.-M Date: File: E04ODKe.PPT Catalog: EWINCC Learning Goals ODK Overview Principles for using API Functions
WinCC Работа и мониторинг Siemens AG All rights reserved.© TC Nbg.-M Date: File: E04ODKe.PPT Catalog: EWINCC WinCC Modules
WinCC Работа и мониторинг Siemens AG All rights reserved.© TC Nbg.-M Date: File: E04ODKe.PPT Catalog: EWINCC ODK Additional Application WinCC API DLL WinCC Module Use of Functions Communication
WinCC Работа и мониторинг Siemens AG All rights reserved.© TC Nbg.-M Date: File: E04ODKe.PPT Catalog: EWINCC Основная информация для API-программирования (1/3) Обработка ошибок struct CMN_ERROR { DWORDdwError1, DWORDdwError2, DWORDdwError3, DWORDdwError4, DWORDdwError5; TCHARszErrorText[MAX_ERROR_LEN];} Пример: BOOL bResult; CMN_ERROR Error; MSG_FILTER_STRUCT Filter;// устанавить фильтр окна сообщений bResult = MSRTSetMsgWinFilter(&Filter, &Error); //устанавливает фильтр окна сообщений if (bResult == FALSE) printf("\r\nError in setting filter: s", Error.szErrorText); else printf("\r\nFilter was set");
WinCC Работа и мониторинг Siemens AG All rights reserved.© TC Nbg.-M Date: File: E04ODKe.PPT Catalog: EWINCC Основная информация для API-программирования (2/3) VARTYPE, VARIANT VARTYPE VT_UI1unsigned char VT_I2short VT_I4long VT_R4float VT_R8double VT_BOOLVARIANT_BOOL VT_BSTRBSTR VARIANT
WinCC Работа и мониторинг Siemens AG All rights reserved.© TC Nbg.-M Date: File: E04ODKe.PPT Catalog: EWINCC Основная информация для API-программирования (3/3) Ex-Functions Ex-функции являются «новейшими» большое количество функциональных возможностей обычно имеют другие параметры Пример: PDLCSNewObject PDLCSNewObjectEx
WinCC Работа и мониторинг Siemens AG All rights reserved.© TC Nbg.-M Date: File: E04ODKe.PPT Catalog: EWINCC Вызов API-функций из Script-программы #include "apdefap.h" void OnLButtonDown(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName, UINT nFlags, int x, int y) { BOOL bResult; CMN_ERROR Error; MSG_FILTER_STRUCT Filter; strcpy(Filter.szFilterName, "Messagewindow 2"); Filter.dwFilter = MSG_FILTER_NR_FROM | MSG_FILTER_NR_TO; Filter.dwMsgNr[0] = 100; Filter.dwMsgNr[1] = 199; // установить фильтр окна сообщения bResult = MSRTSetMsgWinFilter(&Filter, &Error); if (bResult == FALSE) printf("\r\nFilter could not be set!"); else printf("\r\nFilter was set"); }