This shows you the differences between two versions of the page.
pm:prj2023:ibradu:programmableplc [2023/05/31 12:46] mihai.costin [Rezultate Obţinute] |
pm:prj2023:ibradu:programmableplc [2023/05/31 12:53] (current) mihai.costin [Bibliografie/Resurse] |
||
---|---|---|---|
Line 29: | Line 29: | ||
Input Block | Input Block | ||
===== Software Design ===== | ===== Software Design ===== | ||
- | |||
- | |||
- | <note tip> | ||
- | Descrierea codului aplicaţiei (firmware): | ||
- | * mediu de dezvoltare (if any) (e.g. AVR Studio, CodeVisionAVR) | ||
- | * librării şi surse 3rd-party (e.g. Procyon AVRlib) | ||
- | * algoritmi şi structuri pe care plănuiţi să le implementaţi | ||
- | * (etapa 3) surse şi funcţii implementate | ||
- | </note> | ||
Mediu de dezvoltare: | Mediu de dezvoltare: | ||
Line 47: | Line 38: | ||
Interpretor de Structured Text | Interpretor de Structured Text | ||
> Structured Text este unul din limbajele acceptate pentru programarea PLC-urilor. Pentru a ramane fideli conceptului de PLC, am ales sa il folosim si noi in scrierea de programe pentru PLC-ul nostru. Pentru ca microprocesorul de pe ESP32 sa il inteleaga, am creat, prin intermediul ANTLR, un parser pentru acest limbaj, care imi transfera codul in Web Assembly. Dupa aceasta transformare, este usor sa ii verific corectitudinea si sa il compilez. Pentru a incarca codul astfel obtinut pe placuta, ma voi folosi de modulul de WiFi al acesteia pentru a incarca fisierul si de wasm3 pentru a il interpreta. Aceasta este o solutie mult mai simpla decat dacda as fi incercat sa fac de la 0 un compilator pentru structured text. | > Structured Text este unul din limbajele acceptate pentru programarea PLC-urilor. Pentru a ramane fideli conceptului de PLC, am ales sa il folosim si noi in scrierea de programe pentru PLC-ul nostru. Pentru ca microprocesorul de pe ESP32 sa il inteleaga, am creat, prin intermediul ANTLR, un parser pentru acest limbaj, care imi transfera codul in Web Assembly. Dupa aceasta transformare, este usor sa ii verific corectitudinea si sa il compilez. Pentru a incarca codul astfel obtinut pe placuta, ma voi folosi de modulul de WiFi al acesteia pentru a incarca fisierul si de wasm3 pentru a il interpreta. Aceasta este o solutie mult mai simpla decat dacda as fi incercat sa fac de la 0 un compilator pentru structured text. | ||
+ | |||
+ | ===== Rezultate Obţinute ===== | ||
+ | |||
In urma realizarii proiectului, parser-ul de Structured Text reuseste sa genereze cod de WebAssembly | In urma realizarii proiectului, parser-ul de Structured Text reuseste sa genereze cod de WebAssembly | ||
Line 53: | Line 47: | ||
Incarcarea programului pe placuta ESP conduce la un boot loop, ramane sa investighez motivul. | Incarcarea programului pe placuta ESP conduce la un boot loop, ramane sa investighez motivul. | ||
===== Concluzii ===== | ===== Concluzii ===== | ||
+ | In urma acestui proiect, am inceput sa stapandesc mai bine Web Assembly si partea de gramatica a unui limbaj de programare. In acelasi timp, m-am familiarizat cu Structured Text si standardul IEC 61131, utilizat in programarea PLC-urilor. | ||
===== Download ===== | ===== Download ===== | ||
- | <note warning> | ||
- | O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului: surse, scheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună ;-). | ||
- | Fişierele se încarcă pe wiki folosind facilitatea **Add Images or other files**. Namespace-ul în care se încarcă fişierele este de tipul **:pm:prj20??:c?** sau **:pm:prj20??:c?:nume_student** (dacă este cazul). **Exemplu:** Dumitru Alin, 331CC -> **:pm:prj2009:cc:dumitru_alin**. | + | Repo de git pentru parserul de Structured Text: https://github.com/mihaicostin34/ST_Parser |
- | </note> | + | |
- | + | ||
- | ===== Jurnal ===== | + | |
- | + | ||
- | <note tip> | + | |
- | Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului. | + | |
- | </note> | + | |
===== Bibliografie/Resurse ===== | ===== Bibliografie/Resurse ===== | ||
- | <note> | ||
- | Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**. | ||
- | </note> | ||
<html><a class="media mediafile mf_pdf" href="?do=export_pdf">Export to PDF</a></html> | <html><a class="media mediafile mf_pdf" href="?do=export_pdf">Export to PDF</a></html> | ||
+ | |||
+ | Documentatie pentru Web Assembly Text: https://developer.mozilla.org/en-US/docs/WebAssembly/Understanding_the_text_format \\ | ||
+ | Standardul IEC 61131: https://en.wikipedia.org/wiki/IEC_61131 \\ | ||
+ | Datasheet ESP: https://www.espressif.com/sites/default/files/documentation/esp32_datasheet_en.pdf | ||