PLC programozás Linux alatt. Hogyan? Mivel?

Fórumok

Sziasztok!

A neten való hosszas böngészésem során egyetlen PLC programozással kapcsolatos free programot találtam. Ez egy SCADA kezdeményezés Qt4 alapon.

Ha valakit érdekel itt a címe: http://www.qt4lab.org/qt4lab/

A kérdésem az, hogy ki, milyen szabad szoftvert ismer, ami valamilyen PLC programozására alkalmas. Persze itt elsősorban a gyakorlatban elterjedtebb PLC-kre gondolok, mint (SIEMENS, OMRON, FESTO stb...). No nem haragszom meg, ha noname PLC -re jön link. Jó lenne, ha ezen az oldalon a lehető legtöbb ilyen szabad szoftvert össze lehetne gyűjteni. Mindenki épülésére.

Persze küldhettek ti is SCADA, vagy HMI (Human Machine Interface) programozásra alkalmas szoftvereket is. Bármi, ami ebbe a témában fellelhető.

Kösz!

Hozzászólások

hello,

Nagyon csodalkoznek, ha talalnal valamit :(. A gyartok nagy nehezen osszetakolnak jobb-rosszabb win alatt mukodo programokat, eszukbe sem jut, hogy valaki Linux-ot hasznal. En plc vizualizalassal foglalkozom, Linux alatt, eddig minden plc support-os megutkozve fogadta, hogy nem Windows alol tamadom a plc-juket es minden kerdesre az szokott lenni a valasz, hogy Linux-hoz nem ertunk.

Az egyik "nagy" plc gyarto programjat nem tudtam feltolni windows-ra, ill. felment, csak nem talalta a plc-t. Vegul elvittuk a support-hoz, aki ket ora szivas utan rajott, hogy a soros porton(!) kommunikalo szoftvert engedelyezni kell a tuzfalon! Ez a gyarto henceg azzal, hogy az o programjuk mar a 21. szazad, mert pl. xml-ben tartja a munkafile-t, viszont a m$ xml engine-t hasznalja, igy egy 300Kb-os file felolvasasa ~1 perc! Van egy olyan gyanum, hogy a plcgyartok a m$-tol kirugott kioregedett hatulgombolos programozokat veszik fel plc programozo szoftvert fejleszteni.

Persze van ellenoldal is, egy masik nagy gyarto szoftverevel a legkisebbtol a legnagyobb plc-ig mindegyiket lehet programozni, de toluk sem tudok Linux tamogatasrol.

A plc programozok neha sajnos nemhogy nem szoftveresek, hanem egysegsugaru windows userbol kenyszeruen "programozova" avanzsalt erosaramu mernokok. A legtobbjuk ott tart, hogy uj munka = uj file es hajra. Eszukbe sem jut, hogy lehetne peldaul modularizalni, automatizalni a plc programozast. Olyan is volt, aki kikerte maganak az otletet, mondvan, hogy akkor o nem is vegez munkat, miert kerne penzt? :)

Ezek biztosan nem fognak nekiallni nyilt forrasu plc programozo szoftvert irni. Nekik nincs bajuk a Windows-zal, vagy ha van, elfogadjak, hogy olyan amilyen.

hello,

A plc-k mind tudjak a modbus interface-t, ami egy soros protokollkeszlet. Ehhez vannak fizetos c++ implementaciok, ill. ingyenes java is. Ezzel egy erintokepernyo es egy pc segitsegevel lehet monitorozni ill. vezerelni a plc-t.
Utvonalvalasztas, gepcsoportok inditasa leallitasa, adatbazis alapjan szervezes stb. minden, ami egy plc-ben nem megvalosithato.

Az elonyok:
- ingyenes a pc op.rendszer.
- nem kell a plc-khez kitalalt iszonyu draga es bennszulott erintokepernyo. Egy 17" erintokepernyo 100KHUF-bol megvan es teljesen szabadon programozhato. En pl. animalt technologiai abrat tudok megjeleniteni. Tudok chart-okat is a mert adatokbol, ill pdf-ben meg tudom jeleniteni az online a help-et is. Egy plc-hez egy 12" kepernyo 5-600KHUF, szornyu bennszulott programozofelulete van es csak az van, amit a gyarto megenged. Van gyarto, aki pofatlanul penzt ker a programozo szoftverert is.
- ha van internet kapcsolat - akar gprs is -, tavolrol egyszeruen javithato, tudok gateway-t csinalni, igy tavolrol a plc program is hozzaferheto. Mindez plc-hez adott eszkozokkel meregdraga.
- nem kell a meregdraga es eleg bennszulott windows alapu vizualizalo software-t megvenni, valamint peldanyonkent fizetni a royalty-t.
- a technologia egy xml file-ban van definialva, a software ebbol konfiguralja magat.
- az install egyszeru, fai-val gyorsan lehet egy uj hw-t installalni.

