Advamation-Logo (Druckversion)

AdvaBoard RPi1 und CODESYS

Autor:Roland Köbler, Advamation <support@advamation.de>
Version: 2015-09-01

"CODESYS ist eine Entwicklungsumgebung für Speicherprogrammierbare Steuerungen (SPS) nach dem IEC 61131-3 Standard für die Applikationsentwicklung in der Industrieautomation." [1]

Von CODESYS gibt es eine kostenlose Testversion für den Raspberry Pi zum Download; diese läuft nach dem Start 2 Stunden lang ohne Einschränkungen. Für 35€ kann eine Lizenz erworben werden, die diese Laufzeitbegrenzung aufhebt.

Allerdings ist zu beachten, dass CODESYS für den Raspberry Pi ausschließlich für Test- und Lehrzwecke gedacht ist, und nicht industriell eingesetzt werden darf!

Den Download sowie weitere Informationen hierzu sind auf der Webseite des Herstellers zu finden: http://store.codesys.com/codesys-control-for-raspberry-pi-sl.html

[1]https://de.wikipedia.org/wiki/Codesys

Raspberry Pi

Das CODESYS-Image basiert auf Raspbian Linux, und kann -- nach einer Registrierung -- von der Webseite des Herstellers heruntergeladen werden. Das Image läuft ohne Anpassungen auch auf dem Raspberry Pi 2.

Installation:

  1. Produktdatenplatt (raspberrypi_de_1.pdf) und CODESYS von http://store.codesys.com/codesys-control-for-raspberry-pi-sl.html herunterladen.
  2. Produktdatenblatt lesen und Anweisungen folgen.

Installation des älteren CODESYS-Images:

  1. CODESYS von http://store.codesys.com/codesys-control-for-raspberry-pi-sl.html herunterladen.

  2. Heruntergeladenen ZIP-Datei entpacken, z.B.:

    unzip CODESYS_Control_for_Raspberry_PI.zip
    
  3. Enthaltene Anleitung (RaspberryPI_de.pdf) lesen.

  4. CODESYS installieren: Die ZIP-Datei enthält sowohl ein komplettes Image inkl. Linux, als auch ein Debian-Paket. Die Installation kann also auf zwei Arten erfolgen:

    • Image auf eine SD-Karte kopieren, oder
    • Debian-Paket auf einem bereits existierenden Raspbian-System installieren.

    Weitere Informationen hierzu finden sich in der in der ZIP-Datei enthaltenen Anleitung RaspberryPI_de.pdf

  5. Per raspi-config Dateisystem vergrößern, so dass die ganze (micro)SD-Karte nutzbar ist. Danach muss der Raspberry Pi neu gebootet werden.

AdvaBoard RPi1

Das AdvaBoard RPi1 (und ein ggf. daran angeschlossenes TFT-Display) kann auf einem Raspberry Pi, auf dem CODESYS läuft, verwendet werden. Damit kann z.B. die Benutzeroberfläche des CODESYS-Programms auf dem Display direkt am Raspberry Pi dargestellt und über den Touchscreen bedient werden.

Allerdings existieren derzeit keine Treiber, um das AdvaBoard RPi1 von CODESYS aus anzusprechen. Beachten Sie, dass die SPI- und I2C-Schnittstelle des Raspberry Pi, sowie alle GPIOs der ersten 26 GPIO-Pins des Raspberry Pi vom AdvaBoard RPi1 verwendet werden, und nicht von CODESYS gesteuert oder konfiguriert werden dürfen! Die RS-232-/RS-485-Schnittstelle des AdvaBoard RPi1 kann dagegen frei verwendet werden, muss aber ggf. zuerst über die AdvaBoard-Software konfiguriert werden.

Bei Fragen zum AdvaBoard RPi1 im Zusammenhang mit CODESYS wenden Sie sich bitte an uns.

Installation der AdvaBoard RPi1-Software auf dem CODESYS-Image

