Raspberry Pi

From Axel Public Wiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Following these instructions, you can turn your Raspberry PI B or B+ into a complete IEC-61131 PLC.

PLC runtime features and components

Feature Description and notes
PLC runtime
  • Full IEC 61131-3 standard supported, object oriented programming included
  • Multitasking PLC, highest priority task @1ms cycle time
  • Configurable tasks and application memory resources (code and data)

Detailed runtime features list in the paragraph below

HMI PageLab HMI runtime
SoftScope Real-time acquisition runtime, 1ms sample time
EtherCAT master Full featured EtherCAT master with LogicLab integrated configurator and online diagnostics and network scan. ESI import

If enabled, physical ethernet port is used, standard TCP/IP protocols rely on WiFi network

CANopen master/slave (requires CAN hardware interface) Full-featured CANopen master and slave stacks with LogicLab integrated configurator, EDS import
Modbus TCP master/slave Modbus TCP master and slave stacks with LogicLab integrated configurator, device descriptor editor utility
Modbus RTU master/slave (requires RS485 hardware interface) Modbus RTU master and slave stacks with LogicLab integrated configurator, device descriptor editor utility
PLC tags (variables) access Two options available:
  • Axel LLSymbol library (optimized and easy option)
  • OPC-UA server
WEB server Integrated WEB server with WEB API for PLC variables and parameters access
MQTT MQTT/MQTTS library and engine with LogicLab integrated configurator, SLL connection and certificates management supported

Supported PLC runtime features

  • PLC application in machine executable code
  • Object-oriented programming supported
  • Hot swap download: allowing you to download the new application without halting the current execution
  • Floating point support: for optimized floating point operations
  • Extended string support: for optimized string operations
  • Extended math support: for optimized math operations
  • Relocatable code: for optimized memory usage
  • Source code download and upload: allowing you to download the project source code on the target and to retrieve it in a second moment
  • On-line debug: advanced debug instrument which allow you to see current symbols value directly inside the editor
  • Triggers and graphic triggers debugging instruments
  • Breakpoints and step debug
  • Synchronous I/O forcing
  • Dynamic check of stack integrity
  • Dynamic check of array validity
  • Dynamic check of pointers validity

Hardware Setup

The LLExec PLC runtime has been tested on Raspberry PI Model B and B+, Raspberry PI 2 model B, Raspberry PI 3 model B, Raspberry PI 4 model B, with or without I/O expansions PIFace or PIFace Digital 2, depending on the model of Raspberry PI. The runtime PLC runs even without I/O expansion, it can be used to drive standard fieldbus modules, following the Modbus TCP standard or EtherCAT (only for Raspberry PI 3 and 4). It can be used to drive Modbus RTU devices as well, but you need an external and supported (by raspbian) RS485 to USB device. It also requires an SD or uSD at least 8GB to program the modified Raspbian image.

Software Setup

