# HG changeset patch # User Edouard Tisserant # Date 1712142170 -7200 # Node ID 1d383b4c0a2351854185492c90d9d1b0250affec # Parent abaa68df90f49972656320a8c4bd7c9a88680f80 Doc: re-organize existing, sketch outline, add SVGHMI intro. diff -r abaa68df90f4 -r 1d383b4c0a23 doc/conf.py --- a/doc/conf.py Tue Mar 26 17:10:26 2024 +0100 +++ b/doc/conf.py Wed Apr 03 13:02:50 2024 +0200 @@ -14,7 +14,9 @@ # If extensions (or modules to document with autodoc) are in another directory, # add these directories to sys.path here. If the directory is relative to the # documentation root, use os.path.abspath to make it absolute, like shown here. -# sys.path.insert(0, os.path.abspath('.')) +import sys +import os +sys.path.insert(0, os.path.abspath('..')) # -- General configuration ----------------------------------------------------- @@ -46,9 +48,11 @@ # built documents. # # The short X.Y version. -version = '1.1' +import version as bversion + +version = bversion.app_version # The full version, including alpha/beta/rc tags. -release = '1.1rc1' +release = bversion.app_version # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. diff -r abaa68df90f4 -r 1d383b4c0a23 doc/index.rst --- a/doc/index.rst Tue Mar 26 17:10:26 2024 +0100 +++ b/doc/index.rst Wed Apr 03 13:02:50 2024 +0200 @@ -9,6 +9,8 @@ :maxdepth: 2 overview - manual/index + install + programming/index + svghmi/index standards diff -r abaa68df90f4 -r 1d383b4c0a23 doc/index_fr.po --- a/doc/index_fr.po Tue Mar 26 17:10:26 2024 +0100 +++ b/doc/index_fr.po Wed Apr 03 13:02:50 2024 +0200 @@ -28,7 +28,3 @@ #: ../../index.rst:6 msgid "Contents:" msgstr "Contenu" - -# 899ecb5f4ff84b8e98dbf5b1eaf7f393 -#~ msgid "Indices and tables" -#~ msgstr "Index et tables" diff -r abaa68df90f4 -r 1d383b4c0a23 doc/index_kr.po --- a/doc/index_kr.po Tue Mar 26 17:10:26 2024 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,28 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) is 21st century inquisition -# This file is distributed under the same license as the Beremiz package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: Beremiz 1.1\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-09-08 01:21\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -# 132431d63d6e4df6a641d5f9e342832b -#: ../../index.rst:4 -msgid "Beremiz's documentation" -msgstr "" - -# 35991814a0c44578927d8c48b5808eb6 -#: ../../index.rst:6 -msgid "Contents:" -msgstr "" diff -r abaa68df90f4 -r 1d383b4c0a23 doc/install.rst --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/install.rst Wed Apr 03 13:02:50 2024 +0200 @@ -0,0 +1,11 @@ +Build and install +================= + +Developer setup +--------------- + +Build packages with beremiz_public_dist +--------------------------------------- + + + diff -r abaa68df90f4 -r 1d383b4c0a23 doc/manual/build.rst --- a/doc/manual/build.rst Tue Mar 26 17:10:26 2024 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,2 +0,0 @@ -Build PLC executable binary -=========================== diff -r abaa68df90f4 -r 1d383b4c0a23 doc/manual/build_fr.po --- a/doc/manual/build_fr.po Tue Mar 26 17:10:26 2024 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,23 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) is 21st century inquisition -# This file is distributed under the same license as the Beremiz package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: Beremiz 1.1\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-09-08 00:41\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -# e98bb1bcb7fb45d7bfe7f59e4154c282 -#: ../../manual/build.rst:2 -msgid "Build PLC executable binary" -msgstr "" diff -r abaa68df90f4 -r 1d383b4c0a23 doc/manual/build_kr.po --- a/doc/manual/build_kr.po Tue Mar 26 17:10:26 2024 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,23 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) is 21st century inquisition -# This file is distributed under the same license as the Beremiz package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: Beremiz 1.1\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-09-08 01:21\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -# e98bb1bcb7fb45d7bfe7f59e4154c282 -#: ../../manual/build.rst:2 -msgid "Build PLC executable binary" -msgstr "" diff -r abaa68df90f4 -r 1d383b4c0a23 doc/manual/connectors.rst --- a/doc/manual/connectors.rst Tue Mar 26 17:10:26 2024 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,107 +0,0 @@ -Beremiz and Beremiz_service connectors -====================================== - -To connect a PLC, Beremiz provides 2 types of connectors : - * a Pyro connector - * a WAMP connector - -To configure the connection, you have to set the *URI_location* in your project Config tab according to this documentation. - -The Pyro connector ----------------------------- - -Pyro is an advanced and powerful Distributed Object Technology system written entirely in Python. -Beremiz_service spawns a Pyro server, serving a PLCObject (see runtime/PLCObject.py). Therefore, Beremiz acts as a Pyro client. - -TODO:: link to PLCObject API documentation - -URI_location : - * LOCAL:// is a facility that starts the PLC service locally and connect Beremiz to it via Pyro. - This is intended for use in development stage. - * PYRO:// normal connection to a remote PLC. PLC default port is 3000. - * PYROS:// SSL connection to a remote PLC, see below. - -more information about Pyro can be found on http://pythonhosted.org//Pyro/1-intro.html - -=========================== -Setup a Pyro SSL connection -=========================== - -Pyro v3 has a limited TLS/SSL support based on m2crypto. Pyro v4 had dropped it. -In order to have a full and reliable SSL, we recommand to use a TLS/SSL wrapper as nginx, stub or stunnel. - --------------------- -TLS-PSK with stunnel --------------------- - -In this example, we setup a simple TLS-PSK connection according to rfc4279. -This ciphersuite avoid the need for public key operations and certificate management. -It is perfect for a performance-constrained environments with limited CPU power as a PLC. - - -Needed : - * stunnel >= 5.09 - -verify openssl support for PSK cipher:: - - openssl ciphers -v 'PSK' - ----------------------- -Client setup (Beremiz) ----------------------- - -You need to choose an identity for your client, here *client1*. -generate a valid and strong key:: - - $ echo client1:$(openssl rand -base64 48) > pskclient1.txt - -write a stunnel client configuration file *stunnel-client.conf*:: - - output = stunnel-client.log - client = yes - - [beremiz] - accept = 3002 - connect = [PLC]:3001 - PSKidentity = client1 - PSKsecrets = pskclient1.txt - -start stunnel client side:: - - stunnel stunnel-client.conf - -You could now connect beremiz with classic URI_location = PYRO://127.0.0.1:3002 - --------------------- -Server setup (PLC) --------------------- - -import the client key in a keyfile psk.txt, concatening all client key. - -write a stunnel server configuration file *stunnel-server.conf*:: - - output = stunnel-server.log - - [beremiz] - accept = 3001 - connect = 127.0.0.1:3000 - PSKsecrets = psk.txt - -start stunnel server side:: - - stunnel stunnel-server.conf - -more documentation on stunnel http://www.stunnel.org/docs.html - -The WAMP connector ------------------- - -WAMP is an open standard WebSocket subprotocol that provides two application messaging -patterns in one unified protocol: Remote Procedure Calls + Publish & Subscribe. - -Beremiz WAMP connector implementation uses Autobahn and crossbar. - -URI_location : - * WAMP://127.0.0.1:8888#Automation#2534667845 - -more information about WAMP can be found on http://wamp.ws/ diff -r abaa68df90f4 -r 1d383b4c0a23 doc/manual/connectors_fr.po --- a/doc/manual/connectors_fr.po Tue Mar 26 17:10:26 2024 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,183 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) is 21st century inquisition -# This file is distributed under the same license as the Beremiz package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: Beremiz 1.1\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-08-09 14:06+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: ../../manual/connectors.rst:2 -msgid "Beremiz and Beremiz_service connectors" -msgstr "" - -#: ../../manual/connectors.rst:6 -msgid "To connect a PLC, Beremiz provides 2 types of connectors :" -msgstr "" - -#: ../../manual/connectors.rst:5 -msgid "a Pyro connector" -msgstr "" - -#: ../../manual/connectors.rst:6 -msgid "a WAMP connector" -msgstr "" - -#: ../../manual/connectors.rst:8 -msgid "" -"To configure the connection, you have to set the *URI_location* in your " -"project Config tab according to this documentation." -msgstr "" - -#: ../../manual/connectors.rst:11 -msgid "The Pyro connector" -msgstr "" - -#: ../../manual/connectors.rst:13 -msgid "" -"Pyro is an advanced and powerful Distributed Object Technology system " -"written entirely in Python. Beremiz_service spawns a Pyro server, serving a " -"PLCObject (see runtime/PLCObject.py). Therefore, Beremiz acts as a Pyro " -"client." -msgstr "" - -#: ../../manual/connectors.rst:16 -msgid "TODO:: link to PLCObject API documentation" -msgstr "" - -#: ../../manual/connectors.rst:22 ../../manual/connectors.rst:105 -msgid "URI_location :" -msgstr "" - -#: ../../manual/connectors.rst:19 -msgid "" -"LOCAL:// is a facility that starts the PLC service locally and connect " -"Beremiz to it via Pyro. This is intended for use in development stage." -msgstr "" - -#: ../../manual/connectors.rst:21 -msgid "" -"PYRO:// normal connection to a remote PLC. PLC default port is 3000." -msgstr "" - -#: ../../manual/connectors.rst:22 -msgid "PYROS:// SSL connection to a remote PLC, see below." -msgstr "" - -#: ../../manual/connectors.rst:24 -msgid "" -"more information about Pyro can be found on http://pythonhosted.org//Pyro/1-" -"intro.html" -msgstr "" - -#: ../../manual/connectors.rst:28 -msgid "Setup a Pyro SSL connection" -msgstr "" - -#: ../../manual/connectors.rst:30 -msgid "" -"Pyro v3 has a limited TLS/SSL support based on m2crypto. Pyro v4 had dropped " -"it. In order to have a full and reliable SSL, we recommand to use a TLS/SSL " -"wrapper as nginx, stub or stunnel." -msgstr "" - -#: ../../manual/connectors.rst:35 -msgid "TLS-PSK with stunnel" -msgstr "" - -#: ../../manual/connectors.rst:37 -msgid "" -"In this example, we setup a simple TLS-PSK connection according to rfc4279. " -"This ciphersuite avoid the need for public key operations and certificate " -"management. It is perfect for a performance-constrained environments with " -"limited CPU power as a PLC." -msgstr "" - -#: ../../manual/connectors.rst:43 -msgid "Needed :" -msgstr "" - -#: ../../manual/connectors.rst:43 -msgid "stunnel >= 5.09" -msgstr "" - -#: ../../manual/connectors.rst:45 -msgid "verify openssl support for PSK cipher::" -msgstr "" - -#: ../../manual/connectors.rst:51 -msgid "Client setup (Beremiz)" -msgstr "" - -#: ../../manual/connectors.rst:53 -msgid "" -"You need to choose an identity for your client, here *client1*. generate a " -"valid and strong key::" -msgstr "" - -#: ../../manual/connectors.rst:58 -msgid "write a stunnel client configuration file *stunnel-client.conf*::" -msgstr "" - -#: ../../manual/connectors.rst:69 -msgid "start stunnel client side::" -msgstr "" - -#: ../../manual/connectors.rst:73 -msgid "" -"You could now connect beremiz with classic URI_location = " -"PYRO://127.0.0.1:3002" -msgstr "" - -#: ../../manual/connectors.rst:77 -msgid "Server setup (PLC)" -msgstr "" - -#: ../../manual/connectors.rst:79 -msgid "import the client key in a keyfile psk.txt, concatening all client key." -msgstr "" - -#: ../../manual/connectors.rst:81 -msgid "write a stunnel server configuration file *stunnel-server.conf*::" -msgstr "" - -#: ../../manual/connectors.rst:90 -msgid "start stunnel server side::" -msgstr "" - -#: ../../manual/connectors.rst:94 -msgid "more documentation on stunnel http://www.stunnel.org/docs.html" -msgstr "" - -#: ../../manual/connectors.rst:97 -msgid "The WAMP connector" -msgstr "" - -#: ../../manual/connectors.rst:99 -msgid "" -"WAMP is an open standard WebSocket subprotocol that provides two application " -"messaging patterns in one unified protocol: Remote Procedure Calls + Publish " -"& Subscribe." -msgstr "" - -#: ../../manual/connectors.rst:102 -msgid "Beremiz WAMP connector implementation uses Autobahn and crossbar." -msgstr "" - -#: ../../manual/connectors.rst:105 -msgid "WAMP://127.0.0.1:8888#Automation#2534667845" -msgstr "" - -#: ../../manual/connectors.rst:107 -msgid "more information about WAMP can be found on http://wamp.ws/" -msgstr "" diff -r abaa68df90f4 -r 1d383b4c0a23 doc/manual/connectors_kr.po --- a/doc/manual/connectors_kr.po Tue Mar 26 17:10:26 2024 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,183 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) is 21st century inquisition -# This file is distributed under the same license as the Beremiz package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: Beremiz 1.1\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-08-09 14:06+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: ../../manual/connectors.rst:2 -msgid "Beremiz and Beremiz_service connectors" -msgstr "" - -#: ../../manual/connectors.rst:6 -msgid "To connect a PLC, Beremiz provides 2 types of connectors :" -msgstr "" - -#: ../../manual/connectors.rst:5 -msgid "a Pyro connector" -msgstr "" - -#: ../../manual/connectors.rst:6 -msgid "a WAMP connector" -msgstr "" - -#: ../../manual/connectors.rst:8 -msgid "" -"To configure the connection, you have to set the *URI_location* in your " -"project Config tab according to this documentation." -msgstr "" - -#: ../../manual/connectors.rst:11 -msgid "The Pyro connector" -msgstr "" - -#: ../../manual/connectors.rst:13 -msgid "" -"Pyro is an advanced and powerful Distributed Object Technology system " -"written entirely in Python. Beremiz_service spawns a Pyro server, serving a " -"PLCObject (see runtime/PLCObject.py). Therefore, Beremiz acts as a Pyro " -"client." -msgstr "" - -#: ../../manual/connectors.rst:16 -msgid "TODO:: link to PLCObject API documentation" -msgstr "" - -#: ../../manual/connectors.rst:22 ../../manual/connectors.rst:105 -msgid "URI_location :" -msgstr "" - -#: ../../manual/connectors.rst:19 -msgid "" -"LOCAL:// is a facility that starts the PLC service locally and connect " -"Beremiz to it via Pyro. This is intended for use in development stage." -msgstr "" - -#: ../../manual/connectors.rst:21 -msgid "" -"PYRO:// normal connection to a remote PLC. PLC default port is 3000." -msgstr "" - -#: ../../manual/connectors.rst:22 -msgid "PYROS:// SSL connection to a remote PLC, see below." -msgstr "" - -#: ../../manual/connectors.rst:24 -msgid "" -"more information about Pyro can be found on http://pythonhosted.org//Pyro/1-" -"intro.html" -msgstr "" - -#: ../../manual/connectors.rst:28 -msgid "Setup a Pyro SSL connection" -msgstr "" - -#: ../../manual/connectors.rst:30 -msgid "" -"Pyro v3 has a limited TLS/SSL support based on m2crypto. Pyro v4 had dropped " -"it. In order to have a full and reliable SSL, we recommand to use a TLS/SSL " -"wrapper as nginx, stub or stunnel." -msgstr "" - -#: ../../manual/connectors.rst:35 -msgid "TLS-PSK with stunnel" -msgstr "" - -#: ../../manual/connectors.rst:37 -msgid "" -"In this example, we setup a simple TLS-PSK connection according to rfc4279. " -"This ciphersuite avoid the need for public key operations and certificate " -"management. It is perfect for a performance-constrained environments with " -"limited CPU power as a PLC." -msgstr "" - -#: ../../manual/connectors.rst:43 -msgid "Needed :" -msgstr "" - -#: ../../manual/connectors.rst:43 -msgid "stunnel >= 5.09" -msgstr "" - -#: ../../manual/connectors.rst:45 -msgid "verify openssl support for PSK cipher::" -msgstr "" - -#: ../../manual/connectors.rst:51 -msgid "Client setup (Beremiz)" -msgstr "" - -#: ../../manual/connectors.rst:53 -msgid "" -"You need to choose an identity for your client, here *client1*. generate a " -"valid and strong key::" -msgstr "" - -#: ../../manual/connectors.rst:58 -msgid "write a stunnel client configuration file *stunnel-client.conf*::" -msgstr "" - -#: ../../manual/connectors.rst:69 -msgid "start stunnel client side::" -msgstr "" - -#: ../../manual/connectors.rst:73 -msgid "" -"You could now connect beremiz with classic URI_location = " -"PYRO://127.0.0.1:3002" -msgstr "" - -#: ../../manual/connectors.rst:77 -msgid "Server setup (PLC)" -msgstr "" - -#: ../../manual/connectors.rst:79 -msgid "import the client key in a keyfile psk.txt, concatening all client key." -msgstr "" - -#: ../../manual/connectors.rst:81 -msgid "write a stunnel server configuration file *stunnel-server.conf*::" -msgstr "" - -#: ../../manual/connectors.rst:90 -msgid "start stunnel server side::" -msgstr "" - -#: ../../manual/connectors.rst:94 -msgid "more documentation on stunnel http://www.stunnel.org/docs.html" -msgstr "" - -#: ../../manual/connectors.rst:97 -msgid "The WAMP connector" -msgstr "" - -#: ../../manual/connectors.rst:99 -msgid "" -"WAMP is an open standard WebSocket subprotocol that provides two application " -"messaging patterns in one unified protocol: Remote Procedure Calls + Publish " -"& Subscribe." -msgstr "" - -#: ../../manual/connectors.rst:102 -msgid "Beremiz WAMP connector implementation uses Autobahn and crossbar." -msgstr "" - -#: ../../manual/connectors.rst:105 -msgid "WAMP://127.0.0.1:8888#Automation#2534667845" -msgstr "" - -#: ../../manual/connectors.rst:107 -msgid "more information about WAMP can be found on http://wamp.ws/" -msgstr "" diff -r abaa68df90f4 -r 1d383b4c0a23 doc/manual/debug.rst --- a/doc/manual/debug.rst Tue Mar 26 17:10:26 2024 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,2 +0,0 @@ -Trace POUs instances variable -============================= diff -r abaa68df90f4 -r 1d383b4c0a23 doc/manual/debug_fr.po --- a/doc/manual/debug_fr.po Tue Mar 26 17:10:26 2024 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,23 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) is 21st century inquisition -# This file is distributed under the same license as the Beremiz package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: Beremiz 1.1\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-09-08 00:41\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -# 085a2a1c2a1043d7b09d75d0c657d2a3 -#: ../../manual/debug.rst:2 -msgid "Trace POUs instances variable" -msgstr "" diff -r abaa68df90f4 -r 1d383b4c0a23 doc/manual/debug_kr.po --- a/doc/manual/debug_kr.po Tue Mar 26 17:10:26 2024 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,23 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) is 21st century inquisition -# This file is distributed under the same license as the Beremiz package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: Beremiz 1.1\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-09-08 01:21\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -# 085a2a1c2a1043d7b09d75d0c657d2a3 -#: ../../manual/debug.rst:2 -msgid "Trace POUs instances variable" -msgstr "" diff -r abaa68df90f4 -r 1d383b4c0a23 doc/manual/edit.rst --- a/doc/manual/edit.rst Tue Mar 26 17:10:26 2024 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,2 +0,0 @@ -Write your own POUs -=================== diff -r abaa68df90f4 -r 1d383b4c0a23 doc/manual/edit_fr.po --- a/doc/manual/edit_fr.po Tue Mar 26 17:10:26 2024 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,23 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) is 21st century inquisition -# This file is distributed under the same license as the Beremiz package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: Beremiz 1.1\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-09-08 00:41\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -# 4eb36c6be12e46c4a29c07bb1f68c553 -#: ../../manual/edit.rst:2 -msgid "Write your own POUs" -msgstr "" diff -r abaa68df90f4 -r 1d383b4c0a23 doc/manual/edit_kr.po --- a/doc/manual/edit_kr.po Tue Mar 26 17:10:26 2024 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,23 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) is 21st century inquisition -# This file is distributed under the same license as the Beremiz package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: Beremiz 1.1\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-09-08 01:21\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -# 4eb36c6be12e46c4a29c07bb1f68c553 -#: ../../manual/edit.rst:2 -msgid "Write your own POUs" -msgstr "" diff -r abaa68df90f4 -r 1d383b4c0a23 doc/manual/index.rst --- a/doc/manual/index.rst Tue Mar 26 17:10:26 2024 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,14 +0,0 @@ -Beremiz's user manual -===================== - -Contents: - -.. toctree:: - :maxdepth: 2 - - install - start - edit - build - connectors - debug diff -r abaa68df90f4 -r 1d383b4c0a23 doc/manual/index_fr.po --- a/doc/manual/index_fr.po Tue Mar 26 17:10:26 2024 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,27 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) is 21st century inquisition -# This file is distributed under the same license as the Beremiz package. -# FIRST AUTHOR , YEAR. -# -msgid "" -msgstr "" -"Project-Id-Version: Beremiz 1.1\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-09-08 00:41\n" -"PO-Revision-Date: 2012-09-08 00:16+0100\n" -"Last-Translator: \n" -"Language-Team: \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -# a26a331ecf054e3aa817af29a4e12a50 -#: ../../manual/index.rst:2 -msgid "Beremiz's user manual" -msgstr "" - -# 38e05e035be242e7861d0dadb295e6a3 -#: ../../manual/index.rst:4 -msgid "Contents:" -msgstr "" diff -r abaa68df90f4 -r 1d383b4c0a23 doc/manual/index_kr.po --- a/doc/manual/index_kr.po Tue Mar 26 17:10:26 2024 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,28 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) is 21st century inquisition -# This file is distributed under the same license as the Beremiz package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: Beremiz 1.1\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-09-08 01:21\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -# a26a331ecf054e3aa817af29a4e12a50 -#: ../../manual/index.rst:2 -msgid "Beremiz's user manual" -msgstr "" - -# 38e05e035be242e7861d0dadb295e6a3 -#: ../../manual/index.rst:4 -msgid "Contents:" -msgstr "" diff -r abaa68df90f4 -r 1d383b4c0a23 doc/manual/install.rst --- a/doc/manual/install.rst Tue Mar 26 17:10:26 2024 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,51 +0,0 @@ -Beremiz installation -==================== - -Windows -------- -Download installer, install. - -Linux ------ -Pre-requisites:: - - # Ubuntu/Debian : - sudo apt-get install python-wxgtk2.8 pyro mercurial - sudo apt-get install build-essential bison flex python-numpy python-nevow - -Prepare:: - - mkdir ~/Beremiz - cd ~/Beremiz - -Get Source Code:: - - cd ~/Beremiz - - hg clone http://dev.automforge.net/beremiz - hg clone http://dev.automforge.net/plcopeneditor - hg clone http://dev.automforge.net/matiec - -Build MatIEC compiler:: - - cd ~/Beremiz/matiec - ./configure - make - -Build CanFestival (optional):: - - # Only needed for CANopen support. Please read CanFestival - # manual to choose CAN interface other than 'virtual':: - - cd ~/Beremiz - hg clone http://dev.automforge.net/CanFestival-3 - - cd ~/Beremiz/CanFestival-3 - ./configure --can=virtual - make - -Launch Beremiz:: - - cd ~/Beremiz/beremiz - python Beremiz.py - diff -r abaa68df90f4 -r 1d383b4c0a23 doc/manual/install_fr.po --- a/doc/manual/install_fr.po Tue Mar 26 17:10:26 2024 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,70 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) is 21st century inquisition -# This file is distributed under the same license as the Beremiz package. -# FIRST AUTHOR , YEAR. -# -msgid "" -msgstr "" -"Project-Id-Version: Beremiz 1.1\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-09-08 00:41\n" -"PO-Revision-Date: 2012-09-07 10:53+0100\n" -"Last-Translator: \n" -"Language-Team: \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Poedit-Language: French\n" -"X-Poedit-Country: FRANCE\n" -"X-Poedit-SourceCharset: utf-8\n" - -# c9c5ea5d04e64cb6a54fcda391cb4929 -#: ../../manual/install.rst:2 -msgid "Beremiz installation" -msgstr "Installation de Beremiz" - -# 3f78e50eff364a0abbfcb8cf9a0a68da -#: ../../manual/install.rst:5 -msgid "Windows" -msgstr "WIndows" - -# 963db7a095b246d68c4a51163b441952 -#: ../../manual/install.rst:6 -msgid "Download installer, install." -msgstr "Téléchergez l'installeur, exécutez le." - -# 87380693201647979e3c0d0527205575 -#: ../../manual/install.rst:9 -msgid "Linux" -msgstr "Linux" - -# 0c4d6e88a20248b9bc3b167cf120c318 -#: ../../manual/install.rst:10 -msgid "Pre-requisites::" -msgstr "Pre-requis::" - -# ced14d340a194a2b9f53b8e6c34d6804 -#: ../../manual/install.rst:16 -msgid "Prepare::" -msgstr "Préparation::" - -# f555cb10ef0d42d6bbbe2f85f0763057 -#: ../../manual/install.rst:21 -msgid "Get Source Code::" -msgstr "Obtenir le code source::" - -# 1d5926626d3b49d891529b9fc687fec3 -#: ../../manual/install.rst:29 -msgid "Build MatIEC compiler::" -msgstr "Compiler le compilateur MatIEC::" - -# 166772d03f6f4d67abb4ed849fc3f6d8 -#: ../../manual/install.rst:35 -msgid "Build CanFestival (optional)::" -msgstr "Compiler CanFestival::" - -# 39a65c2b7ca747438a15d31bd4a40a4f -#: ../../manual/install.rst:47 -msgid "Launch Beremiz::" -msgstr "Lancer Beremiz::" diff -r abaa68df90f4 -r 1d383b4c0a23 doc/manual/install_kr.po --- a/doc/manual/install_kr.po Tue Mar 26 17:10:26 2024 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,68 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) is 21st century inquisition -# This file is distributed under the same license as the Beremiz package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: Beremiz 1.1\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-09-08 01:21\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -# e0e40f1a04d7450688029783c597a70d -#: ../../manual/install.rst:2 -msgid "Beremiz installation" -msgstr "" - -# 5e953bd727894d009ca24f196368efbe -#: ../../manual/install.rst:5 -msgid "Windows" -msgstr "" - -# 03cff4ee7cf34d00b1fb7b38fa005659 -#: ../../manual/install.rst:6 -msgid "Download installer, install." -msgstr "" - -# 6acb8dbf0a7e49e580a933ea249db0f3 -#: ../../manual/install.rst:9 -msgid "Linux" -msgstr "" - -# bc03e803fcdb4657a592f44f07394253 -#: ../../manual/install.rst:10 -msgid "Pre-requisites::" -msgstr "" - -# 288ed8f1d1f54cd289b063ed32f254ff -#: ../../manual/install.rst:16 -msgid "Prepare::" -msgstr "" - -# 526e508b99f243d089c784221be33306 -#: ../../manual/install.rst:21 -msgid "Get Source Code::" -msgstr "" - -# 8387822a9b0d44f0acfda034356c2895 -#: ../../manual/install.rst:29 -msgid "Build MatIEC compiler::" -msgstr "" - -# 6e641f0bd7294cebbf9945f9b6f30f49 -#: ../../manual/install.rst:35 -msgid "Build CanFestival (optional)::" -msgstr "" - -# 893b801ddc7e4136b0b27c409addf250 -#: ../../manual/install.rst:47 -msgid "Launch Beremiz::" -msgstr "" diff -r abaa68df90f4 -r 1d383b4c0a23 doc/manual/start.rst --- a/doc/manual/start.rst Tue Mar 26 17:10:26 2024 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,2 +0,0 @@ -Start a new automation project -============================== diff -r abaa68df90f4 -r 1d383b4c0a23 doc/manual/start_fr.po --- a/doc/manual/start_fr.po Tue Mar 26 17:10:26 2024 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,23 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) is 21st century inquisition -# This file is distributed under the same license as the Beremiz package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: Beremiz 1.1\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-09-08 00:41\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -# e29071b823ff495d8af8558542c0537a -#: ../../manual/start.rst:2 -msgid "Start a new automation project" -msgstr "" diff -r abaa68df90f4 -r 1d383b4c0a23 doc/manual/start_kr.po --- a/doc/manual/start_kr.po Tue Mar 26 17:10:26 2024 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,23 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) is 21st century inquisition -# This file is distributed under the same license as the Beremiz package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: Beremiz 1.1\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-09-08 01:21\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -# e29071b823ff495d8af8558542c0537a -#: ../../manual/start.rst:2 -msgid "Start a new automation project" -msgstr "" diff -r abaa68df90f4 -r 1d383b4c0a23 doc/overview.rst --- a/doc/overview.rst Tue Mar 26 17:10:26 2024 +0100 +++ b/doc/overview.rst Wed Apr 03 13:02:50 2024 +0200 @@ -1,10 +1,36 @@ -Project overview -================ +Overview: IDE and runtime(s) +============================ -In order to target the widest possible range of programmable devices and keep efficient, Beremiz use C code as an intermediate language. +.. + TODO: take content from https://hg.beremiz.org/beremiz_docs/ -To be executed, C needs to be compiled. `GCC `_ serve that purpose perfectly. +PLCopen TC6 based Model-View-Controller Editor +---------------------------------------------- -PLC program is expressed in languages defined in IEC-61131, including graphical languages. Thanks to PLCopen TC2, those graphical languages have a standardised representation, in XML. +Toolchain +--------- -To be continued. +Runtimes +-------- + +Python runtime +^^^^^^^^^^^^^^ + +C runtime +^^^^^^^^^ + +Extensions +---------- + +Fieldbusses +^^^^^^^^^^^ + +HMI +^^^ + +I/Os +^^^^ + +Integration +----------- + diff -r abaa68df90f4 -r 1d383b4c0a23 doc/overview_fr.po --- a/doc/overview_fr.po Tue Mar 26 17:10:26 2024 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,60 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) is 21st century inquisition -# This file is distributed under the same license as the Beremiz package. -# FIRST AUTHOR , YEAR. -# -msgid "" -msgstr "" -"Project-Id-Version: Beremiz 1.1\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-09-08 00:41\n" -"PO-Revision-Date: 2012-09-07 11:18+0100\n" -"Last-Translator: \n" -"Language-Team: \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Poedit-Language: French\n" -"X-Poedit-Country: FRANCE\n" -"X-Poedit-SourceCharset: utf-8\n" - -# b82e66796943449ea9e01b02ddcd12ca -#: ../../overview.rst:2 -msgid "Project overview" -msgstr "Vue d'ensemble sur le projet" - -# 32289df91d6b4cdeb2c54604118bfc69 -#: ../../overview.rst:4 -msgid "" -"In order to target the widest possible range of programmable devices and " -"keep efficient, Beremiz use C code as an intermediate language." -msgstr "" -"Dans le but de viser la plus grande variété de dispositifs programmables " -"tout en restant efficace, Beremiz utilise le C comme langage intermédiaire." - -# 6abccf881e4e478987befa2e9ce5a9ce -#: ../../overview.rst:6 -msgid "" -"To be executed, C needs to be compiled. `GCC `_ serve " -"that purpose perfectly." -msgstr "" -"Afin de pouvoir être exécuté le C doit être compilé. Le `GCC `_ rempli cette fonction parfaitement. " - -# 5057a1dfe63a475981bad9028c8e3be8 -#: ../../overview.rst:8 -msgid "" -"PLC program is expressed in languages defined in IEC-61131, including " -"graphical languages. Thanks to PLCopen TC2, those graphical languages have a " -"standardised representation, in XML." -msgstr "" -"Les programmes destinés au automates programmables sont exprimés dans les " -"langages définis par la norme IEC-61131, incluant des langages graphiques. " -"Thanks to PLCopen TC2, those graphical languages have a standardised " -"representation, in XML." - -# a6318fafe7b948a2b59e153b23de51f2 -#: ../../overview.rst:10 -msgid "To be continued." -msgstr "" diff -r abaa68df90f4 -r 1d383b4c0a23 doc/overview_kr.po --- a/doc/overview_kr.po Tue Mar 26 17:10:26 2024 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,50 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) is 21st century inquisition -# This file is distributed under the same license as the Beremiz package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: Beremiz 1.1\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-09-08 01:21\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -# 6acef656390a43d59cf15591c724dbeb -#: ../../overview.rst:2 -msgid "Project overview" -msgstr "" - -# 92ad927cb1054cbc8045b0823dd8e5fc -#: ../../overview.rst:4 -msgid "" -"In order to target the widest possible range of programmable devices and " -"keep efficient, Beremiz use C code as an intermediate language." -msgstr "" - -# 75bb21429f7d4e8f932f2a4a4165684e -#: ../../overview.rst:6 -msgid "" -"To be executed, C needs to be compiled. `GCC `_ serve " -"that purpose perfectly." -msgstr "" - -# c1e711046ada4ceca71f8d15a0bef1e9 -#: ../../overview.rst:8 -msgid "" -"PLC program is expressed in languages defined in IEC-61131, including " -"graphical languages. Thanks to PLCopen TC2, those graphical languages have a " -"standardised representation, in XML." -msgstr "" - -# 64355ef541204c7990a06fc5e00b44fe -#: ../../overview.rst:10 -msgid "To be continued." -msgstr "" diff -r abaa68df90f4 -r 1d383b4c0a23 doc/programming/connect.rst --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/programming/connect.rst Wed Apr 03 13:02:50 2024 +0200 @@ -0,0 +1,98 @@ +Connect IDE to Runtime +====================== + + +Connection is described by the *URI_location* in project's configuration. + ``Open project tree root -> Config tab -> URI_location`` + +eRPC +---- + +`eRPC `_ (Embedded RPC) is an open source +Remote Procedure Call (RPC) developed by NXP. + +In case of Beremiz, Runtime is the eRPC server and IDE is a client. Transport +can be either TCP/IP or Serial. + +``URI_location`` for eRPC: +^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + * ``ERPC://host[:port]`` unencrypted connection. Default port is 3000. + This connection is highly unsecure, and should never be used on + untrusted network. It is intended to be used on peer to peer connection + such as ethernet over USB, for initial pairing with IDE. + * ``ERPCS://host[:port]`` SSL-PSK encrypted connection. + Default port is 4000. + * ``LOCAL://`` starts local runtime and connect with it through TCP/IP + bound to Localhost using random port. + +SSL-PSK setup: +^^^^^^^^^^^^^^ + +In order to provide practical secure communication in between runtime and IDE +TLS-PSK connection according to rfc4279. + +Server (runtime) +"""""""""""""""" +.. highlight:: ini + +PSK ciphersuite avoids the need for public key operations and certificate +management. It is perfect for a performance-constrained environments with +limited CPU power as a PLC. + +`Stunnel `_ is used to wrap unencrypted eRPC server +into an TLS-PSK SSL socket. Hereafter is ``stunnel.conf``:: + + [ERPCPSK] + accept = 4000 + connect = 127.0.0.1:3000 + ciphers = PSK + sslVersion = TLSv1.2 + PSKsecrets = psk.txt + +.. highlight:: text + +List PSK ciphers available in server's openssl:: + + openssl ciphers -s -psk -tls1_2 + +Launch ``stunnel``:: + + stunnel ./stunnel.conf + +Client (IDE) +"""""""""""" + +Compare client's available openssl PSK ciphers with Server's ciphers. At least +a few of them should match:: + + openssl ciphers -s -psk -tls1_2 + +Use unencrypted peer-to-peer connection such as network over USB +or simple Ethernet cable, connect an obtain PSK:: + + ERPC://hostname[:port] + +Then use Identity Management dialog in IDE to select matching ID and generate +``ERPCS`` URI:: + + ERPCS://hostname[:port]#ID + + +WAMP +---- + +`WAMP `_ is an open standard WebSocket subprotocol that provides two application messaging +patterns in one unified protocol: Remote Procedure Calls + Publish & Subscribe. + +Beremiz WAMP connector implementation uses python ``autobahn`` module, from the `crossbar.io `_ project. + +Both IDE and runtime are WAMP clients that connect to ``crossbar`` server through HTTP. + +``URI_location`` for WAMP: + * ``WAMP://host[:port]#realm#ID`` Websocket over unencrypted HTTP transport. + * ``WAMPS://host[:port]#realm#ID`` Websocket over secure HTTPS transport. + + +.. + TODO : + crossbar server setup with example config and minimal backend. diff -r abaa68df90f4 -r 1d383b4c0a23 doc/programming/create.rst --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/programming/create.rst Wed Apr 03 13:02:50 2024 +0200 @@ -0,0 +1,14 @@ +Start a new automation project +============================== + + +Project properties +------------------ + + +Target type +----------- + + +Libraries +--------- \ No newline at end of file diff -r abaa68df90f4 -r 1d383b4c0a23 doc/programming/edit.rst --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/programming/edit.rst Wed Apr 03 13:02:50 2024 +0200 @@ -0,0 +1,27 @@ +Edit PLC program +================ + + +POU languages and type +---------------------- + + +POU interfaces +-------------- + + +Global variables +---------------- + + +Located variables +----------------- + + +Resources, task and instances +----------------------------- + + +Copy-paste +---------- + diff -r abaa68df90f4 -r 1d383b4c0a23 doc/programming/index.rst --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/programming/index.rst Wed Apr 03 13:02:50 2024 +0200 @@ -0,0 +1,12 @@ +IEC-61131 PLC programming +========================= + +Contents: + +.. toctree:: + :maxdepth: 2 + + create + edit + connect + run \ No newline at end of file diff -r abaa68df90f4 -r 1d383b4c0a23 doc/programming/run.rst --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/programming/run.rst Wed Apr 03 13:02:50 2024 +0200 @@ -0,0 +1,44 @@ +Run PLC code, trace and force variables +======================================= + +Build +----- + + +Transfer +-------- + +IDE and runtime must be connected (see :doc:`connect`) + +.. + TODO + +Run +--- + +.. + TODO + +Trace and Force variables +------------------------- + +.. + TODO + +Instance panel +^^^^^^^^^^^^^^ + +.. + TODO + +Debug view +^^^^^^^^^^ + +.. + TODO + +Debug plots +^^^^^^^^^^^ + +.. + TODO diff -r abaa68df90f4 -r 1d383b4c0a23 doc/standards.rst --- a/doc/standards.rst Tue Mar 26 17:10:26 2024 +0100 +++ b/doc/standards.rst Wed Apr 03 13:02:50 2024 +0200 @@ -1,5 +1,8 @@ +Standards +========= + IEC 61131-3 -=========== +----------- IEC-61131 is a normative document provided by the standards organization IEC (International Electrotechnical Commission) and describing a standard for @@ -14,18 +17,18 @@ http://www.iec.eu PLCopen TC6 -=========== - +----------- + PLCopen is a vendor- and product-independent worldwide association defining international standards for various topics related to control programming. For this purpose, PLCopen has 6 technical committees. - - + + The goal of the sixth committee (TC6) is to define a standard file format, based on XML, for exchanging programmables controllers programmed using IEC 61131-3 languages. Beremiz uses this file format for saving the PLC programs of projects. - - + + http://www.plcopen.org diff -r abaa68df90f4 -r 1d383b4c0a23 doc/standards_kr.po --- a/doc/standards_kr.po Tue Mar 26 17:10:26 2024 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,71 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) is 21st century inquisition -# This file is distributed under the same license as the Beremiz package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: Beremiz 1.1\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-09-08 01:47\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -# 175ab223adbc42749a504a6f9718fb71 -#: ../../standards.rst:2 -msgid "IEC 61131-3" -msgstr "" - -# c2d98f5b3a4c4f6fa6fdab3b7d419f28 -#: ../../standards.rst:4 -msgid "" -"IEC-61131 is a normative document provided by the standards organization IEC " -"(International Electrotechnical Commission) and describing a standard for " -"implementing programmable controllers." -msgstr "" - -# da7a80107e094184af3a7d6504a3718b -#: ../../standards.rst:9 -msgid "" -"The part 3 of this document (commonly named IEC 61131-3) specifies syntax " -"and semantics for programming language for programmable controllers. Beremiz " -"implements all the languages described in this document." -msgstr "" - -# 98082fb5f0564eb38341fd5865f3cef6 -#: ../../standards.rst:14 -msgid "http://www.iec.eu" -msgstr "" - -# fb0bef609e7b43079133dc137afbdc34 -#: ../../standards.rst:17 -msgid "PLCopen TC6" -msgstr "" - -# abf4b2a73aa54caba919975385b1b2af -#: ../../standards.rst:19 -msgid "" -"PLCopen is a vendor- and product-independent worldwide association defining " -"international standards for various topics related to control programming. " -"For this purpose, PLCopen has 6 technical committees." -msgstr "" - -# aa4df8a9f69749cdb44143a2f6a973e2 -#: ../../standards.rst:24 -msgid "" -"The goal of the sixth committee (TC6) is to define a standard file format, " -"based on XML, for exchanging programmables controllers programmed using IEC " -"61131-3 languages. Beremiz uses this file format for saving the PLC programs " -"of projects." -msgstr "" - -# 3c0fd475a8374f8d843d142081bdaf35 -#: ../../standards.rst:30 -msgid "http://www.plcopen.org" -msgstr "" diff -r abaa68df90f4 -r 1d383b4c0a23 doc/svghmi/clones.rst --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/svghmi/clones.rst Wed Apr 03 13:02:50 2024 +0200 @@ -0,0 +1,11 @@ +Re-using elements with Inkscape clones (svg:use) +================================================= + +Re-use of pages +--------------- + +Re-use of widgets +----------------- + +Re-use of SVG elements in widgets +--------------------------------- \ No newline at end of file diff -r abaa68df90f4 -r 1d383b4c0a23 doc/svghmi/configuration.rst --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/svghmi/configuration.rst Wed Apr 03 13:02:50 2024 +0200 @@ -0,0 +1,14 @@ +Configure SVGHMI instances +========================== + +Ports and interfaces +-------------------- + +Watchdog +-------- + +Launching browser +----------------- + +Static files +------------ \ No newline at end of file diff -r abaa68df90f4 -r 1d383b4c0a23 doc/svghmi/fonts.rst --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/svghmi/fonts.rst Wed Apr 03 13:02:50 2024 +0200 @@ -0,0 +1,11 @@ +Include fonts in HMI +==================== + +Inkscape uses system fonts +-------------------------- + +Supported font types +-------------------- + +Add/remove fonts +---------------- \ No newline at end of file diff -r abaa68df90f4 -r 1d383b4c0a23 doc/svghmi/groups.rst --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/svghmi/groups.rst Wed Apr 03 13:02:50 2024 +0200 @@ -0,0 +1,16 @@ +Using Groups (svg:g) +==================== + + +Nesting widgets +--------------- + +Side effects of optimization +---------------------------- + +Detachable pages +^^^^^^^^^^^^^^^^ + +Discardable elements +^^^^^^^^^^^^^^^^^^^^ + diff -r abaa68df90f4 -r 1d383b4c0a23 doc/svghmi/hacking.rst --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/svghmi/hacking.rst Wed Apr 03 13:02:50 2024 +0200 @@ -0,0 +1,9 @@ +Trick and tips +============== + +Add you own JavaScript code +--------------------------- + +Go full screen +-------------- + diff -r abaa68df90f4 -r 1d383b4c0a23 doc/svghmi/i18n.rst --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/svghmi/i18n.rst Wed Apr 03 13:02:50 2024 +0200 @@ -0,0 +1,14 @@ +Internationalization +==================== + +Selecting text to be translated +------------------------------- + +Gettext, POedit and message catalogs +------------------------------------ + +Adding a new language +--------------------- + +Updating translations +--------------------- diff -r abaa68df90f4 -r 1d383b4c0a23 doc/svghmi/index.rst --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/svghmi/index.rst Wed Apr 03 13:02:50 2024 +0200 @@ -0,0 +1,18 @@ +SVGHMI +====== + +Contents: + +.. toctree:: + :maxdepth: 2 + + intro + syntax + pages + clones + groups + variables + configuration + i18n + fonts + hacking \ No newline at end of file diff -r abaa68df90f4 -r 1d383b4c0a23 doc/svghmi/intro.rst --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/svghmi/intro.rst Wed Apr 03 13:02:50 2024 +0200 @@ -0,0 +1,110 @@ +Introduction to SVGHMI +====================== + ++-----------------------------+-------------------------------------------------------------------------------+ +| | SVGHMI is a SVG based HMI toolkit. With it, PLC programmers and HMI designers | +| .. image:: svhgmi_pitch.svg | can efficiently produce Scalable Web Based HMIs.

