Step 7 CP343-1 einbinden

Zuviel Werbung?
-> Hier kostenlos registrieren
Ok begriffen,belassen es wir dabei.

Gibt es hier im Forum vielleicht auch noch andere Leute,welche mir bei meinem Problem behilflich sein könnten?
Es soll mir keiner eine komplette Steuerung erstellen,aber eine Anfangshilfe wäre schon ganz nett.
Absolute Profis mit Dollarzeichen in den Augen führen wohl nicht zum Einstieg in die Materie eines Anfängers.
So,das musste von mir auch mal gesagt werden,aber die Hoffnung stirbt zuletzt.
Bin nach wie vor offen für konstruktive Vorschläge von Forenmitgliedern.

Gruss Helmut
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich habe jetzt nicht mehr alles verfolgt. Was sind denn deine offenen Fragen?
Am 31.Oktober war die Meldung das alles super funzt. Was dann am letzen Freitag passiert ist weiss ich auch nicht genau. Vielleicht wäre ein neuer Beitrag besser gewesen indem das aktuelle Problem geschildert wird.
 
Guten Abend allerseits :)

Ich habe eine VAT als Testumgebung,wo ich die verschiedenen Sendewerte eintragen und dann testen kann.
Die Test_VAT läuft perfekt,dort schaltet alles wie gewünscht. ( Variablen beobachten )
Nun will ich Sendetelegramme von einem Merker oder Ausgang zu meinem LAN-Interface senden.
Da liegt das Problem,es ist mir bis jetzt noch nicht erfolgreich gelungen.Das Zusammenspiel FB und DB
fällt mir noch schwer zu verstehen,habe bis vorhin auch Videos in yt geschaut und Dokumentationen gelesen.
Das Bild ist meine Test_VAT.

PS. muss zu Win 10 wechseln...

Hier mal ein paar Fotos von dem Projekt.
Meine Vorstellung wäre,einen neuen FB200 mit DB200 Globaldateninhalt anzulegen und im OB1 einpflegen.
Die DB-Struktur sollte genau so werden wie im DB100,nur mit dem Unterschied dass ich vom DB200 an einem
Ausgang oder Merker diese Telegramme senden kann. ( TCP/IP ) siehe Bilder
Da habe ich noch grosse Einrichtungsschwierigkeiten.
Ich bräuchte für eine LED zum Ansteuern einen kompletten Eintrag als Musterbeispiel.
Der Rest wäre doch nur Fleissarbeit mit anderen Sendetelegrammen,oder irre ich mich da?

Gruss Helmut
 

Anhänge

  • 003.png
    003.png
    219,5 KB · Aufrufe: 18
  • LAN_Erb2.zip
    LAN_Erb2.zip
    1,8 MB · Aufrufe: 0
  • 008.PNG
    008.PNG
    113,1 KB · Aufrufe: 15
  • 009.PNG
    009.PNG
    131,1 KB · Aufrufe: 14
  • 001.PNG
    001.PNG
    138,4 KB · Aufrufe: 14
  • 004.PNG
    004.PNG
    34,7 KB · Aufrufe: 12
  • 006.PNG
    006.PNG
    200,8 KB · Aufrufe: 11
  • 007.PNG
    007.PNG
    65,2 KB · Aufrufe: 10
  • 005.PNG
    005.PNG
    48,8 KB · Aufrufe: 15
