# Schichtprotokoll mit OP270



## ssound1de (19 Juni 2003)

Ich bräuchte bitte einen Tip für eine Protokoll-Projektierung an einem OP270 mit Protool 6-SP2.

Ich muss Schichtdaten protokollieren (etwa 1500 Werte den ganzen Tag über - Datum/Uhrzeit, Gewichtswerte, Temperatur, Drücke, usw.) - aufgeteilt in Datensätze (je Datensatz ca. 10 Werte - Datum/Zeit und Real).

Die einfachste Möglichkeit wäre, die Werte in Rezeptdatensätze zu schreiben.
Nachteil: Keinen Einfluß auf das Aussehen des Protokolls; außerdem wahrscheinlich etwa 50 oder mehr Seiten Ausdruck pro Tag.

Eine weitere Möglichkeit wäre, das ganze in der S7 (CPU315) in einem oder mehreren DB's abzulegen.
Nachteil: Es müsste ein Protokoll mit etwa 1500 Variablen angelegt werden (Systemgrenzen OP270 ??).

Gibt es eine einfachere Möglichkeit - Z.B. über Arrays; Multiplexvariablen; VB-Scripts, o.ä.?

Siemens Hotline war auch keine große Hilfe ...

Wäre super, wenn mir jemand einen Tip geben könnte.
Vielen Dank im voraus.

Ciao,
Sam.


----------



## Markus (19 Juni 2003)

ssound1de schrieb:
			
		

> Eine weitere Möglichkeit wäre, das ganze in der S7 (CPU315) in einem oder mehreren DB's abzulegen.
> Nachteil: Es müsste ein Protokoll mit etwa 1500 Variablen angelegt werden (Systemgrenzen OP270 ??).



hi,

wieso 1500 variablen?
ich würde für jeden wert einen db anlegen.
die daten die du in im ablegst indirekt aressieren, wobei die adresse des dbw&s zb von einem schleifenzähler vorgegeben wird.

geschieht die messung in bestimmten zeitabständen oder programmgesteuert?


----------



## ssound1de (19 Juni 2003)

Hi Markus,

danke erstmal für Deine Antwort.

*Kurz zu dem Prozess ...*
Wir mischen bestimmte Komponenten die abgewogen und  temperaturmäßig überwacht werden und verpressen sie anschließend.
Pressdrücke werden ebenfalls erfasst.
Der Kunde wünscht ein Sichtprotokoll, in dem jede Mischung und Verpressung mit den entsprechenden Daten + Uhrzeit erfasst ist.
Die Messung geschieht also Programmgesteuert.


*Zum Problem ...*
Das Ablegen der Daten in DB's ist nicht das Problem.
Ich muss die Daten ausdrucken.
Am OP270 (das an der CPU315-2DP hängt) kann ein Drucker angeschlossen werden (USB oder Seriell).

*Mir bekannte Möglichkeiten*
Die Standardprotokollfunktionen des OP's beinhalten Meldungsdruck (Störmeldepuffer) und Rezepturdruck.
Man kann auch eigene Protokolle (Ausdrucke) anlegen, ist aber wesentlich aufwendiger, wie weiter unten unter 2. Möglichkeit beschrieben.

*1. Möglichkeit - Speichern der Werte in Rezepturdatensätzen im OP270.*
Speichere ich die Werte in Rezepturdatensätzen im OP, dann ist das Drucken mit der Standardfunktion kein Problem. Allerdings habe ich auf das Aussehen des Drucks keinen Einfluß. Das heißt, dass je Schicht wahrscheinlich 50 Blätter gedruckt würden.
Das kann es nicht sein; außerdem soll das Aussehen des Protokolls verändert werden können.
Rezeptdatensätze kommen also schon mal nicht in Frage.

*2. Möglichkeit - Ablegen der Werte in DB's.*
Das Ablegen der Daten in DB's ist nicht das Problem, sondern das Drucken.
Wenn ich die im DB hinterlegten Daten drucken möchte, muss ich im OP270 Variablen anlegen, die auf die entsprechenden DB-Datenwörter verweisen. Diese Variablen können dann mittels Ausgabefeldern am OP-Bildschirm angezeigt werden oder auch in einem Protokoll ausgedruckt werden.
Dieses Protokoll muss man allerdings von Hand erstellen (genau wie ein OP-Bild), und für jedes DB-Datenwort ein Ausgabefeld mit der entsprechenden Prozessvariable anlegen.
Das ist in etwa so, als würde ich ein OP-Bild anlegen, in dem ich 1500 Werte anzeigen möchte. Das ist extrem aufwendig.
Das OP greift dann allerdings beim Drucken selbständig auf die entsprechenden DB-Datenworte zu (genauso wie bei einem OP-Bild). 

*??? Andere Lösungen ???*
Ich habe leider nur bestimmte Ideen, die vielleicht funktionieren könnten.
Evtl. hat ja schon jemand was ähnliches gemacht.

1. Gibt es eine Möglichkeit über Multiplexvariablen?
Ein Protokoll mit nur einem Datensatz anlegen, mit diesem Datensatz aber über Multiplexvariablen (sozusagen indiziert) auf alle Datensätze in der CPU zugreifen?

2. Vielleicht gibt es eine Möglichkeit über VB-Scripts (kann man im OP270 anlegen - beinhalten allerdings leider keine Druckfunktionen)?

Sorry, wenn ich vielleicht etwas zu detailiert erklärt habe, aber ich weiß ja nicht, wie Fit Du bist bzw. andere sind.
Danke im schon mal im voraus für weiter Hilfe.