Hatranyok:
- a rajzolas egyelore rengeteg idot vesz igenybe, de mivel az inkscape amit hasznalok szinten xml alapu, van lehetoseg az automatizalasra.
- kb. egy evem ment ra, de most kezdi visszahozni a befektetett munkat.

Szia Zamek!

Amiket az írásodban emlegetsz pl. a modbus protokoll-hoz való java vagy az inscape eszközökről dobj már fel egy linket ide.

Másrészt még érdekelnének részletek:
- Adva van a protokoll, de még hiányzik, hogy melyik adat hol található a PLC-ben és ez milyen módon érhető el a megjelenítő számítógépről.
- A programozáshoz továbbra is a gyártó szoftverét használod? (Helyszínen vagy a távoli elérés során) Vagy valami saját eszközt?
- Ha más is szeretne valami hasonlót csinálni mint te, akkor az hogyan induljon el?
- Nem tervezed-e, hogy nyilvánossá teszed fejlesztéseidet? Még én nagyon kezdő vagyok ebben a világban, de biztos meg lehetne valami free alapítványi web-oldalon jeleníteni.

Üdv: Pelci.

hello,

Szia Zamek!

>Amiket az írásodban emlegetsz pl. a modbus protokoll-hoz való java vagy az
http://jamod.sourceforge.net/
>inscape eszközökről dobj már fel egy linket ide.
http://inkscape.org/

>- Adva van a protokoll, de még hiányzik, hogy melyik adat hol található a
> PLC-ben és ez milyen módon érhető el a megjelenítő számítógépről.
A modbus protokoll definialja, hogy a resztvevok melyik regisztereivel mit lehet csinalni. pl.
mutilple read: egy regiszter cimtol n regiszter olvasasa
multiple write: egy regiszter cimtol n regiszter feltoltese egy tombbol, stb. Ha letoltod meglatod, ill. keress ra a net-en a modbus protokollra (innen tudsz elindulni:http://modbus.org/)

>- A programozáshoz továbbra is a gyártó szoftverét használod? (Helyszínen vagy a távoli elérés során)
>Vagy valami saját eszközt?
En csak a pc-s oldalt csinalom, a plc programozasra van erre szakosodott kollegam, o a windows-os sw-t hasznalja. Ez eleg kiforditott gondolkodasmodot es nagy turelmet igenyel, mivel a windows-os sw-ek nagyon ostobak. Tavoli eleres eseten a plc-nek van halozati csatlakozoja en egy port forwarding-ot csinalok a pc-vel, igy tavolrol a windows-os sw-rel meg lehet tamadni a plc-t.
>- Ha más is szeretne valami hasonlót csinálni mint te, akkor az hogyan induljon el?
1. Fejlesztorendszer valasztas,Java vagy C++ keszseg szintu ismerete, kulonos tekintettel a szalakra. Ha inkabb free cuccokra vagy raindulva, akkor Java, a c++-hoz szinte minden fizetos, vagy ha free, akkor gagyi:(
2. Soros port biztos programozasa, hardware szintu ismeretek
3. modbus ismerete
4. linux biztos hasznalata, problemak megoldasa, kernel forditas, erintokepernyo installalas, tuzfal configolas stb.
5. innen mar konnyu:)

>- Nem tervezed-e, hogy nyilvánossá teszed fejlesztéseidet?
>Még én nagyon kezdő vagyok ebben a világban, de biztos meg lehetne valami free alapítványi web-oldalon jeleníteni.
Biztos, de
-eloszor hozza vissza a befektetett szellemi toket, aztan
- legyen masok szamara is konnyen hasznalhato a rendszer,
- legyen automatizalhato a rajzolas, aztan mehet.

Szia Zamek!

"A plc programozok neha sajnos nemhogy nem szoftveresek, hanem egysegsugaru windows userbol kenyszeruen "programozova" avanzsalt erosaramu mernokok. A legtobbjuk ott tart, hogy uj munka = uj file es hajra. Eszukbe sem jut, hogy lehetne peldaul modularizalni, automatizalni a plc programozast. Olyan is volt, aki kikerte maganak az otletet, mondvan, hogy akkor o nem is vegez munkat, miert kerne penzt? :)"

Sajnos ennél is rosszabb a helyzet. Szomorú sorsom az volt, hogy mások által megírt PLC progikat kellett javítanom. Hát ne tudjátok meg... Amikor felvetettük, hogy az adott - egyébként igen bonyolult feladatra - használjanak beágyazott vezérlőt - nagya aritmetikai igény, összettet többszálúság stb. - közölte, hogy hogyan fogja azt a technikus javítani...

Van persze kivétel is, kb a fehér holló gyakoriságával.

Alapvetően én sem tudok linux-os programozói felületet, de érdekes lenne egy ilyet csinálni. A probléma az, hogy a gyártók marhára vigyáznak, hogy a protokolljaik nehogy publikusak legyenek. Képzeljétek valaki perl-tk-ban írna egy felületet kb egy hét alatt, hát hogyan adhatnák el a vackaikat jó sok pénzért.

Üdv.: FM

Sajnos csak Windows felhasználók részére találtam egyelőre ingyenesen letölthető PLC programozói szoftvert:

http://unitronics.com/Content.aspx?Page=Downloads&CatId=4

Bizonyára azért ingyenes, mert olyan noname jellegű gyártó adja. Valószínűleg szeretnék, ha minél többen használnák.
Akit érdekel, Windows op-rendszer esetén kipróbálhatja. Lehet, hogy kisebb alkalmazások esetén célszerű megvizsgálni, mint alternatív lehetőség, mert a megjelenítő és a PLC egybe van építve, és ugyanazzal a szoftverrel programozzák.

Siemens PLC programozashoz nezz szet itt: http://libnodave.sourceforge.net/index.php Nem probaltam, veletlenul akadtam ra egyszer es bookrmarkoltam.

SCADA es HMI program fejlesztese megoldgato National Instruments cuccaival. LabWindows/CVI-hoz van linux library, LabView pedig ha jol tudom nativan is fut linux illetve OSX alatt. Bar ezek nem ingyenesek.

Masik lehetoseg SCADA es HMI program fejlesztesere, ha a PLC ismer valami nyilt protokollt. Siemens S7-200 eseteben megoldhato ha freeport-ban hasznalod valamelyik kommunikacios portjat egy RS232-RS485 adapterrel vagy PPI kabellel. Hatranya, hogy neked kell implementalnod a kommunikacios protokolt. Egy fokkal kenyelmesebb ha PLC-ben megvan az Instruction Library, mert akkor tud modbus-on kommunikalni anelkul hogy te implementalnad. PC-n pedig barmilyen programozasi nyelvet hasznalhatsz ami tudja kezelni a serial portot. Modbus nyilt protokol, csak kicsit korulmenyesebb az implementalasa az idiota CRC szamolasa miatt :}}

