Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[pull] master from thiagoralves:master #1

Merged
merged 229 commits into from
Dec 11, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
229 commits
Select commit Hold shift + click to select a range
a7ba2d3
Fixed long sleep, over 1s.
lhartmann Sep 12, 2021
16d77d2
Fix for long delays (over 1<<32 nsec).
lhartmann Sep 12, 2021
c54d10a
Added support for Fedora
thiagoralves Sep 28, 2022
7ade9ad
Fedora fix
thiagoralves Sep 28, 2022
0675f84
Merge branch 'thiagoralves:master' into long_long_sleep
lhartmann Oct 13, 2022
fb839cc
For now, use pymodbus 2.5.3.
thiagoralves Oct 18, 2022
80c17aa
Update README.md
Jeffmackinnon Oct 21, 2022
99a0de0
Merge pull request #182 from Jeffmackinnon/patch-1
thiagoralves Oct 21, 2022
0503195
Merge pull request #181 from lhartmann/long_long_sleep
thiagoralves Nov 2, 2022
d335c87
inconsistent indetation fixed
Nov 11, 2022
b159874
more inconsistent whitespace
Nov 11, 2022
f8fa47f
Merge pull request #184 from r2k-in-the-vortex/fixes
thiagoralves Nov 11, 2022
a705a8a
ignore CMakeFiles
Nov 11, 2022
0c0c642
Initial support for TCP comms blocks
thiagoralves Nov 11, 2022
96e36a3
Support for TCP comm blocks on Runtime
thiagoralves Nov 11, 2022
75be134
Checks and initializes default database if needed
Nov 11, 2022
ebc8ca9
added hook for ethercat configure
Nov 11, 2022
a507590
include ethercat erc
Nov 12, 2022
edb5516
ethercat install and ldconfig
Nov 12, 2022
85ed4f0
ethercat_callcyclic
Nov 12, 2022
b021107
ethercat_src added to fixes
Nov 12, 2022
f182c8d
mkdir -p
Nov 12, 2022
b9de85b
build fixes
Nov 12, 2022
537c39e
fix
Nov 12, 2022
c66b467
fix
Nov 12, 2022
c8f003b
Ethercat doing a thing
Nov 12, 2022
757d934
callbacks instead
Nov 13, 2022
df84946
Merge pull request #1 from r2k-in-the-vortex/ethercat_dev
r2k-in-the-vortex Nov 13, 2022
76d3ba5
log ethercat status
Nov 13, 2022
314c901
ff
Nov 13, 2022
1116acc
ethercat cleanup
Nov 19, 2022
f0ffc80
moved ethercat cofig out of source dir
Nov 19, 2022
bc0cd00
ethercat error msg in install
Nov 19, 2022
4628cb4
a way to access extra functionality of ethercat master for PLC
Nov 20, 2022
64bb6ca
wrong place
Nov 20, 2022
8b3c164
added raw TCP/IP lib on MatIEC
thiagoralves Nov 22, 2022
0efb47c
Added raw TCP/IP on matIEC text libs
thiagoralves Nov 22, 2022
75bb008
ff
Dec 1, 2022
b7475d3
ethercat install options added
Dec 1, 2022
dc18d46
Merge pull request #2 from thiagoralves/master
r2k-in-the-vortex Dec 1, 2022
1775c5a
ff ethercat source, make a note in readme
Dec 1, 2022
ad80a50
Fix compilation errors on Cygwin
thiagoralves Dec 5, 2022
d7fa92b
Merge pull request #186 from r2k-in-the-vortex/master
thiagoralves Dec 5, 2022
b7a354a
Add docker link for Linux Mint21
GeVanCo Jan 3, 2023
1473975
.gitignore: add autogenerated file exclusion
GeVanCo Jan 3, 2023
99e7ffa
Merge pull request #190 from GeVanCo/master
thiagoralves Jan 3, 2023
2ea3bc0
RPi HW layer compiles correctly now
GeVanCo Jan 4, 2023
389b976
Revert back RPi target changes
GeVanCo Jan 5, 2023
b113bd1
Merge branch 'thiagoralves:master' into master
GeVanCo Jan 8, 2023
0b09649
Added UDP to TCP_CONNECT block
thiagoralves Jan 26, 2023
851e37f
Added UDP to TCP_CONNECT block
thiagoralves Jan 26, 2023
115bdf3
Fix missing "method" parameter on connect_to_tcp_server
thiagoralves Jan 26, 2023
02c8c95
Added ability to change connection method (TCP or UDP)
thiagoralves Jan 26, 2023
65f4bbc
Added missing "method" parameter
thiagoralves Jan 26, 2023
f10b590
Missing ';'
thiagoralves Jan 26, 2023
a321b54
Added new volume to Dockerfile
Wawszczak Feb 9, 2023
4fb51f9
adding persistence in Docker volume feature
Wawszczak Feb 10, 2023
e15cde4
added check and automatic creation of /persistent directory during st…
Wawszczak Feb 10, 2023
80aad90
webserver/core/main.cpp: Get REAL-TIME time values
ngu-niny Mar 20, 2023
9a2f14b
Merge pull request #201 from ngu-niny/RT_CycleTime_Latency
thiagoralves Apr 5, 2023
5a00f03
Merge pull request #197 from Wawszczak/docker-persistent
thiagoralves Apr 5, 2023
831189d
Merge pull request #191 from GeVanCo/master
thiagoralves Apr 5, 2023
6d660ad
Sequent Microsystems HAT's
alexburcea2877 May 29, 2023
7034ad6
Merge pull request #208 from alexburcea2877/master
thiagoralves Jun 5, 2023
02d2443
Fixed issue with SM cards compiling on all platforms
thiagoralves Jun 7, 2023
64af4e3
Fix hardware platform selection for Sequent Hat's
alexburcea2877 Jun 8, 2023
82b9f39
Merge pull request #209 from alexburcea2877/master
thiagoralves Jun 8, 2023
75f535a
Add support for Sequent Microsystems Home Automation and 8-Mosfets HAT's
alexburcea2877 Jun 23, 2023
dcaaea4
Merge pull request #211 from alexburcea2877/master
thiagoralves Jun 24, 2023
c70dfec
Update apt-cyg
thiagoralves Jul 19, 2023
b9f1366
Create readme.md
thiagoralves Jul 19, 2023
cd6f8ad
Added cygwin python27 package
thiagoralves Jul 19, 2023
cf13912
Update background_installer.sh to fix Cygwin issues
thiagoralves Jul 19, 2023
2865db7
Add OPENPLC_PATH.
lhartmann Sep 6, 2023
ae35f4b
Refactor install_all_libs.
lhartmann Sep 6, 2023
4a6b66b
Oops, rename to install_st_optimizer.
lhartmann Sep 6, 2023
afa9efa
Refactor finalize_install.
lhartmann Sep 6, 2023
4baf284
Do not install systemd service on docker.
lhartmann Sep 6, 2023
ce0dfa1
Simplify OS detection.
lhartmann Sep 6, 2023
e6cc68b
Refactor swap management code.
lhartmann Sep 6, 2023
4e03da3
Place swapfile based on OPENPLC_DIR.
lhartmann Sep 7, 2023
f29b0b0
Fast swap creation with fallocate.
lhartmann Sep 7, 2023
8d744bc
Change service file from echo to heredoc for readability.
lhartmann Sep 7, 2023
f3a12df
Revert { ( shields on functions, as they broke exit 1.
lhartmann Sep 7, 2023
cca4009
Prefer distribution's libmodbus.
lhartmann Sep 7, 2023
2406e06
Refactor print_help_and_exit.
lhartmann Sep 7, 2023
9dab3cf
Move libmodbus+yum fixes to install_libmodbus.
lhartmann Sep 7, 2023
513f2dc
Refactor fail.
lhartmann Sep 7, 2023
47ed86b
Refactor disable_opendnp3.
lhartmann Sep 7, 2023
0b0b3e8
Refactor ethercat, and fix missing webserver/scripts/ethercat on most…
lhartmann Sep 7, 2023
1b7c8e5
Fix /usr/bin/apt-get location.
lhartmann Sep 7, 2023
188d87e
Remove unused variable ETHERCAT_INSTALL.
lhartmann Sep 7, 2023
339b742
Added maybe-sudo to swap_on/off calls.
lhartmann Sep 11, 2023
9a9bf7f
Merge pull request #217 from lhartmann/rework_installer
thiagoralves Sep 13, 2023
a3aff63
Update to python3 and deduplicate code.
lhartmann Sep 7, 2023
15fc5c2
Add alternate wiringpi if not on apt.
lhartmann Sep 7, 2023
e330c13
Chanve to using python3 venv.
lhartmann Sep 7, 2023
f996faf
Fix start_openplc.sh permissions.
lhartmann Sep 7, 2023
7f86b9e
Python deps no longer need sudo.
lhartmann Sep 7, 2023
1fe6bb9
Remove python3-venv from RPM distros.
lhartmann Sep 7, 2023
b5b6c45
Remove unused variable ETHERCAT_INSTALL.
lhartmann Sep 7, 2023
6c4d032
Add .venv to gitignore.
lhartmann Sep 14, 2023
65b10bc
Drop TextIOWrapper in favor of bytes.decode().
lhartmann Sep 14, 2023
361cfcc
Fix undefined data.
lhartmann Sep 14, 2023
a05c5f0
Fix: Installer was setting the wrong driver on Windows
thiagoralves Sep 18, 2023
fd74cd1
Missing argument for finalize_install
thiagoralves Sep 18, 2023
3d25eeb
Merge pull request #218 from lhartmann/python3
thiagoralves Sep 18, 2023
341baec
Fix python3 installation on Windows
thiagoralves Sep 18, 2023
914000e
Add installation support for opensuse tumbleweed
DMLhope Sep 19, 2023
e3b5136
Fix for broken flask-login on werkzeug 3
thiagoralves Oct 5, 2023
44b50b7
Revert to install the included libmodbus as opposed to the distro one
thiagoralves Oct 19, 2023
2716efc
Fix slave devices table addressing bug
thiagoralves Oct 23, 2023
b6f6fe3
Added new hardware layer driver
Nov 16, 2023
a283d0d
Fix broken images on webserver
thiagoralves Nov 27, 2023
3ffab7f
Wideregistersupport (#5)
r2k-in-the-vortex Dec 3, 2023
2125a16
Merge pull request #222 from r2k-in-the-vortex/master
thiagoralves Dec 4, 2023
4a8086e
Merge branch 'master' into master
thiagoralves Dec 4, 2023
752fffe
Merge pull request #219 from DMLhope/master
thiagoralves Dec 4, 2023
13a97d7
Fix universal channel number eror for Building AUtomation HAT
alexburcea2877 Dec 13, 2023
7d0765a
Merge pull request #223 from alexburcea2877/patch-1
thiagoralves Dec 13, 2023
1000508
Added new openplc logo
thiagoralves Dec 15, 2023
0aa6974
Hostname settings and Autonomy's color palette
thiagoralves Dec 15, 2023
21b8816
Fix compilation issues on SL-RP4
thiagoralves Dec 18, 2023
a784a33
Update sl_rp4.cpp
thiagoralves Dec 18, 2023
a26ee85
Added SL-RP4 driver option
thiagoralves Dec 18, 2023
6a1a89f
Fix SL-RP4 driver name
thiagoralves Dec 18, 2023
73f09c8
Upgrade pip before installation
thiagoralves Jan 24, 2024
6621e30
Install pymodbus on system python for PSM to work
thiagoralves Jan 24, 2024
b83ccf1
commit tracked files only
Eduardo-bat Feb 26, 2024
1666535
Merge pull request #226 from Eduardo-bat/master
thiagoralves Feb 26, 2024
2c01258
Reverted database to default state
thiagoralves Feb 26, 2024
3f63596
-w was hiding 125 warnings, more than half of them associated with lo…
Mar 6, 2024
bc961f1
fix pwm range from 255 to 1024
Eduardo-bat Mar 7, 2024
e1057f1
Merge pull request #228 from Eduardo-bat/master
thiagoralves Mar 8, 2024
f8dddaa
Merge pull request #227 from r2k-in-the-vortex/master
thiagoralves Mar 8, 2024
2c82b0e
some more cast warnings reduced
Mar 9, 2024
4a37dca
Update apt-cyg trusted key
thiagoralves Mar 14, 2024
9a681da
Fix start script to only copy files to /persistent when in Docker
thiagoralves Mar 14, 2024
18815ee
Creates /persistent folder for Docker
thiagoralves Mar 14, 2024
a8928f8
Change persistent folder name to docker_persistent
thiagoralves Mar 14, 2024
fb04bd3
Add prototype unchanged PiPLC hardware layer
Chrismettal Mar 17, 2024
9bc1771
Update GPIO used on PiPLC
Chrismettal Mar 17, 2024
fcc43b7
Update PiPLC hardware mappings
Chrismettal Mar 17, 2024
698d89d
Fix "option selected=piplc" in webserver
Chrismettal Mar 17, 2024
c442481
Fix PiPLC inputs inverted
Chrismettal Mar 17, 2024
965fd6b
Swap out libmodbus with RPI fork
Chrismettal Mar 17, 2024
e8bfb81
[To be reverted] Try out hardcoding GPIO 6 as Modbus RTU enable pin
Chrismettal Mar 17, 2024
7296681
Clarify fork reason in Readme
Chrismettal Mar 17, 2024
efad7ba
Change clone link to fork
Chrismettal Mar 17, 2024
d38100e
Pass Modbus RTS settings through new hardware layer settings struct
Chrismettal Mar 17, 2024
5221fee
Remove double definitions of custom layer settings
Chrismettal Mar 17, 2024
72181e6
Fix build error
Chrismettal Mar 17, 2024
c462f3d
Update PiPLC hardware layer for pigpio
Chrismettal Mar 17, 2024
9a11505
Revert "Change clone link to fork"
Chrismettal Mar 17, 2024
0fa411b
Revert "Clarify fork reason in Readme"
Chrismettal Mar 17, 2024
8a937dc
Revert "Remove double definitions of custom layer settings"
Chrismettal Mar 19, 2024
4221665
Revert "Pass Modbus RTS settings through new hardware layer settings …
Chrismettal Mar 19, 2024
63bf148
Pass Modbus RTS settings as global var through ladder.h
Chrismettal Mar 19, 2024
2a4812a
Fix build error
Chrismettal Mar 19, 2024
7a36c38
Merge pull request #230 from Chrismettal/master
thiagoralves Mar 20, 2024
568c8c3
Update neuron.cpp
PaoloElMarinelo Mar 29, 2024
b32565a
Update background_installer.sh
PaoloElMarinelo Apr 1, 2024
80a3d85
Merge pull request #234 from PaoloElMarinelo/PaoloElMarinelo-patch-1
thiagoralves Apr 1, 2024
a44fea8
Merge pull request #233 from PaoloElMarinelo/patch-1
thiagoralves Apr 1, 2024
0ae689b
Merge pull request #229 from r2k-in-the-vortex/master
thiagoralves Apr 1, 2024
b470206
Fix issue with BOOL_BOOL comparisons
thiagoralves Apr 10, 2024
4e8e0d3
Added modifications from gexod to include %MD and %ML into the persis…
thiagoralves May 25, 2024
abe106b
Fix compilation issue after changing persistent storage
thiagoralves May 26, 2024
9a1125b
Update background_installer.sh
PaoloElMarinelo May 27, 2024
3394044
active_program should be part of persistent storage in dockers
May 27, 2024
821bd0c
Move active_program file instead of creating it
May 27, 2024
0ce3812
Merge pull request #240 from ggiraudon/master
thiagoralves May 28, 2024
e421d83
Merge pull request #238 from PaoloElMarinelo/PaoloElMarinelo-patch-3
thiagoralves May 28, 2024
0e9b501
Add inputs I13 and I14
PaoloElMarinelo May 28, 2024
16bf8ba
Merge pull request #241 from PaoloElMarinelo/patch-1
thiagoralves May 28, 2024
9cd8f1b
Fix F_TRIG behavior
thiagoralves Jun 28, 2024
b7244fd
Preliminary debug support
thiagoralves Jul 11, 2024
37c066d
Compile debugger
thiagoralves Jul 11, 2024
4d571f6
Debugger template
thiagoralves Jul 11, 2024
1132d47
Fix compiler script
thiagoralves Jul 12, 2024
22f4bc2
Fix IEC_TIMESPEC declaration
thiagoralves Jul 12, 2024
bcb47eb
Add dummy program debug info
thiagoralves Jul 12, 2024
59e404f
Fix dummy debug file errors
thiagoralves Jul 12, 2024
992b287
Added debugger header file
thiagoralves Jul 12, 2024
49d6234
Fix error about missing debug info on recompilation
thiagoralves Jul 12, 2024
020a276
Fixes many debugger errors
thiagoralves Jul 12, 2024
93cd00a
Use .venv python instead of system python on PSM
thiagoralves Jul 16, 2024
52f7f2a
Fix incorrect Dockerfile RUN cp.
jmhbnz Jul 23, 2024
5e393c3
Update debian base image to resolve vulnerabilities.
jmhbnz Jul 23, 2024
906984f
Refactor Dockerfile to reduce layers.
jmhbnz Jul 23, 2024
599596c
Merge pull request #247 from jmhbnz/master
thiagoralves Jul 23, 2024
e68616b
Add install commands for Alpine Linux.
joluxer Aug 1, 2024
f9c1436
Create OpenRC startup script during installation.
joluxer Aug 1, 2024
46c0079
Merge remote-tracking branch 'refs/remotes/origin/alpine-install' int…
joluxer Aug 1, 2024
4e4db60
Make installation work on Alpine Linux.
joluxer Aug 1, 2024
ea146d2
Make the webserver core build with GCC-13 with clean includes.
joluxer Aug 1, 2024
5957c2e
Update README.md
joluxer Aug 1, 2024
eab7154
Fix handling write requests of 64 bit values from modbus
Abestanis Aug 6, 2024
fe6ff50
Merge pull request #250 from Abestanis/fix/modbus_write_multiple_regi…
thiagoralves Aug 7, 2024
71c7965
Extract common code between WriteRegister and WriteMultipleRegisters
Abestanis Aug 8, 2024
0fc8449
Merge pull request #251 from Abestanis/feature/modbus_cleanup
thiagoralves Aug 8, 2024
e3306a2
Fix error handling in WriteMultipleRegisters
Abestanis Aug 8, 2024
df34c73
Merge pull request #252 from Abestanis/fix/write_multiple_registers_e…
thiagoralves Aug 8, 2024
ff53169
Include option to install on MSYS2
thiagoralves Aug 26, 2024
8604093
Start with DNP3 disabled by default
thiagoralves Aug 26, 2024
3c08a69
Added --noconfirm to pacman
thiagoralves Aug 26, 2024
be0f904
Adding Orange Pi as a platform in the installation script
kostadinnp Sep 10, 2024
cfaf508
Adding Orange Pi as a platform in the compiling script
kostadinnp Sep 10, 2024
a73f780
Adding Orange Pi as a platform in the hardware layer changing script
kostadinnp Sep 11, 2024
1c0c187
Add Orange Pi Zero2/Zero2 LTS/Zero2 B to hardware layers
kostadinnp Sep 11, 2024
e0ed93d
Temporary disable analog outputs (not tested)
kostadinnp Sep 13, 2024
df16a98
Applied security fixes by Cisco Talos
Sep 17, 2024
0a3ba52
Add LICENSE file
thiagoralves Sep 23, 2024
d5d475c
Fix for CVE-2024-34026
thiagoralves Sep 25, 2024
8fc7292
Merge pull request #256 from kostadinnp/orange-pi-support
thiagoralves Sep 25, 2024
9696ba8
Fix indentation - convert tabs to spaces
Oct 8, 2024
a523b49
Fix compilation error on Sequent and SL-RP4
thiagoralves Oct 11, 2024
ea789c5
Code cleanup; Added release version to login screen
Oct 15, 2024
2896573
Fix compilation error on missing custom_layer.h file
Oct 15, 2024
2ddbf52
Added ability to write to coils on monitoring
Oct 17, 2024
b2ef6d1
Update release string
thiagoralves Oct 17, 2024
1fc8e19
Create debug.blank
thiagoralves Oct 30, 2024
962d4dc
Allow programs to be compiled without debug info
thiagoralves Oct 30, 2024
1a869f7
Update release
thiagoralves Oct 30, 2024
085636a
Refactor Persistent Storage - Fixed issues with Persistent Storage on…
Nov 4, 2024
5ef3833
Merge branch 'thiagoralves:master' into alpine-install
joluxer Nov 25, 2024
fd3abd5
Merge pull request #258 from joluxer/alpine-install
thiagoralves Nov 25, 2024
48ebcae
Fix extra include that broke support on many platforms
thiagoralves Dec 3, 2024
5807cb3
Update release
thiagoralves Dec 3, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added .DS_Store
Binary file not shown.
7 changes: 7 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ public/
.idea/

*.pyc
webserver/core/hardware_layer.cpp
webserver/core/glueVars.cpp

# IDE files for Visual Studio Code and Visual Studio
CMakeSettings.json
Expand All @@ -15,3 +17,8 @@ CMakeSettings.json
webserver/bin
webserver/build
obj/
utils/dnp3_src/CMakeFiles/
webserver/scripts/ethercat

# Runtime directories
.venv
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[submodule "utils/ethercat_src"]
path = utils/ethercat_src
url = https://github.com/r2k-in-the-vortex/ethercat_src.git
28 changes: 26 additions & 2 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,6 +1,30 @@
FROM debian:bullseye-20211201
FROM debian:bullseye-20240722

COPY . /workdir

WORKDIR /workdir
RUN ./install.sh docker

RUN mkdir /persistent

VOLUME /persistent

RUN ./install.sh docker \
&& touch /persistent/mbconfig.cfg \
&& touch /persistent/persistent.file \
&& mkdir /persistent/st_files \
&& cp /workdir/webserver/openplc.db /persistent/openplc.db \
&& mv /workdir/webserver/openplc.db /workdir/webserver/openplc_default.db \
&& cp /workdir/webserver/dnp3.cfg /persistent/dnp3.cfg \
&& mv /workdir/webserver/dnp3.cfg /workdir/webserver/dnp3_default.cfg \
&& cp -r /workdir/webserver/st_files/ /persistent/st_files/ \
&& mv /workdir/webserver/st_files /workdir/webserver/st_files_default \
&& cp /workdir/webserver/active_program /persistent/active_program \
&& mv /workdir/webserver/active_program /workdir/webserver/active_program_default \
&& ln -s /persistent/mbconfig.cfg /workdir/webserver/mbconfig.cfg \
&& ln -s /persistent/persistent.file /workdir/webserver/persistent.file \
&& ln -s /persistent/openplc.db /workdir/webserver/openplc.db \
&& ln -s /persistent/dnp3.cfg /workdir/webserver/dnp3.cfg \
&& ln -s /persistent/st_files /workdir/webserver/st_files \
&& ln -s /persistent/active_program /workdir/webserver/active_program

ENTRYPOINT ["./start_openplc.sh"]
674 changes: 674 additions & 0 deletions LICENSE

Large diffs are not rendered by default.

14 changes: 9 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,10 @@
[![Build status](https://ci.appveyor.com/api/projects/status/ut3466ixwtyf68qg?svg=true)](https://ci.appveyor.com/project/shrmrf/openplc-v3)

OpenPLC 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&q=openplc&hl=en&as_sdt=0,1) as a framework for industrial cyber security research, given that it is the only controller to provide the entire source code.
The OpenPLC Project consists of three sub-projects:
The OpenPLC Project consists of two sub-projects:
1. [Runtime](https://github.com/thiagoralves/OpenPLC_v3)
2. [Programming editor](http://www.openplcproject.com/plcopen-editor)
3. [HMI builder](http://www.openplcproject.com/reference-installing-scadabr)
2. [Programming editor](https://openplcproject.com/docs/installing-openplc-editor/)


## Installation:
```bash
Expand All @@ -20,7 +20,7 @@ Where `[platform]` can be:

`win` - Install OpenPLC on Windows over Cygwin

`linux` - Install OpenPLC on a Debian-based Linux distribution
`linux` - Install OpenPLC on a supported Linux distribution, currently Debian-based, Fedora-based, Opensuse and Alpine Linux is supported.

`docker` - Used by the `Dockerfile` (i.e. doesn't invoke `sudo`)

Expand All @@ -29,7 +29,9 @@ Where `[platform]` can be:
`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.

### Building, Installing and Running inside Docker
Make sure [`docker` is installed](https://docs.docker.com/install/linux/docker-ce/ubuntu/)
When using Ubuntu: make sure [`docker for Ubuntu` is installed](https://docs.docker.com/install/linux/docker-ce/ubuntu/)

When using Linux Mint 21: make sure [`docker for Linux Mint 21` is installed](https://computingforgeeks.com/install-docker-docker-compose-on-linux-mint/)

#### Build
```
Expand All @@ -44,3 +46,5 @@ _Devices can be passed to the `docker` daemon using the `-v` flag (e.g. `-v /dev
docker run -it --rm --privileged -p 8080:8080 openplc:v3
```

### EtherCAT capability
To build with EtherCAT capability try `./install.sh linux ethercat` for more information see `utils/ethercat_src`
Loading