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

Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 19 von 19

Thema: Chargendokumentation in WINCC

  1. #11
    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


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Danke für die Antworten.
    Ich kann das z.Zt. aber nicht testen. Damit kann ich aber was anfangen.
    Ich werde noch mitteilen, wie ich es letztendlich gemacht habe.

  2. #12
    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

    So nun hab ich mal verschiedene Sachen Probiert und die Sache so gemacht wie Sailor das vorgeschlagen hat. Der Vorschlag von daschris wäre wahrscheinlich besser, bekam ich aber nicht zum laufen.


    Ich setze mit diesem VB Skript die Startzeit:
    Sub OnClick(ByVal Item)
    Dim ActDate
    Dim Year_Sect
    Dim Month_Sect
    Dim Day_Sect
    Dim Date_Mod
    Dim ActTime
    Dim Time_Mod_b_1
    Dim DateString_b_1

    ActDate = Date 'aktuelles Datum ermitteln - get actual date


    Year_Sect = Year(Date)
    Month_Sect = Month(Date)
    Day_Sect = Day(Date)
    'Date_Mod = Year_Sect & "-" & Month_Sect & "-" & Day_Sect
    Date_Mod = Day_Sect & "." & Month_Sect & "." & Year_Sect

    ActTime = Time 'aktuelle Uhrzeit ermitteln - determine actual time


    Time_Mod_b_1 = DateAdd("n", -1, ActTime) 'aktuelle Uhrzeit minus 1 Minuten ermitteln


    DateString_b_1 = Date_Mod &" "& Time_Mod_b_1


    HMIRuntime.Tags("BeginTime_1").Write DateString_b_1

    End Sub
    Mit diesem den Endzeitpunkt:

    Sub OnClick(ByVal Item)
    Dim ActDate
    Dim Year_Sect
    Dim Month_Sect
    Dim Day_Sect
    Dim Date_Mod
    Dim Date_End
    Dim ActTime
    Dim Time_Mod_e_1
    Dim Time_Mod_e_2
    Dim DateString_e_1
    Dim DateString_e_2

    ActDate = Date 'aktuelles Datum ermitteln - get actual date


    Year_Sect = Year(Date)
    Month_Sect = Month(Date)
    Day_Sect = Day(Date)
    'Date_Mod = Year_Sect & "-" & Month_Sect & "-" & Day_Sect
    Date_Mod = Day_Sect & "." & Month_Sect & "." & Year_Sect

    ActTime = Time 'aktuelle Uhrzeit ermitteln - determine actual time


    Time_Mod_e_1 = DateAdd("n", +1, ActTime) 'aktuelle Uhrzeit plus 1 Minuten ermitteln


    DateString_e_1 = Date_Mod &" "& Time_Mod_e_1


    HMIRuntime.Tags("EndTime_1").Write DateString_e_1

    End Sub
    Kuve Ausdruck im Zeitbereich geht.


    Was nicht geht ist, dass ich diese Skripts durch eine Meldung oder sonstwie Ereignisgesteuert auslösen kann. Da geht nur C-Skript.
    Wäre schön wenn da jemand eine Idee hätte.


    Dann hab ich noch die Meldeliste.
    Da hab ich folgendes von daschris Vorschlag herausgezogen und angepasst. Steridok2 ist die Liste.
    Funktioniert keider nicht, keine Ahnung wie das Start und endedatum da in das Formular kommen soll:
    #include "apdefap.h"
    void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
    {

    char **QueryResult;
    char tag[50], BatchName[500], SQLMeldungen[500], SQLBedMeldungen[500];
    int i, k;

    sprintf(SQLMeldungen,"DATETIME >= '2011-01-03 15:19:45.000' AND DATETIME <= '2011-07-05 15:21:00.000' AND Class = 1");

    SetTagChar("CIPSQLMeldungen",SQLMeldungen);

    RPTJobPrint("Steridok1");
    RPTJobPrint("Steridok2");

    Wäre schön wenn da noch jemand nen tip hätte.
    Danke im Voraus.

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

    Standard

    Hi,
    nochmal: Einen Report im Reportdesigner anlegen mit allen was Du brauchtst. Auch ein "WINCC-Online-trend- Control" kann als Bild in diesen Report eingebracht und dynamisiert werden, fast wie im normalen Grafikdesigner. Im Dialog kannst Du auch die von Dir berechnete (warum mit Klick und nicht zyklisch?) Start/Stop-Zeit eintragen. Die Kurvenvariablen des Control im Report müssen aber aus den Archiv kommen.
    Der Ausdruck erfolgt mit einen Druckauftrag in einen globalen C-Script mit Trigger durch eine Variable (Ext/Int - egal).
    Weil Du fragst, wie ein Script ereignisgesteuert werden kann: Vielleicht weisst Du ja nicht, das es im Projektbaum des WINCC-Explorers den Punkt "Global Script" gibt. Dort müsste auch das Script mit der Druckauftagssteuerung und auch Dein Script, welches ja über einen Mausklick ausgeführt wird
    Hoffe jetzt klappts.
    Ansonsten hocke ich mich am WE mal hin und probiers selber.
    Gruß
    Sailor
    Geändert von sailor (07.07.2011 um 11:57 Uhr)
    Always look on the bright side of life

  4. #14
    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

    Danke nochmal für die Anregung.
    Ich hab aner eigentlich nur 2 Problemchen.
    Das eine ist dass ich die "Endzeit nicht geschrieben bekomme, weil ich das ding nicht in C hinbekomme und weil VB skript nicht von einer Meldung aufgerufen werden kann.
    Das zweite ist, dass das Zeitfenster funktioniert, wenn ich im Reportdesigner das hier erzeuge "
    DATETIME >= '2011-07-08 00:00:00.000' AND DATETIME <= '2011-07-08 23:59:59.999'

    aber nicht das mit Variablen:
    DATETIME >= "TimeStart_1"AND DATETIME <= "TimeEnd_1"

    Wobei die Variablen beim Trend funktionieren. Da werden allerdings die millisekunden nicht gebraucht soviel ich weis.


    Die Funktion einer Textliste vermisse ich im Report auch. Das muß aber doch eigentlich gehn.
    Geändert von dumens_de (08.07.2011 um 09:41 Uhr)

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

    Standard

    Zitat Zitat von dumens_de Beitrag anzeigen
    ....
    Was nicht geht ist, dass ich diese Skripts durch eine Meldung oder sonstwie Ereignisgesteuert auslösen kann. Da geht nur C-Skript.
    Wäre schön wenn da jemand eine Idee hätte.
    ...
    Danke im Voraus.
    VBS-Aktionen kann man auch ereignisgesteuert auslösen.

    Aktionen
    Einleitung
    Eine Aktion wird immer durch einen Trigger ausgelöst. In Runtime wird eine Aktion z.B. ausgeführt, wenn ein Objekt per Mausklick bedient wird, ein bestimmter Zeitpunkt eingetreten ist oder ein Variablenwert sich geändert hat


    Pylades

  6. #16
    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

    Danke zunächst mal für eure hilfe.
    Ich hab aber immer noch einige Probleme.

    Kannmir vileicht jemand sagen warum das hier nicht geht:

    Option Explicit
    Function action
    Dim PROGRAMM
    Dim SteriOPDATPR_AKT


    Set SteriOPDATPR_AKT = HMIRuntime.Tags("Steri/OPDAT.PR_AKT")
    Set PROGRAMM = HMIRuntime.Tags("PROGRAMM")


    HMIRuntime.Tags("PROGRAMM").Write "P1 121°C" DAS HIER GEHT SOLANGE OBEN DAS .READ nicht dort steht

    If SteriOPDATPR_AKT = 1 Then DAS NICHT
    HMIRuntime.Tags("PROGRAMM").Write "234"
    Elseif SteriOPDATPR_AKT = 2 Then
    HMIRuntime.Tags("PROGRAMM").Write "345"
    Elseif SteriOPDATPR_AKT = 3 Then
    HMIRuntime.Tags("PROGRAMM").Write "456"
    Else
    HMIRuntime.Tags("PROGRAMM").Write "456"
    MsgBox "Value out of range!"
    End If

    End Function


    Dann ist da noch das Problem diesen String in eine Variable zu schreiben und dabei die Uhrzeit die Kursiv ist durch Variablen zu ersetzen.

    DATETIME >= '2011-07-13 00:00:00.000' AND DATETIME <= '2011-07-13 23:59:59.999'

    Danke schon mal im Voraus.

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

    Standard

    Das hier:
    Set SteriOPDATPR_AKT = HMIRuntime.Tags("Steri/OPDAT.PR_AKT")
    Set PROGRAMM = HMIRuntime.Tags("PROGRAMM")

    Ergänzen: SteriOPDATPR_AKT.read
    PROGRAMM.read

    Für die andere sache hab ich jetzt grad keine Zeit. Kannst du das mit den String genauer beschreiben? ist irgendwie unklar, was du machen willst.
    Gruß
    Sailor
    Geändert von sailor (14.07.2011 um 09:21 Uhr)
    Always look on the bright side of life

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

    dumens_de (14.07.2011)

  9. #18
    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 müßte meiner meinung nach so aussehen:
    in der Variablen
    Steri/OPDAT.PR_AKT steht mit Sicherheit ; 2 oder 3 drin

    Option Explicit
    Function action
    Dim PROGRAMM
    Dim SteriOPDATPR_AKT


    Set SteriOPDATPR_AKT = HMIRuntime.Tags("Steri/OPDAT.PR_AKT").Read

    If SteriOPDATPR_AKT = 1 Then
    HMIRuntime.Tags("PROGRAMM").Write "234"
    Elseif SteriOPDATPR_AKT = 2 Then
    HMIRuntime.Tags("PROGRAMM").Write "345"
    Elseif SteriOPDATPR_AKT = 3 Then
    HMIRuntime.Tags("PROGRAMM").Write "456"
    Else
    HMIRuntime.Tags("PROGRAMM").Write "456"
    MsgBox "Value out of range!"
    End If

    End Function


    Das andere ist, dass das hier als String in eine Variable muß, akllerdings müssen Teile davon Variabel sein.

    DATETIME >= '2011-07-13 00:00:00.000' AND DATETIME <= '2011-07-13 23:59:59.999'

    So:

    DATETIME >= 'VARIABLE1.000' AND DATETIME <= 'VARIABLE2.999'

  10. #19
    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


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zur Info
    Ich hab den String jetzt in der SPS zusammengebastelt.

Lesezeichen

Berechtigungen

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