Is it an IIoT Gateway, DIN-rail PC, PLC or small control unit? Your call! Discover the world of "Revolution Pi".
This is part 1 of many posts where I explore the world of the Revolution PI, in this post I will review the various modules, their architecture, have a look inside and how to initially wire them finishing with a wired panel ready for experiments.
Please note that many of the included diagrams etc. have been created by me through examination of the schematics and architecture, there could be mistakes and if you see one, please let me know so I can correct it!
Controller based on the Raspberry PI 3 Compute Modules
First thing of note is the fact that the Revolution PI Connect and Revolution PI Core3 are based on the Raspberry PI 3compute module.
The Compute Module 3 (CM3) is essentially a stripped down Raspberry Pi 3 (the BCM2837 processor and 1GB RAM) as well as a 4GB eMMC Flash device instead of an SD card.
The CM3 has a quad-core processor running at 1.2GHz. This is all integrated on to a small board which fits into a standard DDR2 SODIMM connector. The Flash memory is connected directly to the processor on the board most of the rest of the IO is made available through the SODIMM connector.
The board below is only on the RevPI connect.
The motherboard (KUNBUS Design) adds at least 2 Ethernet controllers, real-time clock, 2 USB Ports and RS485 and an HDMI micro connector, one network port and one RS485 is used to communicate to other attached modules so they are not available to the user program. There is also a micro USB port but this is only used for programming.
On the Connect there is an additional Ethernet controller and RS485 ports that can be integrated into user apps. The connect version of the controller also adds a digital input pin and a single open relay output.
In the below diagram you can see the basic building blocks of the controller. For the Core 3, just remove everything to the left of the "FLEX".
Architecturally the Revolution Pi series follows a common approach to the processing of its IO, none of the external IO modules is directly available to the processor. In order to get or set IO value,s the program must interface through a device file and the underlying handler will send commends to and receive from the IO Module sub processors. These are all STM32Fxxx microcontrollers.
All versions (DI, DO, DIO) have galvanic separation between the PiBridge logic circuit and inputs/Outputs resp. (600 VRMS isolation voltage).
The RevPi DIO version has additional galvanic separation between inputs and outputs. All versions are protected against interference according to EN61131-2 requirements and may be operated between -40°C to 55°C ambient temperature with up to 80% rel. humidity.*
Overall cycle time is typically around 5 ms to 10 ms depending on system configuration but could be longer for a large configuration. This is the time it takes for a change in input or output to be realised in the memory of the RevPI controller, this happens using a background process that polls the modules to read values and writes to them when a change in the local device file is detected. This operating system is patched with a "Realtime Patch" in order to reduce jitter and variations in polling time as it is essential in industrial control applications that timing can be predictable.
Here is the DIO Module block diagram:
As you can see, the Pi Bridge is used to interface with the module and the STM32Fxxx in turn will carry out the instructions for the core program and also independently manage the actual DIO pins, for example, if a pin is designated as an Encoder (Rotary Encoder used for CNC for example), the module will detect and retain the count for the core module, presenting the values as requested. The core application does not need to be burdened with the task of polling the physical pins. The same goes for outputs, if a pin is set to PWM, the STM32Fxxx will manage this too. The other point to note here is the complete isolation of the actual IO Pins from the STM32Fxxx and the main control module. This is why you see the additional 24V connections on the left of the diagram.
For the Analog module, things are much the same regarding isolation, the STM32Fxxx controller and the autonomous processing. The biggest difference here is that the modules own 24V supply is used to drive the analog logic through the use of fully isolated DC-DC convertors and power regulation
Here is the AIO block diagram:
This module supports 6 analog inputs, 2 Analog outputs:
There is a wide range of configurations as you can see:
0 – 5 V
0 – 10 V
+/- 5 V
+/- 10 V
4 – 20 mA
0 – 20 mA
0 – 24 mA
+/- 25 mA
0 – 5 V
0 – 10 V
+/- 5 V
+/- 10 V
0 – 5.5 V
0 – 11 V
+/- 5.5 V
+/- 11 V
4 – 20 mA
0 – 20 mA
0 – 24 mA
Besides 4 analog input channels, RevPi AIO also features 2 separate RTD input channels. The 2 RTD inputs enable temperatures to be measured with high precision from -165°C to +600°C in steps of 0.5°C using common RTDs sensors like Pt100/Pt1000 probes. The probes can be connected directly to the module with 2, 3 or 4 cables.
The last module I have is the Gateway Ethernet IP, I will dig into this module in another post as it will be a little more complicated.
So that's all the modules, then came the task of wiring them all up on a DIN rail based test board. This is what I ended up creating
A simplified block diagram is as follows, all the RS part numbers are included in the diagram except the Kunbus modules as they're not available at time of publication, I will amend as soon as I have them.
So in preparation for the next post, I have added the following
Lascar PanelPilot LED Digital Panel Multi-Function Meter for Voltage (704-8138)
RS PRO Non-Contact Infrared Temperature Sensor, 1m Cable, 0°C to 1000°C (161-8103)
RS PRO 4 wire PT100 Sensor, -50°C min +150°C max (028-5661)
Schneider Electric NFC Time Delay Relay (914-5070)
With a background in Industrial Electronics, Solutions Architecture and programming, I now spend my time working on my YouTube channel ( https://www.youtube.com/thebreadboardca ) where I create educational videos showing how to use various devices including Test and measurement, Home and industrial Automation, Components and other fun things I am sent to review or include in projects. I will also create many projects to showcase the use of these items
I was wondering if you shutdown / Startup the core 3 like a regular RPI ie sudo shutdown the have to cycle the power to boot back up or does it incorporate a mechanism like an at power supply for switching it on and off while keeping the power live?