Befehle von PC zu der SPS über Modbus TCP

Begonnen von drauguste, 12. März 2013, 18:31:21

Vorheriges Thema - Nächstes Thema

0 Mitglieder und 2 Gäste betrachten dieses Thema.

drauguste

Ich möchte Befehle (Anzahl Schritten eines Motor und Abfrage der ausgeführten Schritten) von PC zu einer SPS schicken über eine Modbus TCP Schnittstelle. Der PC Treiber habe ich mehr oder weniger im Griff. Ich bin mir nur unsicher wie ich es auf dem SPS (Festo CPX-CEC) implementieren muss.

Ich habe verstanden, wie ich die  Kommunikation zwischen PC und SPS etablieren kann (MB_Server + IP_Control2).

In meinem CoDeSys Programm habe ich die Variablen "schrittBefehl" und "schrittAusgefuehrt" definiert. Kann jemand mir erklären wie ich diese Variablen ändere/abfrage über den MB_Server? Sollte ich irgendwie diese Variablen mit einer VMAP Datenstruktur verknüpfen? Wenn ja, wie mache ich das?

Vielen Dank!

peewit

hallo

ignoriere einfach das ganze thema "VMAP"
du brauchst für die standard anwendung dort über haupt nichts machen !

Der Datenstruktur beim Parameter DATA ist ein  ARRAY [0..255] OF WORD (MODBUS-Register)

wenn du nun einen wert auf index 0 reinschreibst, dann kannst du durch lesen des register 0 mit einem mb_client wieder einlesen
und umgekehrt und natürlich auch beschreiben

mehr ist es nicht !

beispiel:
du kopierst "schrittbefehl" in DATA[0] und "schrittausgeführt" in DATA[1]

dann kannst du mit deinen PC (MB_CLIENT) mit einem REGISTER Lesebefehl die MODBUS-Register 0 und 1 auslesen

drauguste

Vielen Dank!

Aber ich habe jetzt noch mehr Fragen...   :-\

Als ich das SPS-Programm programmiere, benutze ich den MB_Server Baustein, der wiederum die MB_VMAP Funktion aufruft. Sollte ich diese Teil des MB_Server Code für meine Anwendung löschen?

Wenn ich es richtig verstanden habe, schreibe ich in meinem Modbus Nachricht vom Client (Byte 8 und 9) die Register-Adresse 0x0000, wenn ich meine Variable in der ersten Zelle der Modbus DATA Array gespeichert habe.

Sorry ich bin ganz der Neuling in diesem Bereich...


peewit

hallo
einfach nur den mb_server baustein benutzen und bei vmap übergibst du nur die passenden datenstruktur
du brauchst aber sonst nichts machen ...


was hast du denn für einen merkwürdigen mb_client, wo du direkt die modbus telegramme zusammen basteln musst
bei modbus gibst du folgende parameter an

kommando
welche adresse der register / bits
anzahl der datenpunkte

ich kenne deinen mb_client nicht !

lade dir bei modbus.org einen mb_client für win-pc runter zum testen !