Grüsse,
Sam.


----------



## Anonymous (19 Juni 2003)

habe das mal kopiert, "zottel"hat die natwort an das falsche topic geschrieben. (markus)


---------------------------------

Ich kenne zwar das OP270 nicht, aber ich würde folgende Überlegungen anstellen: 

Brauchst Du die Daten nach dem Druck noch? 
Wenn nein, kannst Du sie ja immer in denselben DB für einen Datensatz schreiben. 
Wenn doch, schreibst du alle Daten in einen DB, der als Ringspeicher dient. (Neuester Satz überschreibt ältesten). 
Dazu zählst Du die Datensatz Nummer hoch. 
Wenn Sie die Granze des Speichers überschreitet setzt Du sie wieder auf 0. 
Um den Datensatz zu schreiben, bentzt du die indirekte Adressierung a la: 
L Adresse 
T MDxxx 
Auf DBRingspeicher 
L Daten 
T DBD[MDxxx] 

Wenn deine Daten nicht in ein DWORD passen, nimmst Du mehrere aufeinanderfolgende DBDs. 

Aus dem Ringspeicher kanst Du wieder einen einzelnen Satz in einen andern DB kopieren, den das OP anzeigt. Durch ändern der Adresse kann der Benutzer durch die Daten blättern. 

Zum Drucken kopierst Du die Daten in einen weiteren DB, der den letzten Datensatz enthält und aus dem gedruckt wird. 
Oder, wenn z.B. 20 Datensätze auf eine Seite passen, legst Du einen DB für 20 Sätze an, kopierst wiederum die Daten mittels indirekter Adressierung hinein und wenn 20 erreicht wurden oder aber auf Kommando früher druckst Du diesen DB. 

Wenn Du die Daten allerdings auf dem OP hast, wird es wohl schwierig in 1500 Sätzen zu blättern und einen bestimmten Satz wiederzufinden. 

Du könntest statt eines Druckers(mit serieller Schnittstelle) einen PC dranhängen, der jeden (sofort gedruckten und weder in SPS noch OP gespeicherten Datensatz) in eine Datei schreibt. 

Diese Datei kann dann archiviert oder formatiert gedruckt werden. 
Allerdings könnte sie auch nachträglich manipuliert werden.


----------



## Anonymous (20 Juni 2003)

ssound1de schrieb:
			
		

> Ich bräuchte bitte einen Tip für eine Protokoll-Projektierung an einem OP270 mit Protool 6-SP2.



probier in protool mal protokolle.
eine andere möglichkeit wäre die daten mit einem script in eine datei zu schreiben und diese dann zu drucken.

mfg volker


----------



## ssound1de (20 Juni 2003)

Zottel1 schrieb:
			
		

> 1.
> Zum Drucken kopierst Du die Daten in einen weiteren DB, der den letzten Datensatz enthält und aus dem gedruckt wird.
> Oder, wenn z.B. 20 Datensätze auf eine Seite passen, legst Du einen DB für 20 Sätze an, kopierst wiederum die Daten mittels indirekter Adressierung hinein und wenn 20 erreicht wurden oder aber auf Kommando früher druckst Du diesen DB.
> 
> ...


Jooo,
beides keine schlechten Ideen.
Zu 1.
Auf eine Seite bringe ich wahrscheinlich 40 Datensätze je 10 Werte. Das würde bedeuten, eine Protokollseite mit 400 (40x10) Ausgabefeldern und 400 Prozessvariablen anzulegen.
Die Seite dann 4x drucken mit jeweils den neuen Werten aus dem DB (Datensatz 1-40, 41-80 usw.).
Wäre auf jeden Fall wesentlich weniger Projektierungsaufwand (knapp 1/3tel).

Zu 2.
Das mit dem Rechner wäre zwar ein zusätzlicher Kostenaufwand, aber kein Problem, da ich ein kleines VB-Programm schreiben könnte, dass die Daten von der seriellen SS empfängt, formatiert und druckt.




			
				Volker schrieb:
			
		

> probier in protool mal protokolle.
> eine andere möglichkeit wäre die daten mit einem script in eine datei zu schreiben und diese dann zu drucken.


Protokolle in Protool hab ich probiert.
Wäre eben zu aufwendig, ein Protokoll mit 150 Datensätzen mit je 10 Werten anzulegen (1500 Ausgabefelder und Variablen in Protool projektieren - never ending story).
Aber die Geschichte mit der Datei hört sich ganz gut an. Ich habe im Moment eine CF-Card im OP stecken, könnte diese aber durch eine NE2000 kompatible Card austauschen, und die Daten in eine Datei im Firmennetzwerk schieben.
Da wäre dann natürlich alles vorhanden (Rechner, Software, Drucker ...).


*Vielen Dank erstmal für Eure Hilfe.*
Ich werde alles mal abwägen, kann es aber wahrscheinlich erst in 1 oder 2 Wochen abchecken, da ich noch im Urlaub bin.
Ich geb euch dann Rückinfo, was ich gemacht habe.

Also bis dann und thx nochmal,
Sam.


----------



## ssound1de (20 Juni 2003)

Ich finde es etwas schade, das Siemens bei diesen OP-Geschichten in Sachen "Protokolle" noch so rückständig ist.

Das OP270 basiert auf WinCE.
Es dürfte also eigentlich kein Problem sein, bei Protokollen über Schleifen indiziert auf Daten in der CPU zuzugreifen und diese zu drucken.
VB-Script ist im OP Verfügbar.
Und trotzdem scheint indizierter Zugriff nicht möglich zu sein - etwas mager.

Sam.


----------