Zuletzt bearbeitet:
Die Test_VAT läuft perfekt,dort schaltet alles wie gewünscht. ( Variablen beobachten )
Das heißt, wenn du manuell Werte über die VAT einträgst und sendest, dann reagiert dein Modellbahninterface?
So,das Problem mit AgSend -und Rec ist dank der Hilfe hier im Forum erfolgreich gelöst.
Nochmals vielen Dank für die Mühen. Übrigens,das Modellbahninterface führt die Befehle von
der SPS nun fehlerfrei aus.
Und nun möchtest du das per Merker machen. Also verschiedene Telegramme je nach Merker senden?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Am 31.Oktober war die Meldung das alles super funzt.
Am 29.10. hatte ich dem TE das Step7-Projekt erstellt und AG_SEND/AG_RECV rudimentär beispielhaft eingebunden (weil er mit dem Siemens Beispielprojekt nicht klar kam), so dass er per Variablentabelle seine LEDs manuell steuern kann und sehen kann, dass und wie das Senden der Steuertelegramme per CP343-1 zu seinem Erbert Dings funktioniert. Seine Beiträge und Bilder zu FB100 und Steuer-VAT seit 31.10. beziehen sich auf das Programm von mir.
Jetzt müsste er nur noch mit einfacher Logik und ein bisschen Mitdenken als Fleißarbeit die Ansteuerung der x LEDs in Steuerstrukturen, und das koordinierte Senden der Steuerstrukturen/Steuertelegramme programmieren.
Da von ihm auf Nachfrage keine Funktionsbeschreibung und andere Zuarbeiten kommen und man sich alles zu seinem Erbert Dings selbst zusammensuchen soll, habe ich keine Lust mehr, für ihn das Programm auszuprogrammieren. Auch nicht für Geld. Es ist nicht mein Hobby-Projekt. 🤷‍♂️
Vielleicht findet er ja jemanden "mit Dollarzeichen in den Augen" oder jemanden, der es ihm kostenlos macht. Falls ihm jemand weiterhelfen will, ich hänge das Projekt hier an, damit derjenige nicht auch noch Zeit investieren muss für Dinge, die schon vorhanden sind (HW Konfig, TCP-Verbindung, AG_SEND/AG_RECV Grundprogramm).

Für meine Fragen in Beitrag #118 am Freitag 14.11. hatte ich schon das beispielhafte Steuern einer LED auf einer Platine ins Programm eingebaut (DB11, FC11, FB100 Netzwerke 1-2) - ich lasse das jetzt drin. Vielleicht hilft das ja jemandem ... Test/Bedienung: siehe VAT_Platine_A, steuern des Sollzustandes Aus/Ein/Blinken der LED 0 mit M100.0 + M100.1 und dann das Senden mit M99.0 anstoßen.
 

Anhänge

Genau so ist es,in der Test_VAT kann ich sämtliche Varianten senden und werden auch korrekt ausgeführt.
Mein Paradebeispiel bei Merker gesetzt wäre zB. die letzten 4 Bytes alle FF (alle LED`s blinken auf der Platine )
und wieder zurückgesetzt (alle LED`S aus). Die Vorschaltlogik für die Merker ist signaltechnischer Natur,damit komme ich im Groben zurecht.
Das sind ja Neuigkeiten für mich Harald. FC11,DB11,Diese Bausteine habe ich in Deinem ausgepacktem Zip nicht gesehen.
Daher vielleicht mein Unverständnis,sry wenn das mein Fehler war.
Sind in Deinem eben gepostetem Zip diese Bausteine enthalten?
So,eben das Zip ausgepackt und eingepflegt,ich werde mich damit befassen. Das sieht doch schon ganz gut aus,hoffe ich.


Gruss Helmut
 
Zuletzt bearbeitet:
Das sind ja Neuigkeiten für mich Harald. FC11,DB11,Diese Bausteine habe ich in Deinem ausgepacktem Zip nicht gesehen.
Daher vielleicht mein Unverständnis,sry wenn das mein Fehler war.
weil da noch so viel unklar von dir ist, hatte ich in Beitrag #118 erstmal Hinweise und Nachfragen geschrieben, die du allerdings nicht beantwortet hast. Du hast da anscheinend für dich nur meinen Scherz mit "Dollarzeichen" wahrgenommen ...

Sind in Deinem eben gepostetem Zip diese Bausteine enthalten?
Ja
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Na ja , soweit erstmal alles jut,war nicht böse gemeint :)
Habe nun alles auf die CPU geladen,soweit auch gut aber ich kann jetzt in der VAT Send/Recv keine Werte mehr ändern.
Ist das jetzt so gewollt?
Du hast aber wahrscheinlich für Platine A 00 genommen,das wäre Platine 1. Ist das richtig so?
Platine habe ich umgeflasht auf 1 (00 ) , in der VAT passiert nix wenn ich M99.0 Sendeanstoss auf 1 setze.

