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:39]
mihai.costin [Hardware Design]
pm:prj2023:ibradu:programmableplc [2023/05/31 12:53] (current)
mihai.costin [Bibliografie/Resurse]
Line 12: Line 12:
 ===== Hardware Design ===== ===== Hardware Design =====
  
-<note tip+Componente Hardware: 
-Aici puneţi tot ce ţine de hardware design: +>1x ESP32 
-  * listă de piese +>1x eeprom 
-  * scheme electrice (se pot lua şi de pe Internet şi din datasheet-uri,​ e.g. http://​www.captain.at/​electronic-atmega16-mmc-schematic.png) +>1x RTC 
-  * diagrame ​de semnal ​ +>2x I2C I/O extender 
-  * rezultatele simulării +>32x relee solid-state 
-</​note>​+>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.
 {{:​pm:​prj2023:​ibradu:​mainimage-plc.png?​600|Main configuration}} {{:​pm:​prj2023:​ibradu:​mainimage-plc.png?​600|Main configuration}}
Line 28: Line 30:
 ===== Software Design ===== ===== Software Design =====
  
 +Mediu de dezvoltare:
 +-IntelliJ, cu plugin-ul de ANTLR  \\
 +-Visual Studio Code \\
 +-Wasm3 \\
 +-FreeRTOS \\
  
-<note tip> +Interpretor ​de Structured Text 
-Descrierea codului aplicaţiei (firmware):​ +> Structured Text este unul din limbajele acceptate pentru programarea PLC-urilorPentru a ramane fideli conceptului de PLCam ales sa il folosim si noi in scrierea de programe pentru PLC-ul nostruPentru 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.
-  * mediu de dezvoltare (if any) (e.g. AVR StudioCodeVisionAVR) +
-  * 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>​+
  
 ===== 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.1684514375.txt.gz · Last modified: 2023/05/19 19:39 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