ARIES PLC110[M02]-MS4, HMI, OPC og SCADA, eller hvor meget kamillete en person har brug for. Del 1

God eftermiddag, kære læsere af denne artikel. Jeg skriver dette i anmeldelsesformat.

En lille advarselJeg vil gerne advare dig om, at hvis du straks forstod, hvad vi taler om ud fra titlen, råder jeg dig til at ændre det første punkt (faktisk PLC-kernen) til alt fra en priskategori et trin højere.
Ingen pengebesparelse er subjektivt så mange nerver værd.

For dem, der ikke er bange for lidt gråt hår og amplituden af ​​en nervøs tic, vil jeg senere beskrive i detaljer, hvordan dette teknologiske mirakel blev skabt. Denne artikel giver en kort analyse af projektet med en vis mængde kritik.

Oprindelse. Formulering af problemet

Faktisk arbejder jeg i et designbureau, og vi tester automationsudstyr til integration i vores nøglefærdige fabrikker. For nylig ankom OWEN udstyr til lageret, og det blev besluttet at samle en testbænk fra det:

  • PLC110[M02]-MS4 (executive-miljø MasterSCADA 4D)
  • Betjeningspanel SP307
  • Universal analogt signalindgangsmodul МВ110-224.2А
  • MV110-4TD strain gauge signal input modul
  • Elektrisk målemodul MV110-220.3M

