Goddag, kære læsere af denne artikel. Jeg skriver dette i form af en anmeldelse
En lille advarselJeg vil advare om, at hvis du straks forstod, hvad det handler om fra overskriften, så anbefaler jeg at ændre det første punkt (faktisk, PLC-kerne) til noget andet i den højere priskategori.
Ingen besparelse i penge er værd at så mange nerver, subjektivt.
For dem, der ikke skræmmes af lidt grå hår og en vis nervøsitet, vil jeg senere beskrive i detaljer, hvordan dette teknologiske vidunder blev skabt. I denne artikel er der derimod en kort analyse af projektet med en vis portion kritiskhed.
Fødsel. Problemformulering
Faktisk arbejder jeg i et ingeniørbureau, og vi tester automatiseringsudstyr til integration i vores nøglefærdige fabrikker. For nylig ankom OVEN-udstyr til lageret, og vi besluttede at samle en testbænk:
- PLC110[M02]-MS4 (udførelse af MasterSCADA 4D)
- Operatorpanel SP307
- Modul til universel indgang af analogsignaler MV110-224.2A
- Modul til indgang af signalsensorer MV110-4TD
- Elektrisk målemodule MV110-220.3M
Systemstruktur blev valgt med opdeling af netværk efter formål:
- Modbus RTU baseret på RS-485 — kommunikation mellem PLC og underordnede enheder (moduler, frekvensomformere, intelligente sensorer, HMI-panel SP307), PLC-master i netværket.
- Modbus TCP baseret på Ethernet — kommunikation mellem forskellige PLC'er og med OPC-serveren
- PC-server OPC og SCADA-systemer fungerer samtidig som en gateway mellem to forskellige netværk ( virksomhedens Corporate LAN og Modbus TCP-netværk af controllere (to netværksadaptere med datarouting ved hjælp af standard Windows-midler))
- Corporate LAN har udgang til internettet via en proxyserver
Systemstrukturen er præsenteret i generelt format på billedet nedenfor:
![OVEN PLC110[M02]-MS4, HMI, OPC og SCADA, eller hvor meget romersk te en person har brug for. Del 1](/wp-content/uploads/2019/10/18cb2554a35fbb11111a78572d0f2bf9.png)
Den indlagte funktionalitet
- Indsamling og omdirigering af data fra PLC til OPC-server
- Lokal kontrol og overvågning via HMI-panel
- Styring og overvågning fra SCADA via OPC-server
- Styring fra enhver PC i virksomhedens LAN og via internettet ved hjælp af SCADA-klient
- Tilslutning af mobile OPC-monitorer via LAN og internettet
- Selvfølgelig, arkivering og generering af rapporter
Der ser ikke ud til at være noget, vi har overset. Der er en generel beskrivelse af systemet, og nu, faktisk, til emnet (metoder til afhjælpning vil jeg beskrive i artikler med implementeringen af hver node):
Opståede vanskeligheder
1. Dokumentation til PLC
Beta-testningen af den annoncerede PLC baseret på MasterSCADA 4D blev markeret af producenten i 2012. På trods af den imponerende eksistensperiode for konceptet har udvikleren i 2019 kun et programmeringsmanual på 28(!?) sider, hvor nyttig information næsten er lig med nul, med skærmbilleder i manualen fra MasterSCADA 3D, hvilket er ret morsomt i betragtning af at grænsefladen er ændret.
Der er også aktiv støtte fra tre tilhængere og en salgschef på forumtråden i 20 emner.
2. Arkitekturen for PLC-moduler
Dette er et separat emne til diskussion. Kort sagt: PLC'en kommunikerer med modulerne som Modbus RTU-slaveenheder, som først skal konfigureres ved hjælp af et værktøj, der tilslutter hver enkelt til PC'en via en RS-485 konverter.
Dygtige personer kan selvfølgelig sikkert gøre dette uden konverteren gennem PLC'en ved at tilslutte modulerne i rækken og skrive de nødvendige registre, men det kommer med erfaring og en masse smerte.
For en udvikler, der ser en sådan arkitektur for første gang, er den slet ikke brugervenlig.
Desuden plejer alle analoge moduler at fejle af ukendte årsager og tager hele RS-485 netværket med sig ind i Terra Incognita, men jeg vil også gerne tale om dette separat, det er helt klart en saga. Problemet er, for øvrigt, ti år gammelt, producenten laver sjov med det. „Man må erkende, at skabelonerne ikke lykkedes os.“, men det er den eneste kommunikationsgrænseflade med modulerne, og folk har alvorligt skrevet deres implementationer af Modbus RTU i lang tid.
I mellemtiden var kamille-teen ved at slippe op... Solen var på vej ned over horisonten.
3. IDE MasterSCADA
Lad os ikke tale om de grafiske værktøjer, jeg har ikke testet dem meget, men jeg vil sige med det samme, at jeg ikke kunne lide det.
Vi taler om implementationen af datakommunikation og sprogene i IEC-standarden:
De fysiske indgange og udgange af controlleren er ikke globale variable, og de kan ikke tilgås fra hvilken som helst del af programmet ved at skrive et alias, som fx „DI1“. I hvert program skal man manuelt trække det ind, hvor der dannes en lokal variabel, der arver eller overfører værdien. Dvs. selve essensen af PLC'en er, i min opfattelse, lidt tabt: enheden skal forenkle programmeringen af logikken for de fysiske kanaler til niveauet „Hvis indgangen DI1 aktiveres — tænder vi udgangen DO1“, og det ser sådan ud «Indgang DI1 — Variabel LI1 — Variabel LO1 — Udgang DO1», desuden kan man uforvarende få den forbløffende advarsel «Boolean-Boolean konvertering er umulig» (formentlig er en af dem en pointer, men jeg forestiller mig, at det ville være mere harmonisk i redaktionen af skaberne).
Bibliotekerne til sprog som ST, FBD, SFC er ret omfattende og der er valgmuligheder for nem programmering, men disse komponenter er ikke funktioner, men klasser, i hvilke metoder er indkapslet, og der mangler ofte dokumentation med beskrivelse af funktionaliteter og datatyper. Min vedholdenhed førte mig til bibliotekerne i kernel CodeSys, hvorfra alle disse funktioner blev hentet, og deres dokumentation hjalp.
4. Udveksling med panelet SP307
En ret interessant begivenhed for dem, der ikke ved, hvordan de skal tilbringe et par dage.
Standard GUI-test (HMI eller SCADA) for mig indebærer at lave 6 prøver:
- Læsning af diskret signal
- Optagelse af diskret signal
- Læsning af heltalsværdi
- Optagelse af heltalsværdi
- Læsning af flydende værdi
- Optagelse af flydende værdi
Derfor tegnede jeg 6 primitive komponenter på skærmen og kontrollerede hver enkelt i rækkefølge.
Udvekslingen er helt den samme som med modulerne, men fra en separat PLC-port RS-232/485, og det virker til at være mere stabilt. Da HMI er en slave, skrev jeg til den ved ændringer, og jeg læste med polling hver 500 ms for ikke at misse operatørens handlinger.
De første 4 punkter blev udført fremragende, men 5 og 6 gav problemer.
Vi sender data af typen Single Float, viser dem på skærmen og ser, at dataene ikke er dem, selvom alle indstillinger for visning (Float, dimension 1 register osv.) er korrekte. Det ville være usandt at sige, at der ikke er en omtale af dette tilfældet i dokumentationen, men prøv at finde ud af hvilken og hvor, det er ret morsomt fra en ekstern synsvinkel.
Efter hysterisk at have gennemgået alle indstillinger vedrørende selve dataene og deres afsendelse, skriver vi til teknisk support; svar er i gennemsnit 5-6 kalenderdage, vi arbejder efter det standard script for teknisk support «Tjek, at strømmen er tændt — tjek softwareversionen — vent venligst en uge mere — lad os finde ud af det selv».
Forresten, det blev løst ved at sætte en afkrydsningsboks i en absolut uhensigtsmæssig placering med en fuldstændig uhensigtsmæssig beskrivelse.
I skærmens funktionalitet er der ikke indbygget en indgang til analogt signalformat «Skyder», kan kun indsættes i tekstfeltet som tal. Det er simpelthen vidunderligt; ellers kan vi bruge knapperne „±“ og skripte det selv, eller indtaste tallet fra tastaturet, vi glemmer blødt at styre nogle drev.
Jeg vil ikke overbelaste artiklen, så jeg vil beskrive problemerne på det øverste niveau i del 2.
Sammenfattende, vil jeg bemærke, at jeg havde tilstrækkelig frihed og meget tid til at løse disse problemer, som ved første øjekast synes komiske, men som forårsager meget smerte for de berørte. At stå over for sådanne problemer under stramme deadlines er kritisk.
P.S.: Alle de punkter, der er præsenteret her, er subjektive og er blot et forsøg på at advare de uforberedte, ikke diskriminere producenterne; jeg beder jer om at se denne artikel fra netop dette perspektiv.
Den anden del er allerede her:
Kilde: habr.com
