Modbus Master IO-Link

Marius Kaiser
Posts: 9
Joined: 21 Sep 2020, 16:12

Modbus Master IO-Link

Post by Marius Kaiser »

Hallo zusammen,

ich baue gerade für meine Masterarbeit einige Komponenten in einen Schaltschrank ein, um mit diesen mehrere Prüfstände zu überwachen. Die Basis für das Monitoring der Prüfstände bildet ein RevPi Connect + mit 1x DIO und 4x AIO.
Mit PiCotry und Node-Red habe ich bisher die Ein- und Ausgänge konfiguriert und für eine HMI vorbereitet. Da mir noch zwei Sensordaten fehlen und ich die Hardware bereits habe wollte ich nun per Modbus TCP diese Daten abfragen.

Hierbei handelt es sich um einen Beschleunigungssensor (VVB020) und einen Drehzahlsensor (DI5028) von IFM. Da diese beiden Sensor IO-Link Sensoren sind habe ich einen passenden IO-Link Master mit Modbus TCP-Schnittstelle besorgt (AL1940) und dachte es ist möglich damit zu kommunizieren. Doch aus irgendeinem Grund komme ich nicht an die Daten.
IO-Link-Master_Konfiguration.PNG
IO-Link-Master_Konfiguration.PNG (71.65 KiB) Viewed 12028 times
Hier habe ich den IO-Link Master konfiguriert.
PICotry.PNG
PICotry.PNG (129.84 KiB) Viewed 12028 times
Und so PiCtory.

Tippe ich nun in die RevPi Console "piTest -r Modbus_Master_Status" ein erhalte ich folgende Nachricht: 1 Byte-Value of Modbus_Master_Status: 17 dez (=11 hex)

Dies deutet für mich auf einen Verbindungsfehler hin. Ach wenn ich probiere eins der Register zu lesen kommt nur 0 dez.

Ich habe mir das Video angeschaut, die Anleitung durchgelesen und auch hier im Forum habe ich gesucht.

Was mache ich falsch?

Link zum IO-Link-Master:

https://www.ifm.com/de/de/product/AL1940?tab=details
User avatar
dirk
KUNBUS
Posts: 2174
Joined: 15 Dec 2016, 13:19

Re: Modbus Master IO-Link

Post by dirk »

Hi vielen Dank für Deine ausführlichen Informationen. Wir benötigen mehr Informationen. Kannst Du diese Dateien posten?

Code: Select all

/var/log/messages
/var/log/daemon.log
/etc/revpi/config.rsc
Dankeschön
Marius Kaiser
Posts: 9
Joined: 21 Sep 2020, 16:12

Re: Modbus Master IO-Link

Post by Marius Kaiser »

Hallo Dirk,

anbei die gewünschten Daten. Es ist wirklich sehr viel und ich weiß nicht genau wo nach du suchst, deshalb alles.

cat /var/log/messages

Code: Select all

