Bachelor's Thesis

Machine simulator in PLC with DataSpace communication

Final Thesis 2.58 MB Appendix 2.95 MB

Author of thesis: Bc. Šimon Juračka

Acad. year: 2025/2026

Supervisor: doc. Ing. Jakub Arm, Ph.D.

Reviewer: doc. Ing. Miroslav Jirgl, Ph.D.

Abstract:

This bachelor thesis deals with design and implementation of a 3D printer software simulator in TwinCAT 3 PLC enviroment and its integration into concept of Dataspace. In first part, simulator was designed, including simulating movement of working axis, physical model of printing bed its control and control visualization. Second part of thesis focuses on concept of Dataspace. Dataspace connector was designed in Python, this connector reads data from PLC using OPC UA and tranformed data into JSON-LD, according to standard, sends to Python server using REST API. Server was designed to store acquired data onto simple SQLite Database.

Keywords:

PLC simulator, 3D printer, TwinCAT 3, G-code, Dataspace, JSON-LD, OPC UA

Date of defence

16.06.2026

Result of the defence

Defended (thesis was successfully defended)

znamkaDznamka

Grading

D

Process of defence

Student odprezentoval připravenou prezentaci a následně odpovídal na tři dotazy položené oponentem závěrečné práce. V následné diskusi se komise doptávala na testování funkčnsti systému (otázka číslo 2). Student obhájil bakalářskou práci s výhradami. V rámci obhajoby dokázal přesvědčit komisi o správnosti svých postupů a navrženého řešení. V průběhu odborné rozpravy reagoval na dotazy.

Language of thesis

Czech

Faculty

Department

Study programme

Automation and Measurement (BPC-AMT)

Composition of Committee

prof. Ing. Michal Prauzek, Ph.D. (předseda)
doc. Ing. Petr Beneš, Ph.D. (místopředseda)
doc. Ing. Jakub Arm, Ph.D. (člen)
Ing. Jiří Fialka, Ph.D. (člen)
Ing. Petr Petyovský, Ph.D. (člen)
Ing. Lukáš Pohl, Ph.D. (člen)

Supervisor’s report
doc. Ing. Jakub Arm, Ph.D.

Student se zorientoval v oblasti simulace PLC v prostředí Beckhoff spolu se simulací NC řízených os. V další části si prostudoval DataSpace protokol, pomocí kterého simulátor reportuje svoje provozní data a stav.
V rámci práce se podařilo vytvořit zdařilý simulátor 3D tiskárny až na úroveň zadávání NC kódu a simulaci provozních veličin. I když jsou některé části zjednodušené, považuji dílo za zdařilé. Práce také přináší zprovoznění přenosu dat pomocí dané technologie, což je demonstrováno testovacím během.
Z formálního hlediska jsem nenašel závažné nedostatky, avšak některé pasáže jsou méně srozumitelné.
Student pracoval samostatně, přičemž zřídka využíval konzultací.
Výsledek práce je avšak použitelný v laboratorních podmínkách a je možné práci dále rozvíjet. Points proposed by supervisor: 88

Grade proposed by supervisor: B

Předložená bakalářská práce se zabývá návrhem a realizací simulátoru 3D tiskárny v prostředí TwinCAT 3 PLC a jeho napojením na koncept Dataspace.
Student hned v rámci Úvodu stručně popisuje 3D tiskárnu jako modelovaný stroj a další související témata jako využití sliceru a práci s G-kódem. Ačkoli je práce zaměřena především na samotnou realizaci, očekával bych zde trochu širší a pečlivější teoretický úvod, resp. rešerši, na základě které by byly následně vydefinovány požadavky a proveden návrh simulátoru. V další – praktické části pak student nejprve navrhl a následně implementoval simulaci podložky s regulací teploty, simulaci pohybu os i vizualizaci ovládání. Poté vytvořil Dataspace konektor, server a databázové ukládání dat. Jednotlivé části jsou popsány v kapitolách 1 až 3. Ačkoli v obecné rovině považuji celkově zvolenou koncepci za správnou, což potvrzuje i výsledné funkční řešení, mám k této části zároveň několik výhrad a připomínek. Celý koncept návrhu je sice přehledně blokově znázorněn na obr. 1.1, nicméně popis celého návrhu je velmi omezený, a ne všechny bloky jsou v dostatečné míře popsány, chybí detailnější diskuse ohledně alternativ či možných omezení navrhovaného řešení. Chválím zde snahu o realizaci alespoň základního dynamického tepelného modelu podložky, pro niž je následně navržena a implementována i PI regulace. Avšak zvolená návrhová metoda, její popis i samotné řešení jsou v mnoha případech poměrně nelogické či diskutabilní. Např. samotné rozkmitání soustavy pomocí relé bez hystereze následně student kompenzuje tzv. „přidržením“ výstupu, čímž de facto simuluje právě hysterezi, od čehož se následně odvíjí i výpočet parametrů. Trochu nelogický krok je pak i využití bloku FB_BasicPID, ze kterého je, zejména kvůli absenci anti-windup metody, využita pouze P složka a zbytek (I složka + antiwindup metoda) je dotvořen ručně jako určitá nadstavba k danému bloku, i když prostředí přímo nabízí blok FB_CTRL_PID, který student v rámci popisu sám zmiňuje, a který požadované funkce poskytuje. Za poměrně nestandardní považuji i překlad windup jevu jako „navíjení“ I složky, který se v práci opakuje. Nicméně i přes poměrně těžkopádné řešení se podařilo celý tento subsystém uspokojivě zprovoznit a na základě výsledků simulace (viz obr. 2.4) lze řešení považovat pro daný účel za funkční. Pozitivně pak hodnotím využití knihoven TwinCAT pro simulaci pohybu os a úspěšnou implementaci Dataspace konektoru. Naopak, ačkoli práce obsahuje základní otestování funkčnosti, oproti zadání postrádám definici sady scénářů, na nichž měl být systém testován.
Prezentační úroveň práce je rovněž poměrně rozporuplná. Některé části jsou dokumentovány poměrně přehledně, jiné výrazně zaostávají. Rozsah práce je 29 stran a obsahuje pouze 3 kapitoly. Vhodné by tak bylo rozšířit popisy vybraných částí a práci lépe strukturovat. Poměrně slabá je i formální stránka práce. V textu se vyskytuje značné množství jazykových, typografických a terminologických nedostatků, které snižují odborný dojem a místy ztěžují porozumění. Některé formulace jsou neobratné, místy nepřesné. Chybí také vysvětlení mnohých uváděných zkratek. Počet citovaných zdrojů je 9 a převládají zde technické dokumentace a internetové zdroje. Formát bibliografie je rovněž nestandardní. Celkově tak práce působí dojmem, že byla psána ve spěchu a jednoznačně by tudíž zasloužila důslednější korekturu.
Závěrem však mohu konstatovat, že samotný přínos bakalářské práce je zřetelný, protože práce obsahuje řešení poměrně komplexní úlohy včetně funkční implementace celé sestavy. Práci tedy doporučuji k obhajobě, avšak vzhledem k výše uvedeným připomínkám navrhuji hodnocení 67 b/D. Topics for thesis defence:
  1. 1. Proč nebyl pro regulaci využit přímo blok FB_CTRL_PID?
  2. 2. Podle jakých scénářů jste testoval funkčnost systému?
  3. 3. Proč bylo zvoleno právě řešení přes OPC UA a REST API, a jaké výhody/slabiny má toto řešení oproti jiným variantám?
Points proposed by reviewer: 67

Grade proposed by reviewer: D

Responsibility: Mgr. et Mgr. Hana Odstrčilová