PS. Ha komolyan erdekel a dolog esetleg beszallok en is. Siemens PLC-kkel dolgozom (S7-200, S7-300) tehat ha ezen a vonalon indulsz el programozast,tesztelgetest vallalok :}}

Most hogy el is elolvastam, azt hiszem sajnos igazad van.
Programozashoz nem tudom hogy ha van-e esely talalni kulso programot. Hacsak valamelyik gyarto nem adott ki linux ala is programozot. De ha komolyan tervezel PLC-t programozni, akkor szerintem mindenkepp erdemes befektetni es megvenni a gyarto altal adott programot, ugyanis ha ki szeretnel hasznalni minden lehetoseget, akkor az kulso soft-al nemigen fog menni. Peldaul S7-200 programozasahoz MicroWIN-ben rengeted Wizard van (AS-i, Data Log, Recipe, Ethernet, Modem, Positioning, PID, High Speed Counter, PWM, Text Display, PID Tunning, USS/Modbus Protocol Library, SINAUT GPRS Communication) amiket kulso szoft szerintem nem tud lekezelni.

Adatok tovabbitasara pedig mar valamivel tobb lehetoseged van, ugyanis ha van programozhato szabad port, onnan csak ido es kitartas kerdese, hogy szamitogepen is megjelenjenek az adatok. Probaltam letolteni azt a Qt4Lab programot, de azt mondja: "We are sorry, Qt4Lab website is under management, please come back later to download files...", bar a Custom Widget-ek alapjan egesz jo kis ipari SCADA/HMI hozhato ki belole.

Igaz csak hobby szinten, de mindenkepp erdekel a dolog. Ha talalsz valamit vagy sikerul barmily modon tovabblepned jo lenne ha legalabb blog szintjen megosztanad velunk is.

Szia Zamek!

Nem keserítesz el. A célom az volt, hogy a lehető legtöbb információt, lehetőséget összeszedjünk közösen ebben a témakörben. A free SCADA is egy jó lehetőség azoknak, akik ilyen témában szeretnének elmélyülni.

