ähnliches habe ich schonmal realiesiert.
Ich habe Zyklisch Daten ins User Archiv geschrieben und 1x am Tag nach CSV exportiert.. Folgende Skripts habe ich für das User Archiv gefunden.
ersteinmal ein Link:
http://support.automation.siemens.c...us&aktprim=0&extranet=standard&subtype=133000
C-Skript:
#include "apdefap.h"
int CRT3884_UAExport(void)
{
UAHCONNECT hConnect;
UAHARCHIVE hArchive;
BOOL bOK;
int iRet = 0;
///////////////////////////////////////////////////////////
// connect component user archive
//////////////////////////////////////////////////////////
bOK = uaConnect(&hConnect);
if ((bOK == FALSE) || (hConnect == NULL)){
printf ("#E101: CRT3884_UAExport() - uaConnect failed! error=%d\r\n", uaGetLastError());
iRet = -101;
return (iRet);
}
///////////////////////////////////////////////////////////
// connect to archive via name
//////////////////////////////////////////////////////////
bOK = uaQueryArchiveByName(hConnect, "MyArchiv", &hArchive);
if ((bOK == FALSE) || (hArchive == NULL)){
uaDisconnect(hConnect);
printf ("#E201: CRT3884_UAExport() - uaQueryArchiveByName failed! error=%d\r\n", uaGetLastError());
iRet = -201;
return (iRet);
}
///////////////////////////////////////////////////////////
// set filter
//////////////////////////////////////////////////////////
bOK = uaArchiveSetFilter(hArchive, "ChargeName like '%charge%' and DateBegin >= '2006-01-01 00:00:00' AND DateBegin < '2007-01-01'");
if (bOK == FALSE){
printf ("#E301: CRT3884_UAExport() - uaArchiveSetFilter failed! error=%d\r\n", uaGetLastError());
iRet = -301;
return (iRet);
}
///////////////////////////////////////////////////////////
// set sort
//////////////////////////////////////////////////////////
bOK = uaArchiveSetSort(hArchive, "ChargeUser , ChargeName desc");
if (bOK == FALSE){
printf ("#E302: CRT3884_UAExport() - uaArchiveSetSort failed! error=%d\r\n", uaGetLastError());
iRet = -302;
}
///////////////////////////////////////////////////////////
// open archive
//////////////////////////////////////////////////////////
bOK = uaArchiveOpen(hArchive);
if (bOK == FALSE){
uaReleaseArchive(hArchive);
uaDisconnect(hConnect);
printf ("#E401: CRT3884_UAExport() - uaArchiveOpen failed! error=%d\r\n", uaGetLastError());
iRet = -401;
return (iRet);
}
///////////////////////////////////////////////////////////
// export archive
//////////////////////////////////////////////////////////
bOK = uaArchiveExport(hArchive, "p:\\tmp\\MyArchive.csv", 0, 0);
if (bOK == FALSE){
printf ("#E501: CRT3884_UAExport() - uaArchiveExport failed! error=%d\r\n");
iRet = -501;
}
///////////////////////////////////////////////////////////
// close archive
//////////////////////////////////////////////////////////
bOK = uaArchiveClose(hArchive);
if (bOK == FALSE){
printf ("#E801: CRT3884_UAExport() - uaArchiveClose failed! error=%d\r\n", uaGetLastError());
iRet = -801;
}
bOK = uaReleaseArchive(hArchive);
if (bOK == FALSE){
printf ("#E802: CRT3884_UAExport() - uaReleaseArchive failed! error=%d\r\n", uaGetLastError());
iRet = -802;
}
///////////////////////////////////////////////////////////
// disconnect component user archive
//////////////////////////////////////////////////////////
bOK = uaDisconnect(hConnect);
if (bOK == FALSE){
printf ("#E803: CRT3884_UAExport() - uaDisconnect failed! error=%d\r\n", uaGetLastError());
iRet = -803;
}
return (iRet);
Hoffe konnte dir helfen
Gruß
Das Raydien