{"id":13743893,"url":"https://github.com/thiagoralves/OpenPLC_v3","last_synced_at":"2025-05-09T02:32:00.313Z","repository":{"id":40210212,"uuid":"137387519","full_name":"thiagoralves/OpenPLC_v3","owner":"thiagoralves","description":"OpenPLC Runtime version 3","archived":false,"fork":false,"pushed_at":"2025-03-31T15:36:27.000Z","size":22073,"stargazers_count":1224,"open_issues_count":46,"forks_count":493,"subscribers_count":82,"default_branch":"master","last_synced_at":"2025-04-12T13:51:37.486Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/thiagoralves.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2018-06-14T17:15:49.000Z","updated_at":"2025-04-11T14:43:35.000Z","dependencies_parsed_at":"2023-02-14T19:16:37.747Z","dependency_job_id":"6a11e93b-b790-44ae-8f97-52a15f4b3b48","html_url":"https://github.com/thiagoralves/OpenPLC_v3","commit_stats":{"total_commits":328,"total_committers":35,"mean_commits":9.371428571428572,"dds":0.524390243902439,"last_synced_commit":"091524e1d80120cbe6b2c130822e91369f12eccd"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thiagoralves%2FOpenPLC_v3","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thiagoralves%2FOpenPLC_v3/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thiagoralves%2FOpenPLC_v3/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thiagoralves%2FOpenPLC_v3/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/thiagoralves","download_url":"https://codeload.github.com/thiagoralves/OpenPLC_v3/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253177764,"owners_count":21866395,"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":[],"created_at":"2024-08-03T05:00:59.123Z","updated_at":"2025-05-09T02:32:00.305Z","avatar_url":"https://github.com/thiagoralves.png","language":"C++","funding_links":[],"categories":["C++","Verification Frameworks"],"sub_categories":[],"readme":"# OpenPLC Runtime version 3\n\n[![Build Status](https://travis-ci.org/thiagoralves/OpenPLC_v3.svg?branch=master)](https://travis-ci.org/thiagoralves/OpenPLC_v3)\n[![Build status](https://ci.appveyor.com/api/projects/status/ut3466ixwtyf68qg?svg=true)](https://ci.appveyor.com/project/shrmrf/openplc-v3)\n\nOpenPLC is an open-source [Programmable Logic Controller](https://en.wikipedia.org/wiki/Programmable_logic_controller) that is based on easy to use software. Our focus is to provide a low cost industrial solution for automation and research. OpenPLC has been used in [many research papers](https://scholar.google.com/scholar?as_ylo=2014\u0026q=openplc\u0026hl=en\u0026as_sdt=0,1) as a framework for industrial cyber security research, given that it is the only controller to provide the entire source code.\nThe OpenPLC Project consists of two sub-projects:\n1. [Runtime](https://github.com/thiagoralves/OpenPLC_v3)\n2. [Programming editor](https://openplcproject.com/docs/installing-openplc-editor/)\n\n\n## Installation:\n```bash\ngit clone https://github.com/thiagoralves/OpenPLC_v3.git\ncd OpenPLC_v3\n./install.sh [platform]\n```\n\nWhere `[platform]` can be:\n\n`win` - Install OpenPLC on Windows over Cygwin\n\n`linux` - Install OpenPLC on a supported Linux distribution, currently Debian-based, Fedora-based, Opensuse and Alpine Linux is supported.\n\n`docker` - Used by the `Dockerfile` (i.e. doesn't invoke `sudo`)\n\n`rpi` - Install OpenPLC on a Raspberry Pi\n\n`custom` - Skip all specific package installation and tries to install OpenPLC assuming your system already has all dependencies met. This option can be useful if you're trying to install OpenPLC on an unsuported Linux platform or had manually installed all the dependency packages before.\n\n### Building, Installing and Running inside Docker\nWhen using Ubuntu: make sure [`docker for Ubuntu` is installed](https://docs.docker.com/install/linux/docker-ce/ubuntu/)\n\nWhen using Linux Mint 21: make sure [`docker for Linux Mint 21` is installed](https://computingforgeeks.com/install-docker-docker-compose-on-linux-mint/)\n\n#### Build\n```\n# instead of running install.sh as stated above, run:\ndocker build -t openplc:v3 .\n```\n\n#### RUN\n_Devices can be passed to the `docker` daemon using the `-v` flag (e.g. `-v /dev/ttyACM0:/dev/ttyACM0`)_\n\n```bash\ndocker run -it --rm --privileged -p 8080:8080 openplc:v3\n```\n\n### EtherCAT capability\nTo build with EtherCAT capability try `./install.sh linux ethercat` for more information see `utils/ethercat_src`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthiagoralves%2FOpenPLC_v3","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthiagoralves%2FOpenPLC_v3","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthiagoralves%2FOpenPLC_v3/lists"}