edouard@79: name: beremiz edouard@101: adopt-info: beremiz edouard@106: title: Beremiz edouard@101: summary: Beremiz Open Source PLC. edouard@79: description: | edouard@106: Beremiz is a framework for machine automation. It is meant to add PLC-like programing to embedded systems. edouard@106: edouard@106: Beremiz is [Free Software](https://en.wikipedia.org/wiki/Free_software), and conforms to edouard@106: [IEC_61131](https://en.wikipedia.org/wiki/IEC_61131-3) and [PLCopen](https://plcopen.org/technical-activities/xml-exchange) among other standards. edouard@106: edouard@106: Beremiz supports all languages described in IEC_61131: edouard@106: * Structured Text (ST) edouard@106: * Instruction List (IL) edouard@106: * Function Block Diagram (FBD) edouard@106: * Sequencial Function Chart (SFC) edouard@106: * Ladder Diagram (LD) edouard@106: edouard@106: IDE also includes tools to create Human-Machine Interfaces (HMI), and to connect your PLC programs to existing supervisions, databases, or fieldbuses: edouard@106: * Modbus edouard@106: * OPC-UA edouard@106: * CANopen edouard@106: * SVG HMI edouard@106: * Wx HMI edouard@106: * Python edouard@106: * ... edouard@106: edouard@106: Runtime can be programmed remotely and allows variables tracing and forcing. edouard@106: edouard@101: icon: snap/gui/beremiz.png edouard@101: contact: edouard@101: - https://beremiz.org edouard@101: - snap@beremiz.fr edouard@81: edouard@79: edouard@79: grade: devel edouard@101: confinement: strict edouard@123: base: core22 edouard@101: architectures: [amd64, arm64] edouard@79: edouard@79: parts: edouard@79: edouard@79: beremiz: edouard@123: # Beremiz python source and dependencies, inc. native GCC edouard@79: # source tree is expected to be just aside snap directory edouard@123: plugin: python edouard@79: source: beremiz edouard@79: source-type: local edouard@123: python-requirements: edouard@123: - requirements.txt edouard@123: # native GCC toolchain edouard@123: # note: GCC toolchain cannot be move to separate part edouard@123: # otherwise there is a file conflict about lib64 in prime step edouard@123: # caused apparently by libc6 (needed to have consistent sysroot) edouard@79: stage-packages: edouard@79: - gcc edouard@79: - libc6 edouard@79: - libc6-dev edouard@79: - linux-libc-dev edouard@79: - libgcc-9-dev edouard@79: - libgcc-s1 edouard@101: override-pull: | edouard@101: snapcraftctl pull edouard@124: snapcraftctl set-version `python3 $CRAFT_PART_SRC/version.py` edouard@79: override-build: | edouard@123: snapcraftctl build edouard@124: cp -a $CRAFT_PART_SRC $CRAFT_PART_INSTALL/beremiz edouard@79: edouard@79: matiec: edouard@79: # Matiec ST, SFC and IL compiler. edouard@79: # source tree is expected to be just aside snap directory edouard@79: plugin: nil edouard@79: source: matiec edouard@79: source-type: local edouard@79: build-packages: edouard@79: - build-essential edouard@79: - automake edouard@79: - flex edouard@79: - bison edouard@79: override-build: | edouard@79: autoreconf -i && ./configure && make edouard@124: cp -a $CRAFT_PART_BUILD $CRAFT_PART_INSTALL/matiec edouard@81: edouard@82: modbus: edouard@82: plugin: nil edouard@82: source: Modbus edouard@82: source-type: local edouard@82: build-packages: edouard@82: - build-essential edouard@82: - automake edouard@82: override-build: | edouard@82: make edouard@124: cp -a $CRAFT_PART_BUILD $CRAFT_PART_INSTALL/Modbus edouard@82: edouard@81: open62541: edouard@81: plugin: nil edouard@81: source: open62541 edouard@81: source-type: local edouard@81: build-packages: edouard@81: - build-essential edouard@81: - cmake edouard@81: override-build: | edouard@81: mkdir build && cd build && cmake .. && make edouard@124: cp -a $CRAFT_PART_BUILD $CRAFT_PART_INSTALL/open62541 edouard@79: edouard@81: inkscape: edouard@81: # CLI only, used in SVGHMI build edouard@81: # GUI fails to launch couldn't find a way edouard@81: plugin: nil edouard@81: stage-packages: edouard@81: - inkscape edouard@81: - libgtk-3-0 edouard@81: # libgtk3 needs to be explicitely given edouard@81: # otherwise wxGtk doesn't start, with this error : edouard@81: # libgtk-3.so.0: undefined symbol: pango_font_family_get_face edouard@81: # ... why ? edouard@81: edouard@79: revisiontxt: edouard@79: # Makefile generated "revisions.txt" edouard@79: plugin: nil edouard@79: source: . edouard@79: source-type: local edouard@79: override-build: | edouard@124: cp $CRAFT_PART_SRC/revisions.txt $CRAFT_PART_INSTALL edouard@79: edouard@79: apps: edouard@79: ide: edouard@81: # Launcher for the IDE edouard@79: environment: edouard@79: SYSROOT: $SNAP edouard@123: command: bin/python3 $SNAP/beremiz/Beremiz.py edouard@123: extensions: [gnome] edouard@101: plugs: edouard@101: - network edouard@101: - network-bind edouard@79: edouard@79: beremiz: edouard@81: # Beremiz Command Line interface edouard@79: environment: edouard@79: SYSROOT: $SNAP edouard@123: command: bin/python3 $SNAP/beremiz/Beremiz_cli.py edouard@101: plugs: edouard@101: - network edouard@101: - network-bind edouard@81: edouard@81: runtime: edouard@81: # Standalone runtime edouard@81: environment: edouard@81: SYSROOT: $SNAP edouard@123: command: bin/python3 $SNAP/beremiz/Beremiz_service.py edouard@101: plugs: edouard@101: - network edouard@101: - network-bind edouard@86: