{"id":40087908,"url":"https://github.com/simatic-ax/lcamhdl","last_synced_at":"2026-04-27T08:02:02.413Z","repository":{"id":307128640,"uuid":"1027546250","full_name":"simatic-ax/lcamhdl","owner":"simatic-ax","description":"Library provides functionality for creating cam disks at runtime in SIMATIC AX applications","archived":false,"fork":false,"pushed_at":"2026-04-09T13:47:43.000Z","size":190,"stargazers_count":2,"open_issues_count":6,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-09T15:24:29.199Z","etag":null,"topics":["iec-st","library","motioncontrol-apc-applications","siemens","simatic-ax"],"latest_commit_sha":null,"homepage":"","language":null,"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/simatic-ax.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":"CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-07-28T07:10:34.000Z","updated_at":"2026-03-04T09:41:06.000Z","dependencies_parsed_at":"2025-07-29T17:17:41.205Z","dependency_job_id":"f3583b52-0707-4de8-b2ba-fdd489fba416","html_url":"https://github.com/simatic-ax/lcamhdl","commit_stats":null,"previous_names":["simatic-ax/lcamhdl"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/simatic-ax/lcamhdl","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simatic-ax%2Flcamhdl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simatic-ax%2Flcamhdl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simatic-ax%2Flcamhdl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simatic-ax%2Flcamhdl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/simatic-ax","download_url":"https://codeload.github.com/simatic-ax/lcamhdl/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simatic-ax%2Flcamhdl/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32327701,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-26T23:26:28.701Z","status":"online","status_checked_at":"2026-04-27T02:00:06.769Z","response_time":128,"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":["iec-st","library","motioncontrol-apc-applications","siemens","simatic-ax"],"created_at":"2026-01-19T10:00:30.177Z","updated_at":"2026-04-27T08:01:57.392Z","avatar_url":"https://github.com/simatic-ax.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# LCamHdl Library for SIMATIC AX\n\n## Overview\n\nThe LCamHdl library provides functionality for creating cam disks at runtime in SIMATIC AX applications.\n\nCam disks are used in motion control applications to define the relationship between a leading axis (master) and a following axis (slave). The library provides various methods to create and analyze cam profiles with different mathematical approaches.\n\nThe library is a direct conversion of the functionally identical library [LCamHdl](https://support.industry.siemens.com/cs/ww/en/view/105644659) for use inside the TIA Portal\n\n## Key Features\n\n- Create cam profiles based on XY points\n- Create basic cam profiles with polynomial segments\n- Create advanced cam profiles with various mathematical functions:\n  - Sine\n  - Inverse sine\n  - Double harmonic\n  - Polynomial\n- Support for both standard `TO_Cam` profiles and `TO_Cam_10k` profiles\n- Analyze cam profiles for:\n  - Min/max following values\n  - Maximum slave dynamics\n  - Maximum master velocity\n  - Status information\n\n## Requirements\n\n- SIMATIC AX\n- S7-1500T CPU with firmware version 2.9 or higher\n\n## Installation\n\nInstall with Apax:\n\n```cli\napax add @simatic-ax/lcamhdl\n```\n\n## Namespace\n\n```cli\nSimatic.Ax.LCamHdl;\n```\n\n## Documentation\n\nComprehensive documentation is available in the [docs](./docs) directory:\n\n## Example\n\n```iec-st\nUSING Simatic.Ax.LCamHdl;\nUSING Siemens.Simatic.S71500.MotionControl.Native;\n\nPROGRAM MainProgram\nVAR\n    camProfile : ARRAY[1..5] OF LCamHdl_typeBasicPoint;\n    cam : REF_TO TO_Cam;\n    createCamBasic : LCamHdl_CreateCamBasic;\n    execute : BOOL;\nEND_VAR\n\n// Initialize cam profile points\ncamProfile[1].leadingValue := 0.0;\ncamProfile[1].followingValue := 0.0;\ncamProfile[1].velocityRatio := 0.0;\ncamProfile[1].accelerationRatio := 0.0;\n\ncamProfile[2].leadingValue := 0.25;\ncamProfile[2].followingValue := 0.5;\ncamProfile[2].velocityRatio := 2.0;\ncamProfile[2].accelerationRatio := 0.0;\n\ncamProfile[3].leadingValue := 0.5;\ncamProfile[3].followingValue := 1.0;\ncamProfile[3].velocityRatio := 0.0;\ncamProfile[3].accelerationRatio := -8.0;\n\ncamProfile[4].leadingValue := 0.75;\ncamProfile[4].followingValue := 0.5;\ncamProfile[4].velocityRatio := -2.0;\ncamProfile[4].accelerationRatio := 0.0;\n\ncamProfile[5].leadingValue := 1.0;\ncamProfile[5].followingValue := 0.0;\ncamProfile[5].velocityRatio := 0.0;\ncamProfile[5].accelerationRatio := 0.0;\n\n// Create cam profile\ncreateCamBasic(\n    execute := execute,\n    numberOfPoints := 5,\n    camProfile := camProfile,\n    cam := cam^\n);\n\n// Check results\nIF createCamBasic.done THEN\n    ;// Cam profile created successfully\nELSIF createCamBasic.error THEN\n    ;// Error occurred, check status and diagnostics\nEND_IF;\nEND_PROGRAM\n```\n\n## Contribution\n\nThanks for your interest in contributing. Anybody is free to report bugs, unclear documentation, and other problems regarding this repository in the Issues section\n\n## License and Legal information\n\nPlease read the [Legal information](./LICENSE.md)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsimatic-ax%2Flcamhdl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsimatic-ax%2Flcamhdl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsimatic-ax%2Flcamhdl/lists"}