a Siemens LOGO-nak van Linux-os progija
bar a LOGO-t nem neveznem PLC-nek.

Sziasztok

Ezzel a témával már rég meggyűlt a bajom. Találtam érdekes dolgokat is: http://www.sixnetio.com/html_files/oems/ipm_iadk.htm
Ez egy jónak tűnő dolog, talán ilyesmit keresel : http://sdcc.sourceforge.net/
Van itt is egy hasonló Linux- os megoldás : http://www.ivanov.eu/?q=node/1269
Van egy hasonló 2007- es topik : http://hup.hu/node/39596 tudom, hogy nem pont PLC- ről van szó, de talán érdekes lehet.
Engem érdekelne, hogy ki, mire jutott vele. ( mármint a Linux alatti PLC programozással / RS232 soros vonali kommunikációval )
--
üdv: virtualm

PLC -nek csufolt szarok meg nem haltak ki? , Nahat..

Eleg vicces az integralt aramkork koraban reles logikakrol beszelni.

Szerintem veszel egy CPLD/FPGA -t esetleg fejleszto keszletet , nagyfesz kapcsolasra par teljesitmeny tranyot, opcionalisan relet, hozza toldasz. (Van linux tamogatas )

Menyiert vesztegetnek mostansag PLC -ket ?

Ha dragan kell komolyabb elem: http://www.ni.com/pac/ , labview van linuxra is.

Azért ne butáskodj már...

Ez majdnem olyan, mintha azt mondanád, veszel egy kis vasat, műanyagot, üveget, miegymást és otthon építesz egy autót (valami Általad szeretett márkára gondolj).

Egyszerűen nem fogsz tudni versenyezni azzal a gyártástechniológiával, tapasztalattal, stb. stb. amivel a PLC gyártók rendelkeznek (Még akkor sem, ha ott egyébként nem lángész, hanem csak közepes mérnökök ügyködnek. Százszor annyian vannak, mint Te egyedül, szóval nincs esélyed.). Alaplapot sem tudunk - normálisat - gyártani otthon.

Próbálj bekopogtatni egy termelőüzembe - mondjuk Audi -, hogy Te most hozod zsákban a kis fölprogramozott FPGA-dat és majd jól megvezérled a néhány 10 milliárdos gyártósort... Áááááááá

A hardvergyártás - nyilván komoly cuccra gondolok - azért nem otthoni Linux barkácsolás. Persze lehet Conrad szinten is relét kattogtatni... Hehe.

Arra is gondolnod kell, hogy a gyakorlatban egy gép vezérlésének milyen követelményei vannak. Egyik ilyen fontos követelmény, hogy a hibákat gyorsan fel lehessen ismerni és elhárítani. Én pl. nagyon fontosnak tartom a jó vizualizációt, de ha már ez nem segít a hiba feltárásban a PLC program elemzése következik. A gyakorlatban ezt legtöbbször technikusoknak kell elvégezni, ezért találták ki a létra diagramot, ami utánozza a relés áramkörök működését.
Sajnos általában a gyakorlatban többfajta PLC programnyelv is elterjedt. Így nem csak a létra diagram van, hanem pl. utasítás lista vagy logikai áramkörös ábrázolás. Sajnos ezek általában nem mindig konvertálhatók át egymásba. Így a gyakorlott programozó pl. utasítás listában megírja a programot, de sajnos ez egy átlagos technikus (sőt általában jobb technikusok) értelmező képességét meghaladja. Hiába mondod el nekik, mi az hogy "and" vagy "or", belegabalyodnak egy hosszab lista esetén. Ugyanakkor egy bonyolult létradiagramot is jól tudnak értelmezni, hiszen látják on-line üzemmódban, hol akad meg a jelfolyam.
Ilyen valós körülmények között nincs értelme még bonyolultabb szoftverekkel vezérelni egy gépet. Az én véleményem az, hogy lehetőleg mindent létradiagramban kell megírni, mert a gyakorlat ezt követeli meg.
Dolgoztam olyan cégnél, ahol ez senkit nem érdekelt, így aztán hatalmas káosz uralkodott a gépek hibaelhárításánál. A technikusok képtelenek voltak értelmezni bármilyen hibát, mert a gép értelmezhetetlen hibaüzeneteket közölt, másrészt a PLC programok utasítás listában voltak megírva, ezért folyamatosan mérnöki segítségre szorultak.
Egyébként a mai PLC-k már nem lassúak, s nélkülük már nem lenne ipar.