Sep 21 16:17:13 RevPi40083 liblogging-stdlog:  [origin software="rsyslogd" swVersion="8.24.0" x-pid="1727" x-info="http://www.rsyslog.com"] rsyslogd was HUPed
Sep 21 16:39:27 RevPi40083 cron[1576]: (CRON) INFO (pidfile fd = 3)
Sep 21 16:39:27 RevPi40083 cron[1576]: (CRON) INFO (Running @reboot jobs)
Sep 21 16:39:27 RevPi40083 liblogging-stdlog:  [origin software="rsyslogd" swVersion="8.24.0" x-pid="1571" x-info="http://www.rsyslog.com"] start
Sep 22 08:24:27 RevPi40083 cron[1699]: (CRON) INFO (pidfile fd = 3)
Sep 22 08:24:27 RevPi40083 cron[1699]: (CRON) INFO (Running @reboot jobs)
Sep 22 08:24:27 RevPi40083 liblogging-stdlog:  [origin software="rsyslogd" swVersion="8.24.0" x-pid="1700" x-info="http://www.rsyslog.com"] start
Sep 22 08:34:27 RevPi40083 systemd-timesyncd[1655]: Synchronized to time server 141.64.5.250:123 (2.debian.pool.ntp.org).
Sep 22 08:39:01 RevPi40083 CRON[2706]: (root) CMD (  [ -x /usr/lib/php/sessionclean ] && if [ ! -d /run/systemd/system ]; then /usr/lib/php/sessionclean; fi)
Sep 22 09:09:01 RevPi40083 CRON[2852]: (root) CMD (  [ -x /usr/lib/php/sessionclean ] && if [ ! -d /run/systemd/system ]; then /usr/lib/php/sessionclean; fi)
Sep 22 09:17:01 RevPi40083 CRON[2914]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
Sep 22 09:39:01 RevPi40083 CRON[2977]: (root) CMD (  [ -x /usr/lib/php/sessionclean ] && if [ ! -d /run/systemd/system ]; then /usr/lib/php/sessionclean; fi)
Sep 22 14:12:04 RevPi40083 cron[1603]: (CRON) INFO (pidfile fd = 3)
Sep 22 14:12:04 RevPi40083 cron[1603]: (CRON) INFO (Running @reboot jobs)
Sep 22 14:12:04 RevPi40083 liblogging-stdlog:  [origin software="rsyslogd" swVersion="8.24.0" x-pid="1633" x-info="http://www.rsyslog.com"] start
Sep 22 14:13:34 RevPi40083 systemd-timesyncd[1567]: Synchronized to time server 144.76.43.40:123 (1.debian.pool.ntp.org).
Sep 22 14:17:01 RevPi40083 CRON[2298]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
Sep 22 14:51:38 RevPi40083 cron[1708]: (CRON) INFO (pidfile fd = 3)
Sep 22 14:51:38 RevPi40083 cron[1708]: (CRON) INFO (Running @reboot jobs)
Sep 22 14:51:38 RevPi40083 liblogging-stdlog:  [origin software="rsyslogd" swVersion="8.24.0" x-pid="1705" x-info="http://www.rsyslog.com"] start
Sep 22 14:52:08 RevPi40083 systemd-timesyncd[1650]: Synchronized to time server 144.76.159.151:123 (2.debian.pool.ntp.org).
Sep 22 15:09:01 RevPi40083 CRON[2549]: (root) CMD (  [ -x /usr/lib/php/sessionclean ] && if [ ! -d /run/systemd/system ]; then /usr/lib/php/sessionclean; fi)
Sep 22 15:17:01 RevPi40083 CRON[2644]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
Sep 22 15:39:01 RevPi40083 CRON[2687]: (root) CMD (  [ -x /usr/lib/php/sessionclean ] && if [ ! -d /run/systemd/system ]; then /usr/lib/php/sessionclean; fi)
Sep 22 16:01:24 RevPi40083 cron[1609]: (CRON) INFO (pidfile fd = 3)
Sep 22 16:01:24 RevPi40083 cron[1609]: (CRON) INFO (Running @reboot jobs)
Sep 22 16:01:24 RevPi40083 liblogging-stdlog:  [origin software="rsyslogd" swVersion="8.24.0" x-pid="1628" x-info="http://www.rsyslog.com"] start
Sep 22 16:01:54 RevPi40083 systemd-timesyncd[1575]: Synchronized to time server 193.30.120.245:123 (2.debian.pool.ntp.org).
Sep 22 16:09:01 RevPi40083 CRON[2046]: (root) CMD (  [ -x /usr/lib/php/sessionclean ] && if [ ! -d /run/systemd/system ]; then /usr/lib/php/sessionclean; fi)
Sep 22 16:17:01 RevPi40083 CRON[2111]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
Sep 23 08:33:18 RevPi40083 cron[1489]: (CRON) INFO (pidfile fd = 3)
Sep 23 08:33:18 RevPi40083 cron[1489]: (CRON) INFO (Running @reboot jobs)
Sep 23 08:33:18 RevPi40083 liblogging-stdlog:  [origin software="rsyslogd" swVersion="8.24.0" x-pid="1494" x-info="http://www.rsyslog.com"] start
Sep 23 08:33:47 RevPi40083 systemd-timesyncd[1279]: Synchronized to time server 195.50.171.101:123 (2.debian.pool.ntp.org).
Sep 23 08:39:01 RevPi40083 CRON[2687]: (root) CMD (  [ -x /usr/lib/php/sessionclean ] && if [ ! -d /run/systemd/system ]; then /usr/lib/php/sessionclean; fi)
Sep 23 09:09:01 RevPi40083 CRON[2765]: (root) CMD (  [ -x /usr/lib/php/sessionclean ] && if [ ! -d /run/systemd/system ]; then /usr/lib/php/sessionclean; fi)
Sep 23 09:17:01 RevPi40083 CRON[2828]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
Sep 23 09:39:01 RevPi40083 CRON[2882]: (root) CMD (  [ -x /usr/lib/php/sessionclean ] && if [ ! -d /run/systemd/system ]; then /usr/lib/php/sessionclean; fi)
Sep 23 09:47:41 RevPi40083 cron[1567]: (CRON) INFO (pidfile fd = 3)
Sep 23 09:47:41 RevPi40083 cron[1567]: (CRON) INFO (Running @reboot jobs)
Sep 23 09:47:41 RevPi40083 liblogging-stdlog:  [origin software="rsyslogd" swVersion="8.24.0" x-pid="1588" x-info="http://www.rsyslog.com"] start
Sep 23 09:48:11 RevPi40083 systemd-timesyncd[1502]: Synchronized to time server 194.190.168.1:123 (2.debian.pool.ntp.org).
Sep 23 10:09:01 RevPi40083 CRON[2475]: (root) CMD (  [ -x /usr/lib/php/sessionclean ] && if [ ! -d /run/systemd/system ]; then /usr/lib/php/sessionclean; fi)
Sep 23 10:17:01 RevPi40083 CRON[2608]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
Sep 23 10:39:01 RevPi40083 CRON[6972]: (root) CMD (  [ -x /usr/lib/php/sessionclean ] && if [ ! -d /run/systemd/system ]; then /usr/lib/php/sessionclean; fi)
Sep 23 11:09:01 RevPi40083 CRON[7427]: (root) CMD (  [ -x /usr/lib/php/sessionclean ] && if [ ! -d /run/systemd/system ]; then /usr/lib/php/sessionclean; fi)
Sep 23 11:17:01 RevPi40083 CRON[7531]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
Sep 23 12:24:53 RevPi40083 cron[1648]: (CRON) INFO (pidfile fd = 3)
Sep 23 12:24:53 RevPi40083 cron[1648]: (CRON) INFO (Running @reboot jobs)
Sep 23 12:24:53 RevPi40083 liblogging-stdlog:  [origin software="rsyslogd" swVersion="8.24.0" x-pid="1651" x-info="http://www.rsyslog.com"] start
Sep 23 12:25:23 RevPi40083 systemd-timesyncd[1573]: Synchronized to time server 163.237.218.19:123 (2.debian.pool.ntp.org).
Sep 23 12:39:01 RevPi40083 CRON[2579]: (root) CMD (  [ -x /usr/lib/php/sessionclean ] && if [ ! -d /run/systemd/system ]; then /usr/lib/php/sessionclean; fi)
Last edited by p.rosenberger on 24 Sep 2020, 15:02, edited 1 time in total.
Reason: Code Tags eingefügt
Marius Kaiser
Posts: 9
Joined: 21 Sep 2020, 16:12

