What it is
Ada for Automation (A4A in short) is a framework for designing industrial automation applications using the Ada language.
It makes use of the libmodbus library to allow building a ModbusTCP client or server, or a Modbus RTU master or slave.
It can also use Hilscher communication boards allowing to communicate on field buses like AS-Interface, CANopen, CC-Link, DeviceNet, PROFIBUS, EtherCAT, Ethernet/IP, Modbus TCP, PROFINET, Sercos III, POWERLINK, or VARAN.
Nice addition is the binding to the Snap7 library which allows to communicate with SIEMENS S7 PLCs using S7 Communication protocol ISO on TCP (RFC1006).
Of course, all the Ada ecosystem is available.
Using Ada bindings, C, C++, Fortran libraries can also be used.
And, since it is Ada, it can be compiled using the same code base to target all major platforms.
This example shows a gateway application, running on an industrial PC on top of a GNU/Linux Debian connected to a SIEMENS S7 PLC using S7 Communication ISO on TCP (RFC1006) thanks to the Snap7 library Ada binding.
If the SIEMENS S7 PLC does not have an Ethernet port, S7 Communication ISO on TCP (RFC1006) can be added by pluging a netLINK on a MPI or PROFIBUS port.
Here is a link to Application 3 :