Microwin 4.0 Unterprogrammpasswort

Hallo Holger,
um das Unterprogramm aufzurufen mache im Main ein neues netzwerk,
gebe einen Schließer mit SM0.0 (immer ein) ein und danach
doppelklicke die Net Exe. Du findest sie unter Unterprogrammaufrufe
Bei Timeout gibst Du erstmal 100 ein, bei Zyklus L2.0 und bei
Fehler L2.1
MfG Günter.
 
Hallo Holger,
Du hast recht. Meine Beschreibung war für Kop.
In AWL schreibst Du:
LD SM0.0
CALL NET_EXE:SBR1, 100, L2.0, L2.1

Da bei uns in der Firma alle Programme in Kop sind habe ich mich so schön daran gewöhnt. Ist natürlich zum schriftlichen Übermitteln in AWL viel einfacher.

MfG Günter.
 
Aha...
ich wusste nicht,was man hinter CALL SBR X hängen muss..
wie muss ich denn eigentlich fortfahren,wenn ich z.B. ins Netz schreiben möchte, dass M0.0 in CPU1 1-Signal hatn (Beispiel)
Welche Daten oder Informationen werden denn zwischen den CPU's in deiner Firma ausgetauscht,wenn ich fragen darf?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
Die Komunikation zwischen zwei oder mehr CPU habe ich eigendlich hauptsächlich für private Zwecke und zum Lernen gemacht.
In der Firma haben wir kleine Anlagen (Winden, Ruderanlagen, Kompressoren) die mit einer CPU auskommen Bei Brückenfahrständen
(auf Schiffen) ziehen wir die Hardwaremäßige Verkabelung vor, dann haben wir keine Probleme mit Busfehlern durch falsch verlegte Leitungen.
Man kann tausendmal in den Schaltplan schreiben das Datenleitungen getrennt und mit Abstand usw. verlegt werden sollen.
Am ende sind sie wieder mit Frequenzgeregelten Motorleitungen in einem Kanal.
Für die meisten Arbeiter die Schiffskabel verlegen ist der Bus eben nur das womit sie morgends zur Werft kommen
www.feldbus.org/images/feld-bus-logo_kk.jpg
Aber zu Deiner Frage:
Da Du Variablen überträgst must Du deine Eingänge oder was auch immer zum Senden in Selbige übertragen. Ebenso must Du die empfangenen Variablen übertragen oder eben direkt verwenden.
LD SM0.0
MOVB EB0, VB20
MOVB EB1, VB21
MOVB VB22, AB0
MOVB VB23, AB1
Hier mal als Beispiel wo ich sie mal direkt von Eingängen bzw. direkt auf Ausgänge übertragen habe.
Auf der anderen CPU muss natürlich das gleiche Spiel andersrum gemacht werden.
MfG Günter.
 
Reicht es eigentlich, nur die paar Befehle, die das Umwandeln,Übertragen,Schreiben,Lesen realisieren einzutippen oder ist für meine Zwecke all das notwendig, was der Assistent erzeugt?
Gruß
Holger
 
Hallo,
Du kannst natürlich versuchen das Schreiben und Lesen selbst zu programieren. Aber denke daran das der Assistent auch überwachungsfunktionen usw. hat.
Unser E-Ing. hat mal gesagt das das ganze sehr kompliziert war bevor es den Assistenten gab. Da hat man dann schon mal ein paar Ein u. Ausgänge verbraten und mit Kabel verbunden damit die CPUs sich unterhalten konnten.
Das ist natürlich relativ. Aber wenn Du schon Schwierigkeiten hast den Assistenten anzuwenden beschränke dich doch erstmal darauf und freu dich wenn es funktioniert.
Grundsätzlich kann man wohl alles was an Assistenten im MICRO-WIN ist auch selber machen. Man muß nur wissen wie.

Ich geh jetzt mal zu Bett und schau morgen wieder rein.

MfG Günter.
 
Hey Junior...
ich habe nochmal ein bißchen versucht...leider ohne nennenswerten Erfolg.
Hab einfach mal zum Tüfteln zwei neue Projekte erstellt:

1. CPU1 -- Systemadresse 2 -- NETR-Assistent

