{"id":50532887,"url":"https://github.com/moqui/moqui-plc4j","last_synced_at":"2026-06-03T15:01:47.365Z","repository":{"id":357769807,"uuid":"1216246099","full_name":"moqui/moqui-plc4j","owner":"moqui","description":"Moqui tool component for Apache PLC4J allows you to communicate directly with your industrial hardware (PLC, PAC, Soft PLC, drives, servo drives, etc...) directly with Moqui","archived":false,"fork":false,"pushed_at":"2026-05-30T12:50:08.000Z","size":36,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-30T14:16:53.662Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Groovy","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/moqui.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS","dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-04-20T18:02:54.000Z","updated_at":"2026-05-30T12:50:12.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/moqui/moqui-plc4j","commit_stats":null,"previous_names":["moqui/moqui-plc4j"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/moqui/moqui-plc4j","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moqui%2Fmoqui-plc4j","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moqui%2Fmoqui-plc4j/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moqui%2Fmoqui-plc4j/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moqui%2Fmoqui-plc4j/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/moqui","download_url":"https://codeload.github.com/moqui/moqui-plc4j/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moqui%2Fmoqui-plc4j/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33870026,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-03T02:00:06.370Z","response_time":59,"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":[],"created_at":"2026-06-03T15:01:46.450Z","updated_at":"2026-06-03T15:01:47.358Z","avatar_url":"https://github.com/moqui.png","language":"Groovy","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Moqui Apache PLC4J Tool Component\n\nMoqui tool component for Apache PLC4J allows you to communicate directly with your industrial hardware (PLC, PAC, Soft PLC, drives, servo drives, etc...), without having to retrofit it.\n\nThis is possible, as PLC4J implements drivers for the most common industrial communication protocols and uses these to access industrial hardware using a shared API.\n\nThis component implements the `moqui.device.DeviceServices.run#DeviceRequestInternal` interface defined by **moqui-device**, providing fieldbus connectivity via Apache PLC4X for Read, Write, Subscribe, and Unsubscribe device requests. Set `runServiceName=\"moqui.plc4j.Plc4jServices.run#Plc4jRequest\"` on a `DeviceRequest` to route it through this driver.\n\nTo install run (with moqui-framework):\n\n    $ ./gradlew getComponent -Pcomponent=moqui-plc4j\n\nThis will add the component to the Moqui runtime/component directory.\n\n## Error handling\n\nCommunication failures (timeouts, driver exceptions, non-OK tag response codes) are propagated as\nMoqui service errors for all device requests **except** those with `purposeEnumId=\"DrpLogging\"`.\nLogging/telemetry requests catch every exception, write a log entry, and continue so that telemetry data collection never blocks the calling thread.\n\n## Integration tests\n\nThe test suite requires **ModbusPal2** (headless Modbus TCP simulator, referenced in the\n[official PLC4X documentation](https://plc4x.apache.org/plc4x/latest/users/getting-started/virtual-modbus.html)).\nPlace `ModbusPal2-*.jar` in `runtime/lib/ModbusPal.jar` before running the tests.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmoqui%2Fmoqui-plc4j","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmoqui%2Fmoqui-plc4j","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmoqui%2Fmoqui-plc4j/lists"}