Sendeaufträge sollen erstmal nur bei Änderung erfolgen.
 

Anhänge

  • 010.PNG
    010.PNG
    61,6 KB · Aufrufe: 6
  • 011.PNG
    011.PNG
    78,2 KB · Aufrufe: 6
Zuletzt bearbeitet:
,soweit auch gut aber ich kann jetzt in der VAT Send/Recv keine Werte mehr ändern.
Wo änderst Du denn in der VAT die Werte ?
Du musst sie bei "Steuerwert" eintragen und danach auf "aktualisieren" klicken.

1763334891521.png

Nachtrag: In der VAT hat immer das Programm recht.
Du kannst setzen, was Du willst - wenn das Programm rücksetzt (oder andere Werte bearbeitet), dann musst Du schauen, wo das herkommt.
 
Zuletzt bearbeitet:
Nabend :)

Ja mache ich schon seit 10min immer wieder ,aber bei M99.0 (Schuss) passiert nix.
Mit der VAT hantieren,hab ich nu langsam begriffen. Werte änder,aktualisieren und dann der finale Schuss.
 
Zuletzt bearbeitet:
Ja genau so ist es,das sieht man nicht weil es zu schnell passiert.
Mit passiert nix meinte ich die LED-Anschaltung.
Aber meine LED-Platine bleibt dunkel. Also irgendwo klemmt noch was.
Jetzt ist es die erste Platine am Strang 0 vom Erbert-Interface.
Laut Datenbankeintrag müsste die erste LED reagieren,tut sie aber nicht.
 
Ich habe mir das Projekt nicht im Detail angeschaut und ich habe s7 nicht zu Hause. Deshalb kann ich Dir keine Screenshots senden.

Wenn es bei Dir einen FCxx gibt, dann klick da rein, suche Dir ein Global (z.b. ein Ex.x, Ax.x, Mx.x ).
Da klickst Du drauf und dann mit der rechten Maustaste auf "gehe zu Verwendungsstelle global ".
Dann öffnet sich ein Fenster, dort gibst Du bei "Suche" den M99.0 ein.
Dann wird Dir angezeigt, wo der M99.0 verwendet (S, R, = etc. ) wird.

Oder Du gehst in die Referenztabelle ... dort siehst Du auch, wo der Merker bearbeitet wird.
(Ich würde meinen, die findet man bei "Optionen" ... da steht auf jeden Fall "Symboltabelle" mit dabei)

Du siehst aber nur das WO.
Das WARUM musst Du dann ergründen, und dass kann für Ungeübte (haben mal ein Programm gesehen) sehr schwierig werden. (indirekte Adressierung)
Wenn es einen FB100 gibt, vermute ich mal ... dass der M99.0 einfach nur ein Ausgang des FB's ist. (aus dem FB-Bauch rauspurzelt )
Also muss man den ganzen FB (mit seinen Lokal- Variablen) verstehen, schauen, welche Eingangsverknüpfungen ... das kann sehr aufwendig werden.
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Was hast Du denn für eine schöne Steuerung?
Ja,werde mich damit weiter befassen,aber jetzt bin ich total müde und mach die Kiste aus :)
Werde nachher wietermachen,wenn ich ich ausgepennt habe.
nochmal vielen Dank für die Hilfe.

