From b525b0f5e41339c20902241e39f3624b06798d72 Mon Sep 17 00:00:00 2001 From: Robert von Burg Date: Wed, 17 Aug 2022 15:36:04 +0200 Subject: [PATCH] [Major] Updated PLC example setup doc --- content/development/maven-archetypes.md | 7 +- content/plc/_index.md | 2 +- content/plc/example-set-up.md | 546 ++++-------------------- static/assets/images/plc-server.png | Bin 0 -> 17662 bytes static/assets/images/plc.png | Bin 0 -> 63189 bytes 5 files changed, 88 insertions(+), 467 deletions(-) create mode 100644 static/assets/images/plc-server.png create mode 100644 static/assets/images/plc.png diff --git a/content/development/maven-archetypes.md b/content/development/maven-archetypes.md index 930f0ef..140a582 100644 --- a/content/development/maven-archetypes.md +++ b/content/development/maven-archetypes.md @@ -6,8 +6,11 @@ weight: 40 ## Maven Archetypes Maven offers archetypes to generate new projects. Strolch offers the following archetypes, to create new projects: + * [li.strolch.mvn.archetype.main](/development/main-class-app) for Java main class applications -* [li.strolch.mvn.archetype.webapp](/development/web-app) for Java Web based applications using REST and Polymer 1.x as the frontend. +* [li.strolch.mvn.archetype.webapp](/development/web-app) for Java Web based applications using REST and Polymer 1.x as + the frontend. +* [li.strolch.mvn.archetype.plc](/plc/example-set-up) for Strolch PLC projects. To use the archetypes, clone the archetypes repository and install it locally: @@ -17,4 +20,4 @@ cd strolch-maven-archetypes mvn clean install ``` -Then follow one of the next steps to create the type of application you want. \ No newline at end of file +Then follow one of the next steps to create the type of application you want. diff --git a/content/plc/_index.md b/content/plc/_index.md index b4a3dc1..580c381 100644 --- a/content/plc/_index.md +++ b/content/plc/_index.md @@ -19,7 +19,7 @@ description in how to set up your own Strolch based PLC. Checkout the code at [GitHub](https://github.com/strolch-li/strolch-plc) -Strolch PLC is also deployed to Maven Central. Current version is 1.2.1. +Strolch PLC is also deployed to Maven Central. Current version is 1.2.2 and is using Strolch version 1.8.5. Currently, we have the following topics of discussion: diff --git a/content/plc/example-set-up.md b/content/plc/example-set-up.md index ec155eb..dd17c61 100644 --- a/content/plc/example-set-up.md +++ b/content/plc/example-set-up.md @@ -20,362 +20,60 @@ business logic and the PLC controls the I/Os. ![Strolch PLC Example](/assets/images/Strolch-Plc-Example.png) ## New Project -1. First create a new Strolch Web project using the Strolch Maven archetype -2. Now add the following Maven dependencies: -```xml - - - 1.8.4 - 1.2.2 - - - - - li.strolch - li.strolch.bom - pom - ${strolch.version} - import - - - li.strolch - strolch-plc-bom - pom - ${strolch.plc.version} - import - - - - - - - li.strolch - strolch-plc-core - - - li.strolch - strolch-plc-rest - - - li.strolch - strolch-plc-gw-client - - - +Create a new project using the PLC Strolch Maven Archetype: + +```shell +mvn archetype:generate \ + -DarchetypeGroupId=li.strolch \ + -DarchetypeArtifactId=li.strolch.mvn.archetype.plc \ + -DarchetypeVersion=0.1.0-SNAPSHOT \ + -DgroupId= \ + -DartifactId= \ + -Dversion= \ + -Dpackage= \ + -DappName="" + ``` -3. Add a bower dependency: `"strolch-wc-plc": "strolch-li/strolch-wc-plc#^0.3.20"` - to `src/main/webapp/bower.json` +This will create a multi-module project: - After adding the dependency, run `gulp` in the webapp directory. Gulp should - have been installed through the instructions from - the [development page](/development). +- The `-web` module contains the server code, which handles notifications from the PLC, and can send + telegrams to the PLC. +- The `-plc-web` module contains the PLC code, which connects to the server and communicates with the + low-level hardware. +- The `shared` modules contains classes shared by both projects (e.g. constants, etc.). -4. Now we need to add the PLC web views to our new project. This is added in - the `src/main/webapp/app/src/c-app.html` file. Add the following: +This project already contains a default PLC model in `-plc-web/runtime/data/`. -```html - - - +The following sections explains these files: - - +### strolch-plc-example-connections.xml - - - +This file defines the hardware connections. The following connections are implemented: -// add a new property to the WebSocket path for observing changes on the PLC -wsObserverPath: { - type: String, - value: function () { - return CustomWeb.baseWsPath + "/plc/observer"; - } -} -``` +* li.strolch.plc.core.hw.i2c.RSL366OverHorterI2c +* li.strolch.plc.core.hw.i2c.PCF8574InputConnection +* li.strolch.plc.core.hw.gpio.RaspiBcmGpioInputConnection +* li.strolch.plc.core.hw.gpio.RaspiBcmGpioOutputConnection +* li.strolch.plc.core.hw.i2c.Multi8BitI2cOutputConnection +* li.strolch.plc.core.hw.connections.DataLogicScannerConnection +* li.strolch.plc.core.hw.connections.LoggerOutConnection +* li.strolch.plc.core.hw.connections.RandomStringConnection -5. Don't forget to add the PLC Rest classes to your `ResourceConfig` +See their respective classes for details. -```java -@ApplicationPath("rest") -public class RestfulApplication extends ResourceConfig { +### strolch-plc-example.csv - public RestfulApplication() { +This file maps I/Os to Resources and Actions and is converted into Strolch `Resource` objects using +the `PlcAddressGenerator` class. - ... +In this example we will use simple Raspberry Pi GPIOs. For convenience, and also when sharing I/O definitions with +external partners, it is easier to use a CSV file to define the I/Os and then use the `PlcAddressGenerator` to generate +and validate the model. - // strolch plc services - packages(PlcConnectionsResource.class.getPackage().getName()); - - ... - } -} -``` - -6. Now we need to configure the PLC's runtime by - modifying `runtime/StrolchConfiguration.xml` and adding the following: - -```xml - - - - - - PlcHandler - li.strolch.plc.core.PlcHandler - li.strolch.plc.core.DefaultPlcHandler - RealmHandler - - - li.strolch.plc.core.hw.DefaultPlc - - - - - - PlcServiceInitializer - li.strolch.plc.core.PlcServiceInitializer - li.strolch.plc.example.CustomPlcServiceInitializer - PlcHandler - - - - - - - PlcGwClientHandler - li.strolch.plc.gw.client.PlcGwClientHandler - li.strolch.plc.gw.client.PlcGwClientHandler - PlcHandler - PlcServiceInitializer - - plc-01 - plc-01 - plc-01 - ws://localhost:8080/agent/websocket/strolch/plc - - - - - -``` - -7. Now we add the custom classes we just declared. - -**PlcServiceInitializer** - -```java -import java.util.ArrayList; -import java.util.List; - -import li.strolch.plc.example.services.*; -import li.strolch.agent.api.ComponentContainer; -import li.strolch.plc.core.PlcHandler; -import li.strolch.plc.core.PlcService; -import li.strolch.plc.core.PlcServiceInitializer; - -public class CustomPlcServiceInitializer extends PlcServiceInitializer { - - public CustomPlcServiceInitializer(ComponentContainer container, String componentName) { - super(container, componentName); - } - - @Override - protected List getPlcServices(PlcHandler plcHandler) { - ArrayList plcServices = new ArrayList<>(); - - StartupPlcService startupPlcService = new StartupPlcService(plcHandler); - ConveyorPlcService conveyorPlcService = new ConveyorPlcService(plcHandler); - - plcServices.add(conveyorPlcService); - plcServices.add(startupPlcService); - - return plcServices; - } -} -``` - -**PlcPostInitializer** -```java -import li.strolch.agent.api.ComponentContainer; -import li.strolch.plc.core.PlcPostInitializer; - -public class CustomPostInitializer extends PlcPostInitializer { - public CustomPostInitializer(ComponentContainer container, String componentName) { - super(container, componentName); - } - - // override the initialize(), start(), stop() and destroy() methods as needed -} -``` - -8. In the `CustomPlcServiceInitializer` we added two PlcServices, for which the - code is missing. The following are simple examples: - -**StartupPlcService** - -```java -import li.strolch.persistence.api.StrolchTransaction; -import li.strolch.plc.core.PlcHandler; -import li.strolch.plc.core.PlcService; - -public class StartupPlcService extends PlcService { - - public static final String PLC = "PLC"; - public static final String STARTED = "Started"; - public static final String STOPPED = "Stopped"; - - public StartupPlcService(PlcHandler plcHandler) { - super(plcHandler); - } - - @Override - public void start(StrolchTransaction tx) { - send(PLC, STARTED); - super.start(tx); - } - - @Override - public void stop() { - send(PLC, STOPPED); - super.stop(); - } -} -``` - -**ConveyorPlcService** - -```java - - -import java.util.concurrent.ScheduledFuture; -import java.util.concurrent.TimeUnit; - -import li.strolch.plc.core.PlcHandler; -import li.strolch.plc.core.PlcService; -import li.strolch.plc.model.PlcAddress; - -public class ConveyorPlcService extends PlcService { - - public static final int BOX_TRANSFER_DURATION = 30; - - private static final String R_CONVEYOR_01 = "Conveyor01"; - private static final String A_START_BUTTON = "StartButton"; - private static final String T_MOTOR_ON = "MotorOn"; - private static final String T_MOTOR_OFF = "MotorOff"; - private static final String A_BOX_DETECTED = "BoxDetected"; - - private boolean motorOn; - private ScheduledFuture motorStopTask; - - public ConveyorPlcService(PlcHandler plcHandler) { - super(plcHandler); - } - - @Override - public void handleNotification(PlcAddress address, Object value) { - String resource = address.resource; - String action = address.action; - - if (!resource.equals("Conveyor01")) - throw new IllegalStateException("Unexpected resource " + resource); - - boolean active = (boolean) value; - - if (action.equals(A_START_BUTTON)) { - - if (active) { - logger.info("Start button pressed. Starting motors..."); - send(R_CONVEYOR_01, T_MOTOR_ON); - this.motorOn = true; - scheduleStopTask(); - } - - } else if (action.equals(A_BOX_DETECTED)) { - - if (active && this.motorOn) { - logger.info("Container detected, refreshing stop task..."); - scheduleStopTask(); - } - - } else { - logger.info("Unhandled notification " + address.toKeyAddress()); - } - } - - private void scheduleStopTask() { - if (this.motorStopTask != null) - this.motorStopTask.cancel(false); - this.motorStopTask = schedule(this::stopMotor, BOX_TRANSFER_DURATION, TimeUnit.SECONDS); - } - - private void stopMotor() { - send(R_CONVEYOR_01, T_MOTOR_OFF); - } - - @Override - public void register() { - this.plcHandler.register(R_CONVEYOR_01, A_START_BUTTON, this); - this.plcHandler.register(R_CONVEYOR_01, A_BOX_DETECTED, this); - super.register(); - } - - @Override - public void unregister() { - this.plcHandler.unregister(R_CONVEYOR_01, A_START_BUTTON, this); - this.plcHandler.unregister(R_CONVEYOR_01, A_BOX_DETECTED, this); - super.unregister(); - } -} -``` - -9. Now the last part is to add the model, i.e. PlcConnections, PlcAddresses and - PlcTelegrams. To have less configuration files and make it easier to - reconfigure at runtime, this data is stored in normal Strolch `Resources`. - - In this example we will use simple Raspberry Pi GPIOs. For convenience, and - also when sharing I/O definitions with external partners, it is easier to use - a CSV file to define the I/Os and then use the `PlcAddressGenerator` to - generate and validate the model. - - For this purpose in this example, we will use one conveyor with 2 inputs and - 1 output. The CSV file should have the following content: - -```csv -Description,Type,SubType,Device,Pin,Resource,Action1,Action2,Connection,DeviceId -Material Flow,Group,,,,,,,,MaterialFlow -Conveyor 1,Input,Pin,,4,Conveyor,Occupied,,raspiBcmGpioInput -Conveyor 1,Input,Pin,,17,Conveyor,BoxDetected,,raspiBcmGpioInput -Conveyor 1,Output,Pin,,18,Conveyor,MotorOn,MotorOff,raspiBcmGpioOutput -``` +For easier handling, use the following Google Sheet as a starting +point: https://docs.google.com/spreadsheets/d/10fgTfR3FZCVbQ5bbh0xB1u8rLIaw2KEyO45VMv7y5ho/edit?usp=sharing The CSV headers are as follows: @@ -392,13 +90,14 @@ The CSV headers are as follows: Scanner. The actions must be left empty as the keys Barcode (address), On and Off (telegrams) will be generated. * SubType → -* For Input and Output types → - * DevPin, DevPin0 → Generates the address as `..`. - DevPin0 decrements the Device and Pin values by one. - * Pin → Generates the address as `.`. -* For Virtual types → - * Boolean - * String + * For Input and Output types → + * DevPin, DevPin0 → Generates the address as `..`. + DevPin0 decrements the Device and Pin values by one for zero-indexed addressing. + * Pin → Generates the address as `.`. + * For Virtual types → + * Boolean + * String + * Integer * Device → Device number * Pin → The pin number on the device * Resource → The resource ID with which to notify the agent @@ -406,134 +105,53 @@ The CSV headers are as follows: * Action2 → The second action ID if required * Connection → The ID of the PlcConnection with which this I/O is attached * DeviceId → For type Group: Set the ID of this PlcLogicalDevice being generated +* Interted → For boolean inputs or outputs, if true, inverts the value +* Value → A default value, often used for virtual integer addresses +* Remote → if true, then the server will be notified of changes to this address When you use this file as input for the `PlcAddressGenerator`, then it will -generate PlcLogicalDevice, PlcAddress and PlcTelegram elements: +generate PlcLogicalDevice, PlcAddress and PlcTelegram elements. See the file `strolch-plc-example.xml` for an example. -```xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -``` - -The PlcLogicalDevice references the PlcAddress and PlcTelegram objects, and is +The `PlcLogicalDevice` references the `PlcAddress` and `PlcTelegram` objects, and is then used in the UI for grouping. -The PlcAddress is used to store the current value and defines the keys with +The `PlcAddress` is used to store the current value and defines the keys with which the agent will be notified -The PlcTelegram is used to store default values to send, for specific keys. E.g. +The `PlcTelegram` is used to store default values to send, for specific keys. E.g. The action `On` would send true, and `Off` would send false. This is semantics, and is defined in each project depending on the hardware. -10. Copy the - file [plc-state.xml](https://github.com/strolch-li/strolch-plc/blob/develop/example/plc-state.xml) - to your runtime and reference it by use of - a `` element. Modify the `PlcId` to be the - same as the one you defined in the `StrolchConfiguration.xml`. +### Running the example -11. Now that we have a model, the `PlcConnections` are to be defined. In the - previous example we used a Raspberry Pi's GPIOs. This needs to be defined as - a `PlcConnection`: +Once you have both the server and PLC instances running, you can login. The default username and password are `admin` +/ `admin`. -```xml +After logging in to the PLC you should be greeted with the following +screen: +![PLC UI](/assets/images/plc.png) - - - - - - - - - - - - - - - - - - - - -``` +And after logging in to the server you should be greeted with the following +screen: +![Server UI](/assets/images/plc-server.png) -See [strolch-plc-example-connections.xml](https://github.com/strolch-li/strolch-plc/blob/develop/example/strolch-plc-example-connections.xml) for further examples. +If the PLC could connect to the server, then the `PLC Control` icon should be activated. The actions Enable, Disable and +Stop All send telegrams to the PLC, thus showing how the server would communicate with the PLC. +### Customization +#### PLC + +Now that the server and PLC are running, we can customize the code. On the PLC side you will want to create +new `li.strolch.plc.core.PlcService` services by extending the class and then registering the service +in `CustomPlcServiceInitializer`. + +See the example `StartupPlcService`. + +#### Server + +On the server side, to register for notifications from the PLC, one would +implement `li.strolch.plc.gw.server.PlcGwService` services and register them on the `PlcHandler` in +the `PostInitializer` class. + +See the example `ModePlcSrvService`. \ No newline at end of file diff --git a/static/assets/images/plc-server.png b/static/assets/images/plc-server.png new file mode 100644 index 0000000000000000000000000000000000000000..10615301a02e8a91f10c235fe53d0930dfc3d3de GIT binary patch literal 17662 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 z zRSp&lfmJFU0vS`1+w=esN-+DBcU|dG8#;<9aBYTH-u?Wp zR34GqV7NKgSxGphm1K0oD6n(e4Q~kRt*EShyk+Vsho`Fsmw5>hEMb$R5tNRp3k;yA zE!JyT#*c!tJfeW>;0)U~{PJVn%x-fs8KeO&XMJ+z7&q_m_76W6wfL;8d%Fu zcWS27tw-LeZ!v&O<`BfDrOg~gJ=hUbl4pRp063p5=J1IshPCX28LSM{m*$C*J_o+KsJR2+`Fph&M~>FzfVD11D}f&^w9Tng#lEBA*-B|3K7P*?;Vkzse8V& z!DObuPHV51AShck#;nzn#oF?z1Gg-Ow4LFyxd7dZg#s%Ul;=dVB7lOo@htw%pV(n@sqDC7@-fn71}+vYBfyo_sQL=VC1V^xp#)rW`CAA;QJTiw-Jdw%w>& z$#?+Po(uSmNsuT*-a>b2R0INlRU-0ytFL$NO{sSsL-Bgd-Yvk_592}2pBXJt;XkA# zqvaA~V0l6CN|^dTO1}W6wKv&y8$*DX^&ai*4#@Z*@K&neSb*VZ!je;^I9?laI%a1@J6e-acIlw)vnpe^5Iw4Ky$@^+wcuAj zM{k@^(ekX)pWhn;j=Kn4yp5REG!AZ1Xw%{o@#xDYE9MR*{#z*J|1c=}?+phb%!^7L zTXF|1E6O~xH;4aov{ytjFkRnAOQMf7P<1^S$u`Df(@)_3DG3f7O$S7vQk?yFF{MiY zg$)cBy`b-ZFE(u{K49BFz*T*G z;Fva`9eRs<&1F~WtJ0R5xPTvr_tx0^mkfBfE};;!f}Y-hb+C{90`^NlN8ZwN0)2O{ z?MbNp0b!(G;2O^YzUQ1UV6nOgbz1B+*X9Q{R%m->f8qmvPu`^MZNUZ+hXnw*b4GIh zgs*-sNQ#he)QHZZN`aolywU!G0q&JM&TM^1@`}nMKa`6`MU>TMXg@4!zY6v`rAhPAzg~ zmmmZ!eO5d?{r>L+M$__#gbhRItakVJC3X(qkA7nO_AjWro@4=i6SM#k-f-9#0+BLt zwbbZ7(}Ed53#ed7_jf~A$WSl;Nio2=0$_;G@AE1?>HzzB(qc4khC$iibZ3Uq_3Y-| z<#{LQ9D?6*a5^C6$h!D42>!PS4n;O6wyDEyyxMPmZ$oo^FdELd2sF`XvEw3jmrw*5KD&$6HOoafrrv&d{GnEN*i=Ax@WtIfFcA ze}1z5_sKTgDH+)E`34|H({9KkGa#dD7|^r5eR6^~N`>BEhT%B<%eQfV-eO|#Ndh=5 zahOK}?ry)}mv?r29e4dPkUrEP6FLj@y}myG*VYJBbbDJw!1}x#ZbHX1K%*;~K3+HP z2ZScpD|LKV-j#`Or7TY`h!q&s3%Rb%lqb*wberxYK5#ofnN?zRC&6Lh1#k{a?Ks*h zK!H;v#84-_kF=}FmMj* jDjY%O6r6K{CN2<=YRWe+MXjF literal 0 HcmV?d00001 diff --git a/static/assets/images/plc.png b/static/assets/images/plc.png new file mode 100644 index 0000000000000000000000000000000000000000..afba5b6e92d988f72b2586a0fcd9240da8831ec4 GIT binary patch literal 63189 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 h&H68IbJ