2. CPU2 -- Systemadresse 3 -- NETW-Assistent

Demzufolge soll also natürlich CPU2 Daten ins Netz schreiben und CPU1 darauf reagieren....wie gesagt : soll !
Die Eingaben im Assistenten sind weitgehend identisch. (Kommunikationsschnittstelle = 0, VB0 bis VB15 oder so,etc.)
Die Assistenten werden von MAIN aus so aufgerufen, wie du mir geschrieben hast:
LD SM0.0
CALL SBR1, 100 , L2.0 ,L2.1
Kannst du mir sagen, wie ich jetzt die einzelnen Programme ändern/erweitern muss, dass

an CPU1 (Adr.2) der Ausgang A0.0 1-Signal hat, solange
an CPU2 (Adr.3) der Eingang E0.0 1-Signal hat?

Kann ich das dann auch "online" von STEP7/MW aus beobachten? Wenn ja, wie geht das? Der Assistent ändert ja die Schnittstelle dahingehend, dass ich keinen Zugriff mehr aufs Netz habe, solange die CPU's in RUN laufen..
Was muss ich tun?

Vielen Dank im voraus
Beste Grüße :)
Holger
 
Hallo Holger,
bevor Du irgendetwas falsch machst.: Der Assistent muß nur auf der Master-CPU ausgeführt werden.
Diese schreibt und liest in der Slave-CPU.
Die umwandlung von ABs auf VBs oder so must Du natürlich auf beiden CPUs machen.
Bei deinem Beispiel must Du auf CPU 2 E0.0 in V0.0 wandeln und in CPU 1 V0.0 in A 0.0 wandeln.
Mail mir mal Deine tel. Nr., dann rufe ich Dich mal an.
MfG Günter.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Holger,
wenn Du beide CPUs mit einem Buskabel verbindest wobei ein Stecker ein Anschluß für das Schnittstellenkabel hat klicke mal im Step7 auf Kommunikation. Doppelklicke zum aktualisieren, dann müßten beide CPUs angezeigt werden.
Du kannst, wenn auf beiden CPUs ein Programm ist, abwechselnd den Programmstatus auslesen. Voraussetzung ist, das beide CPUs unterschiedliche Adressen haben.
Wenn Du auf einer CPU NetR-NetW ausgeführt hast kann diese aus der anderen CPU lesen und in Diese schreiben.
Ich hoffe dir geholfen zu haben und muß mich bis Donnerstag endschuldigen. Leider muß ich beruflich nach Kapstadt.

MfG Günter. :s11:

Hier noch mal zur Erinnerung.
Du mußt beide Programme auf dem Rechner öffnen.
Natürlich muß ich nicht schon wieder nach Kapstadt.
War übrigens schön heiß da und ich habe mir gewaltig die Fresse verbrannt.

MfG Günter.
 
LD SM0.0
MOVB EB0, VB20
MOVB EB1, VB21
MOVB VB22, AB0
MOVB VB23, AB1
Hier mal als Beispiel wo ich sie mal direkt von Eingängen bzw. direkt auf Ausgänge übertragen habe.

Wie und wo muss ich das Umwandeln vornehmen?
Ich vermute mal in MAIN oder? Im Slave gehts ja auch nicht woanders, weil es da ja kein NET_EXE gibt.
Mit dem Übertragen habe ich wenig Erfahrung.
Was genau bewirkt z.B. deine zweite Zeile:
MOVB EB0, VB20
Was wird dann in VB20 geschrieben? Ein Wert?
Was ist EB0? Welcher Eingang ist das?
Wie wird das umgewandelt?

Macht es Sinn,die frei programmierbare Kommunikation zyklisch (oder so) auszuschalten (SM30 oder welcher das auch immer ist), damit der Zugriff von STEP7/MW möglich ist?
Es sind viele Fragen...Vielleicht hast du ja auch viele Antworten... :)
Besten Dank im voraus.
Holger
 
Zuviel Werbung?
-> Hier kostenlos registrieren
HEY JUNIOR ! ES FUNKTIONIERT !!!!
Ich kann jetzt ohne Mühe Daten austauschen, so wie du gesagt hast:
E0.0 --> V0.0 (CPU1)

