Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pm:prj2023:ibradu:programmableplc [2023/05/19 19:52]
mihai.costin [Software Design]
pm:prj2023:ibradu:programmableplc [2023/05/31 12:53] (current)
mihai.costin [Bibliografie/Resurse]
Line 11: Line 11:
 Interpretarea programelor în Structured Text se va desfășura în felul următor: programatorul va scrie codul conform standardului (la care am adăugat mici modificări pentru a ne permite scrierea și citirea pe pinii plăcuței),​ după care acesta va fi trecut printr-un parser care va scrie cod echivalent in Web Assembly. După aceea, codul nou obținut va fi compilat, iar rezultatul compilării va fi încărcat în memoria plăcuței și interpretat. Interpretarea programelor în Structured Text se va desfășura în felul următor: programatorul va scrie codul conform standardului (la care am adăugat mici modificări pentru a ne permite scrierea și citirea pe pinii plăcuței),​ după care acesta va fi trecut printr-un parser care va scrie cod echivalent in Web Assembly. După aceea, codul nou obținut va fi compilat, iar rezultatul compilării va fi încărcat în memoria plăcuței și interpretat.
 ===== Hardware Design ===== ===== Hardware Design =====
 +
 +Componente Hardware:
 +>1x ESP32
 +>1x eeprom
 +>1x RTC
 +>2x I2C I/O extender
 +>32x relee solid-state
 +>12x amplificatoare operationale
 +>​Rezistori si condensatori de decuplare
  
 Pentru a avea acelasi numar de intrari si iesiri ca un PLC normal, am folosit block-uri de extendere de I/O. Pentru a avea acelasi numar de intrari si iesiri ca un PLC normal, am folosit block-uri de extendere de I/O.
Line 20: 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:
--IntelliJ, cu plugin-ul de ANTLR +-IntelliJ, cu plugin-ul de ANTLR  \\ 
--Visual Studio Code +-Visual Studio Code \\ 
--Wasm3+-Wasm3 ​\\ 
 +-FreeRTOS \\
  
 Interpretor de Structured Text Interpretor de Structured Text
Line 40: Line 41:
 ===== Rezultate Obţinute ===== ===== Rezultate Obţinute =====
  
-<note tip> 
-Care au fost rezultatele obţinute în urma realizării proiectului vostru. 
-</​note>​ 
  
 +In urma realizarii proiectului,​ parser-ul de Structured Text reuseste sa genereze cod de WebAssembly
 +{{:​pm:​prj2023:​ibradu:​demowasm.png?​400|}}
 +{{:​pm:​prj2023:​ibradu:​wasmdemo.png?​600|}}
 +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 Texthttps://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 ​
  
pm/prj2023/ibradu/programmableplc.1684515153.txt.gz · Last modified: 2023/05/19 19:52 by mihai.costin
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0