Adressierung?

McNugget

Level-1
Beiträge
220
Reaktionspunkte
10
Zuviel Werbung?
-> Hier kostenlos registrieren
Moin.

Ich hätte da gern mal wieder ne Frage.. ;-)

Ich verwende den Wago 750-841 unter anderem mit 8-Kanal DI-Klemmen 750-430.

Ich habe mehrere Bausteine, die direkt auf Digitale Bits im Controller zugreifen.
(in meinem Falle %IX32.0 , %IX32.1 , %IX32.2 , usw.)

Deklariert ist im Controller z. B.:
Freig_Kanal_01 AT %IX32.0: BOOL;

Nun nöchte ich von aussen diese Bits auslesen und evtl. auch manipulieren können.

Ich werde von aussen ja sicher nicht auf physikalische Eingänge des Controllers schreiben dürfen.

Ich habe die Bits jetzt auf Merkerworte umgelegt.

(Also %IW32 beschreibt %MW100.)

Das klappt schon ganz gut, die Merkerworte lassen sich auslesen und die Bits auswerten.

Wie mache ich es nun richtig, dass ich auf die Eingänge der Bausteine schreibe?

Welcher Funktionscode ist der richtige?

Ich habe nun versucht, die Bits in den Merkerworten zu manipulieren, aber das scheint nicht der richtige Weg zu sein.

Sollte ich für die Bits, die ich von aussen beschrieben möchte, eigene Merkerworte anlegen und diese dann mit einer Oder-Verknüpfung vor meinen Baustein legen?

Bin gespannt auf die Antworten..



Gruss

McNugget
 
Missverständnis ?

Also, auf Eingänge schreiben kann eigentlich gar nicht gehen. Wenn es echte Eingänge sind, spätestens im nächsten Zyklus wären sie wieder von "Aussen" neu gesetzt.

Ansonsten hat man ja die Variablen deklariert und sollte absolute Adressierung sein lassen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo RobiHerb.

Im Projekt deklarierte Variablen funktionieren ja nicht unbedingt über Modbus.
Von daher muss es doch einen Weg geben, die Werte von aussen zu beeinflussen.

Gruss und schönes Wochenende

McNugget


P.S.: Was genau ist mit "absoluter Adressierung" gemeint?
 
Entweder steh ich auf dem Schlauch oder ...

Das bringt´s aber nicht viel weiter... Oder kam da noch was?

Ich meinte, dass im projekt namentlich definierte Variablen nicht von aussen mit dem selben Namen aufgerufen werden könne, wenn kein expliziter Treiber vorhanden ist.

Und eben das möchte ich: von aussen per Modbus ohne Treiber in meinen Controller eingreifen..

hat jemand noch eine Idee?

Mein Problem müsste doch eigentlich "pipifax" sein, oder?



Gruss

McNugget
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich würde Merkerworte oder extra definierte Variablen nehmen. Eingänge kannst vielleicht beschreiben (habs noch nie probiert), aber du müßtest das dann jeden Zyklus synchron tun, nachdem der Controller die Eingänge selbst eingelesen hat und bevor er sein Programm abarbeitet. Das halte ich für unmöglich.
 
Hallo Ralle,

Danke für die Antwort.

Ich will ja auch gar keine Eingänge beschreiben, aber wie löse ich es, wenn ich z. B. eine Freigabe alternativ zum digitalen Eingang per Modbus Adressierung von aussen setzen/überbrücken möchte?

Sprich: ich habe auf an der Steuerung einen Schalter, den ich von Hand hardwaremässig schalten kann, möchte aber auch aus einem entfernten Touch-Panel das gleiche Ergebnis in meinem Programm erhalten.

Wie wird das in der Praxis gelöst?

Gruss

McNugget
 
Etwas genauer

Das bringt´s aber nicht viel weiter... wenn kein expliziter Treiber vorhanden ist.

Und eben das möchte ich: von aussen per Modbus ohne Treiber in meinen Controller eingreifen..

Ich denke man sollte nochmal nachfragen, was da genau abgehen soll. Ich verstehe das so:

Eine "unbekannte Kiste ?" versteht das ModBus Protokoll und kann es senden und empfangen?

Die Anlage (CoDeSys in Wago Implementation) versteht ebenfalls ModBus und hat globale Variablen, die ansonsten die Informationen von Eingängen enthalten?

"Unbekannte Kiste" möchte gelegentlich die Eingänge selber setzen (Override)?

Dazwischen fehlt die logische Verbindung eines Treibers?

Antwort: Das gewünschte Package würde Gateway Client heissen und ist von 3 S käuflich zu erwerben oder wird bereits von Wago in Form einer Windows Dll oder eines OPC Systems geliefert.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo RobiHerb,

danke, dass Du antwortest.

Eine "unbekannte Kiste ?" versteht das ModBus Protokoll und kann es senden und empfangen?

Also, aktuell wäre die "unbekannte Kiste" die Software Movicon. Damit versuche ich mal meine erste Windows/Browserbasierte visu zu erstellen um mal in das Thema vorsichtig einzusteigen. Movicon hat noch keine 3-S-Treiber, aber eben schon Modbus.

Später könnten es noch Touchpanels oder weitere Geräte (oder weitere Controller) sein, ven denen aus ich den VCOntroller bedienen möchte.

