|
@@ -1,40 +1,79 @@
|
|
|
@startuml PLC-Connector-main
|
|
|
|
|
|
+skinparam TitleFontSize 24
|
|
|
+
|
|
|
title Programmablauf PLC-Connector
|
|
|
right footer jomueller, 08.2022
|
|
|
|
|
|
+skinparam linetype ortho
|
|
|
+skinparam NodeBorderColor #7777cc
|
|
|
+skinparam ObjectBackgroundColor #C8C7FF
|
|
|
+skinparam DatabaseBackgroundColor #C8C7FF
|
|
|
+skinparam AgentBackgroundColor #C8C7FF
|
|
|
+
|
|
|
+<style>
|
|
|
+activityDiagram {
|
|
|
+ BackgroundColor #C8C7FF
|
|
|
+ BorderColor #7777cc
|
|
|
+
|
|
|
+ partition {
|
|
|
+ LineColor #7777cc
|
|
|
+ RoundCorner 10
|
|
|
+ BackgroundColor #fff
|
|
|
+ }
|
|
|
+ diamond {
|
|
|
+ BackgroundColor #fff
|
|
|
+ LineColor #000
|
|
|
+ }
|
|
|
+}
|
|
|
+document {
|
|
|
+ BackgroundColor #fff
|
|
|
+}
|
|
|
+</style>
|
|
|
+
|
|
|
start
|
|
|
:read config file;
|
|
|
: initialze
|
|
|
input modules,
|
|
|
-middlewares and
|
|
|
+middlewares, and
|
|
|
output modules;
|
|
|
|
|
|
-:start input threads;
|
|
|
+partition Inputs {
|
|
|
+ while (foreach input module)
|
|
|
+ if (enabled?) then (yes)
|
|
|
+ #FFC5C4:start input thread|
|
|
|
+ endif
|
|
|
+ end while (end)
|
|
|
+}
|
|
|
|
|
|
repeat
|
|
|
-:read input queues;
|
|
|
-partition Middlewares {
|
|
|
- -> values;
|
|
|
- split
|
|
|
- :module a;
|
|
|
- :submodule b;
|
|
|
- split again
|
|
|
- :module c;
|
|
|
- -[hidden]->
|
|
|
- split again
|
|
|
- :module d;
|
|
|
- split
|
|
|
- :e;
|
|
|
- split again
|
|
|
- :f;
|
|
|
- end split
|
|
|
- end split
|
|
|
-}
|
|
|
--> results;
|
|
|
-:write to outputs;
|
|
|
-backward:sleep;
|
|
|
-repeat while(interupted?)
|
|
|
+ :read input queues<
|
|
|
+
|
|
|
+ partition Middlewares {
|
|
|
+ -> values;
|
|
|
+ :initialze list of results;
|
|
|
+ while (foreach middlewares module)
|
|
|
+ if (module enabled?) then (yes)
|
|
|
+ #FFC5C4:execute module|
|
|
|
+ if (output enabled?) then (yes)
|
|
|
+ :append result to list/
|
|
|
+ endif
|
|
|
+ :run submodules recursively;
|
|
|
+ endif
|
|
|
+ end while (end)
|
|
|
+ }
|
|
|
+ -> results;
|
|
|
+
|
|
|
+ partition Outputs {
|
|
|
+ while (foreach output module)
|
|
|
+ if (enabled?) then (yes)
|
|
|
+ #FFC5C4:write results to output>
|
|
|
+ endif
|
|
|
+ end while (end)
|
|
|
+ }
|
|
|
+
|
|
|
+ backward :sleep;
|
|
|
+repeat while(end program?)
|
|
|
-> yes;
|
|
|
|
|
|
:stop input threads;
|