}
SetTagDWord(\
È»ºóÓÃÒ»¸ö°´Å¥¿ØÖƶþ½øÖƱäÁ¿Q£¬ÎªÆô¶¯Ðźš£ÎïÌåµÄXλÖöÔÓ¦µÄÊDZäÁ¿P£¬ÉèÖÃΪģÄâÁ¿¡£µ±PΪ1µÄʱºò¶ÔÓ¦µÄXλÖá£PΪ2µÄʱºò¶ÔÓ¦XµÄλÖã¬ÒÔ´ËÀàÍÆ£¬¾Í¿ÉÒÔ×ö³öÎïÌåÒÆ¶¯»ÃæÁË£¬Òª×öÈ«¾Ö½Å±¾ -----------------------------------------------
¡ª¡ª¡ª¡ª¡ª¡ª10¡¢WinCC
Öе÷ÓÃSQLÓïÑÔ ¡ª¡ª¡ª¡ª¡ª¡ª
1¡¢´´½¨Ò»¸ö SQLÎļþ£¬´ËÎļþÔÚISQLÖн¨Á¢£¬ÎļþÄÚ°üº¬ËùÒªÖ´ÐеÄSQLÓï¾ä¡£Windows¶Ô»°¿òʵÏÖ¡£¾ßÌåÈçÏ£º
2¡¢ÔÚWinCCÖÐÓÃC Script µ÷ÓÃÉÏÊöSQLÎļþ£¬ÈçÏÂËùʾ£º #include"apdefap.h"
void OnLButtonDown(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName, UINT nFlags,int x,int y) {
char*a="c:siemenscommonSQLANYISQL-q-b-c UID=DBA;PWD=SQL;DBF=E:testsqltestsqlRT.DB; DBN=CC_testsql_99-12-03-12:48:26R;READ E:testsqltest.sql";
Printf("%srn",a); ProgramExcute(a); }
ÏÂÃæÊÇÒ»¸ö¼òµ¥µÄSQLÎļþÄÚÈÝ£º select *from pde#hd#t#test;
output to e:test2.txt FORMAT ascii ×¢Ò⣺ÎļþÃû¼°Â·¾¶Öв»Òª´ø¿Õ¸ñ¡£
¡ª¡ª¡ª¡ª¡ª¡ª11¡¢ÉèÖûòÖØÖÃÒ»¸ö±äÁ¿¡ª¡ª¡ª¡ª¡ª¡ª
void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName) {
BOOL z;
z=GetTagBit("MyBitVariable");//»ñµÃ±äÁ¿Öµ if (z==0)
SetTagBit("MyBitVariable",1); //ÉèÖñäÁ¿Öµ else
SetTagBit("MyBitVariable",0); }
¡ª¡ª¡ª¡ª¡ª¡ª12¡¢ÔËÐÐʱͼÐβúÉú¶¯Ì¬Ðýת¡ª¡ª¡ª¡ª¡ª¡ª
#include "apdefap.h"
long _main(char* lpszPictureName, char* lpszObjectName, char*
5
lpszPropertyName)
{
static int x=25,y,z;//xΪ°ë¾¶µÄ³õʼֵΪ25£¬yΪÇл»±äÁ¿£¬zΪ½Á°è»úÔËÐÐ״̬±äÁ¿ z=GetTagBit("202½Á°è»úÔËÐÐ"); //È¡µÃPLC½Á°è»úµÄÔËÐÐ״̬ if(z!=0) {
switch(y) {
case 0: x=x-4; if(x<=0) y=1; break; default : x=x+4;
if(x>=25) y=0; break; } }
return x; }
¡ª¡ª¡ª¡ª¡ª¡ª13¡¢WINCC--ÈçºÎÔÚ³ÌÐòÖж¯Ì¬ÐÞ¸ÄÓû§ÃÜÂë ¡ª¡ª¡ª¡ª¡ª¡ª 1¡¢µã»÷¡°¿ªÊ¼¡±--¡·¡°ÉèÖá±--¡·¡°¿ØÖÆÃæ°å¡±--¡·¡°¹ÜÀí¹¤¾ß¡±--¡·¡°Êý¾ÝÔ´£¨ODBC£©¡±£¬´ò¿ªODBCÊý¾ÝÔ´¹ÜÀíÆ÷
2¡¢ÔÚÓû§DSNÒ³ÃæµÄÓû§Êý¾ÝÔ´ÖÐÕÒµ½Ó뵱ǰÏîÄ¿Ëù¹ØÁªµÄÒ»ÏÆäÃû³ÆÎª¡°CC_ÏîÄ¿Ãû_ÏîÄ¿½¨Á¢ÈÕÆÚʱ¼ä¡±£¬¼ÇϸÃÏîµÄÃû³Æ 3¡¢Ôڽű¾ÖмÓÈëÒÔÏ´úÂ룺 #pragma code(\ #include \.H\ #pragma code()
LPCMN_ERROR err; //¶¨ÒåµÄLPCMN_ERRORÐͱäÁ¿,ÔÚº¯Êýµ÷ÓÃÖÐÐèʹÓÃ
if (PWGENConnect(\½¨Á¢ÓëÊý¾Ý¿âµÄÁª½Ó,ÆäÖÐCC_ass_04-09-21_16:35:22Óõڶþ²½ÖмÇϵÄÃû³ÆÈ¡´ú { if
(PWGENChangePassword(GetTagChar(\(\ÐÞ¸ÄÃÜÂë,user,oldpassword,password·Ö±ðΪ´æÖüÓû§Ãû,ÔÃÜÂë,ÐÂÃÜÂëµÄÄÚ²¿±äÁ¿,ÀàÐÍΪÎı¾±äÁ¿8λ×Ö·û¼¯ {
//ÃÜÂëÐ޸ijɹ¦ºóµÄ²Ù×÷,Èç¸øÓû§ÌáʾµÈ } }
6
PWGENDisconnect(err); //¶Ï¿ªÓëÊý¾Ý¿âµÄÁª½Ó
4¡¢±àÒëÔËÐгÌÐò 5¡¢¹¤×÷Íê³É
6¡¢ÓëÓû§¹ÜÀíÏà¹ØµÄº¯Êý¶¨Òå´æÖüÔÚAPPLIBĿ¼ÏµÄUSEGENAP.HÎļþÖУ¬¿É¸ù¾ÝÉÏÃæÊ¾Àý×ÔÐÐÍê³ÉÌí¼ÓÓû§£¬ÐÞ¸ÄȨÏ޵ȹ¦ÄÜ¡£
¡ª¡ª¡ª¡ª¡ª¡ª14¡¢WinCCÈçºÎʵÏÖÊó±êOnMouseOVerʼþ ¡ª¡ª¡ª¡ª¡ª¡ª ÓÃWINDOWAPIº¯ÊýGetCusorPos»ñÈ¡µ±Ç°Êó±êλÖã¬ÓÃGetWindowRectº¯Êý»ñÈ¡´°¿ÚλÖã¬Á½ÖµÏà¼õµÃÊó±êÔÚWINCC frameÉϵÄÏà¶ÔλÖá£ÓÃÈ«¾Ö½Å±¾£¨É趨Ϊ1s¶¨Ê±Ë¢Ð£©£¬È»ºó»ñȡҪOnMouseOverʼþµÄÎïÌåµÄλÖ㬲¢ÓëÊó±êλÖÃÏà±È½Ï£¬ÈçÒ»ÖÂÔò´¥·¢×Ô¼º¶¨ÒåµÄ¶¯×÷¡£ #include \int gscAction( void )
{
#pragma code(\
BOOL GetCusorPos(POINT lpPoint); //»ñÈ¡Êó±êµÄλÖ㨾ø¶ÔλÖÃ-¶ÔÓ¦ÆÁÄ»·Ö±æÂÊ£© BOOL GetWindowRect(HWND hwnd,LPRECT lpRect); //»ñÈ¡´°ÌåλÖà #pragma code(); POINT pPos; RECT rRec; HWND hwnd; BOOL bRet,bRet2;
long lLeft,lTop,lWidth,lHeight; long lX,lY; char szStr[100];
hwnd=FindWindow(NULL,\ÈçÓïÑÔΪÖÐÎÄӦΪ\ÔËÐÐϵͳ-\if (hwnd==0) {printf(\bRet=GetCursorPos(&pPos); if (bRet==0) goto over;
bRet2=GetWindowRect(hwnd,&rRec); if (bRet2==0) goto over;
lX=pPos.x-rRec.left; //Êó±ê ¶Ô{Öà lY=pPos.y-rRec.top; //Êó±ê λÖÃ
//Èç¹ûΪ·ÇÈ«ÆÁģʽ£¬Ð轫ÉÏÊöÊýÖµÖеĸßheightÅжϼõÈ¥±êÌâÀ¸µÄ¿í¶È //printf(\
//printf(\ lLeft=GetLeft(\ lTop=GetTop(\ lWidth=GetWidth(\ lHeight=GetHeight(\
if ((lX>=lLeft)&&(lY>=lTop)&&(lX<=lLeft+lWidth)&&(lY<=lTop+lHeight)) { sprintf(szStr,\
7
SetText(\}
//printf(\ over: return 0; }
¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª ¡ª¡ª¡ª¡ª¡ª¡ª15¡¢ÈçºÎÔÚÍ˳ö1.ÀûÓö¯Ì¬Ïòµ¼
2.Ôڽű¾ÖмÓÈë DMExitWinCCEx (DM_SDMODE_SYSTEM);Ò²¿ÉÒÔ
¡ª¡ª¡ª¡ª¡ª¡ª16¡¢¹ý
WINCC¼à¿ØÊ±Ö±½Ó¹Ø±ÕµçÄÔ ¡ª¡ª¡ª¡ª¡ª¡ª
WINCC APIº¯Êý¶Á³öµ±Ç°±¨¾¯ÏûÏ¢ ¡ª¡ª¡ª¡ª¡ª¡ª
1¡¢Ê¹ÓÃGMsgFunctionÖжÁ³öµ±Ç°±¨¾¯ÐÅÏ¢µÄID£¨dwMsgNr£©£»
2¡¢Ê¹ÓÃMSRTGetMsgCSDataº¯Êý¶Á³ö¸Ã±¨¾¯ÐÅÏ¢ID¶ÔÓ¦Îı¾¿âTEXTLIBÖеÄÎı¾ID£¨dwTextID1£©£»
3¡¢Ê¹ÓÃMSRTGetMsgTextº¯Êý¶Á³ö¸ÃÎı¾IDµÄÎı¾¡£ ÐÅÏ¢µ½´ï´¦Àí£ºÈç¹û¶ÁÈ¡Îı¾³É¹¦£¬ÔòÖÃÎı¾±äÁ¿MSG¡£
ÐÅÏ¢ÀëÈ¥´¦Àí£ºÈç¹ûMsgNrÓëÉÏÒ»´ÎÏàͬ£¬Ôò¸´Î»MSG£¬Èç¹û²»ÊÇ£¬Ôò¼ÌÐø±£³ÖÐÅÏ¢¡£ ¾ßÌ庯Êý˵Ã÷Çë¿´ODKÎĵµ
BOOL GMsgFunction( char* pszMsgData) {
#pragma code(\ ££i nclude \ #pragma code();
MSG_TEXT_STRUCT tMeld; MSG_CSDATA_STRUCT sM; CMN_ERROR err; BOOL bRet;
DWORD dwTextID1; DWORD dwMsgNum; char szMsg[255];
#define TAG_MSG \
MSG_RTDATA_STRUCT mRT;
memset( &mRT, 0, sizeof( MSG_RTDATA_STRUCT ) ); if( pszMsgData != NULL )
{
printf( \ sscanf(
\ &mRT.dwMsgNr, // Meldungsnummer &mRT.dwMsgState, // Status MSG_STATE_COME, .._GO, .._QUIT, .._QUIT_SYSTEM &mRT.stMsgTime.wYear, // Tag
8
pszMsgData,