# Modbus RTU



## Rauchegger (25 Oktober 2010)

Hallo,

Ich möchte mit einer VIPA CPU 313C über PTP - Modbus RTU drei MX2 Umrichter von OMRON steuern (ImHB von VIPA steht net wirklich viel brauchbares drinen). Da Ich auf dem MODBUS Sektor noch ein richtiger Änfänger bin, bitte Ich um Hilfestellung.
Vieleicht hat ja jemand schon mal einen Umrichter dieser Art mit Modbus angesteuert !
Oder hat jemand ein Beispiel bei der Hand...
Bin DANKBAR für alles !


----------



## giallo (25 Oktober 2010)

*kleiner Hinweis*

Servus Rauchegger,
wichtig ist, dass du dir die Registerbeschreibung von deinem Frequenzumrichter besorgst. Wie du die serielle Schnittstelle bei Vipa programmierst kann ich dir leider nicht sagen, für B&R, Schneider Electric und Codesys könnt ich es. Du musst über Bytes, die du aus der seriellen Schnittstelle sendest die Register (bei Modbus heissen sie so) ansprechen.

Schau mal ob du nicht einen Funktionsblock für Modbus bei Vipa findest.

Vlt hilft dir das für den Anfang,


----------



## o_prang (25 Oktober 2010)

Hi Rauchegger,

haste mal bei VIPA angerufen?
Ich bin mir sehr sicher dass die Dir mal ein Beispielprojekt zusenden können.

Ansonsten auf jeden Fall, wie giallo schon gesagt hat, musst Du Dir die Liste mit den Registern besorgen.

Alle Werte werden bei Modbus in 1 oder 16Bit Register abgelegt. Darüber werden dann die Daten ausgetauscht. 
Es gibt, im Normalfall, Register von 1-9999, in denen die Daten drin stehen. Davor kommt der Funktionscode, der beschreibt, ob es sich um ein 1 oder 16Bit sowie um Schreib/Leserechte handelt.
Oft wird hier in den Holding Register (Funktionscode 4) die Daten getauscht. Ein Register 100 könnte dann so aussehen: 40100


----------



## Rauchegger (25 Oktober 2010)

*Hallo*

Anbei lege Ich die Modbus Besschr. von Omron und Vipa!


----------



## Rauchegger (25 Oktober 2010)

wie z.b setzt man den Umrichter auf RUN und gibt den sollwert an ?


----------



## Nordischerjung (26 Oktober 2010)

Moin,

hier ein Beispiel für Modbuskommunikation mit einer Vipa
Im OB100 musst du SFC216 aufrufen und damit die Schnittstelle parametrieren. Schau mal rein


----------



## Rauchegger (27 Oktober 2010)

Nordischerjung schrieb:


> Moin,
> 
> hier ein Beispiel für Modbuskommunikation mit einer Vipa
> Im OB100 musst du SFC216 aufrufen und damit die Schnittstelle parametrieren. Schau mal rein


 
Ich sehe mir gerade dein Beispiel durch, und bin beim testen...
Ich stehe aber immer noch auf der Leitung wegen des telegram aufbaus

und zwar wenn Ich nun von Omron die Data List hernehme steht für Operation command COIL 0001h (1=Run;0=Stop) 
Rotation direction command COIL 0002h (1=revers;0=forward);
Frequency source REGISTER 0001h; Function Code F001 (high) 0-40000
                         REGISTER 0002h; Function Code F001(low)   

wie sieht jetzt das Telegramm dazu aus ?
lg


----------



## Rauchegger (27 Oktober 2010)

U     M    100.7
      L     2                           //Slavenummer des Partners
      T     "Sendepuffer".Salvenr
      L     5                           //Funktioncode
      T     "Sendepuffer".Funktions_Code
      L     1                           //Ab 1. Bit lesen
      T     "Sendepuffer".Start_Adresse
      L     32                          //32 Bit lesen (2Worte)
      T     "Sendepuffer".Anzahl_Daten
      CALL  SFC  217
       DataPtr:=P#DB2.DBX0.0 BYTE 6
       DataLen:=MW12
       RetVal :=MW14

      UN    M    100.7
      L     2                           //Slavenummer des Partners
      T     "Sendepuffer".Salvenr1
      L     5                           //Funktioncode
      T     "Sendepuffer".Funktions_Code1
      L     1                           //Ab 1. Bit lesen
      T     "Sendepuffer".Start_Adresse1
      L     2000
      T     "Sendepuffer".Wert
      L     38                          //38 Bit lesen (3Worte)
      T     "Sendepuffer".Anzahl_Daten1
      CALL  SFC  217
       DataPtr:=P#DB2.DBX8.0 BYTE 8
       DataLen:=MW12
       RetVal :=MW14

