{"id":16991034,"url":"https://github.com/otti/espadslib","last_synced_at":"2025-04-12T04:12:58.946Z","repository":{"id":67318052,"uuid":"537054215","full_name":"otti/EspAdsLib","owner":"otti","description":"Simple Beckhoff ADS communication for ESP","archived":false,"fork":false,"pushed_at":"2024-12-31T19:09:28.000Z","size":242,"stargazers_count":10,"open_issues_count":3,"forks_count":3,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-04-12T04:12:53.923Z","etag":null,"topics":["ads","arduino","beckhoff","esp","esp32","library","twincat"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/otti.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2022-09-15T14:03:05.000Z","updated_at":"2025-03-11T19:30:43.000Z","dependencies_parsed_at":"2023-06-10T20:00:25.239Z","dependency_job_id":null,"html_url":"https://github.com/otti/EspAdsLib","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/otti%2FEspAdsLib","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/otti%2FEspAdsLib/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/otti%2FEspAdsLib/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/otti%2FEspAdsLib/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/otti","download_url":"https://codeload.github.com/otti/EspAdsLib/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248514205,"owners_count":21116903,"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":["ads","arduino","beckhoff","esp","esp32","library","twincat"],"created_at":"2024-10-14T03:24:37.759Z","updated_at":"2025-04-12T04:12:58.924Z","avatar_url":"https://github.com/otti.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Simple ESP library for Beckhoff ADS\r\n\r\n## Features\r\n* Base functions\r\n  * Ads Read\r\n  * Ads Write\r\n  * Ads ReadWrite\r\n* Convenience functions which are based on the functions above\r\n  * Ads WritePlcVarByName\r\n  * Ads ReadPlcVarByName\r\n  * Ads ReadCoe (with and without complete access)\r\n  * Ads WriteCoe (with and without complete access)\r\n\r\n## How to install\r\nDownload this repository as zip file and import it to the Arduino libraries.  \r\n(Sketch -\u003e Include Library -\u003e Add .ZIP Library)\r\n\r\n## Usage\r\n* Set WiFi SSID and password in the example .ino file\r\n* Set the SrcAmsAddr to the IP address of your ESP followed by `1.1`.  \r\n* In the TwinCAT \"Add Route Dialog\" of the target machine you have to add the IP of this ESP.\r\nMake sure, that you have set the \"Remote Route\" to \"None\"\r\n\u003cimg src=\"https://github.com/otti/EspAdsLib/blob/main/pics/AddRoute.png\" width=\"500\"\u003e  \r\n\r\n### Writing CoE Values\r\nSet the DestAmsAddr and the port in the code to the AmsAddr of the slave you want to access.\r\n\u003cimg src=\"https://github.com/otti/EspAdsLib/blob/main/pics/AmsNetId_CoE.png\" width=\"450\"\u003e  \r\n\r\n### Writing PLC variables\r\nSet the DestAmsAddr in the code to the AmsAddr of the target. This usually ends with `.1.1`\r\n\u003cimg src=\"https://github.com/otti/EspAdsLib/blob/main/pics/AmsNetId_Target.png\" width=\"450\"\u003e  \r\nSet the port to the port of your PLC. The first PLC usually has port 851 on TwinCAT3 and 801 on TwinCAT2.\r\nThe port is also available as define. (`AMSPORT_R0_PLC_TC3`)\r\n\r\n## Limitations\r\nTo save some memory, the lib can read and write a maximum ammount auf 64 bytes. \r\nThis value can be increased by overwriting the `#define ADS_MAX_DATA_SIZE` in ads.h\r\n\r\n## Current status/To Do\r\n* The Lib is tested insufficiently\r\n* Should work with ESP8266, but not tested\r\n* The ADS Read, Write and ReadWrite function are mostly identical. With some affort this three functions can share the same code.\r\n\r\n## Debugging\r\n* For some debug outputs on the serial console set `#define ADS_DEBUG_PRINT_ENABLE = 1`\r\n* DebugPrintHex() can be used to print a hex dump in a format like a hex editor\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fotti%2Fespadslib","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fotti%2Fespadslib","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fotti%2Fespadslib/lists"}