Odma ti kazem posla koliko oces.... Ali ce ga napravimo za sve pare
Resenje za PLC i HMI na Raspberry Pi sistemu
Electron JS aplikacija za Windows i Debian Linux (Raspberry Pi)
Aplikacija radi na linux (Windows) sistemu. Korisnik preko Visual Studio Code kompajluje instancu programa za testiranje na Windowsu.
Za pokretanje na Linux potrebno je da se electron-builder da napravi permanentu instancu.
Glavni proces se pokrece iz main.js Main.js povlaci sve potrebne fajlove za sistemske, hmi i plc funcionalnosti i generise glavni proces. U data.json se nalaze parametri koji ce biti promenljivi. Poslednji unos iz data.json ce se prikazati kao trenutni na ekranu i koristiti kao i varijable.
Ideja je da se napravi plc.js dokument gde ce korisnik moci da pise program
Aplikacija je u izradi...
Primer kako bi program izgledao za kontrolnu stranu:
var Gpio = require('onoff').Gpio; //biblioteka za IO
var LED = new Gpio(4, 'out'); //PIN 4 Output
var pushButton = new Gpio(17, 'in', 'both'); //pin 17 input
//funckija
pushButton.watch(function (err, value) { // ako se dugme stisne
if (err) { //if an error
console.error('There was an error', err); //poruka u konzoli
return;
}
LED.writeSync(value); //postavka za ilaz
});
//funkcija kad se gasi program
function unexportOnClose() {
LED.writeSync(0); // Ugasi LED
LED.unexport(); // Oslobodi Pin
pushButton.unexport(); // Oslobodi Pin
};
process.on('SIGINT', unexportOnClose); //Funkcija kad se program ugasi
Prikaz u kom statusu su funkcionalnosti aplikacije.
-
HMI funkcionalnost:
- 🔴 - Alarms
- 60 % - Devices
- ✅ - Design
- 🔴 - Function
- 75 % - License
- ✅ - Design
- ✅ - Function
- 🔴 - Limits
- 80 % - Machine
- 🔴 - Grafici
- 30% - Button
- 30% - Toggle
- 30% - Input Field
- 30% - Indication
- 🔴 - Network
- 75% - Parameters
- ✅ - Design
- 50% - Functionality
- 🔴 - Recipes
- 🔴 - Settings
-
PLC funkcionalnost:
- ✅ - Raspberry Pi IO instalacija (test okruzenje - Hyper V)
- 🔴 - Raspberry Pi IO instalacija (Raspberry okruzenje)
- 🔴 % - Digitalni izlazi/ulazi
- 🔴 % - Analogni izlazi/ulazi (potreban ext module)
- 🔴 % - USB Komunikacija
- 🔴 % - UART Komunikacija
- 🔴 % - SPI Komunikacija
- 🔴 % - I2C Komunikacija
-
Sistemske funkcionalnosti:
- HMI
- 90% - Dinamicki prikaz podataka
- 🔴 - Mogucnost da korisnik upravlja podacima
- 50% - License, korisnik da moze definisati sa administrator nalogom trajanje license
- ✅ - Automatsko prosledjivanje korisnika na stranice u slucaju isteka ili trajanje license
- 🔴 - Unos nove license korosnika
- 🔴 - Settings, sistemska podesavanja, jezik ...
- PLC
- 🔴 - Postavke za olaksano i izolovano pisanje programa bez interakcija sa sistemskim okruzenjem
- 🔴 - Postavke za protokolske komunikacije I2C, SPI itd...
- 🔴 - Postavke za protokolske komunikacije I2C, SPI itd...
- HMI
Za postavljanje radnom okruzenja potrebno je instalirati nekoliko programa. (Instalacije na linku)
- Node.js - Compiler za aplikaciju
- Visual Studio Code - Radno okruzenje
- Git - Github za cuvanje koda i zajednicko istovremeno programiranje
Nakon instalacije programa, restartovati racunar (obavezno).
Na D: particiji napraviti novi folder i izvrsiti komandu
git clone https://github.com/stjankovic/PlazmatehPi.git
Napravice se novi folder PlazmatehPi
cd PlazmatehPi
dir PlazmatehPi
Bice prikazani ovi podaci:
.gitignore
data.json
img
08main.js
node_modules
package-lock.json
package.json
pages
preload.js
README.md
cripts
styles.css
usbUtils.js
Otvoricemo radno okruzenje Visual Studio Code komandom
code .
Mozemo zatvori trenutni CMD prozor posto u Visual Studio Code vec postoji integrisani Terminal na dnu.
U terminalu kucamo komandu za instalacije svih potrebnih bibloteka:
Npm ce sam prepoznati po package.json koje biblioteke su potrebne i kakva instalacija se izvrsava.
npm install
Instalacija treje minut-dva...
Aplikacija je spremna za pokretanje .
npm run start
Na glavnom ekranu trebala bi se otvoriti aplikacija. Aplikacija je privremeno instancirana za razvoj. Trenutno su samo najosnovnije konfiguracije.
Zovi kad treba pomoc :)
Kad uspes da instaliras na Windowsu i steknes osecaj gde se sta nalazi, onda mozemo jako slicnu proceduru na Linuxu da pokrene na Raspberriju.
Pisacu dalje ovo upustvo ovde i slacu ti obavestenja kad je sta gotovo da probas.
Kad oces novu verziju koda da povuces u cmdu kucas komandu kad si u fodler PlazmatehPi
git pull origin master
Ako iz nekog razloga nece da funcionise git pull onda vrati se i pocni proceduru iz pocetka...
- NodeJS - NodeJS
- On/Off - Raspberry Pi
- ElectronJS - Aplikacija
- CSV - Database
See also the list of contributors who participated in this project.