TIA Websteuerung eines zugewiesenen Merkerbits per Schaltfläche (S7-1500)

KabaBear

Level-1
Beiträge
5
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo liebes SPS-Forum,


für meine Studienarbeit entwerfe ich eine Webvisualisierung & Webfernsteuerung für ein Aufzugsmodell. Dieses Modell wird über anwendererstellte Webseiten der S7-1500, welche per Javascript und HTML erstellt worden sind, gesteuert und soll visuell dargestellt werden.

Soweit komme ich bisher gut voran, allerdings habe ich jetzt folgendes Problem:

Ein Merkerbit z.B. "M3.0", dessen Zustand von "0" auf "1" per HTML-Schaltfläche auf der Webseite geschaltet werden soll, lässt nur dann eine Zustandsänderung zu, wenn dieser Merker "M3.0" nicht mit einem Zuweisungsblock verknüpft ist.

Eine Möglichkeit der Lösung wäre: Alle Schaltbedingungen bis zur Wurzel zurückverfolgen und alle Bits/Bytes per HTML-Schaltfläche schalten, dass der Zuweisungsblock schaltet --> "M3.0" würde von "0" auf "1" schalten.
So würde ich aber eine Menge zeit verschwenden, mich durch eine großes Programm zu wühlen, um jeweils immer nur ein Bit zu schalten.
Weiterhin wären die Übertragungszeiten, von Webseite zur CPU und zurück, so stark zunehmend (ein Merker hat meist ca. 8 Bits, welche für das Schalten verantwortlich sind), dass eine Seitenaktualisierung durchaus mehrere Sekunden in Anspruch nimmt, wodurch auch eine Visualisierung dann nicht mehr ansatzweise repräsentabel für den Verweilungszustand des Aufzuges wäre.

Ich habe im WWW nichts dazu gefunden, und auch sonst finde ich die Dokumentation seitens Siemens zu Web-Visu/Web-Steuerung eher dürftig,
daher die frage an euch:

Gibt es eine Möglichkeit diese mit einer Zuweisung verknüpften Variable per HTML-Schaltfläche zu schalten, ohne alle Schaltbedinungen der Zuweisung zu schalten?


Vielen Dank für eure Hilfe schonmal!
 
Ich verstehe jetzt dein Problem gerade nicht ...
Eine Zuweisung in der SPS (gang gleiche welche) wird immer Vorrang vor einer Visualisierung (ganz gleich welche) haben.
Du mußt also an deiner Systematik arbeiten.
Eine Möglichkeit wäre, dass du für die Visu-Steuerung eigene Variablen-Bereiche nimmst.
Dann sollte das SPS-Programm natürlich auch so geschrieben sein, dass es Aktions-Befehle wahlweise von unterschiedlichen Stellen akzeptiert - das scheint hier auch nicht der Fall zu sein.

Vielleicht stellst du mal den Code der fraglichen Stelle hier ein ...

Gruß
Larry
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Das SPS-Programm habe nicht ich geschrieben, sondern ein Student im Jahr 2002, für seine Diplomarbeit.

Dass die Zuweisung bevorzugt wird, habe ich auch bemerkt, deswegen stehe ich ja vor dem Problem.

Eine Möglichkeit wäre, dass du für die Visu-Steuerung eigene Variablen-Bereiche nimmst.

Erkläre mir das bitte, ich verstehe nicht genau was du meinst.

Zuweisung M1.0.PNG

Der Merker "M1.0" ist dafür verantwortlich, dass der Aufzug langsam nach oben fährt, was per Websteuerung im "Handbetrieb" durchgeführt werden soll.

Das ist nur eine von den Stellen, die so verknüpft sind, bei denen ich unmöglich per Websteuerung die Vorbedingungen schalten kann, zumindestens nicht im zeitlich vertretbaren Rahmen.

Bei Erklärung des Netzwerkes gerne weiter fragen!

Grüße
 
Ich sehe nicht wo dein Problem liegt.
Von deiner Visualisierung setzt du ein Bit das anzeigt, der Aufzug soll im Handbetrieb nach oben fahren. Im SPS-Programm wird dieses Signal zusammen mit der Betriebsart "Hand" und den sonstigen Freigabebedingungen verknüpft, und wenn das gegeben ist, wird der Befehl "Aufzug nach oben fahren" ausgeführt.
So wird das üblicherweise gemacht, denn solche Verriegelungen gehören immer ins SPS-Programm und nicht in die Visualisierung.

Oder ist die Frage eine andere?
 
Hallo KabaBear,

ich glaube zu ahnen was du meinst ;)
In deinem Netzwerk-Beispiel solltest du den Merker M10.2 (Taster heben) mit deinem Visu-Bit ODER-Verknüpfen.

Gruß OB
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich sehe nicht wo dein Problem liegt.

Ich versuche es nochmal anders zu erläutern:

Schalter Hand-Automatikbetrieb.PNG

In der obigen Abbildung muss der Merker 10.1 auf 1 gesetzt werden, damit der Aufzug in den "Handbetrieb" wechselt. Genau diesen würde ich gerne einfach auf 1, z.B. per Schaltfläche auf der Webseite setzen. Nun dies geht nicht, da die Zuweisung vorrangig jeder Webanwendung ausgeführt wird.

