This is an old revision of the document!


Programmable PLC

Proiect realizat în colaborare cu studentul Anastasiu Alexandru Ioan, de la Facultatea de Inginerie Industrială și Robotică, anul II.

Introducere

Proiectul își propune transformarea unui microcontroller ESP32 într-un PLC care să poată controla roboți industriali, mai exact Mitsubishi RV-E3J și RV-E2, prin intermediul programelor scrise conform standardului IEC 61131-3. Ideea a pornit de la existența celor doi roboți și lipsa unui PLC pentru a îi programa. Cum unul din comerț poate deveni destul de scump, ne-am propus să facem unul propriu. Consider că este un proiect util în primul rând din scop educațional, deoarece îmi permite să pun în practică multe dintre cunoștiințele obținute la facultate.

Descriere generală

La modulul ESP32 am adăugat două block-uri de extendere de I/O, pe care le vom folosi ca Output. Am păstrat câțiva pini pe microcontroller pentru Input. 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

Pentru a avea acelasi numar de intrari si iesiri ca un PLC normal, am folosit block-uri de extendere de I/O. Main configuration Main configuration Output Block Output Block Input Block Input Block

Software Design

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

Mediu de dezvoltare: -IntelliJ, cu plugin-ul de ANTLR -Visual Studio Code -Wasm3

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.

Rezultate Obţinute

Care au fost rezultatele obţinute în urma realizării proiectului vostru.

Concluzii

Download

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.

Jurnal

Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului.

Bibliografie/Resurse

Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe Resurse Software şi Resurse Hardware.

Export to 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