Download file
The Monarco HAT is a robust industrial graded HAT, perfectly suited for IOT projects, small home-automation or industrial projects and much more ...
It also protects your Raspberry Pi from overvoltage or short-circuiting and simultaneously provides you with enough IO channels and channel configuration versatility.
It features analog and digital inputs and outputs, RS-485, 1-Wire bus and a Realtime Clock.
Implemented as an IO device-driver, so no function block calls to the HAT in your software necessary.
The HAT is exposed as a hardware device with IO channels and parameters. Just write code, attach variable to a I/O channel in the hardware tree, ready!
v2.0.0.x Under Construction
devdescr.xml: vendor id set to 0004, device id set to 0005, see https://forge.codesys.com/drv/io-drivers/database/Home/ for details.
<DeviceIdentification>
<Type>501</Type>
<Id>0004 0005</Id>
<Version>2.0.0.2</Version>
</DeviceIdentification>
v2.0.0.0 info
Initial release in cforge, forked from my git : https://github.com/Aliazzzz/Monarco-HAT-library-for-CODESYS-V3
* 4 DI channels,
* 4 DO channels,
* 2 AI channels (12bit),
* 2 AO channels (12bit)
Attach Monarco HAT to Raspberry Pi and power it up;
sudo cat /proc/device-tree/hat/vendor
should return "REX Controls".
sudo cat /proc/device-tree/hat/product
should return "Monarco HAT".
Disable system console on UART
sudo sed 's/ console=serial0,[0-9]\+//' -i /boot/cmdline.txt
sudo reboot
Install essential tools
sudo apt update
sudo apt install git
Flash Monarco HAT EEPROM (to avoid manual installation of overlay)
sudo git clone https://github.com/monarco/monarco-hat-firmware-bin
cd monarco-hat-firmware-bin
./monarco-eeprom.sh update
Installing CODESYS runtime component on pi (Demo or licensed), just follow CODESYS online help steps, it's easy!
https://help.codesys.com/webapp/_rbp_install_runtime;product=CODESYS_Control_for_Raspberry_Pi_SL;version=3.5.12.0
Or check this youtube video:
[[embed url=https://youtu.be/6FPf3RHWyeU]]
Download file
Install the Monarco codesys package via;
Enable CODESYS to use the RS485 UART on the Monarco Hat.
Switch to etc direcory and edit the CODESYSControl.cfg;
cd etc/
sudo nano CODESYSControl.cfg
Add the following lines;
[SysCom] Linux.Devicefile=/dev/ttyAMA
Now save and Quit nano.
Now, do a forced NTP sync
sudo timedatectl
This will force to sync time with some time server and returns something like, depending on date/time and your time-zone;
Local time: zo 2018-09-23 14:46:17 CEST
Universal time: zo 2018-09-23 12:46:17 UTC
RTC time: zo 2018-09-23 12:46:18
Time zone: Europe/Amsterdam (CEST, +0200)
Network time on: yes
NTP synchronized: yes
RTC in local TZ: no
Now you can use the HAT, RS-485 and the Real-Time Clock from within a CODESYS IEC application.
Access the RS485 UART via a comlib of you own flavour in CODESYS (like CAA SerialCOM library).
Open the provided example project file.
Check/Set SPI master parameters:
Mode 0,
SPI bits 8,
Speed(Hz) 1000000 (=1MHz) => can be set up to 4 MHz, slower speeds avoid chance on crc errors
Compile, download and run and enjoy!
All functionality of the HAT is allready implemented into the core of the driver but some functionality still needs to be routed as parameters.
If you experience any bugs, please leave a Ticket
Special thanks goes out to Ingo Hornberger for helping out with difficulties and for his patience.