Ein Problem mit ProTool

anne

Level-1
Beiträge
347
Reaktionspunkte
2
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi Ihr,

ich habe das Problem, dass ich in ein bestehendes Protool-Projekt eine Zustandsfläche (Schalter) einbinden muss - aber nicht auf die Oberfläche (siehe Bild 1) umschalten kann, um das zu bewerkstelligen.

Es soll einfach nur ein Schalter mit EIN und AUS hinzugefügt werden. Sobald ich auf das entspr. Bild klicke, in das der Schalter eingefügt werden soll, öffnet sich bei mir das Bild aus Anhang 2.

Was mache ich denn falsch?

Vielen Dank...
 

Anhänge

  • Bild1.jpg
    Bild1.jpg
    103,9 KB · Aufrufe: 51
  • Bild2.jpg
    Bild2.jpg
    48,6 KB · Aufrufe: 46
Hallo,
gib doch mal ein paar mehr Info's zu deinem Bediengerät und der ProTool-Version.
Es sieht allerdings ein bißchen so aus, als wenn da irgendwelche Verweise durcheinander gingen. Das Bild2 stellt den Bildspeicher eines OP7 (z.B.) dar.

Gruß
Larry
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo LL,

also es ist ein OP7 und die ProTool Version 6, SP3.


Es gibt mehrere projektierte Bilder. Wenn ich auf eines dieser Bilder doppelklicke so öffnet sich das Fenster, das bei mir im Anhang mit Bild 2 gekennzeichnet ist.

Es sollte sich aber doch (wie bei WinCC flex gewohnt) beim Doppelklicken ein Bild öffnen, in das ich dann z.B. eine Schaltfläche integrieren kann.

Ebenso fehlen bei mir sämtliche Symbolleisten - also Schaltflächen, usw. (siehe Bild 3).
 

Anhänge

  • Bild3.jpg
    Bild3.jpg
    13 KB · Aufrufe: 20
Zuletzt bearbeitet:
Da OP7 ist aber doch kein Touch!?
Da kannst du "nur" Werte anzeigen oder Eingaben tätigen.
Die Tasten sind die Tasten auf der Folientastatur - nur diese kannst du belegen (entweder global oder je nach bild).

Da war PN/DP wohl schneller! :)
 
Zuviel Werbung?
-> Hier kostenlos registrieren
So könntest Du z.B. in einem Bild den Funktionstasten F1 und F2 die EIN- und AUS-Funktion zuweisen:

Zunächst das OP-Bild beschriften, die unterste Zeile nimmt man als Beschriftung der darunterliegenden F-Tasten.
Code:
12.3 Zylinder 1234
xx xxxx xxxx xxx
text text te xt text
EIN   AUS
--------------------
[F1] [F2]  [F3] [F4]
auf F1 klicken -> Reiter Allgemein: boolsche Variable S_Zyl1_Ein auswählen / Bitnummer: 0
auf F2 klicken -> Reiter Allgemein: boolsche Variable S_Zyl1_Aus auswählen / Bitnummer: 0

Nun wird beim Drücken von F1 bzw. F2 die CPU-Variable S_Zyl1_Ein bzw. S_Zyl1_Aus auf 1 gesetzt
und beim Loslassen wieder auf 0 geschrieben.
Im SPS-Programm müßtest Du dann S_Zyl1_Ein und S_Zyl1_Aus wie richtige Hardware-Taster auf eine S/R-Box programmieren.

Oder Du nimmst eine numerische Variable (mindestens Byte) S_Zyl1_Schalter:
auf F1 klicken -> Reiter Funktionen: Wert setzen, Variable: S_Zyl1_Schalter, Wert: 1
auf F2 klicken -> Reiter Funktionen: Wert setzen, Variable: S_Zyl1_Schalter, Wert: 0

Harald
 
Vielen Dank für eure Ausführungen,

stimmt - das OP7 ist nur ein Textdisplay. Bin ich d...

Ok, dann besteht also nur die Möglichkeit einen Schalter über die Funktionstasten zu simulieren.

Lieben Dank!
 
