Profibus RevPi Gate PROFIBUS Slave mit Codesys Runtime

Post Reply
User avatar
BadTaste
Posts: 2
Joined: 03 May 2019, 09:07

Profibus RevPi Gate PROFIBUS Slave mit Codesys Runtime

Post by BadTaste »

Hallo liebes Forum,
ich möchte gerne den RevPi mit einer Codesys Runtime und einem Profibus Slave betreiben, ist das so möglich?
Wenn ja wie komme ich an die Daten des Moduls?
schöne Grüße
Michael
User avatar
dirk
KUNBUS
Posts: 2174
Joined: 15 Dec 2016, 13:19

Re: Profibus RevPi Gate PROFIBUS Slave mit Codesys Runtime

Post by dirk »

Hi Michael,
momentan gibt es eine experiementelle, nicht supportete Bibliothek hierfür, die RevPiLib. Hier ist ein Tutorial https://revolution.kunbus.de/tutorials/ ... einbinden/
Wie du generell die Codesys Runtime auf Dein RevPi bringst und eine Lizenz aufspielst, unterscheidet sich nicht von der Vorgehensweise für das RaspberryPi CM3. Also schau mal bei Codesys vorbei für Infos hierzu.
User avatar
BadTaste
Posts: 2
Joined: 03 May 2019, 09:07

Re: Profibus RevPi Gate PROFIBUS Slave mit Codesys Runtime

Post by BadTaste »

Hallo,
danke für den Link. Ich habe aber leider Probleme auf den Offstet zu schreiben. Beim lesen habe ich kein Problem und auch mit piTest kann ich auf das Abbild schreiben
hat jemand einen Tip was ich hier falsch mache?

Code: Select all

pi@RevPi13263:~ $ piTest -d
Found 2 devices:

Address: 0 module type: 105 (0x69) RevPi Connect V1.0
Module is present
     input offset: 1024 length: 6
    output offset: 1030 length: 5

Address: 31 module type: 77 (0x4d) Gateway Profibus V0.0
Module is present
     input offset: 0 length: 512
    output offset: 512 length: 512

das funktioniert gut --->

Code: Select all

pi@RevPi13263:~ $ piTest -w 512,2,3333
Write value d05 hex (=3333 dez) to offset 512.
Leider kann ich aber über die Codesys nicht schreiben (lesen funktioniert gut). Es gibt keine Fehlermeldung des rpi.REVPI_PIOUT_INT hier mal ein stark vereinfachter Code der mir zum testen dient :
klappt leider nicht --->

Code: Select all

// OFFSET BERECHNEN  	###################################
// Lesen
OFFSET[1]:=I*2;
PEV_IN(uiMaxIndex:=4096 , resErr:= , eError=>ER_01 );
READ_INPUT(auiOffset:=OFFSET , iIn=>DATPOINT );
WERTE_IN[i]:=ROL(DATPOINT,8);

// Schreiben
PEV_OUT(resErr:=reset , eError=>ER_02 );

OFFSET_W[1]:=512;
WRITE_OUTPUT(auiOffset:=OFFSET_W , iOut:=1111 );
OFFSET_W[1]:=514;
WRITE_OUTPUT(auiOffset:=OFFSET_W , iOut:=2222 );
OFFSET_W[1]:=516;
WRITE_OUTPUT(auiOffset:=OFFSET_W , iOut:=3333 );
schöne Grüße
Michael
Post Reply