Slobodné PLC programovateľné pod GNU Linuxom

fela

Slobodné PLC programovateľné pod GNU Linuxom
« kdy: 20. 01. 2018, 20:51:08 »
Dobrý deň,

chcel by som sa poradiť v nasledovnom:
Keď vo firme riešime nejakú automatizáciu, tak sme to riešili dvomi prístupmi:
1. väčšie priemyselné projekty pomocou PLC (dávno Mitsubishi, potom Siemens),
2. drobné procesy pomocou mikrokontrolérov (sprvu PIC, potom Arduino, potom *duino klony - s vlastnými DPS na vstupy/výstupy).

Postupom rokov sa nám podario prejsť kompletne na slobodný softvér (okrem strojov, kde dávame termotransferové tlačiarne a ich obslužný softvér je iba pre Windows [OK, raz sme robili na ich riadenie vlastný soft, ale to bolo len v troch aplikáciách a potom tie tlačiarne prestali vyrábať :( ]).

Stále uvažujem, ako nahradiť tie PLC niečim slobodným. Skúšali sme PLC na báze arduín (napr. Industruino), čo bolo funkčné riešenie i vo veľmi zarušených prevádzkach (a súčasne veľmi vlhko a teplo). Ale tam je ponuka výrobkov  obmedzená.

Takže konečne ku otázke: Poznáte niekto nejaké PLC, ktoré je slobodné (hardvér nemusí byť, ale softvér by bol fajn) ?
Prípadne, že by bolo programovateľné v C?
A jasné, že by to muselo ísť pod linuxom...

Ďakujem za tipy, ev. skúsenosti.


eiffel

Re:Slobodné PLC programovateľné pod GNU Linuxom
« Odpověď #1 kdy: 20. 01. 2018, 21:44:24 »
Ne. Také jsme pátrali, ale nic, co by šlo profesionálně nasadit jsme nenašli. I když plno projektů vypadá slibně...
Mimochodem - pokud jde řeč o C tak už nejde o PLC programování ...  Pak bych použil libovolný MCU, ev. malinu či její klony.

Franta <xkucf03/>

Re:Slobodné PLC programovateľné pod GNU Linuxom
« Odpověď #2 kdy: 20. 01. 2018, 22:06:35 »
Pár odkazů z mých záložek:
http://www.openplcproject.com/
https://bues.ch/cms/automation/awlsim.html
https://forum.root.cz/index.php?topic=14068
(zkušenost s tím nemám, ale něco jsem o tom před časem hledal a našel tohle, tak třeba ti to pomůže)

TVL

Re:Slobodné PLC programovateľné pod GNU Linuxom
« Odpověď #3 kdy: 21. 01. 2018, 07:26:45 »
Stále uvažujem, ako nahradiť tie PLC niečim slobodným. Skúšali sme PLC na báze arduín (napr. Industruino), čo bolo funkčné riešenie i vo veľmi zarušených prevádzkach (a súčasne veľmi vlhko a teplo). Ale tam je ponuka výrobkov  obmedzená.

A co přesně vám má ten přechod na svobodné řídící systémy přinést?
Krátká verze: Nedává to smysl.

Dlouhé verze:
PLCčka se evolučně vyvíjela skoro 50 let a i když mají mnoho jednotlivých vad a nectností, tak celkovou koncepcí jsou přesně tam, kde je výrobní průmysl chce mít.
PLC totiž znamená vertikální integraci. Je to HW od začátku navržený do podmínek průmyslového provozu. Je to firmware s operačním systémem odladěným pro potřeby úloh řešených v reálném čase. Jsou to programovací jazyky vycházející z normy IEC/EN 61131-3, kde je (za určitých podmínek řekněme) dělat malé změny v jedné části programu, které nerozbijí jiné části programu. A je to fungující (tzn. opravdu fungující) komunikace jak mezi jednotlivými moduly toho PLC, tak i navenek.
A celé tohle do sebe vzájemně zapadá, protože to bylo celé tak navrženo, aby to fungovalo dohromady. A celé je to dlouhodobě odladěno. Koncepčně je to odlazováno desetiletí a konkrétní firmwary jsou odlazovány roky.

Fakt se zamysli, čím chceš tomuto konkurovat. PLCčka jsou fakt krutě drahá, takže se logicky nabízí cena, jenže... jenže tady to funguje tak, že je celkem hodně malých výrobců PLC, kteří jsou výrazně levnější než ti velcí a drazí a... a stejně se na trhu moc neprosazují a ti velcí a drazí si drží většinu trhu.

Výrobní průmysl CHCE drahé PLC, protože prostě fungují a fungují velmi spolehlivě. A také proto aby s tím dokázal sám pracovat. Aby u 15 let staré mašiny dokázal objednat náhradní moduly řídícího systému, který se už 5 - 10 let nevyrábí a sám si to vyměnil a sám si tam udělal drobnou (anebo i velkou) úpravu v programu i když firma, co dodávala elektriku a řízení té 15 let staré mašiny (tedy tvoje firma) už dávno neexistuje.

Výrobnímu průmyslu vůbec nevadí, že používá něco nesvobodného. To, že to drží pevně v ruce ten jeden výrobce je právě zdrojem toho, že to dohromady skvěle funguje.
Pokud bys na PLCčka nasazoval nějaký svobodně vyvíjený firmware, tak bys musel zavést (dnes neexistující) profesi PLC administrátora, který ti bude hlídat na kterém PLC máš FW jaké verze a řešit, co se s tím dá a nedá dělat. A bude zjišťovat, že FW verze XYZ na HW verze XYX nebude nikdy fungovat dobře, dokud je neohne tenhle zdroják, ale to FW vývojový tým nikdy neudělá, protože to je chyba to HW a oni si nebudou čistou koncepci prasit takto hnusným patchem. No něco s tím udělají, ale později. Takže milý admin si bude muset napsat patch sám a nějakou dobu ho sám udržovat. A pak trávit spoustu času tím, že bude analyzovat, jestli se dá ta jeho patchnutá verze FW upgradnout na novou velkou vanilla verzi, kde už je ta chyba opravena jinak. V linuxovém světě to tak funguje a dává to smysl, ale v PLC světě vůbec.

Respektive ono to smysl dává. Ale dává to smysl pro firmu, hledá řídící systém pro průmyslového robota, kterých bude vyrábět stovky tisíc kusů. Dává to smysl pro firmu, která hledá řídící systém pro stíhačku, které se sice vyrobí jenom pár stovek kusů, ale jedna bude stát desítky milionů dolarů. Takové firmy potom vlastně mají vlastní řídící systém, do kterého samozřejmě dávají kousky puzzle odjinud (např. RTOS), ale ten celkový objem zakázky jim zaplatí ty roky ladění, že jim všechno navzájem do sebe zapadne.

Je pravda, že velmi levné mikrokontroléry posledních let částečně nabouraly ten PLC monolit a spousta drobností se dneska dělá třeba právě na RPi. Nicméně zatím to vidím jenom jako sběrače dat právě pro to PLC, které je pořád králem toho řídícího systému a které tam zákazník pořád požaduje a které pořád dává skvělý smysl jako způsob, jak předávat ta data do vyšších vrstev řízení.
Osobně očekávám, že vývoj půjde právě tím směrem, že budou vznikat MCU jejichž HW specifikace ohledně tepla, vlhkosti, rušení, vibrací atd. se přiblíží PLCčkům. Ale jak na to budou reagovat koneční zákazníci (tedy výrobní firmy), to si odhadovat netroufám.
Je potřeba si uvědomit, že zákazník má stroj/linku jako celek. A nejdražší je železo. Ne hardware, ale opravdové železo. Elektrika tvoří většinou jenom malou část ceny stroje. A řídící systém tvoří jenom malou část ceny elektriky (to jsou hlavně motory a tlusté kabely k těm motorům). A jeden výpadek kvůli internímu problému v řídícím systému stroje stojí zákazníka většinou více, než rozdíl mezi tím nejdražším PLCčkem a tím nejlevnějším samo-domo bastlem.

v

Re:Slobodné PLC programovateľné pod GNU Linuxom
« Odpověď #4 kdy: 21. 01. 2018, 13:37:51 »
Stále uvažujem, ako nahradiť tie PLC niečim slobodným. Skúšali sme PLC na báze arduín (napr. Industruino), čo bolo funkčné riešenie i vo veľmi zarušených prevádzkach (a súčasne veľmi vlhko a teplo). Ale tam je ponuka výrobkov  obmedzená.

A co přesně vám má ten přechod na svobodné řídící systémy přinést?
Krátká verze: Nedává to smysl.
mě třeba trochu štve, že výuka na školách využívá proprietární technologie, což se mi kvůli IEC61131 nejeví jako nutnost 


fela

Re:Slobodné PLC programovateľné pod GNU Linuxom
« Odpověď #5 kdy: 21. 01. 2018, 16:36:15 »
Ďakujem za vyčerpávajúcu odpoveď.
My sme začali s GNU/Linuxom ešte v r. 2000 (začiatky boli v tom čase ešte hocijaké), pomaly sa počet PC s Windowsom znižoval. Teraz máme vo firme 3 licencie na Windows (dva notebooky s už inštalovaným OS + jedna vo VirtualBoxe na skúšanie cross-kompilovaných programov).
Kolega, ktorý robí tie Siemensy má nejaký soft na programovanie.
Keď sme robili nejaké menšie veci, kde stačilo Arduino, tak tam som to programoval v EMACSe.

Píšem to len preto, že ladder, alebo tie funkčné bloky - tomu som na chuť neprišiel. (Raz (asi pred 15 rokmi) sme mali PLC od českého výrobcu (názov si teraz nespomeniem), ten sa programoval v nejakov deriváte Pascalu (tuším)).

Pár-krát sme použili Industruino (čo je veľkostne niečo ako Siemens LOGO!), vo vnútri ktorého bolo Arduino Leonardo - takže opäť EMACS ...

Ale toto by sa mi páčilo najviac - niečo ako www.industruino.com, ale s viac I/O a s možnosťou pripojenia napr. dotyk. obrazovky.
Najbližšie tomu je asi  https://www.industrialshields.com/ , ktorý má tiež vo vnútri Leonarda.
(Máte niekto s týmto skúsenosť?)

Ale cena oboch riešení (vzhľadom k počtu I/O) nie je vôbec priaznivá.

Z toho všetkého tu akosi vyplýva, že nemá zmysel opúšťať konvenčné PLC-čka.
Len mi je to trochu ľúto, že slobodný softvér a hardvér by potreboval urobiť hádam len o trochu väčší krok,...
(Súhlasím, že navrhnúť dobrý a spoľahlivý HW, to nie je len tak. Videl som kdejaké mrznutia a resety v prevádzkach s množstvom točivých strojov a meničov (ale videl som aj ako sa komerčné snímače, s EMC odolnosťou, správali v takomto prostredí chybne)...

TVL

Re:Slobodné PLC programovateľné pod GNU Linuxom
« Odpověď #6 kdy: 21. 01. 2018, 16:42:59 »
mě třeba trochu štve, že výuka na školách využívá proprietární technologie, což se mi kvůli IEC61131 nejeví jako nutnost
A jak byste si to představoval? Všechny PLC systémy jsou proprietární. S výjimkou občasných pokusů. Dříve byly pokusy dělat open soft-plc. Dneska teda existuje nějaký open plc projekt. Přiznám se, že jsem líný si pročíst, kam se to za poslední rok dostalo, ale zjevně to cílilo na to být pokusnou hračkou.
To, že je IEC6113-1, to neznamená, že pro praktickou práci nepotřebuje znát mnoho implementačních specifik daného proprietárního systému.
Příkladem může být třeba flip-flop, kde u některých výrobců znamená RS, že přednost má R a u některých, že přednost má S (a naopak SR někde znamená, že přednost má S a u těch druhých, že přednost má R). Další věc je nějaké systémové/hardwarové nastavení, které norma téměř neřeší a které má samozřejmě každý výrobce úplně jinak. Většina výrobců samozřejmě podporuje mnoho otevřených komunikačních protokolů, ale jejich hlavní/defaultní (nebo pro komunikaci ve "svém" světě i jediný) je protokol proprietární.
Pokud byste chtěl učit PLCčka a bez proprietárních technologií, tak tak nějak není co a není na čem.

Navíc bavíme se o středních nebo vysokých školách? Střední odborné školy si všeobecně dávají za cíl připravit studenty/učně pro praxi. Což je rozhodně správné řešení. V takovém případě je prostě potřeba učit právě to, co se používá. Navíc - střední školy většinou smrdí korunou. Jsou rády, že jim nějaký proprietární výrobce levně vybavil učebnu svými krabičkami oni mají na čem učit.
Některé vysoké školy se snaží vyučovat prakticky, podle požadavků trhu - což opět vede na proprietární technologie. Jiné se snaží vyučovat obecně (a jsou pak kritizovány, že jejich absolventi neumí pracovat v té poslední verzi vývojového prostředí od firmy X, kterou přece používá každý), tam by bylo skvělé, kdyby nějaké open technologie měli a rozvíjeli (a samozřejmě vedle toho taky měli ty proprietární, aby studenti pak nebyli v praxi za úplné pitomce). Tady je ten problém, že není ta open PLCčka kde brát.


ehmmm

Re:Slobodné PLC programovateľné pod GNU Linuxom
« Odpověď #7 kdy: 21. 01. 2018, 16:43:20 »
V oboru PLC navic velmi dobre funguje podpora.
Nemyslim takovou tu linuxackou mailovou podporu, kde narazis na problem, tak napises na net a nekdy nekdo nejspis odepise.
Ale mas v telefonu cislo na jednoho nebo dva lidi od dealera, kterym muzes temer kdykoliv zavolat a oni temer vzdycky vedi, v extremnim pripade to zjisti u vyrobce.
Samozrejme se predpoklada, ze tech PLC nekolik za rok koupis. Pri vetsim poctu ty ceny navic prestavaji byt zavratne a spousta veci k nim je potom tak nejak v cene. Konkurence je docela velka a dealer/vyrobce jsou radi, ze pouzivate jejich znacku.

TVL

Re:Slobodné PLC programovateľné pod GNU Linuxom
« Odpověď #8 kdy: 21. 01. 2018, 17:09:18 »
Kolega, ktorý robí tie Siemensy má nejaký soft na programovanie.
No existují různá vývojová prostředí, kde se dá (s větším, či menším omezením) dělat Simatic, ale ještě jsem neviděl nikoho v komerční praxi, kdo by řekl - je to lepší než vývojové prostředí přímo od výrobce a hlavně nikoho, kdo by si troufl v tom něco fakt dělat a ukazovat v tom něco zákazníkovi a předat mu takový projekt.
Nám třeba někteří zákazníci v automobilovém průmyslu kontrolují, že máme originální vývojové prostředí nejenom správné (a pro projekt schválené) verze ale i správnou (a pro projekt schválenou) verzi servicepacku :-).

Píšem to len preto, že ladder, alebo tie funkčné bloky - tomu som na chuť neprišiel. (Raz (asi pred 15 rokmi) sme mali PLC od českého výrobcu (názov si teraz nespomeniem), ten sa programoval v nejakov deriváte Pascalu (tuším)).
V Česku je v Kolíně výrobce PLC, firma Teco. Asi nemají moc velký vývojový tým, ale jejich nová řada je IMHO povedená s výborným poměrem cena/výkon. Většinu kódu můžete programovat v čem chcete (IEC 6113-1 definuje různé jazyky včetně něčeho, co připomíná pascal).

Pár-krát sme použili Industruino (čo je veľkostne niečo ako Siemens LOGO!), vo vnútri ktorého bolo Arduino Leonardo - takže opäť EMACS ...

Ale toto by sa mi páčilo najviac - niečo ako www.industruino.com, ale s viac I/O a s možnosťou pripojenia napr. dotyk. obrazovky.
Najbližšie tomu je asi  https://www.industrialshields.com/ , ktorý má tiež vo vnútri Leonarda.
(Máte niekto s týmto skúsenosť?)
Přiznávám se, že přímo s tímto zkušenosti nemám, ale v téhle oblasti cítím, že se něco chytí. Problém je, že tohle jsou všechno malé hračky. Nemyslím, že se v blízké době někomu podaří se s tím prosadit směrem k mainstreamu klasických PLCček.


TVL

Re:Slobodné PLC programovateľné pod GNU Linuxom
« Odpověď #9 kdy: 21. 01. 2018, 17:14:58 »
V oboru PLC navic velmi dobre funguje podpora.
...
Copak podpora pro implementátory :-) Ale hlavně podpora pro koncové zákazníky.
Dobrý den, my tady máme tuhle linku, na té je takový a takový Váš hardware. Firma, co to před 15 lety implementovala, už neexistuje. Můžete nám poradit, jak by se to dalo zmodernizovat a rozšířit?
A výrobce PLCčka tam pošle lidi, udělá analýzu a navrhne co s tím a navrhne, že to udělá sám, nebo dá vybrat z některých z certifikovaných implementátorů.

