S7-1200 via Modbus RTU an Frequenzumrichter ATV12

NPAIH

Level-1
Beiträge
3
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo liebes Forum!

Ich benötige eure Hilfe. Ich versuche schon seit Tagen meine S7-1200 (1214C und Kommunikationsmodul CB 1241) via Modbus RTU mit meinem Frequenzumrichter SchneiderElectric ATV12 zu verbinden[Klemme(PLC) auf RJ45(FU)]. Habe mir schon x-Forenbeiträge angesehen aber noch nichts brauchbares gefunden.

Ich will eigentlich nur den Sollwert über ein HMI steuern.

Alle Versuche irgendwas zu lesen oder zu schreiben scheiterten.

Ich haben den MB_COMM_LOAD und MB_Master in Verwendung. MB_COMM_LOAD wird auch DONE=true und ohne Fehler ausgeben. MB_COMM_LOAD hab ich "first cycle"-Merker an REQ.

Bei MB_Master habe ich eine posFlanke über einen Eingang auf REQ. MB_Addr habe ich die vom Frequenzumrichter. Data_Addr habe ich 49002 bzw. 409002 [zum Testen die Hochlaufzeit(Addr laut Parameterliste 09001)]. MB_Master geht immer kurz auf busy. Done ist immer false. Fehler wird keiner ausgegeben. DATA_PTR habe ich einen DB in welchem ich mir ein UINT angelegt habe, da laut Parameterliste Type: UINT ist. Wert bleibt immer auf 0.

Ich denke wenn ich MB_Master REQ belegt, sollte dann der Wert ausgelesen werden oder liege ich da falsch?

Auf dem Kommuninktionsboard blinkt dann immer kurz TxD, RxD leuchtet/blinkt nie. Habe die Drähte schon probiert zu tauschen.

Vielleicht kann mir ja jemand weiterhelfen.

Vielen Dank im vorraus

Stefan
 
Hallo Stefan,
wenn done immer false bleibt funktioniert was nicht - Done-Signal mit Speicherfunktion gecheckt? Kann nur sehr kurz und damit nicht direkt sichtbar sein. (Ansonsten müßte eigentlich ein Fehlercode aus der Fkt. kommen) Geräteadresse, Baudrate, Parität, Anz. Stop-Bits stimmen mit ATV überein? Komm. am ATV aktiv geschaltet? Hab vor einiger Zeit mal was für einen nicht so üblichen Antrieb zusammengesetzt.
DATA_PTR zeigt bei mir auf ein Array 0...9 aus UDT für verschiedene Daten-Längen. Wie ist LEN-Eingang beschaltet? MODE richtig beschaltet?
Wenn die zykl. Komm.-Anforderung passt blinkt die Sende-LED kurz auf. Aber der ATV fühlt sich nicht angesprochen bzw. versteht den Master nicht.
Klemmenbelegung / Abschluß der RJ45 Buchse / geprüft?

LG Jörg
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Jörg!

Danke für deine Unterstützung. Ich habe mal einen counter auf das Done-Signal gesetzt und siehe da...er zählt. Somit habe ich das done-Signal.

Glaube mein Problem ist dann der DATA_PTR. Ich habe mal ein paar screenshots gemacht, wie ich versuche, den ACC Wert auszulesen.

screen5.jpg
screen6.jpg
screen7.jpg
screen8.PNG

Vielen Dank im vorraus

Schöne Wochenende

LG Stefan
 
Hallo Stefan,
das ist doch schon mal was.
Was mir aber auffällt: Du solltest nicht den REQ vom MB_Master dauerhaft auf 1 setzen. Damit textest du die potentiellen Busteilnehmer mit Anfragen zu. Da hat ja keiner eine Chance zu antworten - wenn der Rest dann passt.
Den REQ muß du für jede Lese-/Schreibaktion zeitlich staffeln. Erst wenn der Teilnehmer geantwortet hat (oder bei Fehlercode) kannst du die nächste Abfrage starten. Ich meine das steht in der Hilfe beschrieben. (Bei S gibt es auch eine Beispielanwendung dazu - hab ich aber grad nicht greifbar) Du kannst auch mal den REQ über die SIM manuell kurz einschalten und schauen ob es dann evtl. eine Antwort/RX-LED /Fehlercode gibt. (A-B tauschen ist auch noch eine Option)
Normalerweise wird der REQ von einem Trigger gesetzt und mit dem DONE oder einem Fehlercode das Ergebnis/Fehlercode weggespeichert und dann rückgesetzt; und das ganze dann z.B. per Ringzähler für alle anderen Parameter lesen/schreiben zyklisch durchgeschaltet. (Alternative-wenn es denn passt: man liest/schreibt den ganzen benötigten Datenblock am Stück...)
Gruß, Jörg
 
Hallo Jörg!
So wie es aussieht, waren die Heinzelmännchen am Werk. Habe heute alles eingesteckt um neu zu testen. Und siehe da, es leuchten sofort TX und Rx. Und alles funktioniert, wie ich es mir vorgestellt habe, ohne etwas zu ändern. Habe auf den REQ vom Master dann noch eine Flanke gesetzt und auch so funktioniert es jetzt einwandfrei.
Was jetzt der Fehler war kann ich aber nicht sagen. Vielleicht habe ich das modbus-Kabel erst nach dem die Spannung an war erst angesteckt und deswegen konnte die Steuerung mit dem FU keine Daten austauschen. Kann das "nicht funktionieren" leider nicht reproduzieren.
Danke jedenfalls für deine Unterstützung!
LG Stefan
 
Zurück
Oben