OVEN PLC110[M02]-MS4, HMI, OPC en SCADA, of hoeveel kamillethee een mens nodig heeft. Deel 1

Goedemiddag, beste lezers van dit artikel. Ik schrijf dit in de vorm van een review

Een kleine waarschuwingIk wil waarschuwen dat als je al meteen begreep waar het over gaat uit de titel, ik je adviseer om het eerste punt (namelijk de PLC-kern) te vervangen door iets uit de hogere prijscategorie.
Geen enkele besparing levert zoveel zenuwen op, subjectief gezien.

Voor degenen die niet bang zijn voor een paar grijze haren en de amplitude van een zenuwtrek, zal ik later in detail beschrijven hoe dit technologische wonder is ontstaan. In dit artikel vind je echter een korte analyse van het project met een zekere mate van kritiek.

Oprichting. Probleemstelling

In feite werk ik bij een ontwerpbureau, en we testen automatiseringsapparatuur voor integratie in onze fabrieken op maat. Onlangs is er apparatuur van OVEN binnengekomen en besloten om een testopstelling te bouwen:

  • PLC110[M02]-MS4 (uitvoeringsomgeving MasterSCADA 4D)
  • Operatorpaneel SP307
  • Universele module voor analoge signaalinvoer MV110-224.2A
  • Module voor invoer van spanningssensor-signalen MV110-4TD
  • Elektrische meetmodule MV110-220.3M