Szeretnem felhivni a figyelmedet, hogy a vilag nem ketallapotu! Nem csak jo meg rossz bacsik vannak, mint ahogy nem minden plc ocska es nem minden fpga jo. Kicsit tajekozodj, mielott beszelsz.
Nezz korul az Omron, a Schneider, a Delta, esetleg a Siemens honlapjain, aztan, ha meg mindig ugy gondolod, hogy kisujjbol kirazod az ott latottakat, akkor hajra!

Csak nehany problema a teljesseg igenye nelkul:

- parhuzamos real-time feldolgozas nehany mS korulfordulasi idovel.
- biztonsagos mukodes
- szelsoseges homersekleti viszonyok kozott mukodokepesseg
- frekvenciavaltokkal es egyeb szabvanyos buszrendszerekkel kommunikalo eszkozokkel adatcsere- a ceg akinek en dolgozom, evente kb, 100 plc-t hasznal, teljesen vegyes io kiosztassal. Tudsz ennyit azonos minosegben, garanciaval c sinre pattintos kompakt kivitelben legyartani?

Szerinted a plc-k mibol vannak belulrol?

Nem nezem vegig 4 gyarto osszes termekeit. Ezert kertem, hogy mutass konkretan par adatlapot, amit erdemes elolvasnom.

A microsec miatt mondtam, hogy lassu, en is kb. ennyire emlekeztem.

Most ugy latom (keves mintabol altalanositok), hogy lementek a PLC arak elegge, ott ahol eleg amit nyujtanak, fejlesztesi koltsegen sokat megsporolhat az ember.

plc -olcsobb valtozataiban szerintem, militari enchanted 8 bites micro controller(ek) vannak, plusz nagy fesz kapcsolo elemek.

>Nem nezem vegig 4 gyarto osszes termekeit. Ezert kertem, hogy mutass konkretan par adatlapot, amit erdemes elolvasnom.
Nem artana, mert alaposan el vagy maradva:)

>plc -olcsobb valtozataiban szerintem, militari enchanted 8
>bites micro controller(ek) vannak, plusz nagy fesz kapcsolo elemek.

A plc-k manapsag ugy neznek ki, hogy van egy cpu amihez tetszoleges io eszkozoket lehet csatlakoztatni (altalaban pattintos kivitelben), ezek azonban legtobbszor kisfeszultsegu (24V-os tranzisztoros analog/digitalis ki/bemenetek).
Ezert a kimenetek legtobbszor kis relekkel masolva hajtjak meg a nagy teljesitmenyu kontaktorokat. Hogy miert? Mert igy olcsobb.

A cpu-k amiket en lattam altalaban 16 bites processzorok, pl. 8086 like.

Olvasgass csak... :)

Melyik pc alalap a csucs?

Attol fugg mire akarod hasznalni.
A legprofibbnak nekem az Omron tunt. Ugyanaz a programozo sw. minden plc-hez, a legkisebbtol a legnagyobbig.
A legolcsobb es egyben meg hasznalhato a Delta.
A Schneider-rol nem nyilatkozom. :)
A Siemens nagyon jo, nagyon bonyolult es nagyon draga.

Masoknak persze lehet mas velemenye is, valamint az egyes gyartok termekei kozott is nagy kulonbsegek vannak.

PLC-nel azert elony, hogy akar 1000-nel is tobb digitalis ki- illetve bemenetet kezel, akar 100 folott analog ki- illetve bemenetet. Peldaul egy kis teljesitmenyu vizieromunel 2 darab generatorral tobb mint 900 digitalis bemenetet, 200 digitalis kimenet, 160 analog bemenet van. Nem tudom CPLD/FPGA mit tud mivel soha nem dolgoztam ilyesmivel, de szerintem ez meghaladna a kepessegeit. Elonye a PLC-nek, hogy mivel modularis felepitesu a kozponti egyseg melle csak olyan es annyi modult teszel amilyenre es amennyire szukseged van. Melle jon meg olyan nyalanksag mint optikai/utp kabelen keresztul redundans mukodes tamogatasa 2 PLC kozott, az iparban hasznalt osszes protokoll tamogatasa. Persze ezekkel egyutt az ar is szepen no. Kisebb alkalmazast (10-20 digitalis ki/bemenet, nehany analog ki/bemenet) par szaz eurobol is ki lehet hozni, meg akkor is ha nem feltetlenul a legolcsobb PLC-t valasztod.

Ugyanugy mint ahogy nincs olyan, hogy "legjobb" programozasi nyelv, olyan sincs, hogy "legjobb" hadware. Feladathoz kell valasztani a hadware-t is.

Változott-e a helyzet 2008 óta? Lehet-e PLC-t programozni Linux alól, wine nélkül?

> Sol omnibus lucet.