{"id":34568212,"url":"https://github.com/libplctag/libplctag4j","last_synced_at":"2025-12-24T09:12:41.285Z","repository":{"id":44750951,"uuid":"265856440","full_name":"libplctag/libplctag4j","owner":"libplctag","description":"Java wrapper for libplctag","archived":false,"fork":false,"pushed_at":"2022-01-27T02:10:28.000Z","size":1059,"stargazers_count":9,"open_issues_count":3,"forks_count":4,"subscribers_count":3,"default_branch":"release","last_synced_at":"2024-03-26T13:53:55.954Z","etag":null,"topics":["allen-bradley","controllogix","ethernet","java","micrologix","modbus","plc"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/libplctag.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE-1.MPL","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-05-21T13:31:46.000Z","updated_at":"2023-10-07T22:13:56.000Z","dependencies_parsed_at":"2022-09-23T11:51:36.440Z","dependency_job_id":null,"html_url":"https://github.com/libplctag/libplctag4j","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/libplctag/libplctag4j","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/libplctag%2Flibplctag4j","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/libplctag%2Flibplctag4j/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/libplctag%2Flibplctag4j/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/libplctag%2Flibplctag4j/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/libplctag","download_url":"https://codeload.github.com/libplctag/libplctag4j/tar.gz/refs/heads/release","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/libplctag%2Flibplctag4j/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":27999527,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-12-24T02:00:07.193Z","response_time":83,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["allen-bradley","controllogix","ethernet","java","micrologix","modbus","plc"],"created_at":"2025-12-24T09:12:40.667Z","updated_at":"2025-12-24T09:12:41.276Z","avatar_url":"https://github.com/libplctag.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# libplctag4j\n\n- [libplctag4j](#libplctag4j)\n  - [PLC Access Library for Java](#plc-access-library-for-java)\n  - [Dependencies](#dependencies)\n  - [Contact and Support](#contact-and-support)\n    - [libplctag Forum](#libplctag-forum)\n    - [GitHub](#github)\n  - [How to Use libplctag4j](#how-to-use-libplctag4j)\n    - [Build it Yourself](#build-it-yourself)\n  - [Tier 1 Platforms](#tier-1-platforms)\n  - [Tier 2 Platforms](#tier-2-platforms)\n  - [Android](#android)\n  - [License](#license)\n  - [TODO](#todo)\n\nJava wrapper for [libplctag](https://github.com/libplctag/libplctag).\n\n## PLC Access Library for Java\n\nThis library is a single JAR including all the needed parts to communicate with Allen-Bradley and some Modbus PLCs.   It uses the C-based project [libplctag](https://github.com/libplctag/libplctag) for the underlying protocol emulation.\n\n## Dependencies\n\nNone if you use a [Tier 1 platforms](#tier-1-platforms)!  The full JAR library includes all needed Java classes and includes backup copies of the native C libraries for the major Tier 1 platforms below.  Just drop it in your project and start building your application.\n\nIf you want to include the only the minimum, there is a second JAR file with just the classes for Tag.java and its inner classes built by the Gradle build.\n\n## Contact and Support\n\nThere are two ways to ask for help or contact us.\n\n### libplctag Forum\n\nIf you have general questions or comments about the\nlibrary, its use, or about one of the wrapper libraries, please join the Google group\n[libplctag](https://groups.google.com/forum/#!forum/libplctag)!\n\nThe forum is open to all, but is by request only to keep the spammers down.  The traffic is fairly\nlight with usually a small number of emails per month.  It is our primary means for users to\nask questions and for discussions to happen.   Announcements about releases happen on the forum.\n\n### GitHub\n\nIf you find bugs or need specific features, please file them on GitHub's issue tracker for\nthis project.\n\n## How to Use libplctag4j\n\nYou can either take one of the releases from GitHub, unpack the ZIP file, and use the JAR files directly, or you can build it all yourself.   See the section below about Android for more information on how to use the library there.\n\nThere are two JAR files.  The main one includes all of JNA and all the binaries required to use the library on the all the Tier 1 platforms except Android.   The JAR `libplctag_min_*.jar` includes only the minimum class files required.\n\n### Build it Yourself\n\nIf you want to build the entire Java library yourself, you will need Git, Gradle 6+, the JDK of at least version 8, and an Internet connection for the first build.  Gradle will load everything you need.  Once all the dependencies are loaded, you can drop the Internet connection.\n\nFor Intel/AMD-based Windows, Linux or macOS:\n\n1. Install Git, JDK 8+ and Gradle for your OS platform.\n2. Checkout the source with Git: `git clone https://github.com/libplctag/libplctag4j`\n3. In a command line window enter the directory/folder in which you checked out the project.\n4. Run `gradle -b build-jar.gradle clean shadowJar`\n5. You will find the JAR files in `build/libs`.\n\nYou can use an IDE such as IntelliJ, Eclipse or Visual Studio Code.  All of these either natively handle the Gradle build files or have plugins that will support Gradle.  Note the non-standard Gradle command above.  You may need to edit the IDE configuration to support that directly.  I build on the command line for simplicity.\n\n## Tier 1 Platforms\n\nThis library has full support for the following platforms:\n\n- Linux x86 and x64, Ubuntu/Debian\n- Microsoft Windows 10 x86 and x64\n- Apple macOS x64\n- [Android](https://github.com/libplctag/libplctag4android)\n\nThe C library will build on many of the platforms on which Java is available so support for other operating systems and CPUs is possible but not directly part of this library.  See the section on [Tier 2 Platforms](#tier-2-platforms).   Patches and help gladly accepted!\n\nNote that using the library on Android is a more complicated process.  To make it easier, there is an example project for [Android](https://github.com/libplctag/libplctag4android) contributed by @GitHubDragonFly.\n\n## Tier 2 Platforms\n\nTier 2 platforms are those on which the core library will build and Java and JNA are supported.  An example is the RaspberryPI series of small computers.  Any platform that supports either the Windows socket APIs or the POSIX networking and threading APIs will likely support the library, though perhaps with some effort.\n\nFor these platforms:\n\n- Build the C library first and install it.\n- Install the JDK for your platform, at least version 8.\n- Install JNA for your platform.\n- Use the minimal JAR file with only the Tag classes.\n\nIf you want to build the JAR files on your Tier 2 platform, you will also need to install Gradle.\n\n## Android\n\nThere is another project in the libplctag organization for Android thanks to user @GitHubDragonFly.   Please see the [libplctag4android](https://github.com/libplctag/libplctag4android) project for a minimal example Android application.   This example shows how to include libplctag into your projects.\n\n## License\n\nThis code is released under the same dual MPL (Mozilla Public License) 2.0/LGPL (Lesser/Library GNU Public License) 2+ license as the C library.  See the license files for more information.\n\n## TODO\n\nThere are a few things left to do before this can be considered version 1.0.\n\n- [x] Set up multiple JAR build.\n- [ ] Create stand-alone Java examples.\n- [ ] Export to Maven Central and/or JCentral.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flibplctag%2Flibplctag4j","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flibplctag%2Flibplctag4j","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flibplctag%2Flibplctag4j/lists"}