IO Link Parameter in Codesys Programm verwenden

pknoll
2019-12-27
2020-01-20
  • pknoll - 2019-12-27

    Hallo!

    Experimentiere derzeit mit IO Link (Beckhoff EL6224 und IFM Laser Sensor 05D150)

    Die Prozessdaten bekomme ich super raus. Funktioniert einwandfrei!!

    Kann auch perfekt den Senor via IO Link Parameter parametrisieren, allerdings nur aus der Codesys Entwicklungsumgebung heraus (Read, dann ändern, dann wirte)

    Gibt es auch eine Möglichkeit aus dem Programm heraus auf die IO Link Parameter zuzugreifen? (z.B: Laser aus) Habe bisher leider nichts gefunden...

    Danke für jeden Tipp!

    Paul

    IOLink.pdf [103.74 KiB]

     
  • eschwellinger

    eschwellinger - 2019-12-27

    Hi,
    ich denke in etwa so:
    die Fbs sind fast identisch zu CoE, SoE usw.

    Daher sind die Beispiele von der Onlinehilfe fast 1:1 zu übertragen.

    Nur die spezifischen Parameter sind immer etwas anders CoE -> Index,
    SubIndex, SoE -> IDN, IoLink -> Index, SubIndex

    snippet:

    ioread : ETC_ADS_IoLinkRead; 
    iowrite : ETC_ADS_IoLinkWrite; 
    abyDataBuffer : ARRAY[0..254] OF BYTE; 
    ioread.xExecute := TRUE; 
    ioread.usiCom := 1 
    ioread.uiDevice := pSlave^.PhysSlaveAddr; 
    ioread.usiChannel := 1; 
    ioread.udiTimeout := 20000; 
    ioread.usiPort := usiPort; 
    ioread.uiIndex := uiIndex; 
    ioread.usiSubIndex := usiSubIndex; 
    ioread.udiSize := 255; 
    ioread.pbyData := ADR(abyDataBuffer[0]); 
    ioread(); 
    iowrite.xExecute := TRUE; 
    iowrite.usiCom := 1; 
    iowrite.uiDevice := pSlave^.PhysSlaveAddr; 
    iowrite.usiChannel := 1; 
    iowrite.udiTimeout := 20000; 
    iowrite.usiPort := usiPort; 
    iowrite.uiIndex := uiIndex; 
    iowrite.usiSubIndex := usiSubIndex; 
    iowrite.udiSize := 255; 
    iowrite.pbyData := := ADR(abyDataBuffer[0]); 
    iowrite(); 
    

    Grüße
    Edwin

     
  • pknoll - 2019-12-30

    Hallo Edwin!

    Vielen Dank für Deine Mühen. Um ehrlich zu sein, ganz verstehe ich es (noch) nicht...

    Werde mich wohl noch etwas damit beschäftigen müssen.

    Wenn Du einen Link für die zitierte Online Hilfe hättest, wäre ich sehr dankbar.

    VIelen Dank und einen guten Rutsch!

    Paul

     
  • eschwellinger

    eschwellinger - 2019-12-31

    Hallo Paul,
    Ich denke mit dem SOE/COE Beispiel aus dem CODESYS Store kommt man schon ziemlich weit,
    das ist damit gemeint, die FB's analog zu den SOE/COE FB's verwenden.

    Grüße
    Edwin

     
  • pknoll - 2020-01-01

    Hallo Edwin!

    Kann kein SOE/COE Example im Store finden, meinst Du das Ethercat Example?

    https://store.codesys.com/ethercat-example.html

    Vielen Dank

    Paul

     
  • eschwellinger

    eschwellinger - 2020-01-01

    Hallo Paul,

    ja das meinte ich
    .
    Grüße
    Edwin

     
  • pknoll - 2020-01-02

    Danke Edwin!

    Damit komme ich nun definitiv weiter!

    Herzlichen Dank für die Unterstützung!

    Paul

     
  • pknoll - 2020-01-13

    Hallo Edwin!

    Leider muss ich nochmals lästig sein, ich komme da einfach nicht weiter (IOLINK Parameter lesen oder schreiben)

    Ich habe ja eine Beckhoff EL6224 mit Sensor von IFM

    Habe versucht den Code zu verwenden, den Du vorgeschlagen hast (Bild 1)

    Ethercat Adresse von IOKlemme sollte stimmen (Bild2)

    Index/Subindex (hier Vendor ID) sollte laut IFM Datenblatt auch stimmen (Bild 3) (ist ein 05D150 Abstandssenor)

    Buffer ist aber immer leer ... (Bild4)

    Wenn ich IOLInk Parameter direkt über Codesys auslese sehe ich Vendor ID (Bild5), KLemme und Sensor also OK ...

    Was mache ich falsch? Vielleicht hast Du/Ihr auch eine EL6224 und kannst es nachprüfen

    Wäre echt super, vielen DANK!!

    Herzliche Grüße

    Paul

    IOLINK_5.pdf [167.34 KiB]

    IOLINK_4.pdf [182.97 KiB]

    IOLINK_3.pdf [89.96 KiB]

    IOLINK_2.pdf [160.82 KiB]

    IOLINK_1.pdf [184.55 KiB]

     
  • eschwellinger

    eschwellinger - 2020-01-14

    Hi,
    ich denke du solltest zuerst warten bis der Master und die Slaves hochgelaufen sind also
    Ethercat_master.xConfigFinished und erst dann xExecute auf true setzen.

    Grüße
    Edwin

     
  • pknoll - 2020-01-14

    Vielen Dank Edwin!!

    Werde ich probieren und melde mich dann

    lg

    Paul

     
  • pknoll - 2020-01-15

    Vielen Dank Edwin!

    Das war es!!

    Lg

    Paul

     
  • pknoll - 2020-01-20

    Hallo Edwin!

    Nun bin ich nochmals lästig..

    Ich habe ein Problem mit IO-Link , EL6224 und einen Output Device. Input geht, Output nicht (Device wäre IFM DV2121)

    Ich vermute ein Problem mit der IODD Datei

    Wenn ich als IO-Link Master den IFM AL1100 (Profinet) nehmen, kann ich dort generische Input/Outputs für die Prozessdaten definieren und dann geht es (siehe Anhang)

    Kann man in Codesys genereische Input/Output Devices auf einen IO-Link Master erstellen?

    Soweit ich es sehe, kann man dies in Twincat

    https://infosys.beckhoff.com/content/10 ... 3534447405

    Gibt es so was in Codesys auch?

    Vielen Dank wie immer!!

    Paul

    IFM_IO Link.pdf [98.77 KiB]

     

Log in to post a comment.