libads
libads copied to clipboard
Implementation of BECKHOFF's ADS protocol.
libAds :: IMPLEMENTATION OF BECKHOFF'S ADS PROTOCOL
libads's purpose is to provide a way to comunicate with the Beckhoff's Automation modules. They comunicate via TCP/IP packets, using an open[1] specification format: ADS.[2]
ADS stands for "Automation Device Specification".
This is a library that was started by Thomas Hergenhahn, as part of Visual[3].
BUILD
clone the git repository present in github: https://github.com/gass/libads build with: autoreconf -i -s ./configure make make install
if you want to activate debug, please use: ./configure CFLAGS='-DADSDebug=ADSDebugAll' or some more selective debug: ADSDebugOpen ADSDebugPacket ADSDebugByte ADSDebugAnalyze ADSDebugPrintErrors
by default debug is: ADSDebugNone
To make a full test, it should be configured with: ./configure CFLAGS='-DADSDebug=ADSDebugAll -Wall -Werror'
TESTS AND EXAMPLES
There are a few test cases in the test directory. In the examples directory there is a working ADS server: ADSserver. Must be called: ./ADSserver 48898 48898
The client is AdsClient: ./AdsClient
It connects to it self, so the server must be running.
CONTACT AND DISCUSSION
You can contact the authors, but it is preferred to use the general mailling list: List email address: [email protected] Lista archive: http://groups.google.com/group/beckhoff-linux
WHAT IS LIBADS
LibAds is a 2 layer library:
- a low level api
- a higher level api, compatible with the oficial Beckhoff's Api[4]
LibAds is distributed under LGPLv3.
STATE OF LIBADS
the ADS protocol is implemented, as client, by 2 components:
- A router (ADS router)
- client API (oficial api)
The router is a daemon (in windows is a service) that manages conections to the ADS servers. This router is accessed by the AdsAPI.
Currently, libads does not have a router, so the api it self manages (badly) the connections. The best approach is to use the lower level api.
FUTURE
Further development is needed to do 3 things:
- finnish the support of the official Ads API.
- review the code (that is a mess) and implement a better logging and error management.
- develop an Ads Router
All all functions, except the notification, where tested with a Beckhoff BC9000.
[1] "Open" as in "They provide the specification" [2] http://www.beckhoff.com/download/Document/Software/TwinCAT/1033/TcAdsCommon.pdf [3] http://sourceforge.net/projects/visual [4] http://www.beckhoff.com/download/Document/Software/TwinCAT/1033/TcAdsDll.pdf