Cp243-1 <-> Opc

mst

Level-1
Beiträge
463
Reaktionspunkte
89
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Leute,

habe eine CPU226 und einen CP243-1, habe mit dem Assistenten eine Kommunikation eingerichtet zu einem OPC Server. Alle Variablen werden korrekt gelesen und beschrieben.
Als Anfangsbyte ist VB714 deklariert. Ich habe ein eigenes Unterprogramm mit dem ich die Variablen zuweise zB:

LD Immer_True
MOVW VW714, Hysterese_LR1 von OPC Schreiben
MOVW VW716, Hysterese_LR2
MOVW Korrig_RT_LR1, VW718 von OPC Auslesen
MOVW Korrig_RT_LR2, VW720 von OPC Auslesen
MOVW VW722, Sollwert_LR1
MOVW VW724, Sollwert_LR2
MOVW VW726, Abt_Freig_1_h
MOVW VW728, Abt_freig_1_min
MOVW VW730, Abt_freig_h_2
MOVW VW732, Abt_freig_2_m
MOVW VW734, Abt_freig_3_h
MOVW VW736, Abt_freig_3_m
MOVW VW738, Abt_freig_4_h
MOVW VW740, Abt_freig_4_m
MOVW VW742, Abtropfzeit
MOVW VW744, Abtaubegrenzung_Temp
MOVW Korr_BF_LR1_Verd1, VW746 von OPC Auslesen
MOVW Korrigierter_LR1_BF2, VW248 von OPC Auslesen
MOVW Korr_BF_LR2_Verd1, VW750 von OPC Auslesen
MOVW Korrigierter_LR2_BF2, VW752 von OPC Auslesen
MOVW VW754, Abtaubegr
MOVW VW756, Z_Pendels_LR1_Verd1
MOVW VW758, Freig_Lueft_Temp_Abt
MOVW VW760, Warnabstand

Wenn ich nur von OPC zu SPS schreibe funktioniert alles.
Sobald ich die Vaiablen von SPS zu OPC schreibe (siehe oben 6Stk) geht der CP auf SF: „Variablen Überlauf“

OPC Server ist von Rothenbach

Kann mir jemand helfen?

mfg mst
 
Hi mst,

soweit ich mich erinnere kannst du vom PC aus über den OPC jederzeit schreiben.
Wenn du jedoch von der SPS aus Daten an den PC übergibst, so musst du im ersten Byte die Anzahl der zu übertragenden Bytes angeben.

z.B.:

LD M20.1
MOVB 14, VB4000
MOVB VB2000, VB4001
MOVB VB2001, VB4002
MOVB VB2002, VB4003
MOVB VB2003, VB4004
MOVB VB2004, VB4005
MOVB VB2005, VB4006
MOVB ',', VB4007
MOVB VB2040, VB4008
MOVB VB2041, VB4009
MOVB VB2042, VB4010
MOVB ',', VB4011
MOVB 16#31, VB4012
MOVB 16#30, VB4013
MOVB 16#30, VB4014


In diesem Beispiel wird ein 14 Zeichen langer Datenstring (siehe erste Zeile VB4000) vom VB 4000 an an den PC gesendet, wenn M20.1 HIGH wird.
Am OPC Server werden dann alle Zeichen ab VB4001 abgefragt.

Hoffe das hilft dir weiter...

Gruß smartie
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Das ist für mich etwas neues, habe es mal so Probiert:

MOVB 2, VB718
MOVB VB19, VB719
MOVB 2, VB720
MOVB VB319, VB721

für die ersten zwei Variablen, habe aber das gleiche Problem.

Zur Info: Ich Rufe im OB1 nur den ETH5_CTRL Baustein der vom Assistenten erstellt wurde auf.

Das zuweisen der Variablen erfolg permanent.
 
Hallo mst,

es gibt verschiedene Möglichkeiten, OPC <-> 200er zu verbinden.
Bei uns wurde dass so gelößt, dass nur der PC auf die SPS Daten zugreift
und dort einen Bereich bekommt, in dem er Daten reinschreiben kann.

Vielleicht hilft es dir weiter.

