forked from lbruder/JAdsConnector
-
Notifications
You must be signed in to change notification settings - Fork 0
ThijsMaenhout/JAdsConnector
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Copyright (c) 2011-2012, Leif Bruder <leifbruder@googlemail.com> Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. Beckhoff PLC driver for Java 0.1 ================================ This package provides a simple way to access Beckhoff PLCs via the AMS/ADS protocol from pure Java. Variables on the PLC can be read and written, and notifications can be used to have the PLC inform the Java program of changes asynchronously. Symbol information is read from a TPY file as provided by the Beckhoff system. This code is by no means complete. It started as an experiment, when I had to create a similar library for my employer, but could not implement some of the ideas I had in mind. This stuff was written in my spare time and has NO connection to the code I wrote at work -- this is a Pure-Java project, whereas the code written for my employer was a Scheme library. Having read "Clean Code" a while ago, I wanted to try some of the principles detailed there, and this code base is my playground. Still trying to get into the Test First mentality... This code is based on the freely accessible Beckhoff Information System only. I go to great lengths to keep it free from any commercial claims, especially by my employer. I don't have a Beckhoff PLC or a Windows PC for that matter, so I can NOT test the code, as testing at work would make it my employer's property. So I have to rely on unit tests at the moment. Do not except this code to work 100% correctly. Help wanted ================================ What I could use at this point: - TPY files provided without copyright or IP claims - Beta testers! - Ideas for additional functionality :) Please keep in mind that I want to keep this project under the ISC license, so I can not accept anything with a questionable IP background. TODO for version 0.2 ================================ - Complete Toolbox tests, esp. double/float conversion (see TestToolbox.java) - Unit tests in general - Support ENUM data type in TPY files, map to integer - Implement notification handling => First version that is actually useful TODO for version 0.3 ================================ - Add support for two-dimensional arrays - Read/Write multiple variables with a single AMS roundtrip - Notifications on variable blocks (= multiple variables observed with a single notification) TODO for version 0.4 ================================ - Retrieve TPY file from FTP server on the PLC - TPY watchdog: TPY file matches project? If not, disconnect immediately to prevent damage due to writing to wrong addresses - Connection watchdog to re-open connections if broken TODO for version 0.5 ================================ - Respect word aligning on BX... systems, endianness for REAL values etc. TODO for version 1.0 ================================ - Find someone and/or a PLC to test the system without IP attached - Test, test, test. - Fix bugs.
About
ADS access library for Beckhoff PLCs
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published
Languages
- Java 100.0%