Gruss Helmut
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Habe nun alles auf die CPU geladen,soweit auch gut aber ich kann jetzt in der VAT Send/Recv keine Werte mehr ändern.
Ist das jetzt so gewollt?
Nein, in meiner PLCSIM-Simulation kann ich nach wie vor in der VAT_SendRecv ändern, aber auch in der VAT_Platine_A.
Die VAT_SendRecv manipuliert direkt die Bytes im Sendepuffer für AG_SEND. Der neue Code im FB100 Netzwerk 2 kopiert die Daten aus der Datenstruktur der "fiktiven" Platine A aus DB11 in den Sendepuffer und setzt den Sendetrigger, nur wenn M99.0 gesetzt ist und setzt M99.0 sofort wieder zurück. Da musst du schon mal ins Programm schauen ...
Im FC11 wird die Datenstruktur für die LEDs der Platine befüllt, von mir beispielhaft ausprogrammiert nur für die LED 0 einer Platine. Für die anderen LEDs und die weiteren Platinen musst Du das noch programmieren (nachdem du getestet hast, dass die LED 0 so richtig funktioniert).
Ich habe das FC11 Netzwerk 2 so programmiert, damit je LED nur 1 Netzwerk nötig ist. Das kann man auch auf 2 Netzwerke aufteilen, wenn man etwas Programmspeicherplatz einsparen muss.

Du hast aber wahrscheinlich für Platine A 00 genommen,das wäre Platine 1. Ist das richtig so?
Platine habe ich umgeflasht auf 1 (00 ) , in der VAT passiert nix wenn ich M99.0 Sendeanstoss auf 1 setze.
Was ich "wahrscheinlich" genommen habe, kannst und musst du im FC11 Netzwerk 1 nachschauen. Da du keinerlei Informationen zu den Strang- und Platinen-Nummern deines Stellwerkes gibst, habe ich da einfach beispielhaft 1 und 2 hingeschrieben. Da musst Du schon selber die mir unbekannten Nummern eintragen.

Sendeaufträge sollen erstmal nur bei Änderung erfolgen.
Da musst du was programmieren, was "bei irgendeiner relevanten Änderung" den M99.0 setzt bzw. Du musst das Programm so programmieren, damit es das tut was du brauchst. Du willst ja wohl sicher nicht ewig nur manuell mit den VAT hantieren, sondern hast irgendwelche nur Dir bekannten Schalter und Taster (oder HMI ? ) mit denen du spielen willst und die irgendwie auch die LEDs beeinflussen sollen. Die VAT sind nur Beispiel-Hilfskrücken, damit Du zum ersten Kennenlernen was sinnvolles an dein Erbert Dings senden kannst. Im fertigen Programm wirst du mit den VAT höchstwahrscheinlich nichts mehr steuern können (sondern höchstens beobachten können).
Löse dich von den VAT und programmiere eine Sendeauftrags-Steuerung, die die verschiedenen jeweils benötigten Steuertelegramme sendet und sich dabei nicht gegenseitig in die Quere kommen dürfen - also immer nur einen Sendeauftrag ausführen und warten bis der komplett ausgeführt ist (AG_SEND DONE) und dann den nächsten anstehenden Sendeauftrag und so weiter.

Tipp: bei SPS ist es meistens einfacher zu programmieren, immer alles zyklisch zu senden, so wie es auch ein Feldbus wie Profibus oder Profinet tut (selbständig im Hintergrund). Bei der TCP-Verbindung zu deinem Erbert Dings musst du dich um jedes Steuertelegramm selber kümmern.

PS: Ich würde vermutlich die LED-Steuerstrukturen für alle Platinen hintereinander in den Sendepuffer kopieren (ohne das Padding-Byte am Ende! oder die nächste Struktur auf dem Padding-Byte der Struktur davor beginnen lassen) und mit nur einem Sendeauftrag alle gleichzeitig senden, also bei z.B. 5 Platinen = 5 x 7 Bytes = 35 Bytes senden.
 
Zuletzt bearbeitet:
Nabend allerseits :)

Nun wieder weiter im Text.
@ Harald: Also bei mir passiert keinerlei Reaktionen auf meiner Platine. ( Strang0 Platine1 )
Ich habe Dein Zip nur installiert und bis jetzt nix verändert. Aber es tut sich nix bei VAT testen.
Wenn ich Deine vorhergehende Version wieder zurück spiele und auflade,
funktioniert die VAT Send/Recv wieder ordnungsgemäss.
Jetzt mal meine Frage: werden die LED-Bytes im Hexformat gesendet?
Das erwartet mein LAN-Interface. Kannst Du die Sendetelegramme sehen irgendwie?