HMI design | +| | happens in `Inkscape `_. | +| | Designer freely draws HMI pages and widgets following WYSIWYG principle. | ++-----------------------------+-------------------------------------------------------------------------------+ + +WYSIWYG HMI design with Inkscape +-------------------------------- + + "**What You See Is What You Get**, is a system in which editing software + allows content to be edited in a form that resembles its appearance when + printed or displayed as a finished product." + + -- Oxford English Dictionary + +Widgets can be selected from customizable widget library and drag'n'dropped +directly in Inkscape. + +.. image:: svghmi_dnd.svg + +SVGHMI's Page and Widget roles are assigned to SVG elements by changing objects +name and description in Inkscape. + +.. image:: svhgmi_inkscape.svg + +HMI tree scale together with PLC instance tree +---------------------------------------------- + +In SVGHMI, **scalability** applies to both graphics and data. Once HMI and PLC +are associated in a first version of a machine, it is easy to extend both of +them simultaneously. In most cases DRY principle applies. PLC code or SVG +elements can be re-used and extended. + +PLC data exposed to HMI is represented in an "HMI Tree" deduced from PLC +program. More precisely, HMI Tree is a simplified subset of POU instances tree. +PLC programmer selects variables to be exposed by assigning them a derived +HMI_* type. For example HMI_REAL is used instead of REAL to expose a floating +point variable. + +.. image:: svghmi_trees.svg + +In order to reduce HMI Tree complexity, structure of POU instance tree is not +preserved by default. Only POUs having a single HMI_NODE variable defined +appear in HMI Tree. This allows to expose variables that are spread in a +complex hierarchy of POUs in a single HMI Tree node. + +.. image:: svghmi_types.svg + +Re-usable widgets and pages +--------------------------- + +HMI elements are SVG elements whose labels start with ``HMI:``. They can be +widgets or pages, and can point to locations in HMI tree with a path starting +with a ``/``, and with ``/``-separated hierarchical levels. +For example, ``/THIS/IS/A/VALID/HMI_TREE/PATH``. + +``HMI:Switch@/GREENLIGHT`` + "Switch" type widget bound to a variable named GREENLIGHT at root of HMI tree + +Each ``HMI:Page`` has a unique name. ``HMI:Jump`` and ``HMI:Back`` widgets are +used to switch to other pages. PLC can also trigger page change autonomously. +HMI must have at least one SVG element labelled ``HMI:Page:Home``. ``Home`` is +a special page name: it will make this page the landing page when HMI is loaded. + +.. image:: svhgmi_pages.svg + +``HMI:Page:Home`` + Mandatory "Home" page declaration + +``HMI:Jump:Home`` + Change current page to "Home" page when clicked + +``HMI:Back`` + Change current page back to previous page when clicked + +Pages and groups of widgets can be dynamically re-based to another compatible +HMI Tree location. They can then be be re-used as HMI components, paired with +corresponding POU instances on PLC side. + +Simple yet powerful widgets +--------------------------- + +Widgets are meant to be as simple as possible. Still, they can become complex +when implementing interactions that cannot be broken down into multiple +independent widgets. + ++------------------------------------+---------------------------------+ +| Meter Widget Template (`HMI:Meter`)| Voltmeter (`HMI:Meter`) | ++====================================+=================================+ +| .. image:: svghmi_meter.svg | .. image:: svghmi_voltmeter.svg | ++------------------------------------+---------------------------------+ + +HMI and pages have their own local variables allowing interaction in between +widgets bypassing HMI Tree. For example, position of `HMI:Scrollbar` can be +directly connected to a position in `HMI:JSONTable` with a page local +variable. + +How does it work ? +------------------ + +HMI's client and server code is generated during SVGHMI build, based on PLC +code and HMI design. + +.. image:: svghmi_overview.svg + +SVGHMI build is part of Beremiz build, available in IDE and command line. diff -r abaa68df90f4 -r 1d383b4c0a23 doc/svghmi/pages.rst --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/svghmi/pages.rst Wed Apr 03 13:02:50 2024 +0200 @@ -0,0 +1,96 @@ +Pages, Jumps and HMI_NODE relativity +==================================== + +Pages are full screen. Only one page is displayed at the same time. + +Page change is triggered by ``HMI:Jump`` and ``HMI:Back``, or by changing ``/CURRENTPAGE_N``. + +.. code-block:: text + + HMI:Page:PageName[@RootPath] + HMI:Jump:PageName[@RelativePath] + HMI:Back + +Absolute and relative pages +--------------------------- + +When ``[@RootPath]`` is given, page is relative. + +When using ``HMI:Jump`` to reach a relative page, a compatible +``[@RelativePath]`` may be provided. + +To be compatible, ``RootPath`` and ``RelativePath`` must both point to +HMI tree nodes of type ``HMI_NODE`` instanciated from same POU. + +Every widget using a path descendant of ``RootPath`` in a relative +page is relative. Relative widgets get the ``RootPath`` section of +their path replaced by ``RelativePath``. + +Relative page label:: + + HMI:Page:PageName + +Absolute page label:: + + HMI:Page:PageName@RootPath + +.. image:: svghmi_relative.svg + + +Jump and Back +------------- + + +``HMI:Jump`` can have ``inactive``, ``active`` and ``disabled`` labeled children: + + * ``inactive`` is shown when target page is not currently displayed + * ``active`` is shown when target page is currently displayed + * ``disabled`` is shown when relative page's RootPath is set to 0, disabling jump. + +Relative page label:: + + HMI:Jump:PageName[@RelativePath] + +Absolute page label:: + + HMI:Jump:PageName + + +``HMI:Back`` takes no parameter and just go back one step in page change history. + + +Special ``/CURRENTPAGE_N`` variable +----------------------------------- + +.. + TODO + + +Overlapping geometry +-------------------- + +If widget's bounding box is included in page bounding box, then widget is part of page. + +.. + TODO + + +References frames +----------------- + +References frames help to unclutter page and widgets. + +.. + TODO + +Screensaver +----------- + +.. + TODO + +Fading +------ + +.. + TODO diff -r abaa68df90f4 -r 1d383b4c0a23 doc/svghmi/svghmi_dnd.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/svghmi/svghmi_dnd.svg Wed Apr 03 13:02:50 2024 +0200 @@ -0,0 +1,6911 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + IDE + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -r abaa68df90f4 -r 1d383b4c0a23 doc/svghmi/svghmi_library.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/svghmi/svghmi_library.svg Wed Apr 03 13:02:50 2024 +0200 @@ -0,0 +1,6911 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + IDE + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -r abaa68df90f4 -r 1d383b4c0a23 doc/svghmi/svghmi_meter.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/svghmi/svghmi_meter.svg Wed Apr 03 13:02:50 2024 +0200 @@ -0,0 +1,185 @@ + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + A sophisticated meter looking like real + + + 0 + 10000 + [value] + + diff -r abaa68df90f4 -r 1d383b4c0a23 doc/svghmi/svghmi_overview.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/svghmi/svghmi_overview.svg Wed Apr 03 13:02:50 2024 +0200 @@ -0,0 +1,2410 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + PLC + XML + + + + + + + + + + + + + + open + + + + + + + + + + + + + + + + + + + + + + + + SVG + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SVGHMIbuild + + + + + + + + + + + + + + + + + + + + IDE + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Runtime + + + + + + + + + + + + websocket + websocket + + + + + + + + + + + + <?xml version="1.0" en + + + + + + + + + + + + + XHTML + XHTML + + + + + + + + + + + + + + + + + + + + + + + + + SVG + + + + + + + + + + + + + + + + + + + + + + + C CODE + C CODE + + + + + + + + + + + + + + + + + + + PYTHON + PYTHON + + + + + + + PLC programming + HMI design + HMI + PLC + + + + diff -r abaa68df90f4 -r 1d383b4c0a23 doc/svghmi/svghmi_relative.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/svghmi/svghmi_relative.svg Wed Apr 03 13:02:50 2024 +0200 @@ -0,0 +1,1289 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + / + HMI:MyPage@/A/B/C0 + + HMI:Jump:MyPage + + HMI:Jump:MyPage@/A/B/C1 + + HMI:Jump:MyPage@/A/B/C2 + + HMI:Jump:MyPage@/D/E/F + A + B + C0 + C1 + C2 + D + E + F + HMI:Jump:MyPage@/A/B/C0 + G + H + HMI:Widget@/A/B/C0/G + HMI:Widget@/A/B/C0/H + HMI:MyPage@/A/B/C0 + G + H + HMI:Widget@/A/B/C0/G + HMI:Widget@/A/B/C0/H + HMI:MyPage@/A/B/C0 + G + H + HMI:Widget@/A/B/C0/G + HMI:Widget@/A/B/C0/H + HMI:MyPage@/A/B/C0 + G + H + HMI:Widget@/A/B/C0/G + HMI:Widget@/A/B/C0/H + real path: /A/B/C0/G + real path: /A/B/C0/H + real path: /A/B/C1/G + real path: /A/B/C1/H + real path: /A/B/C2/G + real path: /A/B/C3/H + real path: /D/E/F/G + real path: /D/E/F/H + + HMI:SomePage + HMI:Widget@/A/I + HMI:Widget@/D/J + I + J + + HMI:Jump:SomePage + HMI_TREE root + + + HMI_NODE in a POU + HMI_* variable + + + diff -r abaa68df90f4 -r 1d383b4c0a23 doc/svghmi/svghmi_trees.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/svghmi/svghmi_trees.svg Wed Apr 03 13:02:50 2024 +0200 @@ -0,0 +1,749 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + POU with HMI_NODE + + + + + + + + HMI_INT + + + + HMI_REAL + + + + HMI_BOOL + + + + HMI_STRING + + + + POU + + + + VARIABLE + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + POU instances tree + + + + + + + + + + + + + + + + + + HMI tree + + + + + diff -r abaa68df90f4 -r 1d383b4c0a23 doc/svghmi/svghmi_types.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/svghmi/svghmi_types.svg Wed Apr 03 13:02:50 2024 +0200 @@ -0,0 +1,1948 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + IDE + + + + + + + diff -r abaa68df90f4 -r 1d383b4c0a23 doc/svghmi/svghmi_voltmeter.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/svghmi/svghmi_voltmeter.svg Wed Apr 03 13:02:50 2024 +0200 @@ -0,0 +1,804 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Old Style Russian Voltmeter, from openclipart https://openclipart.org/detail/205486/voltmeter-and-ammeter + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -r abaa68df90f4 -r 1d383b4c0a23 doc/svghmi/svhgmi_inkscape.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/svghmi/svhgmi_inkscape.svg Wed Apr 03 13:02:50 2024 +0200 @@ -0,0 +1,1004 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Down Arrow + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Use SVGHMI widget syntaxto turn SVG elements into widgets + + + + diff -r abaa68df90f4 -r 1d383b4c0a23 doc/svghmi/svhgmi_pages.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/svghmi/svhgmi_pages.svg Wed Apr 03 13:02:50 2024 +0200 @@ -0,0 +1,5250 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Down Arrow + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Page template + + + diff -r abaa68df90f4 -r 1d383b4c0a23 doc/svghmi/svhgmi_pitch.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/svghmi/svhgmi_pitch.svg Wed Apr 03 13:02:50 2024 +0200 @@ -0,0 +1,1482 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + HMI + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 100 + 200 + 300 + 400 + 0 + + + + + + + + + + = + + + + + diff -r abaa68df90f4 -r 1d383b4c0a23 doc/svghmi/syntax.rst --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/svghmi/syntax.rst Wed Apr 03 13:02:50 2024 +0200 @@ -0,0 +1,23 @@ +Widget syntax +============= + +.. highlight:: text + +HMI elements are SVG elements whose labels start with ``HMI:``:: + + HMI:WidgetType[|freq][[:param]...][[@a=path[,min][,max]]...][#expression] + +Widget Type +----------- + +Update Frequency +---------------- + +Parameters +---------- + +Variable bindings +----------------- + +Enable expression +----------------- \ No newline at end of file diff -r abaa68df90f4 -r 1d383b4c0a23 doc/svghmi/variables.rst --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/svghmi/variables.rst Wed Apr 03 13:02:50 2024 +0200 @@ -0,0 +1,11 @@ +PLC variables and local variables +================================== + +PLC variables start with ``/`` +------------------------------ + +Local Page variables start with ``.`` +------------------------------------- + +Local HMI variables +-------------------