Oder Du nimmst eine numerische Variable (mindestens Byte) S_Zyl1_Schalter:
auf F1 klicken -> Reiter Funktionen: Wert setzen, Variable: S_Zyl1_Schalter, Wert: 1
auf F2 klicken -> Reiter Funktionen: Wert setzen, Variable: S_Zyl1_Schalter, Wert: 0

Harald

Ja, so war es gedacht. Beim Drücken von F1 (= Merker an) und beim Drücken von F2 (= Merker aus).

Aber dazu darf es ja kein Merker sein - muss ich da dann ein MW dafür hernehmen?

Bsp:

Variablenname = S_Zyl1_Schalter
Typ: WORD
MW 10


Nur wie bestimme ich dann, dass der Wert = 0 bzw. der Wert = 1 ist - geht das dann über folgende Zuweisung?

Wert: 1.00000 bzw. Wert: 0.00000

Lieben Dank!
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Variablenname = S_Zyl1_Schalter
Typ: WORD
MW 10
Ja, kannst Du so machen. Oder MB10, oder DB10.DBW12 oder ...
Es kann nur keine boolsche Variable wie M10.0 oder DB10.DBX12.0 sein.
Das MW10 darf auch als INT deklariert sein.

Nur wie bestimme ich dann, dass der Wert = 0 bzw. der Wert = 1 ist - geht das dann über folgende Zuweisung?

Wert: 1.00000 bzw. Wert: 0.00000
Exakt. Wert: 1.00000 bzw. Wert: 0.00000
Das ProTool-Wert-Eingabefeld verlangt immer eine Gleitkommazahl, die wird aber zum Datentyp der Zielvariable konvertiert.

Harald
 
Aja, super - danke Harald.

Wenn ich nun beispielsweise das MB10 heranziehe, so bedeutet das, dass für den Fall

Wert: 1.00000

alle 8 Bits den Status "1" besitzen und ich mir dann in der SPS z.B. den Merker M10.6 herauspicken kann, um einen Ausgang zu setzen; bzw. rückzusetzen.

Stimmt das so?
 
Aja, super - danke Harald.

Wenn ich nun beispielsweise das MB10 heranziehe, so bedeutet das, dass für den Fall

Wert: 1.00000

alle 8 Bits den Status "1" besitzen und ich mir dann in der SPS z.B. den Merker M10.6 herauspicken kann, um einen Ausgang zu setzen; bzw. rückzusetzen.

Stimmt das so?

Denke Ich nicht! Es wird nur das Bit an Stelle 0 gesetzt! Wenn du ff = 255 reinschreibst, dann sollten alle bits sitzen!
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Danke Jochen,

was müsste ich denn dann anstatt von

1.00000

für "Wert" deklarieren, dass beispielsweise M10.6 true, bzw. false wird?

Geht das denn überhaupt in diesem Feld?
 
Das ProTool-Wert-Eingabefeld verlangt immer eine Gleitkommazahl, die wird aber zum Datentyp der Zielvariable konvertiert.

Harald

Danke Jochen, aber demnach wird es wohl so nicht gehen...

D.h. dann, dass bei ProTool immer nur das Bit0 eines Bytes gesetzt, bzw. rückgesetzt werden kann - das gibt's ja fast nicht, oder?
 
D.h. dann, dass bei ProTool immer nur das Bit0 eines Bytes gesetzt, bzw. rückgesetzt werden kann - das gibt's ja fast nicht, oder?
Nöö, heißt es nicht. Man kann auch 2, 4, 8, 16, 32, 64, 128 in eine Byte-Variable schreiben, dann setzt man jedesmal ein anderes Bit in der Variable auf 1 (alle übrigen Bits werden dabei immer auf 0 geschrieben!). Man kann auch mehrere Bits gleichzeitig auf 1 schreiben (alle Zahlen von 3 bis 255 außer die eben aufgezählten).

Hallo Anne, bist Du heute etwa krank? Du bist doch sonst nicht so "blond". ;)