v

Re:Slobodné PLC programovateľné pod GNU Linuxom
« Odpověď #10 kdy: 21. 01. 2018, 17:28:18 »
mě třeba trochu štve, že výuka na školách využívá proprietární technologie, což se mi kvůli IEC61131 nejeví jako nutnost
A jak byste si to představoval? Všechny PLC systémy jsou proprietární. S výjimkou občasných pokusů. Dříve byly pokusy dělat open soft-plc. Dneska teda existuje nějaký open plc projekt. Přiznám se, že jsem líný si pročíst, kam se to za poslední rok dostalo, ale zjevně to cílilo na to být pokusnou hračkou.
To, že je IEC6113-1, to neznamená, že pro praktickou práci nepotřebuje znát mnoho implementačních specifik daného proprietárního systému.
Příkladem může být třeba flip-flop, kde u některých výrobců znamená RS, že přednost má R a u některých, že přednost má S (a naopak SR někde znamená, že přednost má S a u těch druhých, že přednost má R). Další věc je nějaké systémové/hardwarové nastavení, které norma téměř neřeší a které má samozřejmě každý výrobce úplně jinak. Většina výrobců samozřejmě podporuje mnoho otevřených komunikačních protokolů, ale jejich hlavní/defaultní (nebo pro komunikaci ve "svém" světě i jediný) je protokol proprietární.
Pokud byste chtěl učit PLCčka a bez proprietárních technologií, tak tak nějak není co a není na čem.