Viel Erfolg MeTh
 
Hallo MeTh,

Ich lese bzw. schreibe auch in einen eigenen Datenbereich ab VB714 - das funktioniert auch.

Kann auch die empfangenen Daten in der SPS weiterverarbeiten, sobalt ich aber Daten von der SPS in den auszulesenden Datenbereich schreibe (siehe Oben - 6x) geht der CP auf Störung.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

schau dir mal die siebt letzte Zeile an:

MOVW Korrigierter_LR1_BF2, VW248 von OPC Auslesen

Da passt deine Adresse VW248 nicht. Sollte anscheinend VW748 sein.

Da der CP max. 212Bytes handeln kann und du ab VW714 definiert hat, ist VW248 ausserhalb der 212 Bytes. Dies könnte der Grund sein.

Gruss

Helmut
 
Hallo Helmut,

danke für den Hinweis - Habe ich im Programm richtig, weis nicht wie das hier zustande gekommen ist, ist also nicht die Lösung.

Der CP holt die Konfiguration von der CPU, wird dazu der Projektierte Datenbereich benutzt?
 
Guten Morgen mst,

wenn du die zwei Variablen VB19 & VB319 an den OPC senden willst sollte das eigenlich so aussehen:

MOVB 2, VB718
MOVB VB19, VB719
MOVB VB319, VB720

Die Werte der beiden Variablen kannst du dann am PC in VB719 & VB720 auslesen, die Anzahl der zu senden Bytes musst du nur einmal bei einem Sendeanstoss.

Den ETH5_CTRL kannst du im OB1 aufrufen, musst halt noch parametrieren,
aber das scheint ja zu passen, da du eine Verbindung vom PC zur SPS hast.

LD SM0.0
CALL ETH5_CTRL, V40.0, VW41, VW43

Gruß smartie
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich habe jetzt verschiedenes Probiert, die Kommunikation Funktioniert meistens Fehlerfrei nach Neuaufspielen auf die CPU.
Nach Simuliertem Stromausfall oder Stop schalten der CPU geht der CP nicht mehr in RUN.

Folgende 3 Fehler konnte ich schon vom CP auslesen:

Fehler 51: Die Konfigurationsdaten für den CP 243-1 sind fehlerhaft bzw. fehlerhaft abgelegt.​

Fehler 62: Keine gültige Konfiguration erhalten, weder aus dem Speicher der S7-200-CPU noch über BOOTP​
Zyklischer Versuch, eine gültige Konfiguration entweder aus dem Speicher der S7- 200-CPU oder über einen BOOTP-Server zu erhalten


Fehler 240: Der CP 243-1 wurde von der S7-200-CPU nicht erkannt Überprüfung der Konfiguration und des Aufbaus des S7-200-Systems​

 
Hallo Leute,

durch Probieren bin jetzt auf einiges draufgekommen.
Habe mit dem Assi den Datenbereich neu Festgelegt: VB926 – VB1084, das sind 159Bytes

Im DB für den CP wird der Datenbereich bis VB1057 benutzt – wenn ich einen Bereich davon beschreibe geht der CP in Störung.

Allerdings bleiben mir dann nur noch ein paar Bytes von denn die vom Assi festgelegt sind übrig. Benutze für die Kommunikation mit dem OPC Server einfach den Datenbereich von VB1086 – VB1132 – und es Funktioniert.

Kann mir das jemand erklären?

mfg mst
 
Der Adressbereich der vom Assistenten festgelegt wird ist der Bereich in dem die Parametrierung des CP243-1 im Datenbaustein abgelegt wird, nicht der Bereich für die Kommunikation mit dem OPC, der wird am OPC eingestellt.

Gruß smartie
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi,

der Bereich, den du mit dem Assistenten vergibst enthält den Parameterblock fgür den CP.

Wenn du jetzt diesen Bereich im Prog. überschreibst, dann ist evtl. der Parameterbaustein für den CP nicht mehr gültig und du erhälts eine Fehlermeldung.

Also den Bereich nicht ändern, ausser du weisst was du da tust!.

Gruss

Helmut
 
Zurück
Oben