Skript braucht bei MP277 ewig

DJMetro

Level-2
Beiträge
306
Reaktionspunkte
8
Zuviel Werbung?
-> Hier kostenlos registrieren
Tach,
ich hab ein kleines Skript Problem beim MP277. Ich habe eine Variable die fortlaufend im Sekundentakt abgefragt wird. Bei Wertänderung wird ein Skript ausgeführt. Am Ende setzt das Skript eine weiter Variable als Rückmeldung.
Das Skript läuft auf 2 Anlagen. Die eine macht keine Probleme und bei der anderen dauert es in letzter Zeit manchmal über 5 Sekunden bis das Rückmeldebit gesetzt wird. Bei einem weiteren Skript das selbe Problem.
Hatte jemand eine Lösung für das Problem?

Andi
 
Schreib doch mal etwas mehr zu deinem Projekt.
Die 2. Variable ist eine Steuerungsvariable ?
Wieviele Variablen werden mit welcher Aktualisierungszeit schätzungsweise gleichzeitig aktualisiert ?
Wie ist das MP mit der SPS verbunden ? PB / MPI ?
Gibt es viele Variablen, die nicht "zyklisch bei Verwendung" sondern "zyklisch fortlaufend" aktualisiert werden ?

Gruß
Larry
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi,
hier einmal das Skript. Es ist ne CSV Backup

Code:
Dim wert, fehler, fs, f, datei,datum,laenge, kunde, IstGebinde, RestGebinde, Gebindeart, aktGewicht, Artikel, Auftragsnr, TB03, TB04, TB05, TB13

kunde= SmartTags("Panel_Kom_weiss.Kunde_Ausgabe")
IstGebinde= SmartTags("Panel_Kom_weiss.Ist_Gebinde")
RestGebinde= SmartTags("Panel_Kom_weiss.Rest_Gebinde")
Gebindeart= SmartTags("Panel_Kom_weiss.Gebindeart")
aktGewicht= SmartTags("Instanz DB FB20 weiss.Istgew_Dos_aktuell_DINT")/10.0
TB03= SmartTags("Panel_Kom_weiss.SiloTB03_gewaehlt")
TB04= SmartTags("Panel_Kom_weiss.SiloTB04_gewaehlt")
TB05= SmartTags("Panel_Kom_weiss.SiloTB05_gewaehlt")
TB13= SmartTags("Panel_Kom_weiss.SiloTB13_gewaehlt")
Auftragsnr= SmartTags("Panel_Kom_weiss.AuftragsNr_Ausgabe")

If SmartTags("Panel_Kom_weiss.CSV_Backup_start")= True Then

    If TB03 = True Then
        Artikel = "TB03: "&SmartTags("Panel_Kom_weiss.Artikel_Ausgabe")
    ElseIf TB04 = True Then
        Artikel = "TB04: "&SmartTags("Panel_Kom_weiss.Artikel_Ausgabe")
    ElseIf TB05 = True Then
        Artikel = "TB05: "&SmartTags("Panel_Kom_weiss.Artikel_Ausgabe")
    ElseIf TB13 = True Then
        Artikel = "TB13: "&SmartTags("Panel_Kom_weiss.Artikel_Ausgabe")    
    End If
 
    Set f= CreateObject("filectl.file")
    Set fs = CreateObject("filectl.filesystem")
 
    datei=SmartTags("Panel_Listen_weiss.CSV_Backup_Pfad")
    datum="20"&Right(Date,2)&"."&Mid(Date,4,2)&"."&Left(Date,2)
 
    If fs.dir(datei) = "" Then 
    f.open datei, 2
    f.LinePrint "Logdatei Abfüllstation weiss"
    f.LinePrint "Datum;"&"Uhrzeit;"&"Kunde/Ort;"&"Anzahl Ist Gebinde;"&"Anzahl Rest Gebinde;"&"Gebindeart;"&"Istgewicht in kg;"&"Artikel;"&"Auftragsnummer;"
    f.Close
    End If
 
 
 
 
    f.open datei, 8
    f.LinePrint datum&";"&Time&";"&kunde&";"&IstGebinde&";"&RestGebinde&";"&Gebindeart&";"&aktGewicht&";"&Artikel&";"&Auftragsnr
    f.Close
End If

CSV_Backup = True

Angebunden ist das Panel via Ethernet an CP343-1 Lean. Es sind insgesamt 150 Variablen die "Zyklisch bei Verwendung" abgefragt werden im 1Sek. Takt. "Zyklisch fortlaufend" habe ich ca. 10 im 1Sek. Takt und ca. 20 im 5Sek. Takt. Bei beiden Panels identisch. Das komische ist ja, dass es beim anderen Panel problemlos funktioniert.

Andi
 
Ich bin einig mit Larry.