Navíc bavíme se o středních nebo vysokých školách? Střední odborné školy si všeobecně dávají za cíl připravit studenty/učně pro praxi. Což je rozhodně správné řešení. V takovém případě je prostě potřeba učit právě to, co se používá. Navíc - střední školy většinou smrdí korunou. Jsou rády, že jim nějaký proprietární výrobce levně vybavil učebnu svými krabičkami oni mají na čem učit.
Některé vysoké školy se snaží vyučovat prakticky, podle požadavků trhu - což opět vede na proprietární technologie. Jiné se snaží vyučovat obecně (a jsou pak kritizovány, že jejich absolventi neumí pracovat v té poslední verzi vývojového prostředí od firmy X, kterou přece používá každý), tam by bylo skvělé, kdyby nějaké open technologie měli a rozvíjeli (a samozřejmě vedle toho taky měli ty proprietární, aby studenti pak nebyli v praxi za úplné pitomce). Tady je ten problém, že není ta open PLCčka kde brát.
něco existuje (matplc/beremiz), nestojí to za moc, zkouším stav věcí zlepšit (mj. Ed.3), jde to pomalu, fenomén implementačních detailů specifických pro výrobce je rozšířený, IMHO by se to mělo řešit výukou obecných principů a případným školením od výrobce podle potřeby (možná jsem idealista)
co se používá? na mé SŠ třeba amit :))