Stimmt das?????????????????


----------



## Rauchegger (27 Oktober 2010)

o_prang schrieb:


> Hi Rauchegger,
> 
> haste mal bei VIPA angerufen?
> Ich bin mir sehr sicher dass die Dir mal ein Beispielprojekt zusenden können.
> ...


 
Hallo Prang! 

die liste mit den registern habe ich ja schon aber wie stelle ich mir nun das telegramm für start und drehrichtung und drehzahl zusammen ?


----------



## Rauchegger (27 Oktober 2010)

funktioniert das auch ?


----------



## Oberchefe (27 Oktober 2010)

Unten angehängt mal ein Beispieltelegramm (Anfrage Master an den Slave). Die Nummern sind dezimal.

Hier die Analyse in Hex:



```
Frame Analysis (01 03 00 fd 00 03 94 3b)
--------------

The frame has no errors.

Poll Analysis
-------------
Device Address =1       =0x01
Function       =3       =0x03 =Read Holding Registers
Point Address  =40254   
Point Count    =3
```

im Beispiel wäre das dann eine Anfrage des Masters an den Slave mit der Adresse 1, es soll ein "Holding Register" gelesen werden.

Um dem FU das Startbit auf 1 zu setzen sollte es dann wenn ich keinen Fehler gemacht habe so aussehen:



```
Frame Analysis (01 05 00 00 ff 00 8c 3a)

The frame has no errors.

--------------
Poll Analysis
-------------
Device Address =1       =0x01
Function       =5       =0x05 =Force Single Coil
Point Address  =1       
Required State =0xff00  On    (0xff00=On, 0x0000=Off)
```

Für Rückwärts dann:


```
Frame Analysis (01 05 00 01 ff 00 dd fa)
--------------

The frame has no errors.


Poll Analysis
-------------
Device Address =1       =0x01
Function       =5       =0x05 =Force Single Coil
Point Address  =2       
Required State =0xff00  On    (0xff00=On, 0x0000=Off)
```

Vorwärts wäre:


```
Frame Analysis (01 05 00 01 00 00 9c 0a)
--------------

The frame has no errors.


Poll Analysis
-------------
Device Address =1       =0x01
Function       =5       =0x05 =Force Single Coil
Point Address  =2       
Required State =0000  Off    (0xff00=On, 0x0000=Off)
```

Jeweils vorausgesetzt dass der FU die Adresse 1 hat.


----------



## Rauchegger (27 Oktober 2010)

Hallo Oberchefe,

ich werde mir das morgen gleich zu gemüte führen..... danke fürs erste....


----------



## Nordischerjung (28 Oktober 2010)

Moin,

du musst dir zwei DB´s anlegen, Sende- und EmpfangsDB Aufbau siehe Bilder.

Dann musst du die Daten in die DB´s so schreiben wie bei Oberchefe.

Anschließend die SFC 217 aufrufen und wenn der Fertig dann SFC218 um die Daten abzuholen.
Bin diese Woche leider nur sehr wenig im Büro deshalb die Kurzfassung, hoffe du kannst damit etwas anfangen


----------



## Nordischerjung (28 Oktober 2010)

Hier noch das letzte Bild 5 sind max


----------



## bugatti66 (22 November 2010)

*Multiway*

Entschuldigt, dass ich dies erst jetzt gesehen habe.
Da gibt es also jetzt 2 Probleme auf einmal.
Dies muss man teilen in:
1. Wie programmiere ich die Vipa    und
2. Welche Codes muss ich senden (hier hat Oberchefe schon geholfen)

Man braucht nur einen PC nehmen, RS485-Schnittstelle dranmachen und an den MX2 schließen (B=+=SP , A=-= SN )
Und dann auf dem PC Multiway laufen lassen und die Bytekombinationen ausprobieren. (Siehe Oberchefe)

http://support-omron.fr/MultiwayE.php


----------



## Rauchegger (23 November 2010)

bugatti66 schrieb:


> Entschuldigt, dass ich dies erst jetzt gesehen habe.
> Da gibt es also jetzt 2 Probleme auf einmal.
> Dies muss man teilen in:
> 1. Wie programmiere ich die Vipa und
> ...


 
Hallo, Danke für deine Antwort,Ich habe mir einen Converter von USB auf RS485 zugelegt und mit dem Multiway den FU angesteuert... wunder es geht
und wenn man das richtige Telegram herausgefunden hat funktioniert es über die VIPA auch, DANK EUCH... 
Ich hatte mit der Schnittstellenansteuerung immer Probleme Request = 7002.....
und was noch dazu kommt das Handbuch von Omron MX2 is a net so besonders Hilfreich Registernummer -1 und so....

Aber Danke fürs erste an alle......................


----------

