Profibus DP S7-1200 mit CM1243-5

Domenick

Level-2
Beiträge
26
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Guten Tag,

zuerst mal wollte ich sagen das, dass folgende Projekt mein erstes Projekt generell ist, in dem ich eine SPS programmiere.
also ich habe folgende Aufgabe: ich habe ein gerät was von der Firma produziert wurde und das über Profibus angesprochen und gesteuert werden kann.
zuvor hat man den Profibus getestet indem man einen profibus mastersimulator angeschlossen hat (in unserem fall anybus) und die bytes per hand gesetzt.
das problem war das die maximal übertragungsrate 19,2 kbit/s ist und im betrieb von 1,5 Mbit/s manchmal probleme auftauchten was wir noch nicht testen konnten.
deswegen haben wir uns eine SPS 1200 mit der CPU 1212 AC/DC/RLY und er Bezeichnung 6ES7 212-1BD30-0XB0 und dem gerät CM1243-5 gekauft um einen profibus master zu haben der mit 1,5Mbit/s übertragen kann.

Ich habe dann das programm mithilfe des step7 v 18 (tia v18) geschrieben, ich habe die geräte konfiguriert und die gsd datei eingefügt und eine profibusmaster leitung angelgt. ich habe es auch schon geschafft das die beiden kommunizieren und usere gerät erkennt das mit ihm gesprochen wird. allerdings ist das Problem das ich keine daten schicken kann oder es nicht hinkriege das, das gerät über profibus gesteuert wir. es ist so das es 30 Ausgabe und 30 Eingabe Bytes gibt, ich will allerdings nur die Ausgabe Bytes beschreiben, ich habe einen datenbaustein mit einem array von bytes angelegt wo ich reingeschrieben habe was gesendet werden soll, ich habe jetzt mit verschiedene Funktionsbausteien gearbeitetwie den Wrrec und dem DPWR_DAT, ich have versucht das ganze array an den head des gerätes zu senden und ich habe versucht nur die daten an die position zu senden die geändert werden soll, allerdings war ich bis jetzt ohne erfolg, nun die frage könnte mir einer sagen wie genau diese bausteien funktioniern und ob sie ideen hätten wie ich das angehen könnte? ich weis auch nicht genau ob mein gerät ein intelligenter slave ist und ob ich eventuell garnicht mit diesen bausteinen eine intelligenten slave beschreiben kann, das gerät hat nämlich eine pic der mit hilfe einer profibus karte auf profibus kommuniziert was das gerät meinens erachtens zu einem intelligentem slave macht allerdings weis ich nicht welche auswirkungen oder problemm das mit sich bringt.

ich hoffe auf schnelle hilfe und im anhang das gerät im programm das ich ansteuern will
 

Anhänge

  • Unbenannt.PNG
    Unbenannt.PNG
    62,9 KB · Aufrufe: 22
also bis jetzt ist das mein programm sehr übersichtlich
 

Anhänge

  • Unbenannt.PNG
    Unbenannt.PNG
    32 KB · Aufrufe: 26
  • Unbenannt1.PNG
    Unbenannt1.PNG
    101,7 KB · Aufrufe: 26
Zuviel Werbung?
-> Hier kostenlos registrieren
und den diagnosezustand kann ich leider nicht auslesen da das gerät nicht an meinem arbeitsplatz ist wo ich programmiere und immer den raum wechsel muss um es auszutesten.....
 
Hallo Dominick,
Wir hatten in der Vergangenheit immer wieder Geräte, die wie Deines entwickelt worden sind auf den Tisch bekommen. Das erste Problem ist die Wellenphysik. Die Geräte haben fast alle in höheren Baudraten nicht mehr richtig oder gar nicht funktioniert. Aus diesem Grund würde ich Dir nahe legen es bei der SPS auch mit einer kleinen Baudrate zu beginnen, und dann Stück für Stück auf eine höhere Baudrate umschalten und diese testen.
 
Was genau meinst du mit bedingt anrufen? Meinst du den Taster auf en?
Ist das kontraproduktiv?
Und welche negativen Auswirkungen hat es denn wenn ich Variablen mit einem Leerzeichen benennen, frage rein aus neugier
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Dominick,
Wir hatten in der Vergangenheit immer wieder Geräte, die wie Deines entwickelt worden sind auf den Tisch bekommen. Das erste Problem ist die Wellenphysik. Die Geräte haben fast alle in höheren Baudraten nicht mehr richtig oder gar nicht funktioniert. Aus diesem Grund würde ich Dir nahe legen es bei der SPS auch mit einer kleinen Baudrate zu beginnen, und dann Stück für Stück auf eine höhere Baudrate umschalten und diese testen.
Habt ihr denn eine Lösung gefunden wir die Geräte auch auf höheren Bauarten zuverlässig funktionieren?
Unsere Kunde nutzt nämlich immer eine Bauträger von 1,5Mbit/s und will dies auch nicht ändern daher müssen wir das Gerät eventuell anpassen und schauen uns gerade nach eventuell Lösungen um
 
Was genau meinst du mit bedingt anrufen? Meinst du den Taster auf en?
Ist das kontraproduktiv?
Und welche negativen Auswirkungen hat es denn wenn ich Variablen mit einem Leerzeichen benennen, frage rein aus neugier
Es gibt eben in der Softwareentwicklung gewisse Formatierungen die man gerne einhalten darf um die Lesbarkeit von Variablen zu gewährleisten

Siemens bezieht sich da in ihrem style guide auf den pascal case und den camel case:

Screenshot 2023-11-29 191719.png



Es gibt natürlich noch mehrere Varianten https://medium.com/nerd-for-tech/programming-case-types-explained-143cad3681e3


Du brauchst den Baustein nicht bedingt aufrufen, da der Baustein schon einen Request Input hat, über den du bedingt die Daten abfragen kannst. Den kannst du verwenden um bedingt deine Daten zu holen (steht auch so in der Hilfe des Bausteins)
 
Und welche negativen Auswirkungen hat es denn wenn ich Variablen mit einem Leerzeichen benennen, frage rein aus neugier
Ich könnte jetzt sagen "das macht man einfach nicht" aber das hilft dir auch nicht. Du bekommst z.b. Probleme, wenn du per Skript Daten speichern möchtest. Da werden keine Leerzeichen im Variablennamen akzeptiert ( VB ). Viele andere Programmiersysteme akzeptieren auch keine Leerzeichen. "Erfahrene" Programmierer reagieren da auch allergisch, wenn sie sowas sehen.
 
Zuletzt bearbeitet:
Zurück
Oben