EINDWERK: Ontwerp en realisatie van een testsysteem voor 5- en 6-assen Spierings besturingcabines Studiegebied Industriële Wetenschappen en Technologie Opleiding Elektromechanica Optie Automatisering Academiejaar 2005-2006
Matthias Vermeulen
1
VOORWOORD Nadat ik mijn diploma Bachelor ICT behaald had, startte ik het brugprogramma Industrieel Ingenieur Elektromechanica optie Automatisering aan de Hoge School West-Vlaanderen, departement PIH te Kortrijk. In het laatste jaar kreeg ik de kans om de verworven kennis toe te passen in een eindwerk. Dit eindwerk is een belangrijke factor voor het behalen van het diploma Industrieel Ingenieur Elektromechanica optie Automatisering.
Om het eindwerk tot in de puntjes te voltooien is niet alleen een grote portie inzet vereist, maar ook de nodige hulp van anderen. Het lijkt me dan ook gepast om nu een dankwoord te richten tot hen.
In de eerste plaats wil ik mijn ouders danken die mij de kans gegeven hebben om deze studie te voltooien en voor hun steun tijdens de afgelopen jaren.
Verder draag ik een dankwoord op aan de firma Spierings voor de leerrijke rondleiding die ik daar heb mogen volgen. Dit was een belangrijke ervaring om een goed zicht te krijgen op de werking van het bedrijf.
In het bijzonder richt ik mij tot mijn externe promotor Dirk Gheysen en interne promotor Dieter Vandenhoeke die mij tijdens de vervaardiging van het eindwerk begeleid hebben. Daarnaast waren ook Jos Verhoeven, Denis Vancoillie, Geert Del’haye, Stefaan Dewilde, Henk Capoen en Hubert Cokelaere steeds bereid om tijd vrij te maken en bij te staan met raad en daad. Ik wil hen dan ook danken voor de ondersteuning die ze me gegeven hebben.
Tot slot wil ik de docenten en de collega-studenten bedanken voor de aangename sfeer tijdens de afgelopen jaren.
Doorheen deze opleiding ben ik niet alleen als toekomstig Ingenieur Elektromechanica maar ook als mens gegroeid en een stap dichter gekomen bij de voltooiing van mijn opleiding. Dit eindwerk speelde hierin een belangrijke rol. Het heeft me een beeld gegeven van wat de toekomst me zou kunnen brengen.
2
INHOUDSOPGAVE
1 Inleiding .........................................................................................................................1 1.1 Voorstelling van het bedrijf................................................................................1 1.2 Doelstelling ........................................................................................................2 1.3 Werkwijze ..........................................................................................................3 2 Keuze van het testsysteem..............................................................................................4 2.1 Testsysteem met elektronica ..............................................................................4 2.2 Testsysteem met Phoenix Contact modules .......................................................5 2.3 Testsysteem met Siemens modules ....................................................................6 2.4 Criteria bij de keuze van het testsysteem ...........................................................8 3 Opbouw van de hardware...............................................................................................9 3.1 Voeding ..............................................................................................................9 3.2 Volledig schema .................................................................................................9 3.3 Frequentiesturing..............................................................................................10 4 Opbouw van de software..............................................................................................14 4.1 Visual Basic......................................................................................................14 4.1.1 Wat is Visual Basic ..............................................................................14 4.2 OPC-technologie ..............................................................................................14 4.2.1 Inleiding ...............................................................................................14 4.2.2 Historiek van OPC ...............................................................................15 4.3 OPC Data Acces...............................................................................................17 4.3.1 OPC Server specificaties......................................................................17 4.3.2 OPC Server interfaces ..........................................................................18 4.3.2.1 Link naar de Wrapper vanuit VB .............................................20 4.3.3 OPC Server Object Model....................................................................21 4.4 Basis voor een OPC Client in VB ....................................................................22 4.4.1 Opzetten van de boomstructuur............................................................22 4.4.2.1 Synchrone communicatie .........................................................24 4.4.2.2 Asynchrone communicatie.......................................................26 4.4.2.3 Gebeurtenis gestuurd................................................................27 3
4.5 OPC Servers en test Clients .............................................................................28 5 Werking programma ....................................................................................................29 5.1 Hoofdscherm ....................................................................................................29 5.2 Testen van de voeding......................................................................................31 5.3 Testen doorverbindingen..................................................................................32 5.4 Test lampen dashboard.....................................................................................33 5.5 Test schakelaars dashboard ..............................................................................34 5.6 Testen van de verlichting .................................................................................35 5.7 Test varia ..........................................................................................................36 5.8 Testen van de stuurschakelaar..........................................................................37 5.9 Foutanalyse.......................................................................................................37 5.10 Zoeken op draadnummer................................................................................39 5.11 Afdrukken van een testrapport .......................................................................39 6 Besluit...........................................................................................................................41 Bijlage 1: OPC Server en test Client Siemens ..................................................................1 1 OPC.SimaticNET 2005 .........................................................................................1 2 OPC Scout ...........................................................................................................14
4
1 INLEIDING 1.1 Voorstelling van het bedrijf Ypcar is een metaalconstructiebedrijf gelegen te Ieper, gespecialiseerd in het ontwerpen en produceren van stuurcabines voor bedrijfsvoertuigen. Deze bedrijfsvoertuigen worden volledig afgewerkt door Spierings kranen in Oss (Zuid-Nederland), zoals te zien in fig 1.1.
Fig. 1.1: AT6 Spierings kraan
De mechanische opbouw van de cabines (koetswerk, ramen, …) gebeurt in Ypcar en de bekabeling van de sturingen wordt uitgegeven aan Westlandia, een beschutte werkplaats te Ieper (zie fig. 1.2). Wanneer de bekabeling volledig is wordt deze samen met het dashboard ingebouwd in Ypcar.
Fig. 1.2: Bekabeling + dashboardplaat AT6 Spieringskraan
5
1.2 Doelstelling Het maken van de kabelboom en het aansluiten ervan, wat in Westlandia gebeurt, kan door gebrek aan een testsysteem niet grondig getest worden. Men kan daardoor geen zekerheid bieden dat de afgeleverde sturing wel volledig werkt. De opdracht bestaat erin om verschillende mogelijkheden van testsystemen uit te zoeken om dan uit deze mogelijkheden het meest efficiënte systeem te kiezen en te ontwerpen. Het testsysteem moet flexibel en hanteerbaar zijn voor mindervaliden. Daardoor zal er een handleiding nodig zijn met bijhorende illustraties. Indien er een fout ontdekt wordt, kan men vrij vlug te weten komen welke componenten er stuk zijn of waar er eventueel aanpassingen dienen te gebeuren. Wanneer er op elektrisch vlak wijzigingen gebeuren aan de kabelboom, moeten deze veranderingen vrij vlug in het testsysteem kunnen overgedragen worden.
1.3 Werkwijze Het ontwerpen en realiseren van het testsysteem gebeurt in 3 grote fasen. Dit boek is dan ook volgens deze fasen opgebouwd. Eerst en vooral wordt er een grondige studie gedaan van de kabelboom en de volledige sturing, zodat op deze manier een overzicht kan gemaakt worden van wat het testsysteem al dan niet moet (aan)kunnen. Wanneer dit overzicht gemaakt is, wordt er op zoek gegaan naar verschillende manieren die hieraan voldoen. Daarna wordt er een keuze gemaakt welk systeem het best voldoet aan de gestelde eisen. Een volgende fase betreft het opbouwen van de testkast, samen met de benodigde bekabeling. In deze fase moet er rekening gehouden worden dat alle aansluitingen naar buiten toe, makkelijk bereikbaar en hanteerbaar zijn voor de persoon die de testen uitvoert. In de laatste fase moet de software geschreven worden zodat deze gebruiksvriendelijk en efficiënt is. Het moet mogelijk zijn om aanpassingen in de hardware van het systeem, snel door te voeren naar de software.
6
2 KEUZE VAN HET TESTSYSTEEM Het testsysteem moet met volgende zaken overweg kunnen: -
testen van doorverbindingen
-
testen van schakelaars
-
testen van lampen
-
testen volgens bepaalde procedures
-
testen van analoge componenten
Voor de eerste 3 soorten testen moet het systeem een spanning kunnen plaatsen op een bepaald punt en/of een spanning kunnen meten op een bepaald punt. Bij de proceduretest is er een zekere schakelvolgorde van bepaalde signalen nodig om een bepaald resultaat te bekomen. Voor de analoge componenten is er een signaal nodig dat kan variëren tussen een minimum- en een maximumspanning.
2.1 Testsysteem met elektronica Een eerste mogelijkheid is gebruik maken van eenvoudige elektronicacomponenten. Hierbij behoren schakelaars, LED’s, relais, potentiometers, … Met behulp van schakelaars kunnen spanningen worden doorgeschakeld of onderbroken die dan uiteindelijk al dan niet een lamp doen oplichten. Omgekeerd kunnen LED’s gebruikt worden om te zien of een schakelaar al dan niet werkt. Om analoge signalen te creëren, worden potentiometers gebruikt. Het voordeel van dit systeem is dat het een relatief goedkoop systeem betreft. Ook een uitbreiding kan snel gebeuren. Daarentegen zijn de componenten van het systeem minder betrouwbaar na een bepaalde tijd. Lampen kunnen stukgaan, relais kunnen blijven kleven, potentiometers worden minder nauwkeurig, … . Ook een belangrijk detail is dat de testpersoon veel stappen zelf moet uitvoeren en dat menselijke fouten op verschillende vlakken kunnen voorkomen, vb. stappen overslaan, niet aandachtig testen doordat het testen een ‘gewoonte’ wordt, … .
2.2 Testsysteem met Phoenix Contact modules
7
Indien er gewerkt wordt met Phoenix Contact, valt de keuze op de INLINE-reeks. De opbouw gebeurt op een DIN-Rail, en het aantal modules die geplaatst kunnen worden is quasi onbeperkt. Iedere module werkt op een spanning van 24V.
Om spanning op een bepaald punt te meten of om al dan niet spanning op een punt te plaatsen wordt er gebruik gemaakt van digitale in- en output modules, zoals op fig. 2.1 en 2.2 te zien. Deze zijn beschikbaar met 2, 4, 8 of 16 in- of uitgangen per module. De spanning die geplaatst of gemeten wordt, komt overeen met de voedingsspanning (24V). De maximale uitgangsstroom per output bedraagt 0,5A.
Fig. 2.1: Module met 16 digitale ingangen
Fig. 2.2: Module met 16 digitale uitgangen
Om de verbinding tussen de PC en de modules te maken is er een buskoppelaar nodig, zie fig. 2.3. De hardwarematige verbinding gebeurt via een netwerkkabel, softwarematig via het TCP/IP protocol. Om alle in- en uitgangen aan te spreken, wordt gebruik gemaakt van OPC technologie (dit wordt verder besproken).
8
Fig. 2.3: Buskoppelaar voor ethernet
2.3 Testsysteem met Siemens modules Bij Siemens bestaan gelijkaardige in- en output modules als bij Phoenix Contact. Hier bestaan modules van 8 of 16 in- en uitgangen, te zien in figuur 2.4. Gecombineerde modules bestaan ook.
Fig. 2.4: Module met 16 digitale ingangen (links), 16 digitale uitgangen (rechts)
Deze modules worden op een S7-rack gemonteerd. Dit is een rack die Siemens zelf ontworpen heeft. Per rack kunnen maximaal 8 in- en of uitgangmodules aanwezig zijn. Indien het aantal groter is, moet gewerkt worden met IM360 en IM361 modules. De IM361 fungeert als Master (figuur 2.5) en moet op de eerste rack aangebracht worden, op de overige racks worden IM360 modules (figuur 2.6) aangebracht, die als Slaves fungeren. Onderling worden deze modules verbonden met een IM-kabel van Siemens.
Fig. 2.5: IM361 module
9
Fig. 2.6: IM360 module
Een PLC, hier de 313C zoals op figuur 2.7, zorgt voor de besturing van alle aangesloten modules. Deze PLC bezit zelf een aantal in- en uitgangen. Met een MPI-kaart in een PC kan verbinding worden gelegd naar de PC via een MPI-kabel. Op deze PC kan dan opnieuw via OPC gewerkt worden zoals bij Phoenix Contact.
Fig. 2.7: CPU 313C (met I/O)
2.4 Criteria bij de keuze van het testsysteem In tabel 2.1 worden de voor- en nadelen van de verschillende mogelijke systemen samengevat:
Kostprijs Betrouwbaarheid Kans op menselijke fouten Snel aanpasbaar Ervaring bij Spierings
Tabel 2.1: Voor- en nadelen mogelijke systemen Elektronische componenten Phoenix Contact ++ -++ -+ ++ ++ ++ --
Siemens -++ + ++ ++
Daar de betrouwbaarheid zeer hoog moet zijn en de kans op menselijke fouten zeer laag, wordt het systeem met elektronische componenten vrijwel direct uitgesloten. De overige twee systemen gaan gelijk tegen elkaar op. Spierings heeft echter ervaring met Siemens daar dit ook een hoofdleverancier is van het bedrijf. Daardoor wordt de duurdere kostprijs ook niet 10
meer in rekening gebracht. De keuze is dus gemaakt: het wordt een testsysteem met Siemens componenten.
3 OPBOUW VAN HARDWARE 3.1 Voeding De voeding voor de PLC en de IM modules is afkomstig van een Siemens 24V voeding die 2A kan leveren. De voeding die gebruikt wordt voor alle in- en outputmodules wordt geleverd door een aparte transformator van 24V/16A. De opsplitsing werd gemaakt omdat er geen rimpel op de spanning van de PLC zou terechtkomen.
3.2 Volledig schema Zoals hierboven al vermeld, kunnen er maximaal acht in- en uitgangsmodules op één rack gemonteerd worden. Om de verschillende racks met elkaar te koppelen zijn er één IM360 module en twee IM361 modules nodig. Per rack dienen alle aanwezige modules toegevoegd te worden met de juiste module naam, bestelnummer en eventueel de versie van de module. Tevens kan er gezien worden welke adressen er per module worden toegewezen. Deze adressen zijn van belang om de in- en uitgangen aan te spreken vanuit de sofware.
11
Fig 3.1: Modules Rack 0
Fig 3.2: Modules Rack 1
Fig 3.3: Modules Rack 2
De volledige hardwareopbouw wordt weergegeven in fig 3.4.
Fig 3.4: Volledig schema van de hardware 12
3.3 Frequentiesturing De toerenteller werkt niet via een analoge spanning zoals de tank- en temperatuurmeter. Deze krijgt van de DAF-motor een blokgolfspanning met een spanningsniveau tussen 0 en +24V met variabele frequentie. Hoe hoger de frequentie, hoe meer de meter uitslaat. Om dit te simuleren is er een schakeling ontwikkeld met een 555-timer IC. Met vier relais kan er gekozen worden tussen vier frequenties, wat hier voldoende is. De relais worden gestuurd vanuit de PLC.
De schakeling wordt met een 24V spanning gevoed, die gestabiliseerd wordt door een 7824 IC. Op de uitgang staat een condensator die ervoor zorgt dat de rimpel geminimaliseerd wordt. Aan klem 1 wordt de +24V van de transformator geschakeld, aan klem 2 de massa. Het schema ziet er als volgt uit:
De 4 relais worden beveiligd met 4 vrijloopdiodes over het relais. Aan klem 8 tot en met 11 worden 4 uitgangen van een outputmodule geschakeld:
13
De 4 schakelcontacten worden elk 2 maal gebruikt om het signaal met gewenste frequentie door te schakelen naar klem 4, 5, 6 of 7. Met de potentiometers is het mogelijk om de 4 frequenties bij te regelen:
De printplaat wordt ingebouwd in een module die op een DIN-rail kan geklikt worden:
14
Het voordeel van dit systeem t.o.v. een frequentiesturing rechtstreeks vanuit de PLC, is dat wanneer er in de toekomst elementen in de sturing van de cabine bijkomen (die ook met een frequentie werken), ook deze eenvoudig aan de module kunnen worden geschakeld zonder dat er bijkomend programmeerwerk nodig is. De frequenties kunnen daarnaast heel snel bijgeregeld worden met de potentiometers, opnieuw zonder aanpassing van het programma.
Uitgang 4 heeft een frequentie van 200Hz, uitgang 5: 520Hz, uitgang 6: 5kHz en uitgang 7: 10kHz. Deze laatste frequenties kunnen zelfs niet geschakeld worden met een standaard outputmodule.
15
4 OPBOUW VAN SOFTWARE 4.1 Visual Basic 4.1.1
Wat is Visual Basic?
Visual Basic (VB) is een programmeertaal en een ontwikkelomgeving uitgegeven door Microsoft. VB maakt het mogelijk om programma’s te schrijven die draaien onder Windows. Het woord “Visual” slaat op het maken van de grafische gebruikers interface (Graphical User Interface of kortweg GUI). In plaats van met talloze regels code te omschrijven waar een lijn op het scherm komt te staan, plaatst de VB-ontwikkelaar met de muis een lijn op de juiste plek. Het is te vergelijken met het maken van een afbeelding in Paint. Het woord “Basic” refereert aan de programmeertaal BASIC (Beginners All-Purpose Symbolic Instruction Code). Er is geen andere taal in de geschiedenis van het programmeren zoveel gebuikt als BASIC. Vanaf 1995 is het mogelijk om Objectgericht te programmeren met VB. Ook ActiveX controls maken is één van de mogelijkheden.
4.2 OPC-technologie 4.2.1
Inleiding
Doordat Windows steeds vaker wordt toegepast als operating systeem, worden meer en meer computersystemen gebruikt binnen de industrie. De steeds meer opkomende object technologie speelde hierbij een belangrijke rol. De industrie had dan ook behoefte aan een standaard voor de integratie van alle lagen tot één informatiesysteem.
In 1995 hebben een aantal grote bedrijven met Microsoft samengewerkt om te streven naar een open standaard voor de industrie. Eerst werd de “OPC Task Force” opgezet, die al snel groeide tot de nu nog steeds bestaande “OPC Foundation”.
16
4.2.2
Historiek van OPC
Voor de komst van OPC werkte de verticale communicatie op basis van custom drivers die meestal voorzien werden door de hardware leverancier. In sommige gevallen moest echter zelf een driver ontwikkeld worden voor de specifieke applicatie.
De grootste nadelen van de custom drivers zijn: •
Veel dubbel development
•
Conflicten tussen verschillende drivers
•
Aanpassingen indien nieuwe hardware op de markt
•
Verscheidene toegangsconflicten
Al deze nadelen worden weggewerkt met OPC of Ole for Process Control. OPC zorgt ervoor dat componenten van verschillende leveranciers gekoppeld kunnen worden. De specifieke protocollen van elk product worden omgezet en via een standaard interface, die gebaseerd is
17
op de COM-technologie van Microsoft, toegankelijk gemaakt. Het geheel werkt volgens het client-server principe, dat ook veel gebruikt wordt door Windows.
Het oorspronkelijke beeld wordt nu vervangen door het volgende:
De communicatiepaden worden vervangen door een soort bussysteem waar alle datatransport over gebeurt: de OPC-standaard. Iedere hardware leverancier dient één driver te leveren, de OPC Server. Deze communiceert volgens een product afhankelijk protocol met de device en biedt de data aan via een standaard interface. Om vanuit een applicatie (OPC Client) data aan te spreken, moet enkel nog volgens die standaard interface communicatie voorzien worden met de OPC Server.
Binnen de OPC-technologie worden twee belangrijke blokken onderscheiden:
1. De OPC Server Deze zet de communicatie op met de device om aanvragen van de OPC Client te kunnen uitvoeren (lezen en schrijven). Deze communicatie gebeurt cyclisch.
2. De OPC Client
18
Dit is een software applicatie die via de OPC-interface communiceert met de OPC Server. De OPC Client legt een verbinding met de OPC Server, en kan daarna lees- en schrijfopdrachten uitvoeren.
4.3 OPC Data Access 4.3.1
OPC Server specificaties
Het belangrijkste element binnen de OPC standaard is de driver met transparante interface, de OPC Server. Deze kan als volgt schematisch worden weergegeven:
De specificaties i.v.m. de communicatie tussen OPC Server en een willekeurig device zijn vastgelegd in een C++ module. Deze module wordt ingekapseld in een COM-component, wat er voor zorgt dat alle gegevens aanspreekbaar zijn vanuit om het even welke taal (hier Visual Basic 6.0), via een Component Object Model.
Indien de OPC Server correct ingesteld is, bezit hij een address space die voor alle mogelijke datapunten (hier merkers, ingangen, uitgangen, …) een verwijzing bevat. Er wordt geen data opgehaald uit de device zolang er geen enkele OPC Client gegevens opvraagt, de OPC Server gedraagt zich als passief element.
19
Wanneer een OPC Client gegevens wenst op te halen uit een device, worden de nodige elementen uit de address space toegevoegd aan de cache van de OPC Server. Al deze elementen worden cyclisch geüpdatet volgens een ingestelde tijd. In de figuur verwijst de witte schijf naar de cache en de pijlen tonen het cyclisch update aan.
4.3.2
OPC Server interfaces
Elke OPC Server dient minstens één interface te ondersteunen: de Custom interface. Daarnaast kan ook de optionele Automation interface ondersteund worden. Deze is echter minder performant en het gebruik ervan wordt vermeden indien mogelijk. Beide interfaces verzorgen de communicatie tussen de OPC Server en de OPC Client, maar verschillen van elkaar door de manier waarop de diensten van de interface intern opgeroepen worden. Indien Visual Basic wordt toegepast, dient de Automation interface aangewend te worden.
20
Wanneer met een OPC Client vanuit Visual Basic toegang verkregen moet worden tot een OPC Server die geen Automation interface voorziet, kan een wrapper de oplossing bieden. Dit is een DLL die aangeboden wordt door de OPC Foundation en als tolk werkt tussen de Automation en de Custom interface.
21
4.3.2.1 Link naar de Wrapper vanuit VB Om in een Visual Basic project gebruik te maken van de OPC technologie, dient een link voorzien te worden naar de betreffende DLL die als Wrapper functioneert.
Er wordt een lijst getoond met alle bestanden waarnaar een reference kan gelegd worden. Volgende DLL is nodig: OPC DA Automation Wrapper 2.02. Dit is een Wrapper die door de OPC Foundation wordt geleverd.
22
4.3.3
OPC Server Object Model
Voor iedere op COM gebaseerde toepassing is er een Object Model dat de structuur en toegankelijkheid eenduidig vastlegt. Voor de OPC-interface ziet dit model er als volgt uit:
23
Object
Doel
OPC Server
Object dat algemene informatie over de Server bevat.
OPC Groups
Collectie die voor het beheer zorgt van alle OPC Group objecten. Hier kunnen nieuwe OPC Group objecten worden aangemaakt en kunnen default instellingen gebeuren voor die verschillende OPC Group objecten.
OPC Group
Dit object is een verzamel object dat de gebruiker in staat stelt om zijn data logisch te structureren.
OPC Items
Deze collectie heeft ongeveer dezelfde taak als de OPC Groups collectie. Ze staat in voor het aanmaken en beheren van de onderliggende OPC Item objecten.
OPC Item
Deze objecten stellen de rechtstreekse link voor naar een procesvariabele. D.m.v. deze objecten kan er zowel gelezen als geschreven worden.
4.4 Basis voor een OPC Client in VB 4.4.1
Opzetten van de boomstructuur
Om het programma op te stellen moet de boomstructuur van het Server Object Model gevolgd worden. In het voorbeeld worden alle nodige stappen ondernomen om 1 OPC variabele vanuit VB te kunnen aanspreken.
Eerst en vooral is er een declaratie nodig van alle objecten die nodig zijn. In dit voorbeeld zijn slechts 1 OPC Server, 1 OPC Group en 1 OPC Item nodig.
Option Explicit Public objServerSiemens As OPCServer Private objGroepInput As OPCGroup Private IM01 As OPCItem 'I4.2 Private ServerhandleInput(1 To 1) As Long Dim Errors() As Long
24
Bij het laden van het scherm worden alle stappen doorlopen om de boomstructuur op te zetten. Eerst connecteren op de Siemens OPC Server door de naam van de communicatiebus mee te geven, alsook het IP-adres van de PC waar de OPC Server op draait. Vervolgens wordt een nieuwe Group aangemaakt, hier met de naam “VoedingInput”. Als dit gebeurt is, kunnen de verschillende variabelen aangesproken worden die onder deze groep thuishoren. Hiervoor moet het adres van de variabele, meegeven worden. Er moet echter ook nog een codegetal van het OPC bewaard worden. Dit is belangrijk om later het OPC Item terug te kunnen verwijderen.
Private Sub Form_Load() Set objServerSiemens = New OPCServer Call objServerSiemens.Connect("OPC.SimaticNet", "192.168.0.1") Set objGroepInput = objServerSiemens.OPCGroups.Add("VoedingInput") Set IM01 = objGroepInput.OPCItems.AddItem("S7:[S7 connection_1]IX4.2", 1) ServerhandleInput(1) = IM01.Serverhandle End Sub
Bij het verlaten van het programma moeten alle verwijzingen naar de verschillende Items, Groups en de Server terug verwijderd worden. Dit moet echter in omgekeerde volgorde gebeuren als het opzetten ervan. Bij het verwijderen van de Items is het codegetal van belang dat werd bewaard bij het aanmaken van de Items. Als alle Items van 1 Group verwijderd zijn, kan de Group verwijderd worden. Analoog kan de Server pas verwijderd worden als alle Groups van die Server verwijderd zijn,
Private Sub Form_Unload(Cancel As Integer) Call objGroepInput.OPCItems.Remove(1, ServerhandleInput(), Errors()) Set IM01 = Nothing Call objServerSiemens.OPCGroups.Remove("VoedingInput") Set objGroepInput = Nothing Call objServerSiemens.Disconnect Set objServerSiemens = Nothing End Sub 25
Schematisch kan het voorgaande als volgt worden samengevat:
4.4.2
OPC Client communicatie mogelijkheden
Om vanuit de OPC Client te communiceren met de Server, zijn er 3 mogelijkheden. Deze zijn de synchrone en asynchrone communicatie en gebeurtenis gestuurd.
4.4.2.1 Synchrone communicatie Dit is de eenvoudigste vorm van de drie. Bij dit type van communicatie worden alle taken mooi sequentieel afgehandeld.
26
Wanneer er een synchrone leesactie wordt ondernomen, stopt het lopen van het programma, en wordt er gewacht op reactie van de OPC Server. De data wordt geüpdatet, en daarna loopt het programma verder.
Bij het lezen van data kan gekozen worden om de data rechtstreeks uit de Device te lezen, of waarden uit de Cache van de OPC Server te halen. In het voorbeeld hieronder wordt 1 variabele rechtstreeks uit de Device gelezen. De waarde wordt in een tekstvak gekopieerd.
Private Sub cmdLees1Variabele_Click() Call IM01.Read(OPCDevice) txtLees.Text = IM01.Value End Sub
Wanneer meerdere waarden gelijktijdig nodig zijn, is er door de structuur van het Object Model mogelijkheid om alle nodige OPC Item objecten te verzamelen in een bepaalde OPC Group en dan deze Group in één leesactie binnen te nemen.
27
Private Sub cmdLeesVolledigeGroep_Click() Dim vWaarden() As Variant Dim Errors() As Long Call objGroepInput.SyncRead(OPCDevice, 2, ServerhandleInput(), vWaarden(), Errors()) txtLees1.Text = vWaarden(1) txtLees2.Text = vWaarden(2) End Sub
Om synchroon te schrijven volstaat het om met het Item, de gewenste waarde mee te geven.
Private Sub cmdSchrijfSynchroon_Click() Call O303.Write("True") End Sub
4.4.2.2 Asynchrone communicatie Het nadeel van synchrone communicatie wordt al snel duidelijk. Bij een synchrone opdracht wordt het programma gestopt, tot er reactie gekomen is van de OPC Server. Tijdens die periode is het programma ontoegankelijk en is het systeem eigenlijk bezet. Bij asynchrone communicatie is dit niet het geval. Wanneer er een lees- of schrijfactie uitgevoerd wordt, wacht het systeem niet op response van de OPC Server, maar wordt het programma verder uitgevoerd. Wanneer een bepaalde taak is afgehandeld, genereert de OPC Server een event, waarop dan kan ingespeeld worden om een nieuwe actie op te zetten.
28
Hoe de programmatuur in VB voor het asynchroon sturen in elkaar zit, wordt niet behandeld in dit boek, omdat dit niet relevant is voor het eindwerk.
4.4.2.3 Gebeurtenis gestuurd De laatste mogelijkheid van communicatie bestaat eruit dat er vanuit de OPC Client geen enkel initiatief meer moet genomen worden. Er kan bijvoorbeeld gezorgd worden dat de OPC Server zelf events genereert wanneer de waarde van een OPC Item uit zijn cache verandert. Hiervoor moeten alle OPC Groups en OPC Item objecten geactiveerd worden bij het aanmaken.
29
Ook deze manier wordt niet gebruikt bij het eindwerk, en bijgevolg niet besproken.
4.5 OPC Servers en test Clients Dit gedeelte wordt in de bijlagen besproken.
30
5 WERKING PROGRAMMA 5.1 Hoofdscherm Bij het opstarten van het programma wordt eerst het hoofdscherm vertoond zoals te zien in fig. 5.1. Het hoofdscherm bevat zeven testknoppen die elk een testscherm oproepen om het respectievelijke deel van de sturing te testen. Daarnaast zijn er ook nog knoppen aanwezig om eventuele fouten op te sporen, gegevens op te vragen van een bepaalde draad in de sturing en om een testrapport af te drukken.
Er is in het volledige programma gekozen voor een eenvoudige opbouw zonder onnodige functies. Dit om het testen efficiënt en snel te doen verlopen.
Fig 5.1: Hoofdscherm
31
Indien er reeds bepaalde blokken getest zijn, kan men dit in het hoofdscherm opmerken door de knoppen die in het grijs gekleurd zijn. In onderstaande figuur zijn er al vier blokken getest.
Fig 5.2: Hoofdscherm met vier geteste blokken
32
5.2 Testen van de voeding Indien er geklikt wordt op ‘Test Voeding’ in het hoofdscherm, wordt het scherm geladen om de voeding van de sturing te testen, alsook de doorgeschakelde voeding wanneer het contact aanligt. De knoppen ‘Voeding Aan’ en ‘Voeding Uit’ dienen om al dan niet spanning op de sturing te brengen. Wanneer men op ‘Test Voeding’ klikt worden alle toevoerdraden waarop in normaal bedrijf 24V moet komen getest, alsook alle massadraden. Bij iedere draad die getest wordt komt het draadnummer op het scherm alsook een melding als de test geslaagd is of niet. Bij het testen van de contactsleutel krijgt men de instructie om de contactsleutel om te schakelen, de schakelaar ‘tussenbak’ op neutraal te zetten, en op de toets Y te drukken. Wanneer er fouten blijken voor te komen worden deze allemaal onthouden in een interne buffer van het programma. Later kan men dan in de foutanalyse deze fouten terug oproepen.
Fig 5.3: Testen voeding
33
5.3 Testen doorverbindingen In het scherm ‘Testen Doorverbindingen’ kunnen alle doorverbindingen getest worden, alsook de CANbus op elektrisch niveau. Doorverbindingen zijn draden die op één fiche van de sturing vertrekken en op een ander fiche terug aankomen, zonder dat er ergens een aansluitpunt of elektronica tussenzit. De CANbus wordt hier ook volgens hetzelfde principe getest, daar de toestellen die op de CANbus werken pas bij Spierings aangesloten worden. Hier is dus een elektrische test voldoende.
Fig 5.4: Testen doorverbindingen
34
5.4 Test lampen dashboard Bij het testen van de lampen op het dashboard verschijnt er telkens een instructie van het lampnummer, samen met de kleur van de lamp. De lampen op het dashboard worden ook visueel weergegeven. Men kan dus zien welke lamp er moet oplichten in welke kleur. Dit aspect werd ingebracht doordat het systeem door mindervaliden bruikbaar moet zijn. Indien de lamp brandt, moet men op enter drukken, indien niet op spatie. Telkens wordt het draadnummer gegeven samen met de melding of de lamp wel brandde of niet.
Fig 5.5: Test lampen dashboard
5.5 Test schakelaars dashboard
35
Bij het testen van de schakelaars wordt er telkens een duidelijke instructie gegeven welke schakelaars er naar boven of naar onder dienen gedrukt te worden. Deze worden dan ook grafisch weergegeven. Telkens wordt het draadnummer gegeven met een omschrijving of de test in orde was of niet. Er wordt ook een melding gegeven indien het contact aan of af moet staan. Op figuur 5.6 kan je zien dat er twee draden niet doorverbonden waren.
Fig 5.6: Test schakelaars dashboard
5.6 Testen van de verlichting
36
Bij het testen van de verlichting worden alle aansluitingen voor de remlichten, grootlichten, stadslichten, zwaailichten, … getest. Hierbij worden telkens duidelijke instructies gegeven die de testpersoon moet uitvoeren.
Fig 5.7: Testen van de verlichting
5.7 Test varia
37
Dit gedeelte is vooral toekomstgericht. Momenteel worden slechts een drietal draden getest in dit blok. Het is de bedoeling als er later meer draden dienen getest te worden, deze in dit blok toegevoegd worden.
Fig 5.8: Test varia
5.8 Testen van de stuurschakelaar
38
In dit blok worden beide stuurschakelaars getest. Dit houdt in dat de sturing voor de ruitenwissermotor, cruise control, knipperlichten, claxon en grootlichten getest wordt.
Fig 5.9: Test stuurschakelaar
5.9 Foutanalyse Wanneer er fouten waren in de sturing, kan men naar de foutanalyse gaan door op ‘Toon Fouten’ te klikken. Men ziet dan links alle draadnummers waar er een fout aanwezig was. Bij het aanklikken van een draadnummer, krijgt men telkens de fichenaam en het pinnummer waar de draad vertrekt en eindigt. In sommige gevallen komt bij de omschrijving ook de functie van de draad. Daarnaast ziet men visueel beide fiches zodat men de fout snel kan opsporen.
39
Fig 5.10: Foutanalyse
De naam van de fiches (samen met het draadnummer) en de namen van de fotobestanden worden uit een Excel bestand gehaald zoals op fig 5.11 te zien. Het voordeel hiervan is, indien er in de toekomst fiches veranderen van vorm of draden veranderen van functie, dat men dit zeer snel kan aanpassen in het Exceldocument. De persoon die deze veranderingen invoert, hoeft dus geen kennis te hebben van programmatie in Visual Basic.
Fig 5.11: Foutanalyse Excel
40
5.10 Zoeken op draadnummer In het testsysteem is er ook een scherm voorzien om zelf een draadnummer op te zoeken, zodat men kan zien op welke fiche(s) de draad aangesloten is en eventueel de bijhorende functie van de draad verkrijgt. Dit scherm kan handig zijn tijdens het assembleren van de bekabeling. De gegevens worden uit hetzelfde Exceldocument gehaald als bij de foutanalyse.
Fig 5.12: Zoeken op draadnummer
5.11 Afdrukken van een testrapport Met de knop ‘Druk rapport af’ wordt het testrapportscherm verkregen. Hier worden de naam van de testpersoon, het type kraan en het kraannummer gevraagd. De datum en tijd wordt automatisch toegevoegd. Het is alleen mogelijk om een testrapport af te drukken als alles getest is en er geen fouten meer aanwezig zijn in de sturing. Indien dit wel het geval is, komt er een melding op het scherm zoals op fig 5.14.
41
Fig 5.13: Afdrukken van een testrapport
Fig 5.14: Foutmelding
42
6 BESLUIT Als besluit kan er nog eens teruggekeken worden op de vooraf gestelde eisen. Het testsysteem is zeer flexibel en handig in gebruik. Het is bruikbaar voor mindervaliden door de gerichte illustraties en instructies die op het gepaste moment naar voren komen.
De test gebeurd vrij snel. Om de fiches aan te sluiten, een volledige test uit te voeren en de fiches terug los te koppelen, is er slechts een tijdspanne nodig van ongeveer twintig minuten. Na enkele testen uit te voeren, bleek dat een fout meestal binnen de vijf minuten kan opgespoord en hersteld worden.
Ook aanpassingen in de sturing kunnen vlug doorgevoerd worden in het programma. Voor eenvoudige aanpassingen is er zelfs geen programmeerkennis nodig. Deze aanpassingen kunnen in het Exceldocument gebeuren.
De eis om een rapport af te drukken is ook voldaan. Alleen als alles getest is en de sturing geen fouten meer bevat, kan een rapport afgedrukt worden.
Het testsysteem is zeer betrouwbaar doordat alle mogelijke menselijke fouten uitgesloten zijn. Er dienen dan ook zeer weinig handelingen uitgevoerd worden door de testpersoon. Bij de uit te voeren handelingen is een duidelijke omschrijving en een visuele voorstelling aanwezig.
Het testsysteem wordt eind juni 2006 in gebruik genomen door Westlandia. Het was voor mij een leerrijke ervaring op technisch vlak en het gaf mij een kijk op hoe verschillende bedrijven samenwerken om tot een afgewerkt product te komen. Daarbij moet er goed samengewerkt worden om tot een éénduidige oplossing te komen voor een bepaald probleem. Het eindwerk was hiervan een mooi voorbeeld.
43
BIJLAGE 1: OPC SERVER EN TEST CLIENT SIEMENS 1. OPC.SimaticNET 2005 Bij de OPC Server van Siemens, wordt uitgegaan van een virtueel bussysteem binnen de PC, waarop alle mogelijke dataleveranciers en Simatic applicaties gekoppeld kunnen worden. Op deze virtuele bus krijgen alle deelnemers een adres (= index) toegewezen waardoor ze als uniek beschouwd kunnen worden. Het hart van die virtuele bus is de station manager, die zich op het vaste adres 125 bevindt.
Om de communicatie via zo’n virtueel bussysteem op te zetten, dienen een drietal stappen doorlopen te worden. Deze stappen zijn in grote lijnen dezelfde als bij het in gebruik nemen van een PLC en worden één voor één besproken.
44
De eerste stap voor het instellen van de OPC Server van Simatic, is het samenstellen van de virtuele bus.
Op de eerste insteekplaats komt de OPC Server.
45
De volgende insteekplaatsen dienen voor de dataleveranciers van die OPC Server.
Bij die kaarten horen ook fysieke eigenschappen (MPI = PROFIBUS bij 187.5 Kbps)
46
Eenmaal alle nodige elementen ingesteld zijn, dient de virtuele bus nog een duidelijke naam te krijgen.
47
De tweede stap is in STEP7 een hardwareconfiguratie voorzien voor de virtuele bus. Aangezien bij het downloaden de data in de station manager (adres 125) van de virtuele bus zal moeten komen, dienen de volgende wijzigingen doorgevoerd te worden.
In het bestaande PLC project is nood aan een passend station.
48
Dit station krijgt een identieke naam als de virtuele bus.
Wanneer alles correct verloopt verschijnt een gele pijl op het PC symbooltje. Is dit het geval, dan kan worden verder gegaan met de hardwareconfiguratie.
49
Met de virtuele bus in het achterhoofd, komen op de juiste plaatsen, de juiste modules vanuit de catalogus. Daarna krijgen deze één voor één de nodige instellingen.
50
Aangezien het de bedoeling is om met de CP kaart via MPI te werken, wordt opnieuw gekozen voor PROFIBUS met aangepaste instellingen.
Daarna kan alles worden bewaard en gedownload naar de station manager van de virtuele bus.
51
Vanaf nu is de status van de busdeelnemers van de virtuele bus in orde.
52
De derde en laatste stap is binnen STEP7 de nodige softwarevoorzieningen aanbrengen. Bij een PLC project betekent dit het programma, bij een virtuele bus zijn dit connecties.
Het leggen van connecties gebeurt vanuit de NetPro omgeving.
53
In NetPro wordt onmiddellijk duidelijk dat het in STEP7 eigenlijk onmogelijk is om vanuit de CP kaart een verbinding te leggen naar de CPU van de PLC. Door de instellingen werd er echter voor gezorgd dat het PROFIBUS netwerk dezelfde eigenschappen bezit als het MPI netwerk. Wanneer nu ook fysisch een verbinding tussen beiden aanwezig is, kunnen deze via een ongedefinieerde verbinding toch communiceren.
De verbinding is volgens het S7 protocol.
54
In het venster dat verschijnt komt bovenaan een naam voor de connectie. Links wordt de busdeelnemer geselecteerd die dient als communicatiepartner voor de OPC Server en rechts wordt bepaald waar deze communicatiekaart z’n device kan terugvinden.
In het onderstaande venster komen de specifieke instellingen voor een PLC. In de bovenste twee invulvakjes staan 0 en 2 respectievelijk voor de RACK en het SLOT van de CPU.
55
In NetPro wordt de connectie aan de lijst toegevoegd en kan alles worden gedownload.
In de virtuele bus is er nu bij de OPC Server ook nog een connectie symbool verschenen.
56
1. OPC Scout
De eerste stap is connecteren op de gewenste OPC Server. Dit kan zowel een OPC Server zijn die op de lokale PC aanwezig is (via selectie) als een OPC Server die zich ergens op het netwerk bevindt (via het adres en de correcte naam).
57
In het Object Model wordt deze stap gevolgd door het creëren van een OPC Group.
58
De laatste stap uit het Object Model is het aanmaken van een OPC Item.
Via het venster dat verschijnt kan men browsen in de address space (linker venster) en een bepaald datapunt aanspreken.
59
Bij bevestigen wordt het bepaalde datapunt als OPC Item toegevoegd aan de cache (midden venster). Via de voorziene pijltjes kan dan het gewenste OPC Item uit de cache doorgestuurd worden naar de werkomgeving.
Onmiddellijk kan de waarde van het OPC Item worden afgelezen. Door te klikken in de “Value” kolom, kunnen de waarden ook overschreven worden.
60
61