Structuur van het systeem is gekozen met een scheiding van netwerken op basis van bestemming:

  1. Modbus RTU op basis van RS-485 - communicatie tussen PLC en ondergeschikte apparaten (modules, frequentieregelaars, intelligente sensoren, HMI-paneel SP307), PLC-master van het netwerk.
  2. Modbus TCP op basis van Ethernet - communicatie tussen verschillende PLC's onderling en met de OPC-server
  3. PC-server OPC en SCADA-systemen fungeren tegelijkertijd als een gateway tussen twee verschillende netwerken (bedrijfs LAN en Modbus TCP-netwerk van controllers (twee netwerkadapters met gegevensroutering via de standaard Windows-middelen)
  4. Het bedrijfs LAN heeft verbinding met internet via een proxyserver

De structuur van het systeem is in algemene vorm weergegeven in de afbeelding hieronder:

OVEN PLC110[M02]-MS4, HMI, OPC en SCADA, of hoeveel kamillethee een mens nodig heeft. Deel 1

Ingebouwde functionaliteit

  • Verzamelen en doorsturen van gegevens van PLC naar OPC-server
  • Lokale controle en monitoring via het HMI-paneel
  • Besturing en monitoring vanuit SCADA via OPC-server
  • Besturing vanaf elke PC in het bedrijfs LAN en via internet met behulp van de SCADA-client
  • Aansluiting van mobiele OPC-monitoren via LAN en internet
  • Natuurlijk, archivering en rapportgeneratie

Over het algemeen lijkt het erop dat we niets zijn vergeten. Er is een algemene beschrijving van het systeem, en nu echt over het onderwerp (ik zal de methoden voor oplossingen beschrijven in artikelen met de implementatie van elke module):

Opgetreden complicaties

1. Documentatie voor PLC

De bèta-test van de aangekondigde PLC op de MasterSCADA 4D-kern werd door de fabrikant in 2012 gemeld. Ondanks deze indrukwekkende levensduur heeft de ontwikkelaar in 2019 slechts een programmeerhandleiding van 28 (!) pagina's, waarin nauwelijks nuttige informatie te vinden is, en de screenshots in de handleiding zijn van MasterSCADA 3D, wat vrij grappig is gezien het feit dat de interface is veranderd.

Daarnaast wordt er actief ondersteuning geboden door drie adepten en de verkoopmanager in een forumthread met 20 onderwerpen.

2. Architectuur van PLC-modules

Dit is een apart onderwerp voor discussie. Kort gezegd: de PLC communiceert met modules als Modbus RTU-slave-apparaten, die eerst moeten worden geconfigureerd met behulp van een utiliteit waarbij elk afzonderlijk op de pc is aangesloten via een RS-485-omzetter.

Slimme mannen kunnen dit natuurlijk zonder omzetter via de PLC doen, door de modules in serie aan te sluiten in het netwerk en de benodigde registers te schrijven, maar dit komt met ervaring en een enorme hoeveelheid pijn.

Voor een ontwikkelaar die voor het eerst met een dergelijke architectuur te maken krijgt, is het helemaal niet gebruiksvriendelijk.
Bovendien hebben alle analoge modules de neiging om om onbekende redenen uit te vallen, waardoor het hele RS-485-netwerk in Terra Incognita verdwijnt, maar hierover wil ik ook apart vertellen; het is natuurlijk een hele saga. Dit probleem bestaat trouwens al zo'n 10 jaar, en de fabrikant maakt er grappen over. ‘We moeten toegeven, de sjablonen zijn ons niet gelukt’, maar dit is de enige interface om met de modules te communiceren, en mensen hebben serieus hun eigen implementaties van Modbus RTU beschreven.

Ondertussen raakte de kamille-thee op... De zon ging onder.

3. IDE MasterSCADA

We zullen het niet over de grafische hulpmiddelen hebben, ik heb ze niet uitgebreid getest, maar ik kan meteen zeggen dat ik er niet blij mee was.

Laten we het hebben over de implementatie van data-uitwisseling en de talen van de IEC-norm:

De fysieke ingangen en uitgangen van de controller zijn geen globale variabelen en kunnen niet vanuit elke programmapartij worden aangesproken door een alias te schrijven, bijvoorbeeld 'DI1'. In elk programma moet dit met de hand worden versleept, daar wordt een lokale variabele gevormd die waarde overneemt of doorgeeft. Met andere woorden, de essentie van de PLC gaat in mijn visie een beetje verloren: het apparaat zou het programmeren van de logica van fysieke kanalen moeten vereenvoudigen tot het niveau ‘Als ingang DI1 werkt — schakelt uitgang DO1 in’, en zo ziet het eruit «Ingang DI1 — Variabele LI1 — Variabele LO1 — Uitgang DO1», eveneens door onwetendheid van dit principe kan de IDE een schitterende waarschuwing geven «Boolean-Boolean conversie niet mogelijk» (waarschijnlijk omdat een van hen een pointer is, maar ter illustratie van de ontwikkelaars, dat klinkt harmonieuzer).

De bibliotheken van de ST, FBD, SFC talen zijn vrij uitgebreid en er is keuze voor gebruiksgemak bij programmeren, maar deze componenten zijn geen functies, maar klassen, waarin methoden zijn ingebed, en bovendien ontbreekt voor het merendeel de documentatie met beschrijvingen van de functionaliteit en datatypes. Mijn vasthoudendheid leidde me naar de kernbibliotheken van CodeSys, waar al deze functies vandaan komen, en hun documentatie hielp.

4. Uitwisseling met het paneel SP307

Een vrij interessante activiteit voor degenen die een paar dagen nergens anders naartoe willen.

Standaard GUI (HMI of SCADA) testen voor mij is het uitvoeren van 6 tests:

  1. Lezen van een discreet signaal
  2. Schrijven van een discreet signaal
  3. Lezen van een geheel getal
  4. Schrijven van een geheel getal
  5. Lezen van een reëel getal
  6. Schrijven van een reëel getal

Bijgevolg teken ik 6 componenten-primitieven op het scherm en controleer ik ze een voor een
De uitwisseling is volledig hetzelfde als met de modules, maar vanaf een aparte PLC poort RS-232/485, en lijkt, althans, stabieler. Aangezien het een HMI-slave is, schreef ik naar hem bij wijzigingen, en las ik met polling om de 500 ms, zodat ik geen actie van de operator zou missen.

De eerste 4 punten waren uitstekend uitgevoerd, maar 5 en 6 veroorzaakten problemen.

We sturen gegevens van het type Single Float, op het scherm tonen we ze en zien dat de gegevens niet kloppen, hoewel alle instellingen voor de output (Float, grootte 1 register, en andere) correct zijn ingesteld. Het zou onwaar zijn om te zeggen dat het precedent niet wordt beschreven in de documentatie, maar probeer maar eens te vinden waar dat is, het is vanuit dat perspectief grappig.

Na een hysterische doorloop van alle instellingen met betrekking tot de gegevens zelf en hun verzending, schrijven we naar de technische ondersteuning, het antwoord duurt gemiddeld 5-6 kalenderdagen, we werken volgens het standaard script van de technische ondersteuning «Controleer of de stroom aan staat — controleer de softwareversie — wacht alstublieft nog een week - Laten we zelf kijken».

Trouwens, het werd opgelost door één vinkje te zetten op een absoluut ongepaste plek met een absoluut ongepaste beschrijving.

In de functionaliteit van het scherm is de invoer van een analoog signaal van het type 'Slider' niet inbegrepen, je kunt alleen cijfers in het invoerveld typen. Dat is gewoon fantastisch, of we drukken op de knoppen «±» en de script zelfstandig, of we voeren een cijfer in met het toetsenbord, laten we vergeten over zachte bediening van een bepaalde aandrijving.

Ik zal het artikel niet te veel overladen, daarom zal ik de problemen met het hoogste niveau in deel 2 beschrijven.

Samenvattend, wil ik opmerken dat ik voldoende vrijheid en tijd had om deze problemen op te lossen, die op het eerste gezicht grappig lijken, maar veel pijn veroorzaken voor de getroffen persoon. Bij strakke deadlines is het kritisch om met zulke problemen te maken te krijgen.

P.S.: Alle stellingen die hier worden gepresenteerd, zijn subjectief en zijn slechts een poging om onvoorbereiden te waarschuwen, en niet om fabrikanten te discrimineren; ik verzoek u om dit artikel vanuit dit perspectief te beschouwen.

Het tweede deel is hier al: klik

Bron: habr.com

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers 🔥 Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster