@startuml PLC-Connector-main skinparam TitleFontSize 24 title Programmablauf PLC-Connector right footer jomueller, 08.2022 start :read config file; : initialze input modules, middlewares, and output modules; 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; :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; stop @enduml