Kommunikation zwischen zwei S7-200 CPUs

Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

hier mal ein Beispiel für deine beide CPU's.

Es werden die Eingänge der einen CPU auf die Ausgänge der anderen CPU übertragen. Also von
CPU224XP Eingänge auf CPU226 Ausgänge und
CPU226 Eingänge auf CPU224XP Ausgänge.
Folgende Kom-Parameter sind eingestellt:

CPU224XP SS0, PPI-Adr. 11, Baudrate 9600
CPU226 SS0, PPI-Adr. 12, Baudrate 9600

Also spiel mal die Progs in die jeweilige CPU, Verbinde die Schnittstellen 0 mit einem Profibus-Kabel, Abschlußwiderstände EIN!

Dann müsstest du die Eingänge von einer CPU auf den Ausgängen der anderen übertragen können.

PC mit ins Netz:
1. RS232 PC-PPI Kabel, Alle DIP aus bis auf DIP 5 = 1 (PPI-Multimaster Einstellung)
2. USB PC/PPI-Kabel, keine Einstellung notwendig
3. Für beide in MW in Kommunikation für das PPI-Kabel PPI-Advanced aktivieren
*****************************************************
Solltest du dein RS232 PC-PPI-Kabel über USB-Adapter verwenden (weil dein PC keine RS232 SS mehr hat und du kein USB-Kabel hast), dann geht das nicht, da über einen USB-Adapter Multimaster nicht funktioniert!!
*****************************************************
Wenn daß funktioniert, dann dein Panel dazu. Vorher im HB des Panels nachlesen, ob das Netzwerkfähig ist und ob die Kommunikation zu einem PPI-Master möglich ist (CPU224XP). Das Panel ist dann nicht mehr der einzige Master im Netzwerk.

Hoffe das hilft dir weiter.

Gruss Helmut
 

Anhänge

  • PPI Netrwerk.zip
    5,4 KB · Aufrufe: 21
*****************************************************
Solltest du dein RS232 PC-PPI-Kabel über USB-Adapter verwenden (weil dein PC keine RS232 SS mehr hat und du kein USB-Kabel hast), dann geht das nicht, da über einen USB-Adapter Multimaster nicht funktioniert!!
*****************************************************




Das hätte ich vor einem Jahr wissen müssen.....:twisted::twisted::twisted::twisted:
naja möglicherweise habe ich damals nicht ausreichend nachgefragt.
 
Hey Leute (Helmut), ich bins wieder .. lang ists her...
seit ca. 1Jahr läuft der Bus einwandfrei mit NETR und NETW und sogar mit nem TD200 dran.
Dummerweise habe ich den OP-Assistenten damals zu spärlich konfiguriert !
Jeweils ein Byte in die "Slave"-CPU schreiben und lesen..
Die acht Schreib-Bits genügen mir aber jetzt nicht mehr. Hab den Assistenten schon öfter geändert (aus einem Byte zwei gemacht z.B.) bzw. gelöscht und neu benutzt aber was ich auch mache, wenn der Einstellungen nicht so übernommen werden, wie es jetzt ist, läuft der Bus einfach nicht mehr. Hat jemand einen Rat für mich?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Holgi,

das einzige Problem was ich in dem Zusammenhang kenne sind evtl. Speicherüberschneidungen.

Oftmals passiert das bei dem TD-Assi. Am Ende wird, abhängig von der aktuellen Speicherbelegung ein Bereich für den TD-Assi >vb0 als Startadresse vorgeschlagen. Das funktioniert ohne Probleme, aber am Ende wird noch gefragt, ob der Versatz in VW0 eingetragen werden soll. Und hier wird wenn du mit Ja antwortest VW 0 mit dem Versatz zur Startadresse der TD-Konfig überschrieben.

Da der NETW/NETR Assi aber immer die ersten 4 Bytes verwendet und dann evtl. vom TD assi mit dem Versatz überschreiben wird funktioniert NETW/NETR dann nicht mehr.

Kannst das ja mal testen, dann wird es klarer.

Wenn das das Problem ist, dann die Fragen nach dem Eintrag des Versatz beim TD-Assi mit NEIN beantworten. Dies hat aber dann zur Folge, daß du die Startadresse für den Parameterbaustein des TD im TD-Setup von Hand eingeben mußt.
Mußt du dannach das TD tauschen, dann wird das neue ohne diese Änderung aber nicht funktionieren.

!!! Docu ist sehr wichtig in dem Fall !!!

Hoffe das hilft dir.

Frohe Weihnachten und einen guten Rutsch

Helmut
 
