God dag, kÀra lÀsare av denna artikel. Jag skriver detta i form av en recension
En liten varningJag vill varna för att om du direkt förstod vad rubriken handlar om, rekommenderar jag att byta ut den första punkten (sjÀlva PLC-kÀrnan) mot nÄgot frÄn en högre priskategori.
Ingen ekonomisk besparing Àr vÀrd sÄdan nervpress, subjektivt sett.
För dem som inte skrÀms av lite grÄtt hÄr och nervösa tick, kommer jag senare att beskriva i detalj hur detta teknologiska underverk skapades. I denna artikel finns det en kort analys av projektet med en viss grad av kritik.
Uppkomst. Problemlösning
Jag arbetar pÄ en designbyrÄ, och vi testar automatiseringsutrustning för integration i vÄra fabriker nyckelfÀrdig. Nyligen anlÀnde utrustning frÄn OVEN till lagret, och vi beslutade att bygga en testbÀnk av den:
- PLC110[M02]-MS4 (exekveringsmiljön MasterSCADA 4D)
- Operatorpanel SP307
- Modul för universell analoga signaler MV110-224.2A
- Modul för ingÄngssignaler för töjningssensorn MV110-4TD
- MĂ€tningsmodul MV110-220.3M
Systemstruktur valdes med Ätskillnad av nÀtverk efter avsikt:
- Modbus RTU baserat pĂ„ RS-485 â kommunikation mellan PLC och underordnade enheter (moduler, frekvensomvandlare, intelligenta sensorer, HMI-panel SP307), PLC-mĂ€stare i nĂ€tverket.
- Modbus TCP baserat pĂ„ Ethernet â kommunikation mellan olika PLC:er och med OPC-servern
- PC-server OPC och SCADA-system fungerar samtidigt som en gateway mellan tvÄ olika nÀtverk (företagets LAN och Modbus TCP-kontroller-nÀtverk (tvÄ nÀtverksadaptrar med data-routing via standard Windows-mekanismer)
- Företags LAN har internetÄtkomst genom en proxyserver
Systemstrukturen visas i allmÀnna termer pÄ bilden nedan:
![OVEN PLC110[M02]-MS4, HMI, OPC och SCADA, eller hur mycket romerskt te en person behöver. Del 1](/wp-content/uploads/2019/10/18cb2554a35fbb11111a78572d0f2bf9.png)
Inbyggd funktionalitet
- Insamling och omdirigering av data frÄn PLC till OPC-server
- Lokal styrning och övervakning via HMI-panelen
- Styrning och övervakning frÄn SCADA via OPC-server
- Styrning frÄn vilken PC som helst i företagets LAN och via internet med SCADA-klient
- Anslutning av mobila OPC-monitorer via LAN och internet
- Naturligtvis arkivering och generering av rapporter
Det verkar som om vi inte missade nÄgot. En allmÀn beskrivning av systemet finns, och nu kommer vi till Àmnet (metoder för att lösa problemen kommer att beskrivs i artiklar med implementering av varje enhet):
Uppkomna svÄrigheter
1. Dokumentation för PLC
Beta-testningen av den angivna PLC:n baserad pÄ MasterSCADA 4D markerades av tillverkaren Är 2012. Trots en sÄ imponerande existensperiod för konceptet har utvecklaren i 2019 endast en programmeringshandbok pÄ 28 (!) sidor, dÀr den nyttiga informationen Àr nÀstan obefintlig, och skÀrmdumparna i manualen Àr frÄn MasterSCADA 3D, vilket Àr ganska roligt med tanke pÄ att grÀnssnittet har förÀndrats.
Ăven en trĂ„d pĂ„ forumet med 20 trĂ„dar stöds aktivt av tre anhĂ€ngare och en sĂ€ljare.
2. Arkitektur PLC-moduler
Detta Àr ett separat Àmne för diskussion. Kort sagt: PLC:n kommunicerar med moduler som Modbus RTU-slave-enheter, som först mÄste konfigureras med ett verktyg genom att koppla varje modul till en PC via en RS-485-omvandlare.
Kloka gubbar, naturligtvis, kan sÀkert göra detta utan omvandlare genom PLC:n, och koppla modulerna i serie och skriva de nödvÀndiga registren, men det kommer med erfarenhet och en enorm mÀngd smÀrta.
För en utvecklare som ser en sÄdan arkitektur för första gÄngen Àr det verkligen inte anvÀndarvÀnligt.
Dessutom Àlskar alla analoga moduler att gÄ ner av okÀnda skÀl, vilket tar med sig hela RS-485-nÀtverket in i Terra Incognita, men detta vill jag ocksÄ berÀtta om separat, det Àr verkligen en epopé. Problemen har, för att nÀmna, funnits i ungefÀr 10 Är, och tillverkaren skÀmtar om det. "Man mÄste erkÀnna att vi inte lyckades med mallarna", men det Àr det enda grÀnssnittet för kommunikation med modulerna, och folk har, fullt seriöst, lÀnge skrivit sina implementationer av Modbus RTU.
Under tiden tog kamomillteet slut... Solen gick ner i horisonten.
3. IDE MasterSCADA
Vi ska inte tala om grafiska verktyg, jag har inte testat dem mycket, men jag kan sÀga direkt att jag inte gillade dem.
Vi pratar om implementeringen av datautbyte och sprÄken i IEC-standarden:
Kontrollerns fysiska in- och utgĂ„ngar Ă€r inte globala variabler och kan inte nĂ„s frĂ„n vilket program som helst genom att skriva ett alias, exempelvis "DI1". Varje program mĂ„ste manuellt dra in detta, dĂ€r en lokal variabel skapas som antingen Ă€rver eller överför vĂ€rdet. D.v.s. sjĂ€lva PLC:n, i min uppfattning, har blivit nĂ„got förlorad: enhetens syfte borde vara att förenkla programmeringen av logiken för fysiska kanaler till nivĂ„n "Om ingĂ„ng DI1 aktiveras - slĂ„r vi pĂ„ utgĂ„ng DO1", och det ser ut sĂ„ hĂ€r «IngĂ„ng DI1 â Variabel LI1 â Variabel LO1-UtgĂ„ng DO1», Ă€ven utan kunskap om denna princip kan IDE ge det mĂ€rkliga meddelandet «Boolesk-Boolesk omvandling Ă€r omöjlig» (troligen Ă€r nĂ„gon av dem en pekare, men jag förestĂ€ller mig i författarnas redigering, sĂ„ harmoniskt).
ProgrammeringssprÄken ST, FBD, SFC Àr tillrÀckligt omfattande och det finns alternativ för bekvÀmlighet, men dessa komponenter Àr inte funktioner utan klasser, i vilka metoderna Àr inbyggda, och för det mesta finns det ingen dokumentation med beskrivning av funktionalitet och datatyper. Min ihÀrdighet ledde mig till kÀrnbiblioteken för CodeSys, dÀrifrÄn alla dessa funktioner togs, deras dokumentation hjÀlpte mig.
4. Utbyte med panelen SP307
Ett ganska intressant evenemang för dem som inte vet hur de ska spendera ett par dagar.
Standardtestning av GUI (HMI eller SCADA) för mig Àr att göra 6 prover:
- LĂ€sa diskret signal
- Skriva diskret signal
- LÀsa heltalsvÀrde
- Skriva heltalsvÀrde
- LĂ€sa flyttal
- Skriva flyttal
DÀrför ritar jag 6 primitivkomponenter pÄ skÀrmen och kontrollerar dem i ordning
Utbytet Àr helt likadant som med moduler, men frÄn en separat port PLC RS-232/485, och verkar mer stabilt. Eftersom HMI-slaven, sÄ skrev jag till den vid Àndringar, och lÀste via polling var 500 ms för att inte missa operatörens handlingar.
De första 4 punkterna genomfördes utmÀrkt, men 5 och 6 orsakade problem.
Vi skickar data av typen Single Float, visar dem pÄ skÀrmen och ser att datan inte stÀmmer, Àven om alla utdata-instÀllningar (Float, dimension 1 register etc.) Àr korrekta. Det skulle vara osant att sÀga att dokumentationen inte beskriver en sÄdan situation, men försök hitta i vilken och var, det Àr roligt frÄn sidan.
Efter en hysterisk genomgĂ„ng av alla instĂ€llningar som rör sjĂ€lva datan och dess sĂ€ndning, skriver vi till supporten, svarstid i genomsnitt 5-6 kalenderdagar, arbetar enligt standardprotokollet för support «Kontrollera att strömmen Ă€r pĂ„ â kontrollera programvaruversionen â vĂ€nligen vĂ€nta ytterligare en veckaâGĂ„ vidare med att lösa det sjĂ€lva».
För övrigt löstes det med att aktivera en kryssruta pÄ en helt orimlig plats med en helt orimlig etikett.
Funktionen pÄ skÀrmen har inte stöd för inmatning av analog signal av typen «Glidare», kan endast skrivas in i textfÀltet med siffror. Det Àr helt fantastiskt, antingen anvÀnder vi knapparna «±» och skriptet sjÀlva, eller sÄ skriver vi in siffran med tangentbordet, vi glömmer mjuk kontroll av nÄgon drive.
Jag kommer inte att överbelasta artikeln, sÄ jag kommer att beskriva problemen pÄ den översta nivÄn i del 2.
Sammanfattningsvis, vill jag pÄpeka att jag hade tillrÀckligt med frihet och mycket tid för att lösa dessa problem, som vid första anblick kan verka löjliga, men orsakar mycket smÀrta för den drabbade. Under begrÀnsade tidsramar Àr det kritiskt att stöta pÄ sÄdana problem.
P.S.: Alla punkter som presenteras hÀr Àr subjektiva och Àr bara ett försök att varna de ovana, snarare Àn att diskriminera tillverkarna. Jag ber att ni ser pÄ denna artikel just ur detta perspektiv.
Den andra delen Àr redan hÀr:
KĂ€lla: habr.com