Was Dich jetzt so verwirrt liegt nicht am ProTool, sondern am OP7. Das uralte OP7 ist eines der ersten OP (ich meine sogar DAS erste OP), was für den Anschluß an die S7-300 entwickelt wurde. Das OP7 kennt keine Systemfunktion Bit_setzen bzw. Bit_rücksetzen. Es kann nur die direkte Verknüpfung einer Funktionstaste mit einer boolschen Bit-Variable (Taste drücken: setzt das Bit / Taste loslassen: rücksetzt das Bit) und das Zuweisen eines Wertes an eine numerische Variable (Byte, Word oder Doppelword bzw. REAL). Siehe nochmal Beitrag #6.

Wenn man nun wie Du eine Schalter-Funktion benötigt, so geht das nur mit der Systemfunktion Wert_setzen. Man muß dafür beim OP7 eine numerische Variable benutzen, auch wenn man nur die Werte 0 und 1 in die Variable schreiben will. Wenn man nun nur 0 und 1 in die Variable schreibt, so hat das den Effekt, daß nur das niederwertigste Bit der Variable dabei verändert wird (alle anderen Bits werden immer auf 0 geschrieben). Wo ist da ein Problem außer der Speicherplatzverschwendung? Welches Bit das niederwertigste Bit in einer Variable ist, sollte man "im Schlaf" wissen oder man probiert es einfach aus oder simuliert das. Wenn man es nicht weiß und nicht ausprobieren will, dann kann man natürlich "vorsichtshalber" einen Wert in die Variable schreiben, der garantiert alle Bits in der Variable setzt, also z.B. 255 in ein Byte, 65535 in ein Word, -1 in ein INT, ... Dann ist es egal, welches Bit man abfragt. Man kann aber auch die numerische Variable im SPS-Programm auf == 0 und <> 0 vergleichen, das hat sogar den Vorteil, daß man den Vergleich symbolisch mit genau der Variable machen kann, die im OP7 per Wert_setzen beschrieben wird.

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Anne, bist Du heute etwa krank? Du bist doch sonst nicht so "blond". ;)

Harald

Hallo Harald,

erst mal danke für deine Bemühungen mit einer (momentan tatsächlich gesundheitlich etwas angegriffenen [woher weißt du?]) blonden Weiblichkeit! Aber das soll jetzt natürlich keine Ausrede sein...

Mir bereitet hier einfach das ProTool-Eingabefeld (verlangt immer eine Gleitkommazahl) etwas Kopfzerbrechen:

Nöö, heißt es nicht. Man kann auch 2, 4, 8, 16, 32, 64, 128 in eine Byte-Variable schreiben.

Also angenommen ich wähle das MB0 aus und möchte 4 in dieses Eingabefeld schreiben, so hieße das dann:

Wert: 4.00000 ?

LG
 
Mir bereitet hier einfach das ProTool-Eingabefeld (verlangt immer eine Gleitkommazahl) etwas Kopfzerbrechen:

Also angenommen ich wähle das MB0 aus und möchte 4 in dieses Eingabefeld schreiben, so hieße das dann:

Wert: 4.00000 ?
Ja genau. Gib einfach ein: 4 + <Enter> und ignoriere einfach, daß ProTool da noch .00000 dahinterschreibt.
ProTool formatiert den Wert bei der Systemfunktion Wert_setzen einfach immer so. Die Funktion schreibt dann aber tatsächlich den Ganzzahlwert 4 in das Byte - so wie gewollt.

Meine Andeutung mit "krank" und "blond" sollte kein Vorwurf an Dich sein, sondern eher ein Lob an Deine Auffassungsgabe bei Deinen bisherigen Fragen. Nur dieses mal tust Du Dich ein bischen schwer ...

Harald
 
Danke Harald,

hat soweit alles supi geklappt (dank dir...)!


Meine Andeutung mit "krank" und "blond" sollte kein Vorwurf an Dich sein, sondern eher ein Lob an Deine Auffassungsgabe bei Deinen bisherigen Fragen. Nur dieses mal tust Du Dich ein bischen schwer ...
Harald

Nein, habe ich auch nicht als Vorwurf verstanden - ist halt manchmal als relativer Neuling auf diesem Gebiet etwas viel, was da auf einen "einprasselt". Leider habe ich sonst keinen, den ich fragen kann. Daher müsst ihr immer büßen... :p

Vielen Dank an alle für die Unterstützung!
 
Zurück
Oben