Systemstruktur blev valgt med differentiering af netværk efter formål:

  1. Modbus RTU baseret på RS-485 - kommunikation mellem PLC'en og slaveenheder (moduler, frekvensomformere, smarte sensorer, HMI panel SP307), PLC netværksmaster.
  2. Modbus TCP baseret på Ethernet - Kommunikation af forskellige PLC'er med hinanden og med OPC-serveren
  3. OPC- og SCADA-system-pc-serveren er samtidigt en gateway mellem to forskellige netværk (virksomhedens LAN og Modbus TCP-netværk af controllere (to netværksadaptere med datarouting ved hjælp af standard Windows-værktøjer)
  4. Virksomhedens LAN har internetadgang via en proxyserver

Systemets generelle struktur er vist på billedet nedenfor:

ARIES PLC110[M02]-MS4, HMI, OPC og SCADA, eller hvor meget kamillete en person har brug for. Del 1

Indbygget funktionalitet

  • Indsamling og omdirigering af data fra PLC'en til OPC-serveren
  • Lokal styring og overvågning via HMI panel
  • Styring og overvågning fra SCADA via OPC server
  • Styring fra enhver pc fra virksomhedens LAN og via internettet ved hjælp af en SCADA-klient
  • Tilslutning af mobile OPC-skærme via LAN og internet
  • Selvfølgelig arkivering og rapportgenerering

Det ser ud til, at der ikke er gået glip af noget. Der er en generel beskrivelse af systemet, og nu faktisk om emnet (jeg vil beskrive metoder til eliminering i artikler med implementeringen af ​​hver node):

Opståede vanskeligheder

1. PLC dokumentation

Beta-test af den erklærede PLC på MasterSCADA 4D-kernen blev angivet af producenten i 2012. På trods af en så imponerende levetid på konceptet, er alt, hvad udvikleren har i 2019, en programmeringsmanual på 28 (!?) sider, hvor der er lidt mindre end ingen brugbar information, og skærmbilleder i manualen er fra MasterSCADA 3D, hvilket er ret sjovt med at tage i betragtning at brugerfladen har ændret sig.

En forumtråd med 20 emner understøttes også aktivt af tre tilhængere og en salgschef.

2. Arkitektur af PLC-moduler

Dette er et separat emne til diskussion. Kort fortalt: PLC'en kommunikerer med modulerne som Modbus RTU-slave-enheder, som først skal konfigureres af værktøjet separat ved at forbinde dem til en pc via en RS-485-konverter.

Smarte fyre ved selvfølgelig sikkert, hvordan man gør dette uden en konverter via en PLC, sekventielt forbinder moduler til netværket og skriver de nødvendige registre, men det kommer med erfaring og en enorm smerte.

For en udvikler, der ser sådan en arkitektur for første gang, er den slet ikke brugervenlig.
Også alle analoge moduler kan lide at fejle af ukendte årsager, idet de tager hele RS-485-netværket med sig i Terra Incognita, men jeg vil også gerne tale om dette separat, selvfølgelig et helt epos. Problemet er i øvrigt 10 år gammelt, griner producenten af "Vi må indrømme, at skabelonerne ikke virkede for os", men dette er den eneste grænseflade til at kommunikere med moduler, og folk, helt seriøst, har skrevet deres Modbus RTU-implementeringer i lang tid.

I mellemtiden var kamilleteen ved at løbe tør... Solen var ved at gå ned

3. IDE MasterSCADA

Vi vil ikke tale om grafiske værktøjer; Jeg har ikke testet dem grundigt, men jeg vil med det samme sige, at jeg ikke kunne lide det.

Vi taler om implementering af dataudveksling og IEC-standardsprog:

Fysiske input og output fra controlleren er ikke globale variable og kan ikke tilgås fra nogen del af programmet ved at skrive et alias, for eksempel "DI1". Du skal trække dette ind i hvert program ved hjælp af håndtag, der dannes en lokal variabel, som arver eller overfører værdien. De der. selve essensen af ​​PLC'en, i min vision, er lidt tabt: enheden skal forenkle programmeringen af ​​logikken i driften af ​​fysiske kanaler til niveauet "Hvis input DI1 udløses, tænd for output DO1"og det ser sådan ud "Input DI1 - Variabel LI1 - Variabel LO1 - Output DO1"På grund af uvidenhed om dette IDE-princip kan du også fange en dejlig advarsel "Boolsk-boolsk konvertering er umulig" (sandsynligvis er en af ​​dem en pegepind, men jeg forestiller mig, at den er mere harmonisk i skabernes redaktører) .

Bibliotekerne i ST, FBD, SFC-sprogene er ret omfangsrige, og der er et valg for nem programmering, men disse komponenter er ikke funktioner, men klasser, inden for hvilke metoder er indlejret, og for det andet har de fleste ikke hjælp til at beskrive funktionalitet og datatyper. Vedholdenhed førte mig til CodeSys-kernebibliotekerne, hvor alle disse funktioner blev hentet fra, deres hjælp hjalp.

4. Udskift med SP307 panel

En ganske interessant begivenhed for dem, der ikke har nogen steder at tilbringe et par dage.

Standard GUI-test (HMI eller SCADA) for mig er at lave 6 tests:

  1. Aflæsning af et diskret signal
  2. Optagelse af et diskret signal
  3. Læsning af en heltalsværdi
  4. Skrivning af en heltalsværdi
  5. At læse en reel værdi
  6. At skrive en reel værdi

Derfor tegner jeg 6 primitive komponenter på skærmen og kontrollerer hver enkelt i rækkefølge
Udvekslingen er absolut den samme som med moduler, men fra en separat RS-232/485 PLC-port, og, ser det ud til, mere stabil. Da det er en HMI-slave, skrev jeg til den ved ændring og læste den i 500ms polling, for ikke at gå glip af operatørens handlinger.

De første 4 punkter blev gennemført perfekt, men punkter 5 og 6 gav problemer.

Vi sender data af typen Single Float, viser dem på skærmen og ser, at dataene ikke er de samme, selvom alle udgangsindstillinger (Float, dimension 1 register osv.) er korrekte. Det ville være løgn at sige, at præcedensen ikke er beskrevet i dokumentationen, men prøv at finde hvilken og hvor, det er sjovt udefra.

Efter en hysterisk søgning af alle indstillinger vedrørende selve dataene og dets afsendelse, Vi skriver til teknisk support, svaret er i gennemsnit 5-6 kalenderdage, vi arbejder efter standard teknisk support script "Tjek at strømmen er tændt - tjek softwareversionen - vent venligst endnu en uge - Lad os selv finde ud af det ”.

Det blev i øvrigt besluttet ved at installere et flueben på et absolut utilstrækkeligt sted med en absolut utilstrækkelig signatur.

I skærmfunktionalitet Den analoge signalindgang i "Slider"-formatet er ikke inkluderet, kan kun indtastes i tekstfeltet med tal. Dette er simpelthen fantastisk, enten skriver vi "±"-knapperne og scriptet selv, eller også indtaster vi et tal fra tastaturet og glemmer blød kontrol af noget drev.

Jeg vil ikke overbelaste artiklen for meget, så jeg vil beskrive problemer med det øverste niveau i del 2.

At opsummere, Jeg vil bemærke, at jeg havde tilstrækkelig frihed og meget tid til at løse disse problemer, som ved første øjekast virker sjove, men forårsager meget smerte for offeret. I forhold med begrænset tid er det afgørende at stå over for sådanne problemer.

PS: Alle teser, der præsenteres her, er subjektive og er kun et forsøg på at advare de uforberedte, og ikke at diskriminere mod producenter, jeg beder dig tage denne artikel fra dette synspunkt.

Anden del er allerede her: klik

Kilde: www.habr.com

Tilføj en kommentar