Um das AdvaBoard RPi1 auf einem Raspberry Pi mit CODESYS zu verwenden, muss die AdvaBoard RPi1-Software installiert werden. Da das CODESYS-Image auf Raspbian Linux basiert, kann die Installation der AdvaBoard-Software exakt wie auf Raspbian-Systemen durchgeführt werden.

Hierzu sind folgende Schritte notwendig:

  1. Schnittstellen I2C/SPI/RS-232 konfigurieren: Diese Schnittstellen müssen konfiguriert werden, da sie vom AdvaBoard RPi1 verwendet werden. Dies kann per raspi-config erfolgen:

    $ sudo raspi-config
    
    -> 8 Advanced Options
    -> A6 SPI
        "Would you like the SPI interface to be enabled?"
        -> Yes
        "Would you like the SPI kernel module to be loaded by default?"
        -> No
    
    -> 8 Advanced Options
    -> A7 I2C
        "Would you like the ARM I2C interface to be enabled?"
        -> Yes
        "Would you like the I2C kernel module to be loaded by default?"
        -> No
    
    -> 8 Advanced Options
    -> A8 Serial
        "Would you like a login shell to be accessible over serial?
        -> No
    
  2. Software auf den Raspberry Pi kopieren: Die Dateien advaboard_rpi1-20140626.tgz und rpi2-advaboard.zip müssen z.B. per scp auf den Raspberry Pi kopiert werden.

  3. Auf dem Raspberry Pi: Software installieren und für das AdvaBoard RPi1 konfigurieren:

    1. Auf dem Raspberry Pi einloggen.

    2. Software entpacken:

      tar -xzf advaboard_rpi1-20140626.tgz
      unzip rpi2-advaboard.zip
      cd rpi2-advaboard
      cp am_rpi.c am_rpi.h am_rpi_tool.c ~/advaboard_rpi1-20140626/src/
      cp CMakeLists.txt ~/advaboard_rpi1-20140626/binding-java/c/
      
    3. Linux aktualisieren, Software installieren und konfigurieren:

      cd ~/advaboard_rpi1-20140626
      ./tools/advaboard_rpi1_setup/advaboard_rpi1_setup.sh
      

      Über dieses Skript kann nicht nur die AdvaBoard RPi1-Software installiert und konfiguriert, sondern auch das Linux-System verwaltet werden. Insbesondere folgende Fragen sollten wie folgt beantwortet werden:

      == Update Debian/Raspbian (apt-get update / upgrade)? (y/n/return=skip) y
      == Update Raspberry Pi Firmware ... (y/n/return=skip) y
      
      == Install/build AdvaBoard RPi1-software? (y/n/return=skip) y
      === Install prebuilt AdvaBoard RPi1-software, version 2014-06-26? (y/n/return=skip) n
      === Build AdvaBoard RPi1-software? (usually not necessary on Raspbian) (y/n/return=skip) y
      === Install built AdvaBoard RPi1-software? (y/n/return=skip) y
      
      === Install AdvaBoard RPi1-Init-scripts? (y/n/return=skip) y
      === Advamation framebuffer-kernel-module
      ...
      Install framebuffer-kernel-module? (y/n/return=skip) n
      
      == Configure AdvaBoard RPi1-software? (y/n/return=skip) y
      

      Falls ein TFT-Display an das AdvaBoard RPi1 angeschlossen ist, sollte dies konfiguriert werden:

      === Configure TFT-display/touchscreen? (y/n/return=skip) y
      ==== Select TFT
      ...
      Select TFT-type (1..4/return=skip): ...
      ==== Select Framebuffer-driver
      ...
      Use framebuffer (1..2/return=skip): 1
      
      ==== Calibrate touchscreen? (y/n/return=skip) y
      === Start framebuffer-driver by default? (y/n/return=skip) y
      === Start touchscreen-driver by default? (y/n/return=skip) y
      
      === Configure X11? (y/n/return=skip) y
      ==== Copy xorg.conf to /etc/X11? (y/n/return=skip) y
      ==== Default X11 layout:
      ...
      Default X11 layout (1..4/return=skip): 1