{"id":22753795,"url":"https://github.com/slac-epics/ek9000","last_synced_at":"2025-04-13T00:44:02.211Z","repository":{"id":40745896,"uuid":"209598744","full_name":"slac-epics/ek9000","owner":"slac-epics","description":"EPICS support for the Beckhoff EK9000 bus coupler","archived":false,"fork":false,"pushed_at":"2025-04-03T05:36:20.000Z","size":32040,"stargazers_count":2,"open_issues_count":9,"forks_count":7,"subscribers_count":6,"default_branch":"main","last_synced_at":"2025-04-13T00:43:52.652Z","etag":null,"topics":["epics","epics-controls"],"latest_commit_sha":null,"homepage":"https://github.com/slaclab/epics-ek9000/wiki/Manual","language":"C++","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/slac-epics.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":"SupportedDevices.md","governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-09-19T16:20:17.000Z","updated_at":"2025-03-28T23:47:03.000Z","dependencies_parsed_at":"2024-01-16T20:02:57.511Z","dependency_job_id":"413e22ae-7e20-4e87-929a-0f43358f9981","html_url":"https://github.com/slac-epics/ek9000","commit_stats":null,"previous_names":["slac-epics/ek9000","slaclab/epics-ek9000"],"tags_count":31,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/slac-epics%2Fek9000","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/slac-epics%2Fek9000/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/slac-epics%2Fek9000/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/slac-epics%2Fek9000/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/slac-epics","download_url":"https://codeload.github.com/slac-epics/ek9000/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248650419,"owners_count":21139672,"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","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":["epics","epics-controls"],"created_at":"2024-12-11T06:13:10.670Z","updated_at":"2025-04-13T00:44:02.205Z","avatar_url":"https://github.com/slac-epics.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# EPICS Support For Beckhoff EK9000\n\nThis is a device support module for the EK9000, which couples EtherCAT terminals (specifically the ELXXXX terminals from Beckhoff) to a modbus network.\nBecause it uses modbus, it's runnable on any IOC without needing a kernel module or other support software.\n\n[Documentation](https://github.com/slaclab/epics-ek9000/wiki/Manual)\n\n[DOE Code](https://www.osti.gov/doecode/biblio/75566)\n\n[doi:10.11578/dc.20220707.2](https://doi.org/10.11578/dc.20220707.2)\n\n## Dependencies\n\n* [modbus](https://github.com/epics-modules/modbus) R3-0 or later\n* [asyn](https://github.com/epics-modules/asyn) (R4-36 is recommended for modbus R3-0, but earlier versions may work)\n\n## Building\n\nC++11 is **required** as of R1.7.4\n\nBuild like any other EPICS module:\n```\nmake\n```\n\n## Contributing\n\nIf you've found an issue, you can open an issue on this repository and I'll hopefully be able to resolve it fairly quickly.\n\nIf you'd like to contribute to this, you can open a pull request with changes, and I'll hopefully get back to you as soon as possible.\n\nIf you have any questions or comments about the module, you can reach me at jeremy.lorelli.1337@gmail.com\n\n## Known Issues\n\nThe EK9000 doesn't really make figuring out a register map easy, so please keep these things in mind:\n\n* If you install an unsupported terminal, the device support module may fail to correctly determine the register map, resulting in weirdness and stuff.\n* If you place an unsupported analog ONLY terminal AFTER all other slaves on the EK9000, the register map will be correct. This is because the device maps all analog terminals in order of their position on the rail. Digital terminals are mapped to coils, and therefore, not affected by weirdness in the holding/input register space.\n* If you place an unsupported digital ONLY terminal AFTER all other slaves on the EK9000, the register map will also be correct.\n* If you change the Pdo mapping for analog input terminals to something other than standard, the analog IO AND register mapping will not work correctly.\nTo recap:\n* Only supported terminals (EL10XX, EL11XX, EL20XX, EL30XX, EL31XX, EL40XX) should be placed on the rail first. Unsupported terminals can be placed after the ones you are trying to access through EPICS.\n* Analog input Pdo mapping should ALWAYS be standard, or else the module will not work.\n\n## Supported Terminals\n\nSee [SupportedDevices.md](SupportedDevices.md) for an auto-generated list of\nthe supported terminals.\n\nAt least some of the following terminal families are supported:\n\n* EL10XX (EL1004, etc.)\n* EL11XX (EL1124, etc.)\n* EL20XX (EL2008, etc.)\n* EL21XX\n* EL30XX (EL3064, etc.)\n* EL31XX (EL3174, etc.)\n* EL40XX (EL4004, etc.)\n* EL41XX (EL4104, etc.)\n\nAny other terminals are not generally supported, but a few exceptions exist.\nSupport for motor terminals (EL70XX) is currently being developed.\n\n## Copyright Notice:\n\nCOPYRIGHT © SLAC National Accelerator Laboratory. All rights reserved. This work is supported [in part] by the U.S. Department of Energy, Office of Basic Energy Sciences under contract DE-AC02-76SF00515.\n\n## Usage Restrictions:\n\nNeither the name of the Leland Stanford Junior University, SLAC National Accelerator Laboratory, U.S. Department of Energy nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fslac-epics%2Fek9000","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fslac-epics%2Fek9000","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fslac-epics%2Fek9000/lists"}