comp.lang.ada
 help / color / mirror / Atom feed
From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Re: Ada for Automation
Date: Thu, 6 Nov 2014 14:31:12 +0100
Date: 2014-11-06T14:31:12+01:00	[thread overview]
Message-ID: <3wgqzq98u7gx$.17hpf52b2gd7l.dlg@40tude.net> (raw)
In-Reply-To: 3e877e3f-c9ad-48a5-941d-08a7f5c3f317@googlegroups.com

On Thu, 6 Nov 2014 03:14:43 -0800 (PST), slos wrote:

First of all, congratulate and thank for the efforts.

Don't mind a little bit critique which follows.

> "Ada for Automation" (A4A in short) is a framework, for designing
> industrial automation applications using the Ada language. It uses the
> libmodbus library to allow building a Modbus TCP client or server, or a
> Modbus RTU master.

> 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.

In other words it does not implement the corresponding stacks? E.g.
EtherCAT master.

Regarding communication boards, they are not very useful. I can guarantee
you that the same EtherCAT would be impossible to talk to using such a
board. The protocol requires a very complicated initialization to talk even
with relatively simple slaves. You might be able to connect a simple
analogue I/O terminal, but nothing beyond that. Even TwinCAT, which is
vendor's tool does not support everything. Our EtherCAT master does, almost
(:-)).

So, my advice would be to implement these stacks natively. Yes, it is a
huge amount of work and you will need community support.

Even CANOpen master is many thousands times more complex than ModBus +
support of various CAN controllers under various OSes.

EtherCAT master is thousands times more complex than CANOpen + raw Ethernet
drivers needed for Windows.

This is not one-man job.

> Thanks to GtkAda it can be built with a GUI.
> It can be built without of course.

Do you mix data acquisition and distribution middleware with the GUI? That
is not a good idea, generally. It is better to keep them separate. Which is
a serious architectural problem how to communicate between the middleware
dealing with the hardware, providing publisher-subscriber services and
various clients. GUI is only one of them. Inter-process communication, DLLs
are all system-dependent. No solution is scalable and portable, meets
real-time requirements. It is a very difficult problem to resolve.
 
> It works rather nicely but it would be fantastic if some experienced
> person would review the code and give me some feedback on the design, the
> bindings, the code quality... I'm a lonely Ada programmer, and I miss
> feedback.
> 
> Of course, I am interested in any collaboration around this matter.
> So, do not hesitate to get in touch when you have some real case.

We do the same stuff, but it is a commercial product. So I cannot do that
on ethical and contractual grounds, sorry.
 
-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de


  reply	other threads:[~2014-11-06 13:31 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-11-06 11:14 Ada for Automation slos
2014-11-06 13:31 ` Dmitry A. Kazakov [this message]
2014-11-06 14:43   ` slos
2014-11-06 17:22     ` Dmitry A. Kazakov
2014-11-06 21:58       ` slos
2014-11-07  8:29         ` Dmitry A. Kazakov
2014-11-07  9:51           ` slos
2014-11-07 13:44             ` Dmitry A. Kazakov
2014-11-07 15:23               ` slos
2014-11-07 17:16                 ` Dmitry A. Kazakov
2014-11-07 20:37                   ` slos
2014-11-07 21:15                     ` Dmitry A. Kazakov
2014-11-07 22:21                       ` slos
2014-11-07 11:44           ` slos
2014-11-07 13:46             ` Dmitry A. Kazakov
2014-11-18  8:52 ` Björn Lundin
2014-11-18  9:28   ` Dmitry A. Kazakov
2014-11-18 10:43     ` Björn Lundin
2014-11-18 11:03       ` Dmitry A. Kazakov
2014-11-18 12:27         ` Björn Lundin
2014-11-18 13:24           ` Dmitry A. Kazakov
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox