Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Ergebnis 1 bis 3 von 3

Thema: WinCC Prozesswerte archivieren

  1. #1
    Registriert seit
    01.10.2007
    Beiträge
    337
    Danke
    13
    Erhielt 6 Danke für 5 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Moin zusammen,

    ich muss ein Projekt für einen Kunden machen, welcher bei Änderung einer
    Prozessrelevanten Variable alle Prozesswerte als CSV Datei archiviert haben möchte. Bietet sich hierfür das UseArchiv an? Ich arbeite schon mit dem UserArchiv da ich hiermit die Rezeptverwaltung realisiert habe. Ich würde den Export der CSV Datei gerne über ein C-Script starten was aber noch nict so ganz klappen möchte. Hier mal der Quellcode. Da kann mir bestimmt jemand helfen.

    Code:
    #include "apdefap.h"
    void OnLButtonDown(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName, UINT nFlags, int x, int y)
    {
    UAHCONNECT hConnect;              // handle declaration for uaconnect
    UAHARCHIVE hArchive;                 // handle declaration for uaarchive
    UAConnect(&hConnect);
    UAQueryArchiveByName(hConnect,"Programme",&hArchive);
    UAArchiveOpen(hArchive);
    uaArchiveExport(hArchive,"D:\Export.csv",0,0); 
    UAArchiveClose(hArchive);
    UAReleaseArchive(hArchive);
    UADisconnect(hConnect);
    }

    Vielleicht hat jemand das ganze ja schon einmal auf eine andere Art und Weise realisiert und kann mir noch ein par Tipps geben.



    franzlurch
    Geändert von franzlurch (20.10.2008 um 09:30 Uhr)
    Zitieren Zitieren WinCC Prozesswerte archivieren  

  2. #2
    Registriert seit
    18.09.2004
    Ort
    Münsterland/NRW
    Beiträge
    4.728
    Danke
    729
    Erhielt 1.161 Danke für 972 Beiträge

    Standard

    Nimm mal dieses Beispiel, das rufe ich immer einmal am Tag auf um alle Rezeptdaten zu sichern.
    Die Vorlage dazu habe ich mal von der Siemensseite herunter geladen

    Code:
    *
    #include "apdefap.h"
    int UAExport_VAM5(void)
    {
    #pragma code("kernel32.dll")
    VOID GetLocalTime(LPSYSTEMTIME lpSystemTime);
    #pragma code()
    
    UAHCONNECT hConnect;
    UAHARCHIVE hArchive;
    BOOL bOK;
    int iRet = 0;
    char path_date[200] = "";
    //char* path_main = "c:\\Temp\\BackupRecepten\\";
    SYSTEMTIME sysTime;
    
    
    ///////////////////////////////////////////////////////////
    // connect component user archive
    //////////////////////////////////////////////////////////
    bOK = uaConnect(&hConnect);
    if ((bOK == FALSE) || (hConnect == NULL)){
      printf ("#E101: UAExport_VAM5() - uaConnect failed!  error=%d\r\n", uaGetLastError());
      iRet = -101;
      return (iRet);
    }
    
    ///////////////////////////////////////////////////////////
    // connect to  archive via name
    //////////////////////////////////////////////////////////
    bOK = uaQueryArchiveByName(hConnect, "VAM5", &hArchive);
    if ((bOK == FALSE) || (hArchive == NULL)){
      uaDisconnect(hConnect);
      printf ("#E201: UAExport_VAM5() - uaQueryArchiveByName failed!  error=%d\r\n", uaGetLastError());
      iRet = -201;
      return (iRet);
    }
    
    
    ///////////////////////////////////////////////////////////
    // set sort
    //////////////////////////////////////////////////////////
    bOK = uaArchiveSetSort(hArchive, "Code desc");
    if (bOK == FALSE){
      printf ("#E302: UAExport_VAM5() - uaArchiveSetSort failed!  error=%d\r\n", uaGetLastError());
      iRet = -302;
    }
    
    ///////////////////////////////////////////////////////////
    // open archive
    //////////////////////////////////////////////////////////
    bOK = uaArchiveOpen(hArchive);
    if (bOK == FALSE){
      uaReleaseArchive(hArchive);
      uaDisconnect(hConnect);
      printf ("#E401: UAExport_VAM5() - uaArchiveOpen failed!  error=%d\r\n", uaGetLastError());
      iRet = -401;
      return (iRet);
    }
    
    ///////////////////////////////////////////////////////////
    // export archive
    //////////////////////////////////////////////////////////
    GetLocalTime(&sysTime);
    sprintf(path_date, "D:\\WinCC_HL2_Recept_Data\\Auto_Backups\\Recepten\\HL2_VAM5_%04d%02d%02d_%02d%02d.csv", sysTime.wYear, sysTime.wMonth, sysTime.wDay,sysTime.wHour,sysTime.wMinute);
    //bOK = uaArchiveExport(hArchive, "c:\\Temp\\BackupRecepten\\VAM5.csv", 0, 0);
    bOK = uaArchiveExport(hArchive, path_date, 0, 0);
    
    if (bOK == FALSE){
      printf ("#E501: UAExport_VAM5() - uaArchiveExport failed!  error=%d\r\n");
      iRet = -501;
    }
    ///////////////////////////////////////////////////////////
    // close archive 
    //////////////////////////////////////////////////////////
    bOK = uaArchiveClose(hArchive);
    if (bOK == FALSE){
      printf ("#E801: UAExport_VAM5() - uaArchiveClose failed!  error=%d\r\n", uaGetLastError());
      iRet = -801;
    }
    
    ///////////////////////////////////////////////////////////
    // release archive 
    //////////////////////////////////////////////////////////
    bOK = uaReleaseArchive(hArchive);
    if (bOK == FALSE){
      printf ("#E802: UAExport_VAM5() - uaReleaseArchive failed!  error=%d\r\n", uaGetLastError());
      iRet = -802;
    }
    
    ///////////////////////////////////////////////////////////
    // disconnect component user archive
    //////////////////////////////////////////////////////////
    bOK = uaDisconnect(hConnect);
    if (bOK == FALSE){
      printf ("#E803: UAExport_VAM5() - uaDisconnect failed!  error=%d\r\n", uaGetLastError());
      iRet = -803;
    }
    return (iRet);
    }

  3. Folgende 2 Benutzer sagen Danke zu marlob für den nützlichen Beitrag:

    franzlurch (21.10.2008),noname2006 (26.04.2016)

  4. #3
    franzlurch ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    01.10.2007
    Beiträge
    337
    Danke
    13
    Erhielt 6 Danke für 5 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Dank dir Marlob, hat einwandfrei funktioniert!

Ähnliche Themen

  1. WinCC Projekt archivieren
    Von Move im Forum HMI
    Antworten: 1
    Letzter Beitrag: 01.08.2011, 14:47
  2. Prozesswerte darstellen und archivieren
    Von outbreak7 im Forum HMI
    Antworten: 1
    Letzter Beitrag: 05.03.2010, 16:32
  3. WinCC Daten archivieren
    Von Sonic.pn im Forum HMI
    Antworten: 4
    Letzter Beitrag: 27.01.2010, 00:26
  4. Prozesswerte mit AR_Send in WinCC übertragen
    Von iga-graz im Forum Programmierstrategien
    Antworten: 0
    Letzter Beitrag: 25.09.2007, 10:05
  5. WinCC flex: DB archivieren
    Von SeSi im Forum HMI
    Antworten: 13
    Letzter Beitrag: 19.09.2007, 09:23

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •