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

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 19

Thema: Chargendokumentation in WINCC

  1. #1
    Registriert seit
    20.10.2010
    Beiträge
    18
    Danke
    4
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Leute
    Ich hab ein laufendes WINCC-Projekt, da werden Daten mit hilfe von Tag-Logging und Trendcontrol bereits mitgeschrieben. Jetzt brauche ich da eine Chargendokumentation.
    Das bedeutet dass ein Report erstellt werden muss der Von der Startzeit der Charge bis zum Ende alle Meldungen und auch eine Kurve der Analogwerte ausdruckt.
    Idealerweise sollte man die Chargen auch später noch abrufen können.
    Ich hab mir überlegt die Startzeit abzuspeichern und dann mit der Meldung Chargenende alle Meldungen und Analogwerte zwischen den beiden Zeiten zu Exportieren und dann diese Datei(en) auszuwerten bzw. zu Drucken.

    Gibt es da ein Beispielprojekt von Siemens oder so was. Ich finde da nix.

    Simatic Batch Control ist wahrscheinlich zu teuer.
    Zitieren Zitieren Chargendokumentation in WINCC  

  2. #2
    Registriert seit
    25.08.2006
    Beiträge
    247
    Danke
    36
    Erhielt 64 Danke für 58 Beiträge

    Standard

    Moin,

    da ist PM-Quality das ideale Werkzeug:
    http://www.industrysolutions.siemens...rt&Index=entry

    Listenpreis Standard Version(eine Produktionseinheit) 2.100,00 €

    Kann ich Dir nur empfehlen

    Pylades

  3. #3
    Registriert seit
    25.02.2008
    Ort
    Bayern
    Beiträge
    611
    Danke
    64
    Erhielt 27 Danke für 23 Beiträge

    Standard

    Du könntest das evtl. auch mit den Report-Designer von WINCC machen.
    - Im Reportdesigner ein Layout mit allen was Du brauchst anlegen
    - einen Druckauftrag anlegen
    - über C-Script RPTJobPrint(pszJobName) Druckauftrag ereignisgesteuert über eine externe Variable starten und im Druckauftrag sowohl auf den Drucker als auch in eine Datei ausdrucken. Name und Speicherort der Datei
    kannst Du im Druckauftrag festlegen.

    Gruß
    Sailor
    Always look on the bright side of life

  4. Folgender Benutzer sagt Danke zu sailor für den nützlichen Beitrag:

    dumens_de (27.06.2011)

  5. #4
    dumens_de ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    20.10.2010
    Beiträge
    18
    Danke
    4
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Das mit dem PM-Quality hab ich auch gefunden, ist aber zu teuer.

    Das mit dem RPTJobPrint(pszJobName) Druckauftrag hab ich schon erfolglos getestet. Das wäre aber absolut ausreichend für meine Anwendung.
    Allerdings finde ich keine Beschreibung wie das zu machen ist, Startzeit Endezeit müssten gesetzt werden und das ganze an den Druckauftrag (der z.Zt. nur Tabellenkopf und X-Y-Achse druckt) übergeben werden.
    Das müsste doch alles in dieses C-Skript rein, aber genau dafür finde ich nichts.

  6. #5
    Registriert seit
    01.09.2009
    Ort
    Nürnberg
    Beiträge
    28
    Danke
    0
    Erhielt 2 Danke für 2 Beiträge

    Standard

    Naja, dass du eine Lösung findest die genau auf dein Problem zugeschnitten ist ist wohl auch eher unwahrscheinlich, aber mit ein paar C-Grundkenntnissen lässt sich da doch schon was machen.

    Schonmal was in C gemacht in Verbindung mit WinCC ?

  7. #6
    dumens_de ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    20.10.2010
    Beiträge
    18
    Danke
    4
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Genau das findet man natürlich nicht.
    Aber ein Skript, das den Ausdruck über einen Bestimmten Zeitraum macht, hatte ich mir schon erhofft. Das brauchen doch sicherlich viele.
    Ich hab bisher immer bei Siemens was gefunden, das ich dann entsprechend angepasst habe. Hier finde ich aber nichts.

    So wie es mir erscheint gibt es 2 Möglochkeiten dies zu löse.
    1. Wie beschrieben Ausdruck und Ausdruck in Datei.
    2. Export von Meldungen und TAGs, über einen besti,,ten Zeitraum, die dann wieder geladen werden können.

    Punkt 2 wäre mir lieber aber Punkt 1 wäre auch akzeptabel.

    Weis evtl. jemand wo man so ein Skript programmieren lassen kann?
    Das kann ja auch nicht so viel kosten.

  8. #7
    Registriert seit
    07.09.2006
    Ort
    nördl. Ruhrgebiet
    Beiträge
    46
    Danke
    37
    Erhielt 14 Danke für 7 Beiträge

    Standard

    Zitat Zitat von sailor Beitrag anzeigen
    Du könntest das evtl. auch mit den Report-Designer von WINCC machen.
    - Im Reportdesigner ein Layout mit allen was Du brauchst anlegen
    - einen Druckauftrag anlegen
    - über C-Script RPTJobPrint(pszJobName) Druckauftrag ereignisgesteuert über eine externe Variable starten und im Druckauftrag sowohl auf den Drucker als auch in eine Datei ausdrucken. Name und Speicherort der Datei
    kannst Du im Druckauftrag festlegen.

    Gruß
    Sailor
    Wobei du aber nur eine Datei im emf-Format erzeugen kannst (andere Dateiformate sind nicht möglich) und der Dateiname ist auch nicht frei wählbar bzw. per Variable steuerbar. Im Projektpfad des WinCC Projekts wird von WinCC der Ordner "PRT_OUT" erstellt. In diesem Ordner wird von WinCC ein Ordner mit dem eingegebenen Namen angelegt und der Ordnername wird durch Erstelldatum und Uhrzeitangabe ergänzt. Der Bericht wird beim Start der Ausgabe in diesem Ordner seitenweise als emf-Dateien gespeichert.

    Schließe mich dem Vorschlag von pylades an, das Add-On "PM-Quality" einzusetzen.

    Gruß Willi
    Geändert von Willi Wusel (28.06.2011 um 10:11 Uhr) Grund: Nachtrag: Vorschlag PM-Quality
    Wenn du denkst es geht nichts mehr, wünscht du dir einen Reset-Knopf her.

  9. #8
    dumens_de ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    20.10.2010
    Beiträge
    18
    Danke
    4
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Wäre das über User Archive zu realisieren?

  10. #9
    Registriert seit
    25.02.2008
    Ort
    Bayern
    Beiträge
    611
    Danke
    64
    Erhielt 27 Danke für 23 Beiträge

    Standard

    Der Druckauftrag müßte über das C-Script ausgelöst werden und der Trigger des C-Script über eine Variable. Das kann man im C-Editor im Dialog Trigger angeben.
    Was mir nicht klar ist, ist das mit der PDF-Ausgabe. Die ist gegraut und kann nicht angewählt werden. In der Hilfe hab ich deswegen auch nichts gefunden.
    Ist keine Startzeit angewählt, wird der Auftrag eben durch das Script sofort gestartet.
    In der Ablage kann der Pfad der .emf Datei angegeben werden.
    In den ordner PRT_OUT wird scheinbar nur dann ausgedruckt, wenn keiner der angegebenen Drucker bereit ist. Eventuell kannst du 2 Aufträge starten. 1. Drucker 2. PDF-Creator. PDF-Creator auf automatisches Speichern stellen.
    Wg. der gegrauten PDF-Anwahl im Druckauftrag würde ich mal Siemens -Support kontaktieren

    Das sind jetzt aber nur Anregungen. Getestet hab ichs nicht.

    Viel Spass
    Sailor
    Always look on the bright side of life

  11. Folgender Benutzer sagt Danke zu sailor für den nützlichen Beitrag:

    dumens_de (29.06.2011)

  12. #10
    Registriert seit
    17.12.2010
    Beiträge
    222
    Danke
    21
    Erhielt 75 Danke für 53 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo
    ich hab mal sowas mit standardmitteln gemacht.
    Du musst eigntlich nur den passenden SQL string zusammenbauen und ihn dann an das meldeocx im reportdesigner unter "Verbinden/dynamischeParameter" hängen. In dem Beispiel hier sind jetzt die Zeiträume fest vorgegeben ich weiss nicht wo du die Daten herbekommst aber ich hole sie mir vorher per query aus dem user archiv (Ist auskommentiert)... Das ganze war nur mal zum ausprobieren, das kundenprojekt finde ich jetzt nicht

    Hier auf dem Bild kannst du den Report sehen.

    Vielleicht ist es ja was für dich

    Code:
    #include "apdefap.h"
    void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
    {
    float ErgSilo, ErgBio, ErgAll;
    char SQLString1[500], *Query, *OneQuery, *OneEntry, ZielBio[50], CIPSQLAlarm[500], CIPSQLWarning[500];
    long int dwCount;
    char **QueryResult;
    char tag[50], BatchName[500], SQLMeldungen[500], SQLBedMeldungen[500];
    int i, k;
    strcpy(tag,"03/05/2009");
    strcpy(BatchName,"KREIS 1 RM_PIPE CIP LA");
    sprintf(SQLString1,"Batchname like '%s' AND Startzeitpunkt >=  '%s 00:00:00' AND Startzeitpunkt <=  '%s 23:59:59'",BatchName, tag,tag);
    sprintf(SQLMeldungen,"DATETIME >=  '2009-07-28 15:19:45.000' AND DATETIME <=  '2009-07-28 15:21:00.000' AND Class = 1");
    sprintf(SQLBedMeldungen,"DATETIME >=  '2009-07-28 15:19:45.000' AND DATETIME <=  '2009-07-29 15:21:00.000' AND Class = 2");
    //strcpy(CIPSQLAlarm,"CLASS IN(1) AND TYPE IN(1)");
    //strcpy(CIPSQLWarning,"CLASS IN(1) AND TYPE IN(1 ,2 ,3)");
    //strcpy(CIPSQLAlarm,"CLASS IN(1) AND TYPE IN(1 ,2 ,3)");
    SetTagChar("SQLString_1",SQLString1);
    SetTagChar("CIPSQLMeldungen",SQLMeldungen);
    SetTagChar("CIPSQLBedMeldungen",SQLBedMeldungen);
    SetTagChar("CIPTag",tag);
    SetTagChar("CIPBatchName",BatchName);
    //SetTagChar("CIPSQLAlarm",CIPSQLAlarm);
    //SetTagChar("CIPSQLWarning",CIPSQLWarning);
    /*
    GetQueryFromUserArchive("ARCH_4",SQLString1, &dwCount,&QueryResult);
    k=1;
    ErgBio=0;
    for (i=0; i<dwCount; i++){
           OneQuery=strtok(QueryResult[i],","); 
           while (OneQuery != NULL){
                   switch(k){
                           case 1: SetTagChar("ZR_StartZeit_1",OneQuery); break; //Startzeit
                           case 2: SetTagChar("ZR_ZielZeit_1",OneQuery); break;//Endzeit
                           case 3: SetTagChar("ZR_Start_1",OneQuery); break;//Quelle
                           case 4: SetTagChar("ZR_Ziel_1",OneQuery); break;//Ziel
                           case 5: SetTagChar("ZR_MengeSoll_1",OneQuery); break; //Soll wert
                           case 6: SetTagChar("ZR_Menge_1",OneQuery);break;  //Ist wert
                           case 7: SetTagChar("ZR_Charge_1",OneQuery);break; //BatchID
                           case 8: SetTagChar("ZR_ChargeName_1",OneQuery);break; //BatchName
                   }           
                   OneQuery =strtok(NULL,",");
                   k++;
           }
           free(QueryResult[i]);
    }
    free(QueryResult);
    */
    
    RPTJobPrint("Druckauftrag004");
    }
    Angehängte Grafiken Angehängte Grafiken

  13. Folgender Benutzer sagt Danke zu daschris für den nützlichen Beitrag:

    dumens_de (29.06.2011)

Lesezeichen

Berechtigungen

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