Die nächste Frage ist was du jetzt tun um das Problem zu beheben.
Beschreib bitte im Detail wie dein Anlage aussieht.
Was für ein CPU ?
Welche Busverbindungen gibt es ? (ausser der CP343-1 LEAN).
Welche weitere Bus-Teilnehmer gibt es ?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi,
das es jetzt schon Performance Probleme gibt, kann ich mir nicht vorstellen. Ich habe bei einem anderen Kunden 11 Panels an 3 CPU's hängen via MPI, und da kommt es jetzt langsam hin und wieder zu Hängern. Bei 7-8 Panel's waren die Aussetzer noch nicht.:rolleyes:
Hier hab ich 2 MP277 und einen Etikettendrucker via Ethernet/CP343-1 Lean an einer 314 hängen. Sonst nichts.

Andi
 
Dein 1-Sekunden-takt-Skript wandelt alle die Variabeln die in Skript abgefragt werden, ins Zyklisch Vortlaufende Variabeln mit 1 Sekunde Aktualisierungszeit.
Vielleicht liegt es daran.

Oder, vielleicht liegt es daran das das Skript braucht mehr als 1 Sekunde. Dann geht es nach 20 Sekunden (20 Aufrufe) ins Sättigung.
Wenn die erste Skripte nach Netz-ein laufen OK, dann deutet es daran.
 
Dein 1-Sekunden-takt-Skript wandelt alle die Variabeln die in Skript abgefragt werden, ins Zyklisch Vortlaufende Variabeln mit 1 Sekunde Aktualisierungszeit.
Das Skript wird nicht jede Sekunde ausgeführt. Es wird nur die Variable jede Sekunde abgefragt die das Skript ausführen soll. Das Skript ansich wird dann nur alle 10-20 Minuten einmal ausgeführt.

Andi
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Andi,
das was wir hier haben ist ja auch kein Programmierfehler bei dem man ganz klar sagen kann : "das darf man ja auch nicht machen".
Man kann hier nur spekulieren. Die Aussage mit dem anderen Projekt bringt hier aber gar nichts. Bist du dir denn sicher, dass auch in dem Projekt das gleiche abläuft ?
Aber ... by the way ... was macht den dein Ethernet außer dem Beschriebenen sonst noch so ?

Gruß
Larry
 
wo liegt die datei?

netzwerk oder speicherkarte?
wenn netzwerk kann es durchaus daran liegen. dann probier mal aus die datei auf speicherkarte zu speichern um festzustellen ob das prob auch dann besteht
 
Moin,
die Datei wird auf einen Server im Netzwerk geschrieben. Die beiden Panels und CP hängen im Firmennetzwerk. Mich macht eben stutzig, dass es bei einem Panel funktioniert, und bei dem anderen (seit ein paar Wochen) halt Probleme macht. Die Panels sind identisch, schreiben/lesen halt nur in anderen DB's.

Andi
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Andi,

die Datei wird auf einen Server im Netzwerk geschrieben.
Das ist schon mal nicht so toll - besser ist immer erst lokal zu schreiben und dann ins Netzwerk zu kopieren ...

Die beiden Panels und CP hängen im Firmennetzwerk.
Dazu habe ich keine weitere Fragen mehr ... :rolleyes:
Was macht denn das Firmen-Netzwerk sonst noch so ? Benutzt das vielleicht noch wer außer der Anlage ? Wenn ja dann ... :sb5: (endlich kann ich den Smilie auch mal einsetzen).

Gruß
Larry
 
Mir gefällt das Schreiben ins Netz auch nicht so doll. Haben anfangs massive Probleme wegen Domänencontroller und so gehabt. Ich hatte auch erst gedacht die Datei auf dem Panel zu speichern und diese dann frei zu geben. Aber das läßt das Panel leider auch nicht zu.
Mit dem lokal speichern und dann ins Netz kopieren finde ich auch nicht so ideal. Die csv. wird jeden Monat ausgewertet und gelöscht. Wer macht es dann auf dem Panel? Den "Umstand" werden die bestimmt nicht mitmachen.

Andi
 
Also dann ...

Ich mache es bei uns so (allerdings mit Flex- bzw. ProTool-Runtime) :
Produktionsdaten werden für jeden Tag als eigenständige Datei (auf dem Visu-PC) erzeugt (also z.B. "Prod_Daten_110513.csv"). Im stündlichen Takt kopiere ich diese Datei auf den Server in ein vorgegebenes Verzeichnis. Bei Monatswechsel verschiebe ich alle Dateien des Vormonats auf den Server (und lösche sie somit lokal).
Auf dem Server ist und bleibt alles weiterhin archiviert (das ist allerdings unsere Philosophie).

Vielleicht ist dabei ja ein Ansatz für dich dabei - das meißte davon sollte auch mit einem MP277 funktionieren.

Gruß
Larry
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Kann man eigentlich verhindern, dass eine Skriptbearbeitung abgebrochen wird? Habe mal gelesen, dass das passieren kann. Somit ist die Skriptfunktion eigentlich sehr störanfällig und kaum zu gebrauchen?!

Andi
 
Wie würde denn der Skriptbefehl aussehen um die CSV Datei vom z.B. USB-Stick auf den Server zu kopieren und verschieben?

Andi
 
Zurück
Oben