Re: Modbus Master IO-Link

Post by Marius Kaiser »

Sep 23 11:31:10 RevPi40083 piModbusMaster[1689]: Modbus connection failed: ip=192.168.1.250 errno=Operation now in progress
Sep 23 11:31:16 RevPi40083 piModbusMaster[1689]: Modbus connection failed: ip=192.168.1.250 errno=Operation now in progress
Sep 23 11:31:21 RevPi40083 piModbusMaster[1689]: Modbus connection failed: ip=192.168.1.250 errno=Operation now in progress
Sep 23 11:31:27 RevPi40083 piModbusMaster[1689]: Modbus connection failed: ip=192.168.1.250 errno=Operation now in progress
Sep 23 11:31:32 RevPi40083 piModbusMaster[1689]: Modbus connection failed: ip=192.168.1.250 errno=Operation now in progress
Sep 23 11:31:38 RevPi40083 piModbusMaster[1689]: Modbus connection failed: ip=192.168.1.250 errno=Operation now in progress
Sep 23 11:31:43 RevPi40083 piModbusMaster[1689]: Modbus connection failed: ip=192.168.1.250 errno=Operation now in progress
Sep 23 11:31:49 RevPi40083 piModbusMaster[1689]: Modbus connection failed: ip=192.168.1.250 errno=Operation now in progress
Sep 23 11:31:54 RevPi40083 piModbusMaster[1689]: Modbus connection failed: ip=192.168.1.250 errno=Operation now in progress
Sep 23 11:32:00 RevPi40083 piModbusMaster[1689]: Modbus connection failed: ip=192.168.1.250 errno=Operation now in progress
Sep 23 11:32:05 RevPi40083 piModbusMaster[1689]: Modbus connection failed: ip=192.168.1.250 errno=Operation now in progress
Last edited by Marius Kaiser on 19 Oct 2020, 14:46, edited 1 time in total.
Marius Kaiser
Posts: 9
Joined: 21 Sep 2020, 16:12