You can proceed in two alternative ways:

  • (3) Program a SD or uSD card with a full Raspbian image, already configured to run LLExec PLC runtime.
  • (4) Install LLExec PLC runtime on a standard Raspbian image (we don't support EtherCAT on this type of installation).

Follow one of the two options, then go to section (5) Get the free licence

Hardware Setup

The LLExec PLC runtime has been tested on Raspberry PI Model B and B+, Raspberry PI 2 model B, Raspberry PI 3 model B, Raspberry PI 4 model B, with or without I/O expansions PIFace or PIFace Digital 2, depending on the model of Raspberry PI. The runtime PLC runs even without I/O expansion, it can be used to drive standard fieldbus modules, following the Modbus TCP standard or EtherCAT (only for Raspberry PI 3 and 4). It can be used to drive Modbus RTU devices as well, but you need an external and supported (by raspbian) RS485 to USB device. It also requires an SD or uSD at least 8GB to program the modified Raspbian image.

Software Setup

You can proceed in two alternative ways:

  • (3) Program a SD or uSD card with a full Raspbian image, already configured to run LLExec PLC runtime.
  • (4) Install LLExec PLC runtime on a standard Raspbian image (we don't support EtherCAT on this type of installation).

Follow one of the two options, then go to section (5) Get the free licence

Program a SD or uSD card with a full Raspbian image, already configured to run LLExec PLC runtime

The image is used to program an SD card, containing:

  • the Raspbian distribution
  • the LLExec PLC runtime preconfigured
  • optional realtime Kernels for RPI3 and 4.

This image can be used to control three flavours of the runtime:

  • Base: It support standard PLC functionality, without realtime nor EtherCAT support.
  • EtherCAT: It support the EtherCAT fieldbus but non the realtime kernel, so it can't be used to drive Distributed Clock enabled EtherCAT slaves.
  • OSADL: It have a patched Kernel with PREEMT_RT patch and a specific runtime setup, this full support EtherCAT with Distributed Clock.

The Image comes with scripts that can change the flavour of the image,
every flavour needs different licenses.
In this page we consider the Base flavour, more information about EtherCAT and OSADL flavour can be obtained at the pages:

https://www.axelsw.it/pwiki/index.php/Raspberry_Pi_EtherCAT
https://www.axelsw.it/pwiki/index.php/Raspberry_Pi_OSADL_EtherCat


Download image

You can download the image file from our site at url:

https://www.axelsoftware.it/download/#runtimes

Download the Full RaspberryPi image with LLExec and Node-RED file

Unzip the image

Use the preferred utility to decompress the archive (eg. WinRAR)

Program an SD or uSB (at least 8 GB)

Using the preferred utility (eg. Win32DiskImager, download from here), write rasppi.img into an SD card or uSD.

Login into the system

Login as user pi, password axel

Install LLExec PLC runtime on a standard Raspbian image

With this procedure you can install the runtime Exec in a existing Raspberry PI Raspbian image. With this procedure you will have less precise timings when using PIFace I/O expansions and Raspberry PI models 1.

Download the runtime

You can download the latest PLC runtime from our website axelsoftware.it from the Downloads section.

In the Downloads section expand the list Software -> Runtimes and please select LLExec for RaspberryPI (Linux ARM)

Unzip the runtime

Use the preferred utility to decompress the archive (eg. WinRAR)

Copy the entire directory plc on Raspberry PI

Copy in the default path that is /data/plc , and make sure the file LLExec has execute permissions.

Create a standard startup script

As an example the included LLExecDaemon can be used, and hook it to the init sequence. This script will change the current directory to /data/plc and launch the file ./LLExec, with root permissions - required.

sudo cp /data/plc/LLExecDaemon /etc/init.d
sudo ln -s /etc/init.d/LLExecDaemon /etc/rc5.d

Enable SPI driver (optional)

This step is necessary only if you use a PIFace expansion card. Run the command

sudo raspi-config

Click the Advanced options Choose the A6 SPI and press Yes for the SPI interface to be enabled at startup.

Configure the network

The Raspberry PI Image comes with a default IP address.
You can use LogicLab to change the IP address as described in the following paragraphs.
Note that you don't need to be in the same subnet of the default IP address, to select the IP with LogicLab.

Installation and first use of LogicLab

Downloads of LogicLab Automation Suite

Go to our website axelsoftware.it,
In the Downloads section expand the list Software -> LogicLab Automation Suite
Download the file LogicLab Automation Suite

Install the setup

Launch LogicLab

Press "Scan Network".
Your Raspberry PI with its IP address will be showed.
Press the circular button near the IP address to change the IP to your choice.
Press the button "+" under the column "New prj.
Give the project a name and press the OK button.

  • From the menu On-line select Setup communication.

Select the protocol GDB, then press the Properties button.

  • Check the IP address and confirm.
  • Choose Connect from the menu Online:

If everything went correctly, you should see the green word Connected on the status bar in the lower right corner of LogicLab

Demo mode and licensing

The LLExec runtime will run in demo-mode: this means that is fully operational for 30 minutes.
After this time is expired, is required to reboot the Raspberry PI.

To obtain a full license you can ask for:

  • Free licenses that will be offered ONLY after presenting a detailed description of the purpose of the license. If you need it for educational purpose please introduce you, your school and your class project including teacher references.
    PLEASE NOTE: any incomplete request will be denied.
    If the request meets all the requirements, Axel will send you a product key to activate your license trough the "Raspberry PI" node in the Resources panel of LogicLab.
  • Commercial license: please ask for a quotation.

To request a license you need first to send an email to support@axelsw.it.

Extend runtime

Please consult the page Raspberry Pi Dev

More information

About LogicLab

For more information you can consult the online manual, or follow our tutorials available in the news section of the website or on YouTube by following the link below:

https://www.youtube.com/user/Axelsrl

In case of troubles: save a Log File

In the case of any trouble, you can save the log file, this file can be sent to support@axelsw.it Steps:

  • login into the Raspberry PI
  • acquire root priviledges
sudo -s
  • go to directory /data/plc
  • launch ./AlTracePrint LLExec
  • press s
  • insert the preferred filename
  • then press q to quit AlTracePrint
  • send us the log file you saved

Supported PLC runtime features

  • PLC application in machine executable code
  • Object-oriented programming supported
  • Hot swap download: allowing you to download the new application without halting the current execution
  • Floating point support: for optimized floating point operations
  • Extended string support: for optimized string operations
  • Extended math support: for optimized math operations
  • Relocatable code: for optimized memory usage
  • Source code download and upload: allowing you to download the project source code on the target and to retrieve it in a second moment
  • On-line debug: advanced debug instrument which allow you to see current symbols value directly inside the editor
  • Triggers and graphic triggers debugging instruments
  • Breakpoints and step debug
  • Synchronous I/O forcing
  • Dynamic check of stack integrity
  • Dynamic check of array validity
  • Dynamic check of pointers validity

Support

For any technical issue please send an email support@axelsw.it