Ich könnte jetzt versuchen die Bedingungen links zu erfüllen, da ich Variablen, welche vom Programm nur gelesen werden, über eine Schaltfläche definiert auf 1 oder 0 setzen/rücksetzen darf.
Es ensteht dann aber sehr schnell ein riesiger Rattenschwanz, da ich alle vorangegangen Variablen, welche zum Schalten vom Merker 10.1 stimmen müssen, aufsuchen und schalten muss.
Diese Variablen, sind aber meistens wieder über einen Baustein verknüpft, sodass ich dann wieder die voranstehenden Bedingungen erfüllen muss (siehe Abbildung 2).

M19-3.PNG

Somit habe ich schnell mal eine Menge X an Variablen, welche per Schaltfläche definiert gesetzt werden müssen, was zu unzumutbaren Aktualisierungsraten der Websteuerung/Webvisualisierung führen würde.
Möchte ich also den Aufzug beobachten, wie er eine Etage hoch fährt, wird die Seite vermutlich erst dann dargestellt, wenn der Aufzug schon längst da ist.

Ich suche also eine Möglichkeit den Merker 10.1 direkt oder per "Workaround" auf 1 setzen zu können und bei Bedarf auch wieder auf 0.

Danke schon mal für die Antworten!
 
Ich verstehe die Logik nicht ganz. Vor allem, wenn eine Variable Namens "Automatik_Schalter" für Handbetrieb steht wenn auf true?

Grundsätzlich musst du festlegen bzw. herausfinden bei dem Bestandsprogramm: Was gibt es für Betriebsarten? Von wo aus werden die Betriebsarten gewechselt?

Es gibt allem Anschein nach einen Hardwareschalter %I0.1 mit dem in die Betriebsart "Automatik" gewechselt wird. Bei eine Aufzug gehe ich davon aus, dass dann wenn jemand ein Anforderungsknöpfchen drückt, der Aufzug fährt.
Was ist aber "Fernsteuerung" und wie wird diese Betriebsart aktiviert?
 
Ich verstehe die Logik nicht ganz. Vor allem, wenn eine Variable Namens "Automatik_Schalter" für Handbetrieb steht wenn auf true?

Also wenn der M10.1 eine positive Flanke aufweist, dann ist der Automatik Modus an, sehe ich gerade (folgende Abbildung)

M10-1.PNG

Es gibt allem Anschein nach einen Hardwareschalter %I0.1 mit dem in die Betriebsart "Automatik" gewechselt wird. Bei eine Aufzug gehe ich davon aus, dass dann wenn jemand ein Anforderungsknöpfchen drückt, der Aufzug fährt

I0.1 ist ein Hardware-Schalter am Aufzug, dieser muss vor der Fernsteuerung per Web vom jeweiligen Benutzer umgelegt werden.

I0-1.PNG

Was ist aber "Fernsteuerung" und wie wird diese Betriebsart aktiviert?

"Fernsteuerung" ist der Handbetrieb, ist dieser Merker auf 1 gesetzt, so konnte damals der Aufzug über die Webvisu gesteuert werden (hoch- und runterfahren).


Das Aufzugsmodell steht derzeit in der Hochschule und ich werde versuchen, dort morgen nochmal ranzukommen. Ich sehe aber in der Diplomarbeit, dass dieser Schalter ein Wahlschalter für die Betriebsarten ist. Das bedeutet für mich, ich muss eigentlich den Eingang "I0.1" abfragen und bei einer "0" die Schaltflächen für den Handbetrieb ausgrauen oder nicht wirksam machen.

Es bleibt aber noch das Anfangsproblem, dass ich im "Handbetrieb/Fernsteuerung" z.B. Merker "M1.0" für "HM_heben_langsam_HB" (Abbildung aus Threaderöffnung) irgendwie per definierter Schaltfläche setzen muss. Allen Anschein nach, schaffe ich das nur über die angesprochene "oder"-Verknüpfung mit einem "Visu"-Hilfsbit (von Nutzer "OB21") oder ich schalte alle vorangegangenen Variablen so, dass der Zuweisungsblock "true" ergibt. Letzteres wäre die ineffizienteste Variante.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich würde mal prüfen, woher M19.0 "HM_Automatik" kommt. Evtl. ist das schon der freigegebene Handbetrieb.
Dann bräuchtest du von deiner Webvisu nur M10.2 setzen/rücksetzen für den Handbetrieb-Heben-Langsam. Dann sind alle weiteren Verknüpfungen gegeben.

Wenn du eh dabei bist, würde ich das ganze etwas besser strukturieren. Für die Schnittstelle der Webvisu würde ich mir einen eigenen Datenbaustein anlegen, dann sieht man im Programm sofort, woher die Signale stammen.
Also z.B. einen DB mit Namen "Webvisu", darin eine Struktur "Befehle" in der du deine Befehlsbits ablegst usw.
 
Ich habe heute nochmal mit meinem Betreuer sprechen können und die Aufgabenstellung war etwas "schwammig" formuliert. Wir haben uns jetzt darauf geeinigt, dass ich die Webvisualiserung erstelle mittels HTML und JavaScript. Alle benötigten Bits erstelle ich in einem separaten Bereich des Programms. Die spätere Programmimplementierung übernimmt dann mein Betreuer.

Danke für die vielen Antworten!
 
Zurück
Oben