Re: Modbus Master IO-Link

Post by Marius Kaiser »

cat /etc/revpi/config.rsc
{"App":{"name": "PiCtory", "version": "1.4.4","saveTS": "20200922145632","language": "en","layout": {"north":{"size":70,"initClosed":false,"initHidden":false},"south":{"size":200,"initClosed":false,"initHidden":false,"children":{"layout1":{"east":{"size":663,"initClosed":false,"initHidden":false}}}},"east":{"size":70,"initClosed":true,"initHidden":false,"children":{}},"west":
Last edited by Marius Kaiser on 19 Oct 2020, 14:47, edited 1 time in total.
User avatar
dirk
KUNBUS
Posts: 2174
Joined: 15 Dec 2016, 13:19

Re: Modbus Master IO-Link

Post by dirk »

Hallo Marius Kaiser, danke für Deine Dateien. Es wäre klasse, wenn Du die Dateien in ein ZIP File packst und Deine Posts dann zusammenfasst. Dann ist es übersichtlicher auch für die anderen Community Member ;)
Marius, es könnte sein, dass uns Node-Red hier in die Quere kommt. Daher deaktiviere bitte Node-Red und versuche, die Modbus Kommunikation erneut zu starten.
Marius Kaiser
Posts: 9
Joined: 21 Sep 2020, 16:12

Re: Modbus Master IO-Link

Post by Marius Kaiser »

Hallo Dirk,

ich habe die Problematik jetzt anders gelöst. Ich glaube irgendetwas stimmt nicht mit dem IFM Gerät, da ich mit keinem Gerät über Modbus kommunizieren konnte. Ich hole mir jetzt die Daten direkt über den IO-Link Master mittels Abfrage der IO-Link Daten.

Trotzdem Danke
User avatar
dirk
KUNBUS
Posts: 2174
Joined: 15 Dec 2016, 13:19

Re: Modbus Master IO-Link

Post by dirk »

Marius, danke für Deine positive Rückmeldung.
Marius Kaiser
Posts: 9
Joined: 21 Sep 2020, 16:12

Re: Modbus Master IO-Link

Post by Marius Kaiser »

Hallo Dirk,

ich habe doch nochmal eine Frage zu diesem Thema. Das mit der IO-Link-Verbindung zu dem IFM Produkt hat geklappt.

Ich benutze jedoch zusätzlich noch eine Safety-SPS von Pilz. Hier benötige ich verschiedene Werte die direkt in die SPS gehen. Auch hier bietet sich die Modbus TCP-Schnittstelle an.

Ich bin deiner Anleitung auf Youtube gefolgt und auch der von Pilz unter:

https://www.pilz.com/download/open/AN_P ... -EN-01.pdf

Leider sagt mir meine SPS, dass Sie keine Verbindung zum RevPi aufbauen kann. Ich hatte es sowohl mit und ohne NodeRed aktiviert probiert. Aber leider kein Erfolg. NodeRes benötige ich für die Programmierung.

Vielleicht hast du noch einen Tipp?


Gruß

Marius
User avatar
Amar
KUNBUS
Posts: 160
Joined: 15 Jul 2019, 12:58

Re: Modbus Master IO-Link

Post by Amar »

Hi Marius,
Verify the Modbus TCP registers to read from the Safety-SPS of Pilz using Modbus Master Simulator QModMaster

https://sourceforge.net/projects/qmodmaster/
QmodbusMaster.png
QmodbusMaster.png (44.27 KiB) Viewed 11354 times
Then Configure appropriate Modbus actions in piCtory (Action ID Unit ID Function Code Register Addr. Quantity of Registers Action Interval (ms) Device Value).

Check the RevPi ModbusMaster log when you then try to connect to the Pilz Slave:
tail -f /var/log/daemon.log

Regards,
Amar
KUNBUS
Post Reply