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: beckhoff-linux@googlegroups.com 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