Ja klar,die VAT ist nur für den Einstieg gedacht. Da hast vollkommen recht, ich will ja auch etwas real steuern.
Ich sehe im UDT1 die detaillierten LED-Daten,aber wenn ich dort etwas ändere kommt immer ein Zeitstempelkonflkt.
Da steht für die LED`s der Datentyp BOOL,müsste das nicht HEX sein?
Was ist denn ein Paddingbyte?

Gruss Helmut
 
Zuletzt bearbeitet:
@ Harald: Also bei mir passiert keinerlei Reaktionen auf meiner Platine. ( Strang0 Platine1 )
Wie im Beitrag #138 vor dir bereits geschrieben: du musst im FC11 Netzwerk 1 die Strang- und Platinen-Nummern auf die bei dir verwendeten Nummern anpassen. Ich wusste die Werte nicht, weil du sie uns nicht mitgeteilt hattest. Also öffne den FC11 und trage da die Nummern 0 und 1 bei den MOVE-Boxen ein (anstatt der falschen 1 und 2).

Ich habe Dein Zip nur installiert und bis jetzt nix verändert. Aber es tut sich nix bei VAT testen.
Da passiert schon was, Brille aufsetzen! Schau dir die Bytes im Sendepuffer mit der VAT_SendRecv an:
DB100.DBB20...DBB26 "IDB_Stelltisch".SEND_CMD[1] ... "IDB_Stelltisch".SEND_CMD[7]

Falls du meinst, es tut sich nichts mit deinen LEDs: du musst im FC11 Netzwerk 1 die Strang- und Platinen-Nummern auf die bei dir verwendeten Nummern anpassen ... vermutlich hast du keine LED-Platine mit der Adresse Strang=1 und Platine=2

Jetzt mal meine Frage: werden die LED-Bytes im Hexformat gesendet?
Das erwartet mein LAN-Interface.
Nein, es ist einfach eine Bytefolge. Man kann sich den Inhalt der Bytes aber im Hex-Format anschauen :cool:
Das Hex-Format, was du meinst, gibt es gar nicht und dein LAN-Interface erwartet das auch nicht. Es ist lediglich eine Ansichtssache (Anzeigeformat), ob man sich die Werte hexadezimal oder dezimal anschaut. Man kann das Anzeigeformat in der Variablentabelle auch einfach umstellen.

Kannst Du die Sendetelegramme sehen irgendwie?
Ich kann sie nur in der VAT_SendRecv im Sendepuffer sehen, weil ich nicht an deiner Anlage bin.
Du könntest die auch mit einem Sniffer auf der Netzwerkleitung sehen. Sollte aber nicht nötig sein.

Ich sehe im UDT1 die detaillierten LED-Daten,aber wenn ich dort etwas ändere kommt immer ein Zeitstempelkonflkt.
Der UDT ist ein "User-Datentyp" - die symbolische Beschreibung der Datenstruktur deiner LED-Platinen. Wenn du da irgendwas änderst, dann werden alle Verwendungsstellen des UDT ungültig und müssen neu übersetzt werden. UDT verwendet man, damit man nicht an jeder Verwendungsstelle die Struktur erneut erklären muss. Mache dich in der Step7-Hilfe oder in Videos schlau, was UDT sind und wozu die da sind.

Da steht für die LED`s der Datentyp BOOL,müsste das nicht HEX sein?
Es gibt überhaupt gar keinen Datentyp HEX. (HEX ist ein Anzeigeformat.) BOOL ist richtig, weil je 2 Bits das Verhalten einer LED steuern.
Schau dir auch mal die Protokoll-Beschreibung deines Erber Dings an. Ich will nicht der Einzige sein, der die gelesen hat. ;) :cool:
 
Zurück
Oben