Da ich aber nicht alles austesten will und nicht sofort 1000e von Euro für Touchpanel ausgeben möchte, ohne zu wissen, wie das läuft probiere ich es aktuell mit der Movicon-Testversion.

Ich versuche möglichst universell zu fragen, um später nicht nur an einen Hersteller (proprietäre Software, Treiber, Lizenzgedöns) gebunden zu sein.

Die Anlage (CoDeSys in Wago Implementation) versteht ebenfalls ModBus und hat globale Variablen, die ansonsten die Informationen von Eingängen enthalten?


Später möchte ich auch mal mit dem Wago Controller andere Komponenten, die auch Modbus liefern, abfragen. Wie gesagt, das alles erst viel später.
Erst mal möchte ich etwas wie z. B. eine erweiterte Web-Visu haben.

"Unbekannte Kiste" möchte gelegentlich die Eingänge selber setzen (Override)?

Eben nicht die physikalischen Eingänge, sondern interne Variablen, die über ihre Deklaration z.B. mit Merkerbits/Worten verbunden sind.


Ich möchte eben wissen, wie es der alte Hase macht, dass Funktionen von verschiedenen Richtungen aus "manipuliert" werden können.
Wenn zum Beipiel, eine Freigabe per digitalem Eingang auf der Steuerung aktiviert ist, möchte ich, dass dies in der Visu angezeigt wird, aber ich möchte diesen Zustand auch von aussen verändern können.
Dabei sollte selbstverständlich NICHT auf den physikalischen Eingang des Controller geschrieben werden.
Das war nie Sinn und Ziel.




Vielleicht mögen meine Fragen für die alten Hasen hier befremdlich sein, oder ich habe eine mißverständliche Art zu fragen. Wenn das so ist und jemanden nervt, tut es mir leid.
Ich kann nur um Nachsicht bitten und wiederholen, dass ich Quereinsteiger in die Programmierung bin.
Leider habe ich niemanden, den ich einfach mal so anrufen könnte.




Gruss

McNugget
 
Also, im Prinzip mache ich sowas ja schon oder macht das jeder, wenn man einen Hand und einen Automatikzweig im Programm hat. Bei mir läuft das so, daß es am Baustein für den Motor bzw. das Ventil Hand- und Automatikeingänge gibt, die, je nach Anwahl der Betriebsart, entweder aus dem Schrittprogramm heraus (Step, Auto) oder vom Panel (Hand) ihre Information bekommen. Also nutze ich für Alles, was vom Panel kommt, extra Variablen, die auch in einem DB zusammengefaßt sind und dann im Programm quasi parallel z.Bsp. zu Automatik verknüpft sind. Auf diese extra Variablen, kann z.bsp. auch eine 2. oder 3. Visu zugreifen, wenn nötig. Dazu ist natürlich mein gesamtes Programm von vorn herein entsprechend angelegt.
 
Danke Ralle,

ich glaube, jetzt hab ich´s. Hand-Automatikzweig war das Stichwort:
Habe in der OSCAT Hilfe mal nachgeschaut.
28.9. MANUAL
Type Funktion : BOOL
Input IN : BOOL (Eingangssignal)
ON : BOOL (Handbetrieb Ein)
OFF : BOOL (Handbetrieb Aus)
Output BOOL (Ausgangssignal)
MANUAL kann ein Eingangssignal IN mit TRUE oder mit FALSE überschrei-
ben.

IN ON OFF Q
0 0 0 0
1 0 0 1
- - 1 0 Handbetrieb Stellung AUS
- 1 0 1 Handbetrieb Stellung EIN

Die typische Verwendung von MANUAL ist mittels eines Schalters mit 3
Stellungen (AUS, AUTO, EIN) wobei die Anschlüsse AUS auf OFF und EIN
auf ON geschaltet werden und AUTO des Schalters offen bleibt.

Wenn ich die ON/OFF Eingänge über mein Merkerbit beschreibe, müsste ich doch exakt den Effekt erhalten, den ich suchte.



Gruss

McNugget
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi McNugget,

Ich habe Dein Posting von gestern 10.31 im Hinterkopf.
Du könntest im Prinzip eine OR-Verknüpfung machen, deren erster Eingang "Schlter" und deren zweiter Eingang "Button_vonVisu" ist. Der Ausgang des OR-Glieds steuert einen Trigger an, dessen Ausgang wiederum die eigentliche Aktion auslöst.
Trifft das ungefähr das, was Du meinst?:rolleyes:

Gruß
Wolfgang
 
Hallo Wolfgang.

Vielen Dank für´s Lesen und antworten.

Genau das trifft es.

Allerdings könnte ich über diesen Weg nur die Aktivierung eines Bits erreichen.

Durch die Verwendung von "Manual" hätte ich jetzt sogar die Möglichkeit, auch ein "False" von der Visu aus zu schreiben, egal, was der digitale Eingang sagt.

Ist zwar erheblich mehr Aufwand, aber ich kann damit noch mehr erreichen.

Probleme habe ich noch damit, wer wann wie weshalb Vorrang hat.

Das habe ich mir noch nicht ganz zuende gedacht. Aber kommt noch.

Gruss

McNugget
 
Zurück
Oben