Hallo Helmut (und alle anderen),
mein o.a. Problem besteht weiterhin.
Ich habe in den letzten Monaten immer wieder einiges versucht, aber alles ohne Erfolg.
Beim jüngsten Versuch habe ich im TD200-Assi den ganzen TD-Block gelöscht (nur zum Testen, ob die Speicherüberschneidungen, die von Helmut angesprochen wurden, weg sind)
Dann habe ich im NETR/NETW-Assistenten die Operationen von 2 auf 4 Byte aufgestockt (jeweils noch einmal NETW und einmal NETR)
Aber selbst ohne TD funktioniert das nicht.
Was habe ich falsch gemacht? Wer hat eine Idee? Könnte mir jemand besser helfen, wenn ich ihm meine aktuellen Programme zusende?
Vielen Dank im voraus.
Schöne Grüße
Holger
 
äääh danke erstmal.. ich könnte Dir es per E-Mail (privat) schicken, anders wüsste ich nicht, wie ich meine Progs hier einstellen könnte. :confused:
 
mmm als zip
zip 9,54 MB

einfach auf antworten anhänge (kleine büroklammer) und wie groß wird dein projekt schon sein ? mein größtes s7-200er programm ist 46kb groß jeder normal sterbliche programmierer hätte hier eine 300er genommen ... aber dies hatte noch mein vorgänger zu entscheiden... in dem programm ist sogar eine ppi verbindung zweier 200er und zu einem tp177 drinn ^^

:)
 
also weiß ja nicht wie du den baustein "kommunikation" gemacht hast denk mal einfach ist der entschlüsselte net_exe oder ?

ich habe ja wie gesagt auch so eine kommunikation allerdings hatte ich auch schonmal probleme mit dem schalten des baustein seg mal anstelle des E2.7 zum aufrufen des bausteins den SM0.0 drann sonnst sieht alles normal aus wenn´s dann immernoch nicht geht hast du schon die leitung durchgemessen ;) ?

grüßel

ps: wenn du im assistenden was verändert musst du auch den neuen net_exe aufruhen normal, also ich würde den "kommunikation" rauswerfen und den net_exe einbinden ;)
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Hey Yo!
Ich glaub ich habs jetzt!! Ich hatte tatsächlich den Baustein Kommunikation nicht vollständig gelöscht gehabt. Nachdem ich das dann gemacht und den Assistenten neu "gefüttert" habe, lief die Sache !
Tausend Dank, Kollege !;)

Gruß Holger
 
Hab da ma ein Problem

Hi
ich bin gerade dabei 2 CPU der s7-200er Serie (212 u. 224) so mit eineander zu verknüpfen das wenn ich ein Eingang von der CPU 224 ansteuer, das ein Ausgang der CPU 212 angesteuert wird.

Hab soweot schon die Kommunikation mit einerm PPI hingekriegt und auch versucht ein Programm zu schreiben:

CPU224 Adresse 4 (Sender)

NW1
LD E0.0
EU
LPS
UN A0.0
S M0.0, 1
LPP
U A0.0
R M0.0, 1

NW2
LD SM0.0
MOVB MB0, AB0

NW3 (Manuelle Konfiguration)
LD SM0.1
MOVB 2, SMB30

NW4
LD SM0.0
MOVB 3, VB21
MOVD &MB22, VD22
MOVB 1, VB26
MOVB AB0, VB27

NW5
LD SM0.0
NETW VB20, 0

CPU 212 (Empfänger)
LD SM0.0
MOVB MB22, AB0

so hab das Programm fast fertig im Internet gefunden :)
ich hab nur ein Problem damit:
wenn ich versuche in die CPU 212 das MOVB mit dem MB22 zu setzen wird das rot unterstrichen und sagt mir das:
Der Adressbereich für Speicher im Operanden is ungültig.
Doch wenn ich ins Handbuch gucke steht da das dieser Baustein den MB eigl mit unterstützt.
Danke im vorraus für eure Hilfe :)
mfg Neuling123
 
wenn ich versuche in die CPU 212 das MOVB mit dem MB22 zu setzen wird das rot unterstrichen und sagt mir das:
Der Adressbereich für Speicher im Operanden is ungültig.
Doch wenn ich ins Handbuch gucke steht da das dieser Baustein den MB eigl mit unterstützt.
Wenn Du ins Handbuch Deiner CPU212 oder in die MicroWIN-Hilfe guckst,
dann wirst Du feststellen, daß die CPU212 nur M0.0 bis M15.7 hat - also kein MB22.

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo, ich bin auch mal wieder da und zwar mit folgender Frage:
Kann mir einer sagen, ob ich mittels NETR/NETW auch die aktuelle Uhrzeit von einer CPU aus der anderen (z.B. in regelmäßigen Abständen) auslesen kann...möglichst unkompliziert :)
Habe bei der Suche im Forum leider nix gefunden..
Beste Grüße
Holger
 
Hallo Holgi,

eine Standart-Funktion gibt es dafür nicht, aber es ist kein Problem.

CPU1 Uhrzeit auslesen und im V-Speicher ablegen.
V-Speicher mittels NETW in die andere CPU übertragen.

CPU2:
die empfangene Info dann als Uhrzeit verwenden.

Gruss

Helmut
 
Zurück
Oben