@startuml PLC-Connector-main header **Sample Text Sample Text Sample Text Sample Text Sample Text Sample Text Sample Text Sample Text Sample Text Sample Text Sample Text Sample Text Sample Text Sample Text Sample Text Sample** skinparam dpi 400 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; :initialize 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