V0.0 --> A0.0 (CPU2)

BESTEN DANK FÜR DEINE HILFE !!!

Das einzige, was noch nicht klappt, ist der Zugriff vom PC aus.
Ich bekomme immer noch eine Fehlermeldung,wenn die Schnittstelle von NET_EXE aus für die Kommunikation der CPU's untereinander geöffnet wird und ich danach z.B. den Status am PC ansehen will.
Dann muss ich erst wieder die MASTER-CPU manuell auf STOP schalten,das Programm erneut übertragen (und zwar mit negierten SM0.0, damit NET_EXE auf keinem Weg aufgerufen wird,wenn ich denn den Status noch auslesen möchte).Das ist natürlich sehr lästig.
Ich kann es immer irgendwie hinbekommen, dass ich im Kommunikationsfenster das Häkchen vor "Mehrere Master zulassen" markiert habe, aber das scheint nicht zu reichen.
Wenn ich bei der Schnittstellenparametrierung "Multi-Master-Netzwerk" markiere bekomme ich im Kommunikationsfenster beim Aktualisieren die Fehlermeldung ,dass ich ein USB-PC/PPI-Kabel verwenden muss,dass ich aber leider nicht habe.
Mein Laptop hat keine 9polige serielle Schnittstelle,darum habe ich mir vor einiger Zeit einen USB/RS232-Wandler besorgt,der jene Schnittstelle herstellt.
Vor einigen Wochen habe ich mir extra das PC/PPI-MultiMasterCable RS232/485 "erEBAYt",weil mir da schon bekannt war,dass ich mehrere MASTER ins Netz bringen will:eine CPU und STEP7/MW.
Muss ich für mein Projekt jetzt tatsächlich zwingend dieses USB-Kabel haben?
Kannst du mir da vielleicht weiterhelfen?
LG Holger und VIELEN DANK NOCHMAL
 
Hallo Holger,
Der Fehler kann an Deinem USB-Seriel-Wandler liegen.
Die USB-PPI-Kabel werden momenan bei EBAY recht hoch gehandelt.
Versuche mal die NET_EXE anstelle von SM0.0 mit einem Eingang aufzurufen.
Dann must Du nicht jedesmal das Program neu übertragen.

Viel Glück, Günter.
 
Das funktioniert leider nicht.Wenn die frei programmierbare Kommunikation einmal aktiviert wurde, geht erstmal nichts mehr. Ich habe es schon versucht,mit einem Eingang (über einen Wahlschalter) die Sondermerker für die f.p.K. wieder zurückzusetzen. Das hat noch nicht so funktioniert..
Ich werde noch ein bisschen weiter versuchen,vielleicht hast du noch eine andere Idee? Oder jemand anders?
Danke
Holger
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Holger,
ich habe jetzt mal mein Multi Master Kabel mit seriellen Stecker rausgesucht und am PC angeschlossen. Die Kommunikation mit beiden CPU funktioniert einwandfrei. Ich habe Dipschalter 2 und 5 angeschaltet. Solltest Du noch Probleme haben wenn Deine Dipschalter in gleicher Stellung sind kann es eigendlich nur noch an dem USB-Seriel Wandler liegen.
Ich benutze zurzeit:
1. CPU 224 als Master, Adresse 2
2. CPU 222 als Slave, Adresse 3
3. Buskabel mit einem Stecker ohne zusätzliche Buchse,Abschlusswiederstand eingeschaltet, ein Stecker mit Buchse für M-M-Kabel, Abschlusswiederstand eingeschaltet.
4. PPI-RS485 Kabel 6ES7 901-3CB30-0XA0.
5. Step 7-Micro/Win V4.0 SP4.
6. PC mit serieller Schnittstelle.
 
Besten Dank Chef!
Ich habs kürzlich nochmal probiert, die frei programmierbare Kommunikation per Eingang zu deaktivieren-habe es nach einigem HickHack hinbekommen,ist nicht die eleganteste Lösung aber ich kann mir helfen.Ich wollte es ins Forum schreiben, bin aber noch nicht dazu gekommen.
Danke für deine Hilfe
Gruß
Holger
 
Zurück
Oben