Momenteel is dit een S7 PLC voor het PLC netwerk

W
Shared by: pEKxTDd
Categories
Tags
-
Stats
views:
92
posted:
6/23/2012
language:
Dutch
pages:
90
Document Sample
scope of work template
							VOORWOORD
Als afsluiting van mijn opleiding graduaat elektronica kreeg ik de mogelijkheid om een
project uit te werken in het bedrijfsleven.

Voor ik mijn eindwerk ga voorstellen, zou ik eerst nog een aantal mensen willen bedanken.

Allereerst dank ik de firma Glacio N.V. omdat het bedrijf mij de kans heeft gegeven om mijn
technische kennis in praktijk om te zetten en bij te schaven. Mijn dank gaat hier dan ook uit
naar Dhr. Janssen P., Dhr Embrechts R. en Dhr Braspenning D. Zij hebben mij begeleid om
dit eindwerk tot een goed resultaat te brengen. Ook stonden zij steeds klaar om mijn vragen te
beantwoorden. De mensen van de Technische Dienst en van de mixbereiding zou ik ook
willen bedanken voor hun antwoorden op mijn vragen.

Eveneens wil ik mijn medestudent, Kersemans Hans, met wie ik dit eindwerk heb gemaakt
danken voor de vlotte samenwerking.

Ten tweede zou ik Dhr. Cambré L. willen bedanken die mij als promotor via de school
begeleid heeft.

Als laatste wil ik ook nog mijn ouders, familie en vriendin bedanken voor alle hulp en steun
die ze mij gegeven hebben bij het verwezenlijken van mijn eindwerk.

Bedankt iedereen
                                                                                               3


SAMENVATTING
Glacio N.V. is een fabrikant van roomijsspecialiteiten en is in januari 2004 gestart uit de
vroegere Nestlé Schöller fabriek. In het bedrijf worden meer dan 300 verschillende producten
geproduceerd. De start van het productieproces bevindt zich in de mixbereiding. Hier is onze
stageopdracht te plaatsen.

Gedurende een aantal jaren werden onderdelen van de mixbereiding in de fabriek
gemoderniseerd. Oude programma’s werden vervangen door nieuwere, gebruiksvriendelijkere
programma’s. Onze opdracht bestond uit het herschrijven van het programma van de
weegcomputers. De weegcomputers worden gebruikt voor het afwegen van de automatische
componenten voor de bereiding van het ijs. De huidige weegcomputers zijn sterk verouderd
vanwege het feit dat het nog oude DOS-machines zijn met een 386 SX processor. De software
van de weegcomputers is nog in Borland Pascal geschreven. De nieuwe weegcomputers zullen
industriële PC’s worden van Beckhoff. Op deze PC’s zal het besturingssysteem Win2000
gezet worden waardoor het mogelijk wordt om te gaan programmeren in Visual Basic.

Vorig jaar waren twee studenten bezig geweest met het programma maar door de
uitgebreidheid van het programma is dit niet klaar geraakt. Zodoende konden we wel starten
met programmeren zonder de lay-out van het programma uit te moeten werken. Deze was al
uitgewerkt door de stagestudenten van vorig jaar.

In de mixbereiding wordt gebruik gemaakt van drie afweegmethoden: de wegermethode, de
tellermethode en de loss-in-weightmethode. Deze drie afweegmethoden worden
geprogrammeerd in Visual Basic als ActiveX componenten. Het programma moet ook
rekening houden met de manuele componenten die toegevoegd moeten worden bij het recept.

Het hoofddoel van de vernieuwing van de weegcomputers is eigenlijk de fouten en gebreken
van de oude weegcomputers wegwerken. Eveneens een betere visualisatie van het
afweegproces naar de operators toe was een belangrijk punt voor de vernieuwing. Het nieuwe
programma moet ook zeer compatibel zijn. Het wisselen van de units tussen de
weegcomputers onderling mag geen problemen opleveren en alle hoofdeigenschappen moeten
ook vrij instelbaar zijn.
                                                                                                                                     4


INHOUDSTAFEL

VOORWOORD........................................................................................................................2


SAMENVATTING ..................................................................................................................2


VERKLARENDE WOORDENLIJST ...................................................................................7


1             DE STAGEPLAATS ...............................................................................................8

1.1           SITUERING VAN DE STAGEPLAATS ............................................................................8
  1.1.1         Geschiedenis van het consumptie-ijs .....................................................................8
  1.1.2         Ontwikkeling naar Glacio NV ................................................................................9
1.2           DE BEDRIJFSSITUATIE ...............................................................................................9
  1.2.1         Situering van de mixbereiding binnen Glacio .......................................................9
  1.2.2         Organigram van Glacio NV .................................................................................10
  1.2.3         Korte beschrijving van het productieproces ........................................................11

2             DE OPSTELLING VAN DE MIXBEREIDING................................................12

2.1           DE HUIDIGE OPSTELLING ........................................................................................12
2.2           DE TOEKOMSTIGE OPSTELLING ..............................................................................13

3             DE WEEGCOMPUTER ......................................................................................15

3.1        HET HUIDIGE SYSTEEM ...........................................................................................15
  3.1.1       De opbouw van de UPCC ....................................................................................15
  3.1.2       De voordelen en nadelen van de UPCC ..............................................................16
      3.1.2.1    De voordelen van de UPCC ..........................................................................16
      3.1.2.2    De nadelen van de UPCC .............................................................................16
      3.1.2.3    Conclusie.......................................................................................................16
3.2        DE DOELSTELLING VAN DE NIEUWE WEEGCOMPUTERS. ........................................16
  3.2.1       De nieuwe weegcomputer ....................................................................................17

4             DE VERSCHILLENDE MEETSYSTEMEN.....................................................18

4.1           DE WEGERMETHODE ..............................................................................................18
4.2           DE TELLERMETHODE ..............................................................................................18
4.3           HET LOSS-IN-WEIGHT PRINCIPE .............................................................................19
                                                                                                                                            5


5          DE AFWEEGSYSTEMEN VAN DE WEEGCOMPUTER .............................20

5.1        DE AFWEEGPROCEDURE VAN DE WEGER ................................................................20
  5.1.1      Stap 1: Startcommando? ......................................................................................20
  5.1.2      Stap 2: Begin groffe afweging..............................................................................21
  5.1.3      Stap 3: Begin fijne afweging ................................................................................22
  5.1.4      Stap 4: Pauze .......................................................................................................22
  5.1.5      Stap 5: Component klaar? ...................................................................................23
  5.1.6      Stap 6: Lossen weger ...........................................................................................23
  5.1.7      Stap 7: Bijweeg ....................................................................................................24
  5.1.8      Stap 8: Stoot .........................................................................................................24
  5.1.9      Stap 9: Alarm .......................................................................................................25
  5.1.10     Genereer Rapport ................................................................................................25
5.2        DE AFWEEGPROCEDURE VAN DE TELLER ...............................................................26
  5.2.1      Stap 1: Startcommando ........................................................................................26
  5.2.2      Stap 2: Grofsturing ..............................................................................................27
  5.2.3      Stap 3: Fijnsturing ...............................................................................................27
  5.2.4      Stap 4: Pauze .......................................................................................................28
  5.2.5      Stap 5: Component klaar .....................................................................................29
  5.2.6      Stap 6: Reset unit .................................................................................................29
  5.2.7      Genereer rapport .................................................................................................30
5.3        DE AFWEEGPROCEDURE VAN DE LOW ..................................................................31
  5.3.1      Stap 1 : Startcommando .......................................................................................31
  5.3.2      Stap 2 : Begin grof afwegen .................................................................................32
  5.3.3      Stap 3 : Begin fijn afwegen ..................................................................................33
  5.3.4      Stap 4 : Pauze ......................................................................................................34
  5.3.5      Stap 5 : Voorraad controle ..................................................................................34
  5.3.6      Stap 6 : Stoot ........................................................................................................35
  5.3.7      Genereer rapport .................................................................................................35

6          ACTIVEX CONTROLS.......................................................................................36

6.1        WAT IS ACTIVEX? ...................................................................................................36
6.2        WEGER ALS ACTIVEX COMPONENT .......................................................................36
  6.2.1     Aanmaken van de eigenschappen ........................................................................37
  6.2.2     Gebruik van functies ............................................................................................38
  6.2.3     Gebruik van events ...............................................................................................39

7          OPC ........................................................................................................................41

7.1        WAT IS OPC? ..........................................................................................................41
7.2        WAAROM EEN OPC STANDAARD? ..........................................................................41
7.3        OPC SERVER EN OPC CLIENT ................................................................................42
  7.3.1     OPC server initialisatie via Simatic Net ..............................................................43
  7.3.2     OPC client in Visual Basic ..................................................................................52
                                                                                                                                            6


8              GEGEVENSOPSLAG EN DYNAMIEK VAN HET PROGRAMMA ............55

8.1        HET GEBRUIK VAN DATABASES IN VISUAL BASIC ..................................................55
8.2        GEBRUIK VAN BESTANDEN IN VISUAL BASIC .........................................................57
  8.2.1       De soorten bestanden ...........................................................................................57
      8.2.1.1    Tekstbestanden ..............................................................................................57
      8.2.1.2    Record bestanden ..........................................................................................58

9              GEBRUIKTE TEKSTBESTANDEN.................................................................59

9.1            PARAMETERBESTANDEN (SEQUENTIEEL BESTAND) ...............................................59
9.2            RAPPORT BESTANDEN (RECORD BESTAND) ............................................................61
9.3            NALOOPBESTANDEN (INI-BESTAND) ......................................................................62

10             DE HANDLEIDING .............................................................................................64

10.1      DE KEUZE VAN HET MEETSYSTEEM ........................................................................64
10.2      TOEWIJZEN VAN DE VERSCHILLENDE MEETSYSTEMEN .........................................65
10.3      PARAMETRERING VAN DE VERSCHILLENDE SYSTEMEN .........................................67
 10.3.1      Parameters van de weger.....................................................................................68
 10.3.2      Parameters van de teller ......................................................................................70
 10.3.3      Parameters van de Loss In Weight ......................................................................71
 10.3.4      Foutmeldingen bij het parametreren van de meetsystemen .................................72
     10.3.4.1 Te groot aantal componenten ........................................................................72
     10.3.4.2 Eén of meerdere parameters niet ingevuld....................................................72
 10.3.5      De componenten instellen ....................................................................................73
 10.3.6      Ijken van de wegers ..............................................................................................77
     10.3.6.1 IJken met gewichten .....................................................................................77
     10.3.6.2 IJken zonder gewichten.................................................................................79
10.4      PROGRAMMAPARAMETERS .....................................................................................81
10.5      HET OVERZICHTSCHERM .......................................................................................82
10.6      HET DETAILSCHERM ...............................................................................................84
 10.6.1      Het editeren van de gewenste waarden ...............................................................84
 10.6.2      Klaar met afweging ..............................................................................................87
10.7      EXTRA BEVEILIGINGEN TIJDENS HET AFWEGEN ....................................................87
 10.7.1      Stoot .....................................................................................................................87
 10.7.2      Negatiefgrens .......................................................................................................88
 10.7.3      Maak weger leeg ..................................................................................................88
 10.7.4      Watchdog time-out ...............................................................................................88
 10.7.5      Maximum inhoud bereikt .....................................................................................89

BESLUIT ...............................................................................................................................90


LITERATUURLIJST ............................................................................................................91
                                                                 7


VERKLARENDE WOORDENLIJST

AD           Analoog Digitaal
COM          Component Object Model
DCOM         Distributed Component Object Model
DOS          Disk Operating System
EEPROM       Electronic Erasable Programmable Read Only Memory
EMI          Electro Magnetic Interferance
GSD          Geräte Stammdaten Datei
I/O          Input / Output
IP           Internet Protocol
IST          Werkelijke afgewogen waarde
LOW          Loss-Off-Weight
OLE          Object Linking and Embedding
OPC          OLE for Proces Control
PC           Personal Computer
PLC          Programmable Logic Controller
RCPC         ReCepten-PC
S5           Step 5
S7           Step 7
SOLL         Gewenste afgewogen waarde
SX           SimpleX
UPCC         Universal PC Controller
VB           Visual Basic
WC           WeegComputer
                                                                                               8


1          DE STAGEPLAATS

1.1        Situering van de stageplaats

1.1.1      Geschiedenis van het consumptie-ijs

Consumptie-ijs heeft al een lange geschiedenis doorlopen. Het schijnt dat de Chinezen al in
3000 voor Christus wisten hoe ijs gemaakt moest worden. Zelfs de geneeskundige Hippocrates
(460-375 v. Chr.) raadde zijn tijdgenoten aan ijs te eten, “omdat het de maagsappen stimuleert
en het welgevoelen verhoogt”.

Het was nog niet het ijs zoals wij dat kennen, maar meer zoete, koude vruchtensappen die in
de sneeuw van onderaardse sneeuwkelders werd bewaard. In het oude Rome liet keizer Nero
(37-68) per koerier sneeuw uit de bergen aanrukken en diende deze, gemengd met rozenwater,
honing, allerhande vruchten en boomhars, aan zijn gasten op als bijzondere traktatie.

Toen in 1533 Catharine de Medici (1519-1589) in Florence in het huwelijk trad met de latere
Franse troonopvolger Hendrik II, werd er tijdens het feestmaal zacht, dik vloeibaar ijs van
frambozen, sinaasappels en citroenen geserveerd.

Van Goethe (1749-1832) wordt gezegd dat hij dol was op frambozenijs, en de Duitse kanselier
Bismark (1815-1898) verwendde zich tot op hoge leeftijd met bevroren lekkernijen.

In 1876 slaagde Carl von Linden erin de eerste grote koelmachine te ontwikkelen.

In 1903 kreeg de Amerikaan Italo Marchiony een octrooi op een machine die continu koude
kon produceren. De koelkast was geboren! Al vanaf 1908 liet hij ijs verkopen met karretjes.

Op 9 oktober 1923 nam de Amerikaan Harry Burst een octrooi op ijslolly's. Reeds in 1924
werd de ijslolly vanuit de Verenigde Staten naar Duitsland geïmporteerd, meer bepaald naar
Berlijn, waar datzelfde jaar ook de luchthaven “Tempelhof” geopend werd.

Elf jaar later zat een 18-jarige Nürnbergse knaap in de “Skala” te Berlijn en probeerde daar
zijn allereerste ijsje:

                                                                              Theo Schöller.
                                                                                                  9


1.1.2        Ontwikkeling naar Glacio NV

In 1978 werd er in Beerse gestart met de bouw van een ijsfabriek door ‘Pinti’, toen een
belangrijke speler op de huis-aan-huisverkoop. Omdat het voor Schöller GmbH na grondig
onderzoek niet interessant leek om ijs vanuit Duitsland naar andere Europese landen te
exporteren, werd er voor de ‘Pinti’ ijsfabriek in Beerse gekozen. Die werd in 1983 dan ook
overgenomen door Schöller GmbH. De vestiging van Schöller in Beerse werd de
specialiteitsfabriek binnenin de Schöller groep, die uit zeven ijsfabrieken bestaat. De
ijsspecialiteiten werden nu uitgevoerd naar de Benelux, Frankrijk, Groot Brittanië, Japan,
Griekenland en nog een heleboel andere landen. In 2001 werd de Schöller groep over
genomen door Nestlé, het grootste voedingsconcern ter wereld. De fabriek in Beerse bleef
onder de naam Nestlé Schöller NV kwaliteitsijs produceren, maar in 2003 werd er door Nestlé
beslist dat Beerse niet in de Nestlé structuur past.

Om de fabriek voor een dreigende sluiting te behoeden, hebben vijf kaderleden de aandelen
van de fabriek in Beerse overgenomen van Nestlé. Vanaf januari 2004 beheren zij nu de
fabriek voor 100%. Een nieuwe naam drong zich dan ook op en er werd gekozen voor
‘Glacio’. Glacio is het Latijn voor “Ik vorm om tot ijs”. Door een grotere specialisering in de
bestaande afzetmarkt voor ijsspecialiteiten, probeert Glacio zich te handhaven op deze markt.


1.2          De bedrijfssituatie

1.2.1        Situering van de mixbereiding binnen Glacio

Op de volgende pagina ziet men een overzicht van de bedrijfsstructuur van Glacio te Beerse.
Men ziet hierop de vier grote onderdelen van het bedrijf:

       CFO (Chief Financing Officer) omvat:
         o Boekhouding
         o Logistiek
         o De personeelsdienst
         o EDP: Dit zijn de mensen die de servers en dergelijke onderhouden
       COO (Chief Operating Officer) omvat:
         o Mixbereiding
         o Afvulling
         o Inpak
       CSO (Chief Sales Officer): De verkoopsafdeling
       CTO (Chief Technology Officer) omvat:
         o Techniek
         o Engineering
                                             10

1.2.2   Organigram van Glacio NV




                              Figuur 1.2.1
                                                                                        11


1.2.3      Korte beschrijving van het productieproces

De componenten die in zowat elk recept voorkomen worden automatisch afgewogen. De
andere componenten worden nadien toegevoegd. Al deze grondstoffen komen samen in een
mengtank waar ze grondig onder elkaar gezet worden. In vakjargon wordt dit de mix
genoemd. Deze mix wordt na het mengen gehomogeniseerd en gepasteuriseerd. Dit gebeurt op
hoge temperatuur om alle ziektekiemen te doden. Vervolgens wordt deze mix afgekoeld en
opgeslagen in de daarvoor voorziene opslagtanks. De klaargemaakte mix wordt nu op de juiste
temperatuur gebracht en afgevuld. De afgewerkte producten worden nu voorzien van de juiste
verpakking en afgekoeld in een snelvriezer. Tenslotte worden ze gestockeerd in het
koelmagazijn en zijn nu klaar voor transport.

Onderstaande figuur geeft een idee welke processen moeten doorlopen worden om een
afgewerkt product te bekomen.




                                       Figuur 1.2.2
                                                                                              12


2           DE OPSTELLING VAN DE MIXBEREIDING

2.1         De huidige opstelling




                                         Figuur 2.1.1


Hierboven is de huidige opstelling van de mixbereiding weergegeven. De drie weegcomputers
in de controlekamer zijn verbonden met de recepten-PC die alle recepten, voor het produceren
van de verschillende producten, bevat. Deze recepten worden uitgelezen uit een database en
doorgestuurd naar de weegcomputers.

Het programma van de recepten-PC is enkele jaren geleden reeds vervangen door een
VB-programma. Hierbij is het mogelijk alle recepten in te geven die deze dag moeten
geproduceerd worden. Deze gegevens worden doorgestuurd naar de verschillende
weegcomputers. De weegcomputers zullen deze gegevens dan gebruiken voor het afwegen
van de grondstoffen. Het afwegen van de grondstoffen gebeurt met behulp van een
programma geschreven in Borland Pascal.

De componenten die in elk recept terugkomen worden afgewogen met behulp van de
weegcomputers. De verwerking van deze afweging gebeurt volledig automatisch na het geven
van het startcommando. Per meetsysteem kunnen tot acht grondstoffen afgewogen worden.
Deze componenten worden automatische componenten genoemd. Een aantal voorbeelden van
deze automatische componenten zijn melk, suiker en water. Alle andere grondstoffen, die
slechts in bepaalde mixen voorkomen, worden manuele componenten genoemd. Ook hier zijn
er weer verschillende soorten. Er zijn grondstoffen die, voor het pasteuriseren, rechtstreeks in
de mengtank toegevoegd worden. De andere componenten, die niet mogen gepasteuriseerd
worden omdat er dan problemen met de kleur, smaak,… kunnen optreden, worden
rechtstreeks in de opslagtank toegevoegd.
                                                                                           13


2.2        De toekomstige opstelling




                                       Figuur 2.2.1

Het huidige afweegsysteem is geprogrammeerd in Borland Pascal en is ondertussen na 9 jaar,
een verouderd systeem geworden. Het mag dan ook duidelijk zijn dat dit systeem een aantal
problemen met zich meebrengt. Zo biedt het huidige systeem slechts de mogelijkheid om vier
verschillende meetsystemen gelijktijdig aan te sturen in één PC. In de toekomst zouden er
acht meetsystemen tegelijkertijd moeten kunnen draaien. De gegevens voor het afwegen
komen van de recepten-PC. Deze recepten-PC is reeds enkele jaren geleden vervangen door
een nieuw systeem. In de toekomst zullen dan ook de oude schermen vervangen worden door
Beckhoff touchscreens.

Een nadeel van de huidige computers is dat de communicatie met de PLC en de
meetsystemen gebeurt met I/O lijnen. Dit geeft een onoverzichtelijke bundel van draden.
Daardoor zijn we beperkt in de communicatie. Een ander nadeel is dat de meetsystemen
rechtstreeks op de weegcomputer zijn aangesloten. Dit heeft tot gevolg dat als er een
weegcomputer uitvalt, al de bedrading overgezet moet worden naar een andere
weegcomputer. Daarom kiezen we voor de communicatie via profibus. Het nieuwe profibus
netwerk zal er uitzien zoals figuur 2.2.2 . De PLC is geconnecteerd met de drie
weegcomputers en communiceert met de weegcomputers door middel van het S5 protocol.
Elke weegcomputer zal een profibus netwerk bezitten met loadcellen. De toewijzing van de
busadressen moet zo gekozen worden, dat er geen problemen mogen ontstaan als er een
profibuskabel bij op een weegcomputer gehangen wordt. Dit kan gebeuren wanneer er een
weegcomputer stuk is.
                                                                                     14




                                      Figuur 2.2.2

De weegcomputers zullen via een CP 5613 kaart van Siemens met digital-fieldbus-
transmitters van de loadcellen en glucoseteller communiceren. De
digital-fieldbus-transmitters worden gebruikt om de signalen van de loadcellen, die het
gewicht van de weegbunkers meten, om te zetten in een bepaalde code. Deze code kan dan
gebruikt worden door de weegcomputers via een CP 5613 kaart. De ingelezen waarden halen
we binnen in Visual Basic met behulp van OPC en worden door het programma verwerkt. De
bekomen waarde geeft dan het eigenlijke afgewogen gewicht weer. Het Visual Basic
programma zal aan de hand van de ingelezen waarde de PLC sturen. De bedoeling is dat de
operator het hele afweegproces kan volgen vanuit de controlekamer.
                                                                                            15


3           DE WEEGCOMPUTER

3.1         Het huidige systeem
De huidige weegcomputer is een UPCC (Universal PC Controller). Deze controller benutte de
voordelen van de PC architectuur en verwierp de nadelen ervan. Daarenboven combineerde
deze controller de mogelijkheden uit de PLC wereld met deze van de PC. De UPCC
verenigde een solid-state-diskdrive met een hoog-contrast-LCD-display. Het frontpaneel kon
naar persoonlijke voorkeuren ontworpen worden, een beknopt paneel tot 30 leds, 3 numerieke
viervoudige 7-segment displays, een foliekeyboard tot 130 toetsen en verwijderbare
tekstlabels kunnen standaard geïntegreerd worden. De controller is gefilterd om zo aan de
hoogste industriële EMI te kunnen weerstaan. Het systeem is opgebouwd rond een 386SX
moederbord dat uitvoerig getest en geselecteerd werd op betrouwbaarheid en EMI. Het
moederbord is mechanisch en elektrisch gemonteerd op een draagbord. De standaard AT &
XT extensieslots zijn beschikbaar voor andere doeleinden zoals een netwerkconnectie of de
aansluiting van een extra monitor. Het draagbord bevat het elektrisch gedeelte dat niet op een
standaard moederbord aanwezig is. Zo verkreeg men een hoog renderende en niet al te dure
single board controller met alle voordelen van de PC architectuur.


3.1.1       De opbouw van de UPCC

       De UPCC bevat een hoog contrast LCD display dat volledig compatibel is met de
        meeste zwart-wit PC-videotoepassingen. Dit display simuleert een 16 x 40 karakter in
        tekstmode en 240 dots bij 128 dots lijn in grafische PC mode.
       Floppy drive en een harde schijf zijn verwerkt in een 4 Mb flashdisk.
       membraam toetsen bord (tot 130 toetsen)
       Een beknopt frontpaneel tot 30 indicatieleds en 3 displays modules met 7-segment
        displays.
       32 galvanisch geïsoleerde uitgangen (24V 100mA) met stroombeveiliging.
       16 galvanisch geïsoleerde ingangen.
       8 analoge ingangen, voor spanningen (0 tot 5V DC) of stromen (4 tot 20mA) met 12
        bit resolutie en ½ LSB nauwkeurigheid, galvanisch geïsoleerd van het
        processorgedeelte.
       2 geïsoleerde analoge spanningsuitgangen (-10V DC tot + 10V DC) met 12 bit
        resolutie.
       2 Kb EEPROM beschikbaar voor gebruikersparameters die ook gebruikt kan worden
        voor de typische PC setup.
                                                                                            16



3.1.2       De voordelen en nadelen van de UPCC


3.1.2.1     De voordelen van de UPCC

       Standaard PC architectuur.

       Compacte uitvoeringen.

       Alle in- en outputs zijn volledig EMI gefilterd.

       Mogelijkheid om de applicatie software in een flash EEPROM te laden en deze te
        gebruiken als harde schijf.

       In- en output ondersteuning door BIOS

       Unieke uitbreiding en goede softwareondersteuning van de hardware resulteert in een
        reductie van de softwareontwikkeling.


3.1.2.2     De nadelen van de UPCC

       De standaard PC’s op zich zijn onbetrouwbaar voor industriële toepassingen.
       De standaard PC’s zijn niet goed beveiligd tegen elektromagnetische interferentie
        (EMI).
       De nood aan een harde schijf of een diskette-eenheid vormen een groot probleem
       Industriële in- en outputmodules zijn zeer duur.

3.1.2.3     Conclusie

       Het is duidelijk dat de huidige weegcomputers sterk verouderd zijn en dat ze aan
        vervanging toe zijn.


3.2         De doelstelling van de nieuwe weegcomputers.
De oude weegcomputer biedt de gebruiker de mogelijkheid om vier meetsystemen gelijktijdig
te sturen. Het nieuwe systeem zou daarentegen de mogelijkheid moeten bieden om acht
verschillende meetsystemen gelijktijdig te sturen ongeacht welk meetsysteem er gebruikt
wordt. Al de meetsystemen moeten over de mogelijkheid beschikken om 10 componenten af
te wegen.

Nu kan er ook telkens maar één batch afgewogen worden zonder de waarden opnieuw in te
voeren. In de toekomst zal de volgende batch starten na één simpele druk op de knop.
Wanneer er één computer uitvalt moet deze, zonder herbekabelingswerken, overgezet kunnen
worden naar een andere computer. Daarom gaan we de I/O lijnen vervangen door een
profibus netwerk.
                                                                                         17


3.2.1      De nieuwe weegcomputer

Voor de nieuwe weegcomputer maken we gebruik van een industriële PC van Bechoff. Dit is
een gewone computer die uitgerust is voor productiedoeleinden. Daarom is hij ook uitgerust
met een zwaardere voeding en extra koeling. Hij biedt de mogelijkheid om op een veilige
afstand van het productieproces geplaatst te worden. In onderstaande figuur ziet u een
afbeelding van zo een Beckhoff-computer.




                                         Figuur 3.2.1
Als scherm is er gekozen voor een spatwaterdicht touchscreen. Deze schermen zijn met
behulp van twee coaxkabels met de pc verbonden en de coaxkabels mogen maximaal honderd
meter lang zijn.
                                                                       1


                                                                         5

                                                                         2


                                                                         3


                                                                         4

                                         Figuur 3.2.2
Het scherm is onderverdeeld in 5 zones met elk zijn bijhorende toetsen of functies.

   1. Speciale functietoetsen door de gebruiker zelf te definiëren
   2. Numeriek klavier
   3. Navigatietoetsen
   4. Functietoetsen
   5. Touchscreen
                                                                                            18


4          DE VERSCHILLENDE MEETSYSTEMEN
De weegcomputers bevatten 3 verschillende afweegmethodes. Deze methodes zijn gekoppeld
aan de af te wegen grondstof. Zo onderscheiden we de Weger, de Glucoseteller en de LOW.
Hieronder worden de verschillende systemen verder besproken.


4.1        De Wegermethode
De weger bestaat uit 3 elementen, de weegbunker, de loadcellen en de convertor. De
weegbunker rust op de loadcellen en er zal een gewicht weergegeven worden door de
loadcellen. Dit is het gewicht als de bunker leeg is. De weger zal geijkt moeten worden en het
referentiepunt (weger leeg) zal op nul gebracht moeten worden. Het leeggewicht van de
weegbunker zelf mag niet in rekening gebracht worden. Wanneer er nu grondstoffen in de
weegbunker vallen, zal de opnemer een signaal afgeven. Dit signaal is een maat voor het
gewicht in de bunker. De convertor of omvormer zet het signaal om in een getal dat het
gewicht aangeeft.

                        Gewicht = Gewogen gewicht – Leeggewicht




                                          Figuur 4.1

4.2        De tellermethode




                                          Figuur 4.2
De tellermethode maakt, zoals de naam al doet vermoeden, gebruik van een telimpuls. Elke
telimpuls geeft een bepaalde hoeveelheid weer. Deze hoeveelheid per telimpuls kan extern bij
de parameters ingesteld worden.

               Volume = Hoeveelheid per telpuls X het aantal getelde pulsen
                                                                                           19


Deze telimpuls wordt zichtbaar op het scherm weergegeven door een blauw lichtje dat steeds
aan en uit gaat. Voorlopig wordt de teller enkel gebruikt als glucoseteller. Bij deze methode
meten we het volume dat er binnen een bepaalde tijd is voorbijgekomen. Willen we nu echter
het gewicht bepalen dan kan dit met onderstaande formule.

                           Gewicht = Volume x Soortelijk gewicht


4.3        Het loss-in-weight principe
Met het loss-in-weight principe wordt er niet gemeten wat er vanuit de voorraadtank in de
weegbunker valt, maar er wordt rechtstreeks op de voorraadtank gemeten welk gewicht er uit
is gegaan. We meten dus eigenlijk ‘het verlies in gewicht’. Deze voorraadtank staat ook weer
op loadcellen die het gewicht van de tank doorgeven aan het programma. Het afgewogen
gewicht kunnen we dus bepalen uit het begingewicht en eindgewicht.

                           Gewicht = begingewicht – eindgewicht

Het nadeel van dit principe is dat het zeer onnauwkeurig is om het juiste gewicht te bepalen
dat uit de voorraadtank is gelost. Ook kan er maar één grondstof tegelijkertijd afgewogen
worden. Dit principe wordt gebruikt bij het afwegen van de witte en zwarte chocolade. Om de
chocolade te kunnen toevoegen aan het recept moet de chocolade vloeibaar zijn. De
chocolade moet dus steeds op een bepaalde temperatuur gehouden worden. Als er gewerkt
wordt met het weger principe is de chocolade reeds gestold voor hij bij het recept kan
gevoegd worden. In de mixbereiding wordt dit principe aangeduid met LOW.
                                                                                            20


5           DE AFWEEGSYSTEMEN VAN DE WEEGCOMPUTER
In het programma zijn er drie verschillende afweegsystemen voorzien. Zo kunnen we de
teller, weger en LOW van elkaar onderscheiden door hun specifieke eigenschappen van
afwegen. Zo zal de weger nagaan hoeveel er in de weegschaal zit. De LOW zal meten
hoeveel er uit de opslagtank wegvloeit en de teller zal tenslotte de hoeveelheid weergeven die
voorbij is gekomen. Dit zijn dus drie afzonderlijke principes. Deze principes zijn in het
programma geprogrammeerd als drie afzonderlijke ActiveX componenten die afzonderlijk
geselecteerd kunnen worden naargelang het meetsysteem dat actief is. Om deze op de juiste
manier te kunnen programmeren hebben we gebruik gemaakt van onderstaande flowcharts.
Zo kunnen we dus elk proces onderverdelen in een aaneenschakeling van een aantal acties.
Aan de hand van onderstaande flowcharts gaan we deze principes in detail bespreken.

5.1        De afweegprocedure van de weger

5.1.1      Stap 1: Startcommando?




                                         Figuur 5.1.1
Als er een startcommando gegeven is, gaat men de startvoorwaarden van de weger bekijken.
Is er niet voldaan aan deze voorwaarden dan zal er een foutmelding gegeven worden. De
startvoorwaarden van de weger zijn: de PLC moet klaar zijn met zijn bewerkingen en het
meetsysteem moet ook klaar zijn voor afweging. Als er aan de startvoorwaarden voldaan is,
gaat er een tarrering uitgevoerd worden. Men gaat dus de weger terug naar nul zetten, ook al
kan er nog een klein gewicht in de weger zitten. Men kan in de parametrering zelf bepalen
wanneer het achter gebleven gewicht te groot is en dat de weger proper gemaakt moet
worden. Daarna gaan we verder met de volgende stap van het programma.
                                                                                          21


5.1.2       Stap 2: Begin groffe afweging




                                        Figuur 5.1.2
In deze stap gaan we controleren of de component een bijweegcomponent is of dat er mag
begonnen worden met de groffe afweging. Indien het een bijweegcomponent is, gaat men
over naar stap 7. Ook wordt er steeds controle gedaan op een stoot in de weger. Hiermee
bedoelen we dat de huidige waarde te veel verschilt van de vorige waarde. De grootte van
deze afwijking kunnen we instellen in de parameters van de weger. Als de afwijking te groot
is zullen we overgaan naar stap 8. Bij een normale afweging gaan we kijken of de huidige
waarde overeen komt met de ingestelde fijnwaarde. Het programma blijft controleren of er
moet overgegaan worden naar een fijne afweging.
                                                                                              22


5.1.3      Stap 3: Begin fijne afweging




                                        Figuur 5.1.3
Ook hier blijven we controleren op een stoot. Als de huidige waarde de gewenste waarde
benadert, rekening houdend met de naloop van die component, zal de fijne afweging stoppen
en gaan we over naar de volgende stap.


5.1.4      Stap 4: Pauze




                                        Figuur 5.1.4
Tussen elke component zal er een pauze genomen worden. Of er na deze pauze automatisch
wordt verder gegaan hangt af van de ingestelde parameter. In deze stap wordt de naloop
berekend van het proces. Hiermee wordt bedoeld dat er, ook nadat de klep is gesloten, nog
altijd een hoeveelheid van de grondstof in de weger valt. Hierdoor zal de werkelijke waarde
groter zijn dan de gewenste waarde.
                                                                                                23


Het programma berekent deze naloop en zal er de volgende keer rekening mee houden door
de klep de volgende keer sneller dicht te sturen. Dit is een proces dat steeds wordt berekend
en aangepast.


5.1.5      Stap 5: Component klaar?




                                         Figuur 5.1.5
In deze stap controleren we of dat alle componenten zijn afgewogen, zoniet gaan we terug
naar stap 2 en wordt deze cyclus terug doorlopen. Als alle componenten zijn afgewogen dan
wordt er een klaarmelding gegeven en gaat men verder naar stap 6.


5.1.6      Stap 6: Lossen weger




                                         Figuur 5.1.6
Hier wordt er een controle gedaan op het lossen van de weger. Als de tijd die nodig is bij het
lossen, groter is als de ingestelde tijd in de parameters van de weger, zal er een melding
gegeven worden. De weger zal dan gereinigd moeten worden.
                                                                                               24


5.1.7       Stap 7: Bijweeg




                                         Figuur 5.1.7
Een bijweegcomponent is een component die op een andere weegschaal wordt gemeten. De
reden hiervoor is dat de hoeveelheid niet erg groot zal zijn ten opzichte van de opmeting van
de grote weegschaal. Meestal bedraagt deze hoeveelheid rond de vijftig kilogram, terwijl er
met de grote weegschaal een hoeveelheid kan gewogen worden tot duizend kilogram. Met de
kleine weegschaal is het dus mogelijk om nauwkeuriger de juiste hoeveelheid af te wegen. De
juiste hoeveelheden en aantallen worden bewaard op een andere PC. Het programma moet
wachten op de melding dat het bijwegen klaar is en zal dan verder gaan met de volgende
component.


5.1.8       Stap 8: Stoot




                                         Figuur 5.1.8
Bij een stoot gaan we controleren of de weger uitgedeind is of niet. Als er terug voldaan is
aan de stootmarge kunnen we verder gaan met de afweging waar deze is onderbroken.
                                                                                           25


5.1.9      Stap 9: Alarm




                                        Figuur 5.1.9
Als er zich een alarm heeft voorgedaan zal het programma hiervan een melding geven. Het
programma kan pas doorgaan als het alarm zich niet meer voordoet.


5.1.10     Genereer Rapport




                    Genereer rapport




                   Einde afweegproces
                         Weger




                                        Figuur 5.1.10
De laatste stap in het afweegproces is het genereren van een rapport van de afweging. Zo
kunnen we steeds een controle doen op de verschillende afwegingen.
                                                                                           26




5.2        De afweegprocedure van de teller

5.2.1      Stap 1: Startcommando




                                        Figuur 5.2.1
Voor het starten van de telcyclus gaat het programma na of er een startcommando gegeven is.
Als dit niet het geval is, dan heeft de gebruiker niet op de startknop gedrukt. Het programma
wordt dan uiteraard ook niet gestart. We komen dus in de nee-richting terecht en het
programma zal naar het einde van de cyclus springen. Is er nu echter wel een startcommando
gegeven, dan zal het programma wel gestart worden. In de volgende keuze controleert het
programma of de startvoorwaarden OK zijn. Zijn deze OK ( PLC en meetsysteem zijn klaar),
dan zal het programma starten. Zijn deze niet OK, dan wordt er een foutmelding gegenereerd
en springt het programma naar het einde van de cyclus.
                                                                                             27


5.2.2      Stap 2: Grofsturing




                                         Figuur 5.2.2
Als aan alle startvoorwaarden voldaan zijn, dan komt het programma in stap 2 terecht. Is de
huidige waarde groter dan of gelijk aan de ingestelde fijnwaarde, dan zal er een commando
naar de PLC gestuurd worden die de aantsturingsklep van 100% naar 50% open zal brengen.
Als de huidige waarde kleiner is dan de fijnwaarde, dan zal het grof tellen verder gaan tot wel
aan deze voorwaarde voldaan is.


5.2.3      Stap 3: Fijnsturing




                                         Figuur 5.2.3
Het grof tellen is nu gestopt en de aansturingsklep van de voorraadbunkers is slechts voor
50% open gestuurd zodat de huidige waarde minder snel zal stijgen. De fijnsturing is nu
ingezet. Weer wordt er op een voorwaarde getest. Is de huidige waarde groter dan of gelijk
aan de ingestelde waarde, dan zal ook het fijn tellen beëindigd worden door de klep helemaal
                                                                                                 28


dicht te sturen. Rekeninghoudend met de juiste naloophoeveelheid. Het proces kan nu
overgaan naar de volgende stap. Is aan deze voorwaarde niet voldaan dan zal het fijn tellen
verder gaan totdat wel aan deze voorwaarde voldaan is.


5.2.4       Stap 4: Pauze




                                         Figuur 5.2.4
Is de ingestelde waarde bereikt, dan wordt een pauze in acht genomen. De kleppen van de
voorraadbunkers zullen pas dichtgestuurd worden als de huidige waarde bereikt is. Het kan
zijn dat er nog een deel van die bepaalde stof in de leidingen aanwezig is. Dit zal ook nog in
de weegbunker vallen. Er is nu een deel teveel afgewogen. In deze stap wordt er berekend
hoeveel er teveel is afgewogen. Dit wordt de naloop genoemd. Deze naloop is een zeer
belangrijk iets voor het verdere verloop van het productieproces. De naloop zal later
afgetrokken worden van de ingestelde waarde zodat de klep vroeger wordt dichtgezet. Van
deze naloop zullen de 10 laatste waarden worden bijgehouden en het gemiddelde van
berekend worden.
                                                                                             29



5.2.5      Stap 5: Component klaar




                                         Figuur 5.2.5
Als de naloop van de component gekend is, dan is de afweging van deze component
compleet. De volgende component kan nu afgewogen worden. Het hele proces herhaalt zich
opnieuw tot alle componenten afgewogen zijn. Wanneer alle componenten afgewogen zijn,
dan is de telling klaar en kan het overgaan naar de laatste fase van het proces.


5.2.6      Stap 6: Reset unit




                                         Figuur 5.2.6
Het programma voert nu een reset van de unit uit, zodat alles klaar staat voor de volgende
batch.
                                                                                        30



5.2.7      Genereer rapport




                                       Figuur 5.2.7
Aan het einde van het proces worden steeds alle waarden die gebruikt werden in het
voorgaande proces bijgehouden en afgedrukt. Zo houden we in ons geval 3 rapporten bij. Eén
van de naloop zonder flush, één van de naloop na een flush (na het proper maken van de
leidingen) en één van de algemene waarden.
                                                                                           31



5.3        De afweegprocedure van de LOW

Aangezien een LOW ook gebruik maakt van loadcellen is het meetsysteem ongeveer
hetzelfde als dat van een weger. Toch verschilt de afweegprocedure sterk met deze van een
weger. Zo is er het verschil dat met een LOW hoogstens één component kan afgewogen
worden en dat de berekening van de gemeten waarde ook helemaal anders is. Daarom wordt
er in de volgende punten een kort overzicht gegeven van wat er in de verschillende acties van
een LOW gebeurt.


5.3.1      Stap 1 : Startcommando




                                        Figuur 5.3.1
Voor het beginnen van het programma stelt het programma zich telkens de vraag of er een
startcommando is gegeven. Als dit niet het geval is springt het programma naar het einde van
de afweegcyclus. In het andere geval gaat het programma vervolgens controleren of er aan de
startvoorwaarden voldaan is. Met de startvoorwaarden wordt bedoelt dat buiten het
programma ook het meetsysteem en de PLC klaar moeten zijn voor de afweging. Als alles
klaar is, wordt er een tarrering uitgevoerd.
                                                                                       32



5.3.2      Stap 2 : Begin grof afwegen




                                       Figuur 5.3.2
Hier beginnen we met de groffe afweging. Het programma zal dan controleren of er zich
“Stoot” voordoet. Met stoot bedoelen we dat de huidige meetwaarde te veel verschilt met de
vorige meetwaarde. Anders zal het programma verdergaan met stap 6. Vervolgens gaat het
programma controleren of de fijnwaarde bereikt is. Het programma kan pas naar een volgende
actie gaan als aan deze voorwaarde voldaan is.
                                                                                       33



5.3.3      Stap 3 : Begin fijn afwegen




                                       Figuur 5.3.3
In deze actie beginnen we met de fijne afweging. Het programma zal telkens twee dingen
controleren. Enerzijds is er de controle “Stoot”. Als er zich een stoot voordoet op de
meetwaarden zal het programma deze stoot detecteren en het programma vervolgen met
stap 6. De volgende controle die gebeurt, is deze of de ingestelde waarde al bereikt is,
rekening houdend met de naloop van de component. Als dit het geval is, kan het programma
overgaan naar de volgende stap.
                                                                                        34



5.3.4      Stap 4 : Pauze




                                           Figuur 5.3.4

Als de component is afgewogen moet het programma een pauze in acht nemen. Wordt de klep
dichtgestuurd, kan er nog een bepaalde hoeveelheid van die component in de leidingen
achterblijven. Die hoeveelheid, die zich nog in de leiding bevindt, zal dan ook nog in de
weegbunker vallen. Op dat moment is er te veel van die component afgewogen. Daarom zal
het programma, nadat de pauze gedaan is, daar rekening mee houden. Het programma zal
bereken hoeveel er te veel is afgewogen van die bepaalde component. Vervolgens zal het
programma de gemiddelde naloop bepalen van de laatste tien metingen voor die component.
Met de bekomen waarde zal het programma rekening houden bij de volgende afweging van
die bepaalde component. Het programma zal vroeger stoppen met de afweging. Nadat de
naloop berekent is zal het programma verder gaan met stap 5.


5.3.5      Stap 5 : Voorraad controle




                                   Ja
                      Stap = 5 ?        Voorraad controle

                            Nee

                                         Einde afweging




                                           Figuur 5.3.5
In deze actie wordt er eerst een voorraad controle uitgevoerd. Nadat deze controle is
uitgevoerd, wordt de meting afgesloten.
                                                                                          35


5.3.6      Stap 6 : Stoot



                                        Ja                        Nee
                      Stap = 6 ?             Weger uitgedeind ?


                                                       Ja


                                             Stap = vorige stap




                                                 Figuur 5.3.6
In het geval dat er zich een stoot heeft voorgedaan zal het programma in deze stap komen. Het
programma kan pas terug verder gaan met het programma als de weger tot stilstand is
gekomen.


5.3.7      Genereer rapport




                    Genereer rapport




                   Einde afweegproces
                         Weger



                                                 Figuur 5.3.7
Telkens als het programma door deze cyclus gaat, wordt een rapport gecreëerd voor de
recepten-PC. Nadat het rapport gecreëerd is, zal het programma terug bovenaan in de cyclus
beginnen.
                                                                                           36


6          ACTIVEX CONTROLS

6.1        Wat is ActiveX?
Een ActiveX component, zoals in de figuur is weergegeven, is een stukje code dat je kan
gebruiken zonder dat je je zorgen hoeft te maken over hoe het geschreven is. We kunnen dus
stellen dat het kleine afgewerkte programma’s zijn. Weger, Teller en LOW zijn bij ons drie
verschillende ActiveX controls. We delen ons totaal programma als het ware op in
afzonderlijke stukken zodat het overzichtelijker en sneller wordt. Een afgewerkte Usercontrol
kan direct in een nieuw project geïntegreerd worden. Het is zo simpel als het plaatsen van een
label op een formulier. Deze afzonderlijke stukken worden achteraf bestuurt door een
overkoepelend programma. We kunnen via ons hoofdprogramma waarden of handelingen aan
de controls doorgeven, en dit met de bedoeling om een event (antwoord) terug te krijgen. De
Usercontrol bevat meer dan de reeds vermeldde flowcharts doen vermoeden. De flowcharts
geven enkel de grote lijnen weer van het programma. Zo zijn er een paar alarmen voorzien die
niet in de flow chart voorkomen. Het programma moet dan stoppen en verdergaan als het
probleem is opgelost. Omdat deze Usercontrols voor een groot stuk dezelfde code bevatten
gaan we enkel een aantal belangrijke onderdelen bespreken.




                                        Figuur 6.1.1


6.2        Weger als ActiveX component
Bij het opstarten van Visual Basic wordt er niet gekozen voor een “Standard EXE” project
maar voor een “ActiveX control” project. In Visual Basic worden ActiveX componenten
aangeduid als Usercontrol. Visual Basic opent nu een formulier aangeduid met Usercontrol1.
In dit formulier is het mogelijk om alle standaard knoppen of labels toe te voegen. De
bovenstaande figuur geeft de layout weer van de Teller ActiveX component, voor de Weger
en de LOW wordt de aanduiding “Telpulsen” veranderd in de aanduiding “Leeg”. De verdere
programmering verloopt nu net hetzelfde als bij een “Standard EXE” project. De volledige
code van de ActiveX component uitleggen zou te uitgebreid worden. Daarom is er gekozen
om een aantal kenmerken van deze ActiveX componenten verder te verduidelijken..
                                                                                           37


6.2.1      Aanmaken van de eigenschappen

Elk afweegprincipe heeft een aantal eigenschappen die kenmerkend zijn voor dit principe. Zo
heeft de Weger een aantal eigenschappen die de Teller niet gebruikt en hetzelfde geldt bij de
LOW. Het aanmaken van de verschillende eigenschappen van de ActiveX component gebeurt
via de properties Let en Get. Onderstaande code geeft de properties Let en Get weer van het
“aantal componenten” dat de Weger bevat.

Public Property Let AantalComponenten(AantalComp As Integer)
 INTVAR_AantalComp = AantalComp
End Property
Public Property Get AantalComponenten() As Integer
 AantalComponenten = INTVAR_AantalComp
End Property

Via de property Let is het mogelijk om een waarde naar de variabele te schrijven. Bij het
aantal componenten is dit een integer getal. De eigenschap van de Weger is nu zichtbaar in
het hoofdprogramma. Met de property Get kan het hoofdprogramma opvragen hoeveel
componenten er zich in de ActiveX component bevinden. De waarden die van buiten de
ActiveX component komen worden in een interne variabele gestoken. Al deze variabelen
starten met de aanduiding “INTVAR_...” om de in- en uitwendige variabelen van elkaar te
onderscheiden. De declaratie van de interne variabelen gebeurt bovenaan. Een aantal
eigenschappen komen steeds terug zoals het aantal componenten, de naam van de
component,… maar de eigenschap “Negatiefgrens” is kenmerkend voor de Weger. Wat deze
eigenschap juist betekent wordt verduidelijkt in de handleiding van de weegcomputer.

Dim INTVAR_AantalComp As Integer
Dim INTVAR_Naam(10) As String
Dim INTVAR_CompNr(10) As String
Dim INTVAR_UnitNaam As String
Dim INTVAR_Fijnwaarde(10) As Double
Dim INTVAR_MaxInhoud As Long
Dim INTVAR_Bovengrens As Double
Dim INTVAR_Ondergrens As Double
Dim INTVAR_Negatiefgrens As Double
Dim INTVAR_TBI As Integer
Dim INTVAR_TBS As Integer
Dim INTVAR_TankNr As Integer
Dim INTVAR_ReceptNr As Long

Zoals gezegd zijn de verschillende eigenschappen van de Weger nu zichtbaar in het
hoofdprogramma. Er kunnen dus nu waarden naar toe geschreven worden. Dit kan enkel en
alleen als de ActiveX component reeds is toegevoegd bij het hoofdprogramma. In figuur 6.2.1
is er te zien hoe de eigenschappen zichtbaar worden in het hoofdprogramma. Na het typen van
“Weger.”, komen de eigenschappen te voorschijn die je kan gebruiken.
                                                                                           38




                                        Figuur 6.2.1

Bij het toewijzen van de eigenschappen in het hoofdprogramma zullen deze naar de juiste
ActiveX component gestuurd worden.


6.2.2      Gebruik van functies

Voor de volledige verwerking van het afweegproces gaat de ActiveX component gebruik
maken van functies. De belangrijkste functie die er gebruikt wordt is de IstChange-functie. De
waarde van loadcell wordt via de OPC server naar deze functie gestuurd en aan de hand van
die waarde zal de functie bepalen welke actie er genomen moet worden. Verder zijn er nog
functies voor het opslaan van de rapporten, de controle van de naloop en het starten van de
afweging. Van de laatste functie is hier een stuk code weergegeven.

Public Function StartAfweging() As Boolean
  tmrLeegLoopBijVol.Enabled = False
  tmrPauzetijd.Enabled = False
  tmrWatchdogTimeOut.Enabled = False

   If INTVAR_StartStop = True Then
       Weegstatus.Grof = False
       Weegstatus.Fijn = False
       RaiseEvent AlarmWeger(True, 8)
   Else
       If INTVAR_Index <> 1 Then
        …
           If INTVAR_StartVW = True Then
               If INTVAR_StartWaarde < INTVAR_Bovengrens Then
                   If INTVAR_StartWaarde < INTVAR_Ondergrens Then
                       ….
                       RaiseEvent AlarmWeger(True, 6)
                       RaiseEvent StartenWeger(True)
                   Else
                       shpAlarm.FillColor = vbRed
                       RaiseEvent AlarmWeger(True, 3)
                   End If
….
End Function
                                                                                           39


De functies die in de ActiveX component gebruikt worden zijn als “Public” gedeclareerd.
Hierdoor worden ook de functies zichtbaar in het het hoofdprogramma.




                                        Figuur 6.2.2

De weger heeft een aantal voorwaarden voor de afweging mag starten. De eigenschappen
“Bovengrens” en “Ondergrens” bepalen of er wel of niet een automatische tarrering moet
plaats vinden. Als er aan al de voorwaarden zijn voldaan kan de afweging pas starten. De
ActiveX component kan zelf geen sturing doen met de PLC. Enkel het hoofdprogramma kan
dit. Daarom wordt er gewerkt met events.


6.2.3      Gebruik van events

Zoals al reeds gezegd kan een ActiveX component events terugsturen naar het
hoofdprogramma. Al de events die er gebruikt worden zijn bovenaan in de ActiveX
component gedeclareerd. Zo is er een event voor het starten van de afweging, een event voor
het starten met grof af te wegen, een event voor alarmen, … Een aantal zijn hier weergegeven.

Event GrofWeger(Grof As Boolean)
Event FijnWeger(Fijn As Boolean)
Event AlarmWeger(Alarm As Boolean, AlarmNr As Integer)
Event PauzeWeger(Pauze As Boolean, PHandmatig As Boolean)
Event LeegWeger(Leeg As Boolean)

Bij het declareren van de events wordt er bepaald welke waarde er mee kan gegeven worden.
Bij het event GrofWeger is dit bijvoorbeeld enkel een True of False waarde maar bij het event
AlarmWeger wordt er ook nog een alarmnr meegegeven. Het hoofdprogramma bepaalt dan
wat er met die waarde moet gebeuren.
                                                                                        40


In de ActiveX component worden de events opgeroepen met de code RaiseEvent. In
onderstaande figuur is het RaiseEvent van het starten van de groffe afweging te zien.




                                         Figuur 6.2.3

De waarde “True” zal meegegeven worden en het hoofdprogramma zal direct een verdere
verwerking doen van deze waarde. De ActiveX component kan geen sturing doen van de PLC
en daarom gebeurt dit in het hoofdprogramma. In figuur 6.2.4 is te zien dat het
hoofdprogramma een waarde zal schrijven naar het OPC item van de PLC.




                                         Figuur 6.2.4
                                                                                                  41


7          OPC

7.1        Wat is OPC?
OPC staat voor Object Linking and Embedding for Process Control. Met OPC kunnen we
objecten zoals een PC, PLC, omvormers, transmitters, enz met elkaar gaan verbinden om zo
een proces te controleren of te sturen.

OPC is een open industriestandaard gecreëerd in een samenwerking tussen Microsoft en de
wereldleidende fabrikanten van automatisering, hardware en software. De OPC standaard is
gebaseerd op de Microsoft OLE COM en DCOM technologieën. Deze technologieën leverden
de basis voor de software toepassingen in de automatiseringsindustrie. Via OPC is het
mogelijk om te communiceren tussen de verschillende soorten controllers en systemen in
allerhande technologische processen.


7.2        Waarom een OPC standaard?
Door het toenemende gebruik van gedigitaliseerde automatisering ontstond er een groot
probleem om al de verschillende componenten met elkaar te laten communiceren.

Vóór de OPC standaard had iedere fabrikant een eigen driver voor zijn hardware apparaat.
Doordat deze drivers onafhankelijk van elkaar werden ontworpen, ontstonden er conflicten
tussen drivers van verschillende fabrikanten. Niet alle hardware werd ondersteund door deze
drivers en het wijzigen van hardware kon dan ook grote gevolgen hebben in het proces. Ook
onstonden er conflicten bij het toegang verkrijgen tot hardware apparaten. Twee verschillende
softwarepakketten kunnen niet tergelijkertijd hetzelfde apparaat aanspreken omdat ze gebruik
maken van verschillende drivers.


                   Toepassing A                 Toepassing B                Toepassing C




                Software Driver 1   Software Driver 2   Software Driver 3     Software Driver 4




                                               Figuur 7.2.1
                                                                                          42


OPC optimaliseert de communicatie tussen de hardware- en softwaretoepassingen door
gebruik te maken van een algemene standaard. Door deze standaard wordt het verzamelen van
data en de communicatie met iedere client onafhankelijk van de fabrikant. Ook zal het gebruik
van plug and play apparaten in een proces gemakkelijker worden.

                      OPC Client              OPC Client                 OPC Client
                     Toepassing A            Toepassing B               Toepassing C

                          OPC                      OPC                     OPC




                       OPC             OPC                  OPC               OPC

                    OPC Server 1    OPC Server 2         OPC Server 3      OPC Server 4




                                           Figuur 7.2.2

De ontwikkeling van de juiste driver voor het juiste apparaat hoeft nu niet meer omdat met
één OPC server alle OPC clients kunnen benaderd worden. De hardware fabrikanten moeten
slechts nog één set softwarecomponenten gebruiken bij het ontwikkelen van een
hardwareproduct.


7.3        OPC server en OPC client
OPC heeft een aantal mogelijkheden naar de gebruiker toe:

      Online data access: Real-time gegevens verzamelen van allerhande sensoren
       (temperatuur, druk, debiet, ... )
      Historical data access: Controleren van parameters
       (klep open of sluiten, start, stop, ... )
      Alarm and event handling: Informatie opvragen over de status van hardware
       verbindingen of subsystemen

De data uitwisseling binnen de OPC standaard is gebaseerd op het algemeen aangenomen en
vastgelegd client/server schema. Dit biedt de mogelijkheid om meerdere clients van
verschillende fabrikanten te verbinden met één enkele server. Op gelijkaardige manier kunnen
meerder servers van verschillende fabrikanten communiceren met één enkele client.

We onderscheiden dus een OPC server en een OPC client. Een OPC server is een programma
dat autonoom draait op een PC met een specifieke taak. Een voorbeeld hiervan is een
verbinding maken met een PLC om zo zijn gegevens te gaan lezen of te gaan schrijven.
Een OPC client is eveneens een programma dat draait op een PC of op een andere PC
verbonden met de PC waar de server zich bevindt. De OPC client heeft als taak de te
schrijven gegevens aan de OPC server aan te bieden en de te lezen gegevens bij de OPC
server op te vragen.
                                                                                                 43


7.3.1       OPC server initialisatie via Simatic Net

Zoals eerder gezegd gaat men voor de nieuwe weegcomputers gebruik maken van een
industriële PC van Beckhoff. Op de PC wordt er met behulp van het softwareprogramma
Simatic Net van Siemens een lokale server gezet. In deze PC zullen er twee CP5613
netwerkkaarten gestoken worden. Eén netwerkkaart zal zorgen voor de communicatie met de
verschillende loadcellen, de andere netwerkaart zorgt voor de communicatie met de PLC. In
de eigenlijke opstelling zal elke weegcomputer zijn eigen loadcell Profibus netwerk hebben.
Dit heeft als voordeel dat, mochten er problemen voordoen, er direct kan overgaan worden op
de andere weegcomputer. De Profibuskabel hoeft dan enkel aan de andere weegcomputer
gekoppeld te worden.

Bij de installatie van het softwarepakket Simatec Net gaan we eerst de verschillende
netwerkkaarten moeten initialiseren. Let op, dit kan enkel en alleen bij de eerste keer dat de
PC terug herstart is na het installeren van de software. Hieronder volgt een
‘stap voor stap’ uitleg voor de initialisatie van de netwerkkaarten. De industriële PC die wij
tot onze beschikking hadden, had ook nog een 3Com EtherLink netwerkkaart voor de
connectie met het bedrijfsnetwerk.

Bij het heropstarten van de PC wordt de commissioning Wizard van Simantec Net
automatisch gestart. De initialisatie gebeurt in 9 stappen en wordt verduidelijkt aan de hand
van de volgende figuren. Het aantal stappen hangt wel af van het aantal netwerkkaarten.

De eerste stap is een informatiescherm dat duidelijk maakt wat men gaat doen. Klik “NEXT”
om verder te gaan met de initialisatie.




                            Figuur 7.3.1 Stap 1: Informatiescherm
                                                                                            44


Stap 2 is de initialisatie van de 3Com EtherLink kaart. Deze wordt enkel gebruikt voor het
bedrijfnetwerk en moet dus niet verder geïnitialiseerd worden. We gebruiken de netwerkkaart
dus enkel voor PG operation. Dit is de normale werking van een netwerkkaart.




               Figuur 7.3.2 Stap 2: Initialisatie van de 3Com EtherLink kaart

De volgende stap is het initialiseren van de eerste CP5613 kaart. Deze netwerkkaart gaat men
gebruiken voor communicatie met de PLC. Als modulenaam is hier dan ook voor de
duidelijkheid PLC genomen. Het stationadres is niet zo belangrijk in de initialisatie maar men
neemt voor beide kaarten best een ander adres, hier is dit adres 0. Het busprofiel laat men op
“Universal” staan. De verbindingssnelheid of de transmission rate laat men voorlopig op 1,5
Mbps staan wat voldoende is voor de testopstelling die we gebruiken. In het eigenlijke
netwerk zal dit een verbindingssnelheid worden van 12 Mbps. De index van de netwerkkaart
is wel belangrijk. Het is belangrijk dat de OPC server op index 1 staat en de andere
componenten op de volgende willekeurige indexen. Voor de PLC en de loadcell kiezen we
respectievelijk index 2 en index 3.
                                                                                          45




                Figuur 7.3.3 Stap 3: Initialisatie van de PLC CP5613 kaart

De tweede CP5613 kaart wordt gebruikt voor de communicatie met de loadcell en krijgt dus
als modulenaam loadcell. De verbindingssnelheid en het bus profiel blijven hetzelfde, enkel
het stationadres en de index zijn verschillend met de vorige kaart.




               Figuur 7.3.4 Stap 4: Initialisatie van de loadcell CP5613 kaart
                                                                                            46


In de vijfde stap wordt de OPC server geïnitialiseerd. De naam van de server is
“OPC.SimaticNet”, de index van de server is 1. De index van de PLC-kaart is nu op 2 gezet
en bij de loadcell-kaart is de index op 3 gezet.




                    Figuur 7.3.5 Stap 5: Initialisatie van de OPC server

De moduleconfiguratie zal nu bewaard worden zodat men verder kan gaan met de volgende
stap.




                     Figuur 7.3.6 Bewaren van de moduleconfiguratie

Door op de knop “PC Station Wizard” te klikken, kan men lokaal de PC gaan configureren.
De OPC server moet weten welke componenten er zich in het netwerk bevinden en waar.
                                                                                          47




                       Figuur 7.3.7 Configuratie van de lokale PC

Het volgende scherm geeft een aantal keuzemogelijkheden voor de gebruiker maar men laat
dit staan op “Change local settings” en klikt op volgende.




                                      Figuur 7.3.8
                                                                                               48


Bij het volgende scherm heeft men de mogelijkheid om de hardwareconfiguratie te wijzigen
of veranderingen aan te brengen in de netwerkconnecties. Aangezien we met een nieuwe
installatie bezig zijn, kan er nog geen netwerkconfiguratie zijn. We klikken op voltooien en
komen in de hardwareconfiguratie terecht.




                                        Figuur 7.3.9

In de volgende figuur zijn de twee profibusnetwerken zichtbaar, beiden hebben ze al een
component op hun netwerk hangen. Momenteel is dit een S7 PLC voor het PLC-netwerk,
maar in de eigenlijke opstelling zal dit een S5 PLC zijn. Voor het loadcell-netwerk is dit de
interfacekaart PR1721. De loadcell heeft deze interfacekaart nodig om met het
profibusnetwerk te communiceren. Bij de PLC module moet men ook nog een aantal
bijkomende componenten toevoegen om een juiste werking te bekomen. Voordat deze
componenten kunnen toegevoegd worden op het netwerk moet er wel voor gezorgd worden
dat Simatic Net de juiste GSD bestanden heeft. Deze GSD bestanden bevatten de
eigenschappen van die component. Een aantal eigenschappen zijn de toestel-identificatie, de
aanpasbare parameters, het overeenkomende data type,… Mochten deze componenten niet
terug te vinden zijn in Simatic Net kan men ze terugvinden op de bijgevoegde diskette of op
de site van de fabrikant. Dit GSD bestand moet nog geïnstalleerd worden en dit doen we door
in Simatic Net in het menu Options op Install New GSD te klikken. De juiste componenten
kunnen nu wel naar de juiste plaats gesleept worden.
                                                                                        49




                                      Figuur 7.3.10

De configuratie kan nu gedownload worden naar de lokale OPC server. Indien de configuratie
overeenkomt met de eigenlijke hardware mogen er zich geen problemen meer voordoen. Door
het programma nu af te sluiten gaat men verder met de Commissioning Wizard. Bij de
volgende stap is er nog de vraag voor het gebruik van een symbool maar dit wordt niet
gebruikt en men klikt dan ook op “Next”.




                                      Figuur 7.3.11
                                                                                          50


De laatste stap toont enkel en alleen nog dat het configureren van de OPC server en de
netwerkkaarten klaar is. Deze laatste drie stappen van de Commissioning Wizard kunnen nog
wel steeds terug opgeroepen worden zodat men de hardwareconfiguratie nog steeds kan
veranderen.




                                       Figuur 7.3.12

Als de Commissioning Wizard succesvol is beëindigd zal de Configuration Console
automatisch starten. Hier zijn er nog een aantal mogelijkheden die de gebruiker kunnen
helpen bij de configuratie. Via OPC Settings kunnen een aantal eigenschappen van de OPC
server bepaald worden, zoals het protocol dat de server moet gebruiken maar ook het sluiten
van de OPC server is mogelijk.
                                                                                        51


De OPC server op de industriële PC van Beckhoff zou nu zonder problemen de uitwendige
componenten moeten vinden en deze moeten plaatsen op het juiste adres. Of dit zo is vind
men onder Bus Node bij de CP5613 module. In figuur 7.3.13 zijn de actieve en passieve
componenten van het loadcell-netwerk te zien. Op Bus Node 1 zit de actieve OPC server, op
Bus Node 3 zit de passieve loadcell die gebruikt is in de testopstelling.




                                      Figuur 7.3.13

Als de Configuration Console de componenten nog steeds niet vindt, moeten de busadressen
op de componenten nagekeken worden. Bij de S7 PLC moeten er enkel schakelaars omgezet
worden om het juiste busadres te bekomen. Bij de loadcell moet er gebruik gemaakt worden
van Hyperterminal die via Windows kan opgezet worden. Via een seriële kabel, waarvan Rx
en Tx zijn omgewisseld, kan een hoofdmenu opgeroepen worden. In het menu Fieldbus kan
men nu het protocol en het busadres veranderen. Een seriële kabel waarvan Rx en Tx zijn
omgewisseld, word ook wel eens aangeduid als een nulmodemkabel.
                                                                                          52



7.3.2      OPC client in Visual Basic

Het programma van de weegcomputers is een OPC client in Visual Basic. Hiervoor moet er
eerst gezorgd worden dat de communicatie tussen de client en de OPC server mogelijk is. Dit
wordt gedaan door middel van de “OPC DAAutomation 2.0” plug-in van Siemens. In het
menu Project en kiezen daar References. De plug-in kan nu toegevoegd worden aan het
project.




                                       Figuur 7.3.14

Het toevoegen van deze plug-in is niet voldoende voor de communicatie met de OPC server.
In het Visual Basic project moeten er nog een initialisatieprocedure volgen die het programma
gaat uitvoeren wanneer het opstart.

Private Sub Verbinden_met_Server()
 On Error GoTo ErrorHandler

 Set Server_LC = New OPCServer
 Server_LC.Connect (SERVERNAME_LoadCells), "127.0.0.1"
 'Call Server_LC.Connect(SERVERNAME_LoadCells, "10.168.10.201")

 Set Server_PLC = New OPCServer
 Server_PLC.Connect (SERVERNAME_PLC), "127.0.0.1"
 'Call Server_PLC.Connect(SERVERNAME_PLC, "10.168.10.201")

 ConnectedToServer = True
 Exit Sub
ErrorHandler:
 Save_Error "OPC: Fout bij het verbinden met OPC Server!"
 ConnectedToServer = False
End Sub

De bovenstaande code toont hoe het programma een connectie maakt met de OPC server. Er
zijn twee connecties die tot stand moeten komen. De connectie met het loadcell-netwerk en de
                                                                                              53


connectie met het PLC-netwerk. Als de OPC client draait op dezelfde PC waar de server
opstaat kan er gebruik gemaakt worden van het loopback IP adres 127.0.0.1. Als dit niet het
geval is moet men de Call functie gebruiken. Ook moet het IP adres van de server PC
ingevuld worden.

De connectie is nu gemaakt en de groepen kunnen nu toegevoegd worden aan de OPC server.
Voor elke unit wordt er een groep aangemaakt en worden er een aantal eigenschappen van de
groep vastgelegd. De onderstaande code toont het aanmaken van de eigenschappen van
groep 1.

 ' Toevoegen van Groep 1 aan de Server
 ' Groep 1 wordt gebruikt voor Weger 1
 ' --------------------------------------------------------------------
 ErrorPositie = 0
 Set Groep1 = Server_LC.OPCGroups.Add("Weger 1")
 Groep1.ClientHandle = 1
 Groep1.DeadBand = 1
 Groep1.IsActive = False
 Groep1.LocaleID = English
 Groep1.UpdateRate = 5
 Groep1.IsSubscribed = True

Aan elke groep worden ook nog een aantal items toegevoegd, maar het belangrijkste
onderdeel van de dataverwerking is het datachange-event. Dit event vindt plaats als een
waarde of de kwaliteit van die waarde voor een item binnen de groep gewijzigd wordt. Het
aantal events dat plaatsvindt is wel afhankelijk van de verbindingssnelheid die vooraf is
ingesteld bij de initialisatie van de netwerkkaarten. Het datachange-event heeft een aantal
eigenschappen waar er op kan gecontroleerd worden of waar er data kan uitgehaald worden.

De eigenschap Qualities() is een array die de kwaliteit van de gewijzigde data bevat. Met deze
eigenschap gaat een controle gedaan worden op de kwaliteit van de veranderde data. Als de
kwaliteit niet voldoet zal via een formulier een melding gegeven worden van een
communicatiefout. De AD-waarde van de loadcell wordt binair binnengelezen in drie bytes.
Om het exacte gewicht te bepalen moeten deze drie bytes omgezet worden naar één waarde
dat naar de ActiveX component kan gestuurd worden. Met onderstaande formule wordt de
exacte waarde bepaald.

      AD-waarde = IngangsByte1 × 2562 + IngangsByte2 × 2561 + IngangsByte3 × 2560

Om direct het juiste gewicht naar de ActiveX component door te sturen moet ook rekening
gehouden worden met het leeg gewicht van de weegschaal en de AD-factor. Deze waarden
worden bekomen bij het ijken van de weegschaal. Zodoende wordt de volledige berekening
van het gewicht

Gewicht =(IngangsByte1×2562 + IngangsByte2×2561 + IngangsByte3) – AD Leeg Gewicht
                                        AD-factor
                                                                                            54


De AD-factor wordt zoals gezegd bepaald bij het ijken van de weegschaal. Het AD leeg
gewicht is de waarde die de weegschaal weergeeft bij een lege weegschaal. Aan de hand van
een ijkgewicht kan het AD- ijkgewicht bepaald worden. Het AD-ijkgewicht is de waarde die
de weegschaal weergeeft bij het gekende ijkgewicht. De formule wordt dan:

                    AD-factor = (AD-ijkgewicht) – (AD Leeg gewicht)
                                            Ijkgewicht

Het volledige DataChange-event van Weger 1 is hieronder te zien. De data wordt ingelezen,
het exacte gewicht wordt bepaald en doorgestuurt naar de ISTChange functie van de juiste
ActiveX component.

Call frmOverzicht.Weger(gintUnitIndex).ISTChange(((Receive(0).IngangsByte1 * 256 ^ 2 +
Private Sub Groep1_DataChange(ByVal TransactionID As Long, ByVal NumItems As
Long, ClientHandles() As Long, ItemValues() As Variant, Qualities() As Long,
TimeStamps() As Date)
 Dim Teller As Integer

 For Teller = 1 To NumItems
 On Error Resume Next
  Select Case ClientHandles(Teller)
   Case 1: Receive(0).UitgangsByte4 = Groep1.OPCItems(1).Value
   Case 2: Receive(0).IngangsByte1 = Groep1.OPCItems(2).Value
   Case 3: Receive(0).IngangsByte2 = Groep1.OPCItems(3).Value
   Case 4: Receive(0).IngangsByte3 = Groep1.OPCItems(4).Value
   Case 5: Receive(0).SlvStatus = Groep1.OPCItems(5).Value
       If Receive(0).SlvStatus <> "READY" Then
         frmOPC_Global.PLC_Groep2.OPCItems(1).Write (0)
         frmMededeling.lblMessage.Caption = "communicatiefout"
          Load frmMededeling
          frmMededeling.Show vbModal
       End If
   Case 6: Receive(0).Status = Groep1.OPCItems(6).Value

    If Qualities(1) <> 192 Then
      frmOPC_Global.PLC_Groep2.OPCItems(1).Write (0)
      frmMededeling.lblMessage.Caption = "communicatiefout"
      Load frmMededeling
      frmMededeling.Show vbModal
    End If
  End Select
 Next Teller

Receive(0).IngangsByte2 * 256 ^ 1 + Receive(0).IngangsByte3 * 256 ^ 0) -
Value_Change(0).AD_Leeg) / Value_Change(0).ADfactor)
End Sub
                                                                                              55


8          GEGEVENSOPSLAG EN DYNAMIEK VAN HET PROGRAMMA

8.1        Het gebruik van databases in Visual Basic
Het gebruik van een database in een programma is zeer aan te raden. Het voordeel van een
database is dat de tekst van elke knop, label, … aanpasbaar is zonder dat er in de code ook
maar iets gewijzigd hoeft te worden. Een ander voordeel is dat we mits kleine aanpassingen
aan het programma ook de taal kunnen wijzigen. Dit is handig moest het programma ooit in
het buitenland gebruikt wordt.

Elke tekst die voorkomt haalt het programma uit de database. Om een database te gebruiken
zijn er 2 parameters nodig. Het programma selecteert de juiste tekst aan de hand van het
kolomnummer en de recordnummer. Het kolomnummer geeft de gebruikte taal weer en de
recordnummer geeft de gekozen tekst weer. Om de koppeling met de database op te zetten
hebben we gebruik gemaakt van “Microsoft DAO 3.6 Object Library”. De afkorting DAO
staat voor Data Access Object.




                                        Figuur 8.1.1

Let wel op dat Access 2000 of hoger op je computer geïnstalleerd is, dit omdat de DAO 3.6
enkel Access 2000 of hoger ondersteunt.

Om de database in het programma te kunnen gebruiken moet de database op de achtergrond
geopend worden. Dit gebeurt met onderstaande code die we aanroepen bij het opstarten van
het programma.

Bij het opstarten van het programma worden de variabele die gedurende het hele programma
ongewijzigd blijft gedeclareerd. Voor een goed en eenvoudig gebruik van de database
volstaan onderstaande variabelen.
                                                                                          56


Public wsl As Workspace                             'Variabele voor de werkruimte
Public dbl As Database                              'Variabele voor de database
Public rsl As Recordset                            'Variabele voor de recordset
Public Const LANGUAGEFILE = "Taal.mdb"               'Variabele voor de naam van de database
Public gstrTaal As String                           'Variable voor het opslaan van de taal

Onderstaande subroutine wordt aangeroepen bij het laden van het overzichtformulier, bij het
opstarten dus. Aan de hand van de actieve taal wordt nu in de database de juiste kolom
geselecteerd.

Public Sub OpenLanguageDatabase()
 Set wsl = CreateWorkspace("wsLanguage", "admin", "", dbUseJet)
 Set dbl = wsl.OpenDatabase(Path + "\" + LANGUAGEFILE, , True)
 Set rsl = dbl.TableDefs("Taal").OpenRecordset(dbOpenTable)
 rsl.Index = "PrimaryKey"
End Sub

Bij het laden van eender welk formulier zullen alle knoppen, labels,… zijn desbetreffende
tekst toegewezen krijgen. Dit toewijzen gebeurt met onderstaande code, die aangroepen wordt
door volgende regel: cmdOK.Caption = DatabaseText(210)

Dit stukje code geeft aan dat er op de OK knop de tekst “OK”, die zich op nummer 210 in de
database bevindt, gezet moet worden.

Onderstaande code wordt aangeroepen om de juiste tekst uit de database te selecteren. Eerst
wordt er nagegaan welke taal (Engels of Nederlands) er geselecteerd is. Vervolgens wordt de
tekst overeenkomstig met de nummer teruggeven aan het programma en in de caption van de
knop gezet.

Public Function DatabaseText(nr As Integer) As String
On Error GoTo TaalError

rsl.Seek "=", nr
If UCase(gstrTaal) = "NEDERLANDS" Then
   DatabaseText = rsl!nederlands
End If
If UCase(gstrTaal) = "ENGLISH" Then
   DatabaseText = rsl!engels
End If

Exit Function

TaalError:
  DatabaseText = "???"
End Function
                                                                                              57



8.2         Gebruik van bestanden in Visual Basic

Voor een goede werking van het programma is het gebruik van bestanden vereist. Als het
programma in werking is, worden de gegevens bijgehouden in het vluchtige geheugen (RAM)
Wanneer we na het afsluiten of het crachen van het programma bepaalde gegevens terug
willen opvragen, dan moeten deze gegevens bewaard worden. De makkelijkste oplossing om
dit te verwezenlijken is gebruik te maken van bestanden. De bestanden kunnen op eender
welke plaats bijgehouden worden, vb op de harde schijf van de weegcomputer. In een groot
bedrijf zullen de bestanden echter op een server opgeslagen worden zodat van op eender
welke plaats de bestanden kunnen geraadpleegd worden.


8.2.1       De soorten bestanden

Visual Basic ondersteunt verschillende bestandstypes voor het opslaan van gegevens. De
Binary bestanden die gebruikt werden in het programma zijn tekstbestanden en record
georiënteerde bestanden. Elk hebben ze hun eigen voor- en nadelen.

U kunt de waarden uit deze bestanden dan wijzigen zonder dat het programma opnieuw moet
compileren. Dit biedt ons dus enorme voordelen.


8.2.1.1     Tekstbestanden

Gewone tekstbestanden kunnen we misschien beter omschrijven als ongestructureerde
sequentiële bestanden. Dit wil zeggen dat de tekst die hierin geschreven wordt gewoon achter
elkaar bewaard wordt. We kunnen in dit soort bestanden niet naar een bepaalde locatie
springen, er is geen enkele vaste structuur in dit soort bestanden. Je kan de tekst op elke
willekeurige regel wegschrijven of opvragen. Een enorm nadeel van dit soort bestanden is dat
het ingewikkeld kan worden als er veel tekst opgeslagen moet worden. Als je deze tekst later
terug wilt gaan gebruiken, moet je weten welk woord er op welke regel staat. Bij al te grote
bestanden wordt het onmogelijk om telkens de regels te gaan tellen. Voordelen van dit soort
bestanden is dan weer dat Visual basic dit standaard ondersteunt. Er is dus geen bijkomende
DLL nodig om deze bestanden te kunnen bewerken. Een tekstbestand kan eenvoudig
nagekeken worden in kladblok.

Een INI-bestand is in feite een Binary bestand met een eenvoudige structuur die het mogelijk
maakt bepaalde stukken informatie op te slaan en op te halen. De bestandextensie is “.ini”,
een afkorting van initialisering. Informatie in een INI-bestand opslaan is een alternatief voor
waarden vast in een programma coderen. U kunt INI-bestanden bekijken en bewerken met
Kladblok of een andere teksteditor.

Een INI-bestand bestaat uit drie delen: sectie, sleutels en waarden. De sectie staat altijd
tussen [ ]. Dit om aan te geven dat de sectie begint. Ook al zou je maar 1 sectie nodig hebben.
Deze is verplicht. Zonder de sectie, kun je weinig met je ini-file doen. We maken gebruik van
de sectienaam als we naar een bepaalde plaats in het bestand willen springen. Om verwarring
tijdens het programmeren te vermijden wordt de sectienaam meestal doelgericht gekozen. Op
de volgende regel staat dan de sleutel. De sleutel bevat eigenlijk de waarde die we moeten
hebben. Het is de 2e verwijzing naar de gegevens. Sectie en sleutel vormen dus eigenlijk het
                                                                                              58


adres van de gegevens, net zoals gemeente en straat het adres voor een huis is. De volgorde
van de secties en sleutels in een bestand is onbelangrijk, omdat de sectie- en sleutelnamen
slechts naar één waarde wijzen.

Eén van de redenen dat INI-bestanden zo gemakkelijk te gebruiken zijn, is dat u zich geen
zorgen hoeft te maken over het maken en openen van het bestand en niet naar de juiste regel
hoeft te zoeken.Voordat u met INI-bestanden kunt werken, moet u twee API-functies van
Windows declareren en er ‘wrapper’-functies voor maken. Deze functie’s kunt u nu
aanroepen om te lezen en te schrijven naar het INI-bestand. In onderstaande figuur zie je hoe
de structuur van een ini-bestand eruit ziet.




                                         Figuur 8.2.1


8.2.1.2     Record bestanden

Een gewoon sequentieel bestand heeft geen enkele structuur. In feite wordt de structuur
bepaald door de code die het bestand leest en niet door het bestand zelf. Dit is prima uit het
oogpunt van leesbaarheid, maar het beperkt de programmeur wel om te zoeken in dit soort
bestanden. Een nieuwe manier om structuur in uw bestand in te brengen is het definieëren van
records. Zo kan je dan later naar een bepaald record in uw bestand springen.
De rapportering van de units wordt gedaan via record bestanden. We moeten zelf in Visual
Basic een recordtype aanmaken om de rapportering van de units mogelijk te maken. Een
nadeel van deze bestanden is dat ze op het eerste zicht niet leesbaar zijn. Visual Basic kent de
structuur wel, maar er zelf een structuur in zoeken is iets moeilijker.

Een enorm voordeel is dus dat we kunnen gaan zoeken in dit soort van bestanden. Een ander
voordeel is dat dit soort bestanden weinig geheugen gebruiken. In ons programma hebben we
recordfiles gebruikt voor het opslaan van de rapporten van de verschillende wegers.
                                                                                           59


9          GEBRUIKTE      TEKSTBESTANDEN

We hebben getracht om van elk type tekstbestanden hun voordelen te benutten. Zo zijn de
rapporten, die weinig bekeken worden, opgeslagen als recordbestanden. Als er een simpele
structuur aanwezig is, maken we gebruik van sequentiële bestanden. INI-bestanden worden
dan op hun beurt weer gebruikt voor het opslaan van de naloop. Dit omdat er hier vershillende
componenten aanwezig kunnen zijn en om de mogelijkheid van het springen naar
verschillende sectoren te benutten.


9.1        Parameterbestanden (sequentieel bestand)
Omdat deze ten allen tijden dezelfde vorm hebben, worden de parameters van de
verschillende meetsystemen opgeslagen in gewone tekstbestanden. Dit wil dus zeggen dat de
volgorde en positie van de gegevens steeds dezelfde blijven. Deze volgorde is zeer belangrijk
omdat elke parameter gekoppeld wordt aan zijn overeenkomstige variabele. In het programma
zijn de “.urp” en “.bak” bestanden voorbeelden van dit soort bestanden. De urp-bestanden
bevatten de huidige parameters en de bak bestanden bevatten nog de vorige parameters. Deze
extensies zijn zelf door ons gekozen.

In onderstaand voorbeeld wordt het urp-bestand van Weger 1 weergegeven. Alle parameters
worden netjes onder elkaar geschreven. Spaties in het tekstdocument moeten eveneens in
rekening gebracht worden bij het lezen en schrijven van het document.




                                        Figuur 9.1.1
                                                                                            60


   FileName = Path & "\" & frmParameter.lblNaam.Caption & ".urp"
   If Dir(file) = "" Then
      Open FileName For Random As #nfile
      Close #nfile
   End If

De naam van het document en de plaats waar het opgeslagen is, wordt bepaald door de
filename. De filename bestaat uit 3 delen. Het eerste deel is het pad waar het opgeslagen moet
worden: Vb C:\Weegcomputer\Bestanden. Het 2e deel is de naam van het bestand en hangt af
van welk meetsysteem we aan het parametreren zijn: vb Weger 1. Het laatste deel is de
extensie die het bestand meekrijgt. Bij de parameterbestanden in het programma is dit telkens
de extensie “.urp”. De totale filename waar het bestand opgeslagen wordt is dus:
C:\Weegcomputer\Bestanden\Weger 1.urp. Als het bestand nog niet bestaat, dan wordt een
nieuw leeg bestand met deze filename aangemaakt.

Open FileName For Output As #nfile
     Print #nfile, frmParameter.lblNaam.Caption
     Print #nfile, frmParameter.lblSysteem.Caption
     Print #nfile, Unitpar(UnitTeller).Eenheid
     Print #nfile, Unitpar(UnitTeller).Nauwkeurigheid
     If Unitpar(UnitTeller).MeetSysteem = DatabaseText(204) Then
         Print #nfile, Unitpar(UnitTeller).Maxinhoud
         Print #nfile, Unitpar(UnitTeller).Bovengrens
         Print #nfile, Unitpar(UnitTeller).Ondergrens
         Print #nfile, Unitpar(UnitTeller).Negatiefgrens
         Print #nfile, Unitpar(UnitTeller).Noisemarge
         Print #nfile, Unitpar(UnitTeller).Stootmarge
         Print #nfile, Unitpar(UnitTeller).LeegloopBijVol
         Print #nfile, Unitpar(UnitTeller).Pauzetijd
         Print #nfile, Unitpar(UnitTeller).Aantalcomp
         Print #nfile, Unitpar(UnitTeller).WatchdogGrof
         Print #nfile, Unitpar(UnitTeller).WatchdogFijn
         For SaveTeller = 0 To Unitpar(UnitTeller).Aantalcomp – 1
            Print #nfile, Unitpar(UnitTeller).ComponentNaam(SaveTeller)
            Print #nfile, Unitpar(UnitTeller).Fijnwaarde(SaveTeller)
            Print #nfile, Unitpar(UnitTeller).Naloop(SaveTeller)
            Print #nfile, Unitpar(UnitTeller).N_Systeem(SaveTeller)
            Print #nfile, Unitpar(UnitTeller).P_Systeem(SaveTeller)
         Next
         Print #nfile,
         Print #nfile, "--------Kalibratie gegevens-------"
         Print #nfile, Value_Change(UnitTeller - 1).AD_Leeg
         Print #nfile, Value_Change(UnitTeller - 1).AD_Ijkgewicht
         Print #nfile, Value_Change(UnitTeller - 1).Adfactor
     End If

In de bovenstaande code zien we dat het opslaan in het bestand nogal wat code in beslag
neemt. We moeten elke regel afzonderlijk in de code gaan weergeven. Bij het uitlezen van de
parameters moet deze structuur, zoals gebruikt bij het wegschrijven, juist hetzelfde zijn.
                                                                                         61


9.2        Rapport bestanden (Record bestand)
Van elke afweging wordt er een rapport opgeslagen. Omdat er veel rapporten gegenereerd
worden en deze veel ruimte in beslag nemen, worden deze bewaard als recordbestanden.
Recordbestanden lezen in kladblok is niet zo gemakkelijk. We kunnen dit natuurlijk wel
uitlezen als we de juiste code gebruiken.




                                        Figuur 9.2.1

file = strPath + "\" + Datum + ".log"
     If Dir(file) = "" Then
       Open file For Random As #nfile
       Rapport.TBI = 1
       Put #nfile, 1, Rapport
       Close #nfile
     End If

   Open file For Random As #nfile
    Get #nfile, 1, Rapport
    RecordTel = Rapport.TBI
    'Rapport.CompNr = INTVAR_CompNr(INTVAR_TellerComp)
    Rapport.UnitNaam = INTVAR_UnitNaam
    Rapport.Soll = INTVAR_SOLL(INTVAR_TBI, INTVAR_TellerComp)
    Rapport.IST = INTVAR_SOLL(INTVAR_TBI, INTVAR_TellerComp) +
INTVAR_NaloopArray(INTVAR_TBI, INTVAR_TellerComp)
    Rapport.Tank = INTVAR_Tanknummer
    Rapport.TBI = INTVAR_TBI
    Rapport.TBS = INTVAR_TBS
    Rapport.CompNaam = INTVAR_Naam(INTVAR_TellerComp)
    Rapport.Uur = Now()
    Rapport.Recept = INTVAR_Receptnummer
    Put #nfile, RecordTel + 1, Rapport
    Rapport.TBI = RecordTel + 1
    Put #nfile, 1, Rapport
    Close #nfile

Elke dag worden er rapporten gecreëerd, de rapporten hebben dan ook de datum van productie
als naam. Als er een nieuwe dag begint wordt er na de eerste productie direct een nieuw
rapport aangemaakt. Elke meetsysteem heeft zo zijn eigen rapporten. Het enige wat we
moeten bijhouden bij het schrijven van de rapporten is de record waarin we ons bevinden. In
ons voorbeeld hierboven wordt de plaats bijgehouden in Rapport.TBI.
                                                                                             62


9.3         Naloopbestanden (INI-bestand)
In het programma maken we gebruik van INI-bestanden voor de initialisatie van de
weecomputer, de units, de taal en de OPC declaraties. In de INI-bestanden voor de units staan
er een aantal parameters die elke unit nodig heeft voor een goede werking. Hier zijn alle
parameters vast en moeten niet vanuit het programma gewijzigd worden. We lezen deze
parameters enkel uit de ini-files.

De nalopen van elke unit worden ook bewaard in INI-bestanden. Via een Inifile-editor kunnen
we zelf de juiste nalopen gaan bewaren. Een nadeel van dit soort bestand is dat we hier een
speciale OCX voor nodig hebben. Een enorm voordeel is dan wel weer dat we zelf gegevens
kunnen wegschrijven, secties kunnen aanmaken, enz.




                                        Figuur 9.3.1

Aan de hand van de code wordt het bewerken van een ini-bestand duidelijk. Al deze
bestanden hebben de extensie “.nlp”. Het is niet de bedoeling dat deze bestanden naast het
programma geopend worden. Deze bestanden worden enkel in code gelezen en aangepast.

Zoals in bovenstaande voorbeelden bepaald de variabele “file” de plaats waar de gegevens
gestockeerd worden.

file = strPath + "\" + "Naloop.nlp"
     IniNaloop.file = file
                                                                                          63


Onderstaande code is zeer belangrijk voor de goede werking van het programma. Deze code
zorgt ervoor dat niet telkens de vorige gegevens overschreven worden, daar het programma
telkens terug bij 0 begint. We houden daarom bij waar het progrmma het laatst gegevens heeft
weggeschreven. Als de sectie wordt aangemaakt, beginnen we bij 01 te schrijven.

      strSectie = IniNaloop.ReadFromIniFile("water", Format(0, "00"))
      If strSectie = "" Then
               strSectie = 1
      End If
      intSectie = CInt(strSectie)

Vervolgens schrijven we voor elke component de nalopen weg in het bestand. Wanneer er
reeds 10 getallen bewaard zijn, dan wordt de eerste terug overschreven. Het programma houdt
dus slechts rekening met de laatste 10 nalopen van elke component. Tenslotte wordt de plaats
waar we gebleven waren terug weggeschreven in het bestand zodat we de volgende keer dat
we het bestand bewerken weten waar we gebleven waren.

   For intCounter = 1 To INTVAR_AantalComp
          NaloopBewaar.CompNaam(intCounter) = INTVAR_Naam(intCounter)
          NaloopBewaar.Naloop(intCounter) = INTVAR_NaloopArray(INTVAR_TBI,
intCounter)
          Call IniNaloop.WriteToIniFile(NaloopBewaar.CompNaam(intCounter),
Format(intSectie, "00"), NaloopBewaar.Naloop(intCounter))
   Next

      intSectie = intSectie + 1
      If intSectie = 11 Then intSectie = 1
      strSectie = CStr(intSectie)
      Call IniNaloop.WriteToIniFile(NaloopBewaar.CompNaam(1), Format(0, "00"),
strSectie)
                                                                                            64


10          DE HANDLEIDING
Onderstaand hoofstuk biedt de gebruiker de mogelijkheid om het programma in zijn logische
volgorde te doorlopen. Zo komt de keuze van het meetsysteem en de parametrering van de
verschillende meetsystemen ruim aan bod. In deze handleiding nemen we de weger als
voorbeeld om alle formulieren uit te leggen, uiteraard komen ook de teller en LOW aan bod.


10.1        De keuze van het meetsysteem
Wanneer het programma voor de eerste keer opgestart wordt, krijg je onderstaand scherm te
zien. Dit formulier, ook wel overzichtformulier genoemd, geeft een overzicht van de
verschillende meetsystemen en geeft deze naast elkaar weer. Een gedetailleerder overzicht
van elk meetsysteem kan je bekijken door op de knoppen bovenaan het scherm te klikken.
Zoals je merkt is dit momenteel nog niet mogelijk omdat er nog geen systemen toegewezen
zijn.




                                       Figuur 10.1.1

Vanop deze plaats kunnen we naar verschillende formulieren binnen het programma springen.
De meeste van deze formulieren vergen echter een toetsencombinatie. In tabel 10.1 is een kort
overzicht van de verschillende toetsencombinaties en hun functie gegeven. Meestal zijn de
formulieren ook via het Beckhoffscherm op te roepen.

Alt + F1    Oproepen van het unitformulier. Dit formulier wordt gebruikt voor het
            toewijzen van de meetsystemen.
Alt +F11    Oproepen van het parameterformulier. Dit formulier wordt gebruikt voor
            het parametreren van de meetsystemen.
Alt + F12   Oproepen van het programmaparameterformulier.
                                                                                           65


Alt + F4   Afsluiten van het programma. Het programma slaat de huidige configuratie op
           zodat het nadien terug kan opgeroepen worden.
                                        Tabel 10.1


10.2       Toewijzen van de verschillende meetsystemen
Momenteel is er nog altijd geen enkel meetsysteem toegewezen. De eerste stap in het proces
is dan ook het toewijzen van deze systemen. Druk de combinatie “Alt + F1 ” in om het
unitformulier op te roepen. Dit kan alleen wanneer er geen enkel systeem aan het afwegen is.




                                        Figuur 10.2.1

Er zijn 2 gegevens nodig voor het toewijzen van een meetsysteem. In ons voorbeeld gaan we
één van de 4 wegers toewijzen. We nemen Weger 1. Selecteer bij unitnr de unit (kolom) waar
de weger actief moet worden. Met behulp van de pijltjestoetsen rechts van het tekstvak kan je
de unitnummer verhogen of verlagen. De beschikbare unitnummers zijn 1 t/m 8, omdat er
maximum 8 systemen kunnen toegewezen worden. We kiezen unitnr 1. De volgende stap is
de keuze van het meetsysteem. Druk op het pijltje rechts naast “Niet Actief”. Je krijgt nu
volgend scherm te zien.




                                        Figuur 10.2.2

Er komt nu een lijst met alle beschikbare meetsystemen te voorschijn. Wanneer een systeem
al toegewezen is, dan komt deze niet meer in de lijst voor. Door “Niet Actief” onderaan de
lijst te kiezen, wordt het systeem op de gekozen unit op niet actief gezet. De unit komt nu
                                                                                            66


terug vrij voor een ander systeem. Kies Weger 1 uit de lijst. De keuze is gemaakt en
onderstaande figuur verschijnt op het scherm.




                                        Figuur 10.2.3

Met deze instellingen wordt Weger 1 aan unit 1 toegewezen. Druk op “Toewijzen”. Het
systeem is nu toegewezen. Je hebt nu de mogelijkheid om nog andere systemen toe te wijzen.
We wijzen op unit 2 de Glucose Teller toe en op unit 3 het LOW-systeem “Choco Wit”. Druk
op “Terug” om het unitformulier te verlaten. Als je alles correct uitvoert krijg je een scherm
te zien zoals in figuur 10.2.4




                                        Figuur 10.2.4

De knop bovenaan het scherm is van tekst veranderd en bevat nu de naam van het
meetsysteem. Het detailscherm van deze meetsystemen zijn nu te bereiken door op de knop te
drukken. Een druk op de knoppen met tekst “Niet Actief” geeft geen resultaat. Alle vakken
zijn nog leeg, wat normaal is omdat de systemen nog niet actief zijn.
                                                                                          67


10.3       Parametrering van de verschillende systemen
Druk de combinatie “Alt + F11” in om het formulier op te roepen. Typ het juiste wachtwoord
in en druk op “OK”. De knop “Annuleren” dient om terug te keren naar het detailscherm.




                                       Figuur 10.3.1

Na het indrukken van het juiste paswoord krijg je volgend scherm te zien.




                                       Figuur 10.3.2

De parameters van LOW, Teller en Weger hebben allen hun specifieke eigenschappen en
verschillen dus van elkaar. De layout verschilt dus van systeem tot systeem.
Omdat de computer nog niet weet welk systeem je gaat parametreren, kan hij ook nog geen
parameters laten zien. Kies “Weger 1” als naam van systeem.
                                                                                            68




                                        Figuur 10.3.3

De parameters van Weger 1 worden nu zichtbaar.


10.3.1     Parameters van de weger

Op onderstaand formulier zie je de parameters van de weger. Onderstaande figuur wordt
enkel weergeven wanneer er al reeds een bestand “Weger 1.urp” bestaat. Het programma gaat
aan de hand van deze gegevens de verschillende tekstvakken invullen. Wanneer dit niet het
geval is, dan zijn alle tekstvakjes nog leeg. De gele balk onderaan uw scherm kan een hulp
zijn voor het invullen of aanpassen van de parameters. Hier verschijnt steeds een korte uitleg
over de parameter. Alle wegers beschikken over dezelfde parameters. Alle parameters worden
gebruikt en dienen dus ingevuld te zijn vooraleer ze opgeslagen kunnen worden.




                                        Figuur 10.3.4

Eenheid en nauwkeurigheid komen bij elk meetsysteem voor, en zullen dan ook apart
besproken worden.
                                                                                             69


De eenheid: hier kan u bepalen in welke eenheid u wenst te werken. De keuze is verschillend
naargelang het meetsysteem dat u aan het parametreren bent. Bij de teller is er ook nog de
mogelijkheid om in liter af te wegen.




                                         Figuur 10.3.5

De nauwkeurigheid: hier kan u de nauwkeurigheid van uw systeem bepalen. De plaats van de
komma in onderstaande keuzemogelijkheden bepaald uiteraard de nauwkeurigheid.




                                         Figuur 10.3.6

De maximum inhoud: de maximum inhoud van de tank.
De bovengrens: onder deze waarde wordt de weger nog als leeg beschouwd en is er geen
automatische tarrering.
De ondergrens: onder deze waarde is er een automatische tarrering. Dit wil zeggen dat alle
waarden genegeerd worden en de inhoud van de weegschaal als nul wordt beschouwd.
De negatiefgrens: wanneer na het ledigen het lege gewicht van de weger onder deze waarde
komt moet de weger terug geijkt worden.
De noisemarge: hiermee geeft men aan waarbinnen de meting mag schommelen, om de
meting als een stabiele meting te mogen aanzien. Deze kan best experimenteel vastgesteld
worden.
De leegloop bij vol: is de tijd (in milliseconden) waarbinnen de weger geledigd moet zijn. Is
de weger niet leeg, dan duidt dit op een storing.
De stootmarge: als het verschil tussen twee opeenvolgende metingen de ingestelde waarde
overschreid, dan spreken we van een stoot. Dit betekent dat er een te grote
gewichtsverandering is. Wanneer een stoot optreedt zal de weger stoppen tot de weger
uitgedeind is.

De pauzetijd: de tijd die het systeem moet wachten tussen twee componenten. Deze tijd wordt
weergegeven in milliseconden. Deze tijd is nodig om het effectieve gewicht en de daaruit
volgende naloop te berekenen.

Het aantal componenten: het aantal af te wegen componenten per batch.
Watchdog grof: dit is de tijd waarbinnen, er tijdens de grofsturing, een verandering van
gewicht moet optreden.
Watchdog fijn: dit is de tijd waarbinnen, er tijdens de fijnsturing, een verandering van gewicht
moet optreden.
                                                                                                  70


10.3.2      Parameters van de teller

De volgende figuur geeft een overzicht van de parameters voor de Glucose Teller. Merk op
dat er hier beduidend minder parameters moeten ingevuld worden. Het onderstaande
formulier is enkel ingevuld als er al een “Glucose Teller.urp” bestand bestaat. Is dit niet het
geval, dan zijn alle invulvakken leeg.




                                         Figuur 10.3.7


De maximum inhoud: de maximum inhoud van de tank.
Het aantal eenheden per puls: het volume dat per puls afgewogen wordt.
Het aantal componenten: het aantal componenten per batch.
Watchdog grof: dit is de tijd waarbinnen, er tijdens de grofsturing, een verandering van
gewicht moet optreden.
Watchdog fijn: dit is de tijd waarbinnen, er tijdens de fijnsturing, een verandering van gewicht
moet optreden.
                                                                                             71


10.3.3     Parameters van de Loss In Weight

De volgende figuur geeft een overzicht van de parameters voor een LOW. Het onderstaande
formulier is enkel ingevuld als er al een “Choco Wit.urp” bestand bestaat. Anders zijn ook
hier alle invulvakken nog leeg. Choco Zwart heeft dezelfde parameters als Choco Wit.




                                       Figuur 10.3.8

De maximum inhoud: de maximum inhoud van de tank.
De noisemarge: hiermee geeft men aan waarbinnen de meting mag schommele, om de meting
al een stabiel meting te mogen aanzien. Deze kan best experimenteel vastgesteld worden:
De ondergrens: wanneer het gewicht weergegeven door de loadcells onder deze waarde daalt,
dan mag de tank als leeg beschouwd worden.
De stootmarge: als het verschil tussen twee opeenvolgende metingen de ingestelde waarde
overschrijdt, dan spreken we van een stoot. Dit betekent dat er een te grote
gewichtsverandering is. Wanneer een stoot optreedt zal de weger stoppen tot de weger
uitgedeind is.
De pauzetijd: de tijd die het systeem moet wachten tussen twee componenten. Deze tijd wordt
weergegeven in milliseconden. Deze tijd is nodig om het effectieve gewicht en de daaruit
volgende naloop te berekenen.
                                                                                           72


10.3.4     Foutmeldingen bij het parametreren van de meetsystemen

Ook hier zijn, voor het eenvoudige gebruik van het programma, een paar foutmeldingen
voorzien. De belangrijkste foutmeldingen staan hieronder beschreven.


10.3.4.1   Te groot aantal componenten




                                        Figuur 10.3.9

Het programma kan maximaal 10 componenten per batch afwegen. Als deze limiet
overschreden wordt, zal er een foutmelding gegenereerd worden. Zo een voorbeeld van deze
foutmelding is weergegeven in figuur 10.3.9 .


10.3.4.2   Eén of meerdere parameters niet ingevuld




                                       Figuur 10.3.10

Wanneer er één of meerdere parameters niet ingevuld zijn en je drukt op opslaan, dan krijg je
volgende foutmelding te zien. Deze foutmelding slaat op het parameterformulier en op het
componentenformulier. Het kan dus goed zijn dat op het parameterformulier alles correct is
ingevuld. De fout bevindt zich dan in het componentenformulier. Wijzig de fout en druk
nogmaals op opslaan om de wijzigingen te bevestigen en door te sturen. Wanneer er geen
foutmelding optreedt, dan betekend dit dat alle waarden correct ingevuld zijn.

.
                                                                                           73


10.3.5     De componenten instellen

Als alle parameters in het parameterformulier correct ingevuld zijn, wordt de
componentenknop actief. Klik op deze knop om de verschillende componenten te
parametreren. Onderstaand scherm wordt zichtbaar. We veronderstellen dat we de
componenten van Weger 1 gaan parametreren.




                                       Figuur 10.3.11

Het aantal rijen hangt af van het aantal ingegeven componenten in het vorige formulier. Als er
al reeds een “Weger 1.urp” bestand bestaat, dan zijn deze componenten reeds ingevuld. We
kunnen maximaal 10 componenten aan één weger koppelen. Selecteer de gewenste
component in de lijst. Het pijltje wordt nu bruikbaar. Klik op het pijltje om de component in
de lijst te plaatsen. Achter de component worden de standaardgegevens ingevuld. Voeg de
vijf componenten toe aan het formulier.




                                       Figuur 10.3.12
Bij het volgende formulier zijn de componenten ingevuld. Na het invullen van de vijf
componenten verdwijnt de lijst.
                                                                                            74




                                       Figuur 10.3.13
De “Clear” knop maakt alles leeg, zodat we alles opnieuw kunnen invullen. Het formulier
kan je verlaten door op de knop “Exit” te klikken zonder de veranderingen op te slaan.

Elke component bezit dezelfde parameters. We veranderen nu enkele van de
standaardwaarden.

Fijnwaarde: met de fijnwaarde kunnen we de waarde instellen waar de weger van grofsturing
naar fijnsturing moet overgaan. Bij een fijnwaarde van bv 20 kg en een eindgewicht van 100
kg gaat de weger bij 80kg (eindgewicht - fijnwaarde) over van grofsturing naar fijnsturing.

Naloop: dit is de het gewicht van de grondstof die nog in de weger valt na het dichtsturen van
klep. Om dit te voorkomen sturen we de klep een beetje vroeger dicht. Dit dichtsturen kan
automatisch of handmatig gebeuren. Als we deze automatisch zetten dan wordt de klep
dichtgestuurd aan de hand van de gemiddelde naloop die het programma heeft berekend
gedurende de laatste 10 metingen. De gemiddelde naloop verschijnt dan ook rechtstreeks in
het tekstvak. Wanneer we de naloop handmatig willen instellen, moeten we zelf de waarde
instellen wanneer de klep dichtgestuurd moet worden. Het programma houdt nu geen
rekening met de zelf berekende naloop.

Een klik in het vakje “H/A” maakt de achtergrond blauw en figuur 10.3.14 komt te
voorschijn. De figuur geeft weer hoe we deze automatische naloop in een handmatige naloop
kunnen veranderen. Klik op de knop “Hand” en in het vakje “H/A” zal nu een “H” staan. De
automatische naloop is verandert in een handmatige naloop.




                                       Figuur 10.3.14
                                                                                            75


Pauze: bij de pauze hebben we 3 mogelijkheden. We kunnen deze op automatisch, handmatig
of bijweeg zetten. Wat is nu het verschil tussen deze drie? Bij een automatische pauze wordt
er tussen de componenten een bepaalde pauzetijd in acht genomen alvorens er met de
volgende component verder wordt gegaan. Bij een handmatige pauzetijd moet de operator zelf
op start duwen voordat de volgende component wordt afgewogen. Tenslotte kan de pauze ook
als bijweeg ingesteld worden. Dit betekent dat er tussen 2 componenten handmatig een
component toegevoegd wordt.

Na het veranderen van enkele paramaters krijgen we bijvoorbeeld onderstaand scherm te zien.
Alle componenten zijn ingevuld en de lijst is onzichtbaar.




                                       Figuur 10.3.15

Veronderstel dat de 4e component verkeerd is en dat we deze willen aanpassen. Dit kan
zonder alles opnieuw in te geven. Selecteer de verkeerde component. Deze kleurt blauw en
het rechtse pijltje is nu beschikbaar. Klik op het rechtse pijltje om de component te
verwijderen. De componentenlijst is terug beschikbaar. Selecteer de gewenste component en
voeg deze met behulp van het pijltje terug in het formulier. Figuur 10.3.15 geeft weer wat er
is gebeurd.
                                                                                              76




                                       Figuur 10.3.16
Druk op “OK” als alles correct ingevuld is. We komen terug in het parameterformulier
terecht. Klik op “Opslaan” om uw veranderingen permanent te bewaren.

Er zijn nog enkele andere knoppen op het parameterformulier die nog niet ter sprake zijn
gekomen. Daarom geven we even een korte uitleg over de functie van de andere knoppen.

Exit: hiermee verlaat je het parameterformulier. Let op: Exit slaat de gegevens niet op. Om
gegevens permanent te bewaren moet er ook nog op opslaan gedrukt worden.
Back-up-bestand: wanneer een bestand opgeslagen wordt, dan worden de vorige gegevens
opgeslagen in een back-up-bestand. Dit biedt de mogelijkheid om de vorige parameters na een
verandering terug te halen.
Opslaan: slaat alle parameters permanent op en stuurt deze door naar de verschillende
meetsystemen.
Afdrukken: drukt een rapport van de parameters af.
                                                                                            77



10.3.6     Ijken van de wegers

De laatste knop die we nog niet besproken hebben is de knop “Kalibratie” of ijken. Dit
onderdeel is niet door ons geprogrammeerd maar het is wel belangrijk voor de volledige
bespreking van het programma. Ijken wordt enkel toegepast bij weegsystemen die gebruik
maken van loadcells. Omdat de teller geen gebruik maakt van loadcells, moet deze ook niet
geijkt worden. Bij de Weger en de LOW is dit voor een nauwkeurige afweging wel vereist.
Het ijkproces kan gestart worden vanuit het parameter formulier. Wanneer Weger of LOW
geselecteerd is, komt de knop “Kalibratie” tevoorschijn. Wanneer je op deze knop drukt,
krijg je onderstaand scherm te zien.




                                       Figuur 10.3.17

Je kan nu een keuze maken tussen “Ijken met gewichten” en “Ijken zonder gewichten”. Druk
op de knop “Annuleren” wanneer je niets wilt parametreren. Je keert hierdoor terug naar het
parameterformulier.

Bij het ijken van een loadcell gaan we eigenlijk een vermenigvuldigingsfactor bepalen
waarmee we in het programma de ingelezen waarden zullen gaan verwerken.


10.3.6.1   IJken met gewichten

Om de weger te ijken moeten we een paar gegevens invullen. Het huidige gewicht van de
weger vind je onderaan rechts. De eerste stap is het leegmaken van de weger. Maak de weger
leeg en druk op “Ja” naast de vraag “Is Weger 1 leeggemaakt?” Door het leegmaken van de
weger hebben we nu het nulpunt van de weger ingesteld.
                                                                                           78




                                       Figuur 10.3.18

Wanneer de weegschaal nog niet is leeggemaakt, vraagt het programma om de weegschaal
leeg te maken.




                                       Figuur 10.3.19

Maak de weegschaal leeg en druk op OK.

Stap 2 van het proces is het ingeven van het ijkgewicht. Het ijkgewicht is een vooraf gekend
gewicht. Om later een nauwkeurige meting te bekomen nemen we dit gewicht best zo groot
mogelijk. In ons voorbeeld nemen we een kalibratiegewicht van 3360 g. Druk vervolgens op
kalibratie om het proces uit te voeren.
                                                                                            79




                                       Figuur 10.3.20

Als de gebruiker op de knop “Kalibratie” drukt voor de weegschaal tot stilstand is gekomen,
dan zal de weegcomputer aan de gebruiker een melding geven dat de weegschaal niet tot
stilstand is gekomen, zoals je in de volgende figuur kan zien. Wacht tot de weegschaal tot
stilstand is gekomen en druk vervolgens nog eens op kalibreren




                                       Figuur 10.3.21

De huidige waarde van de weegschaal is nu gelijk aan de som van de lege waarde van de
weegschaal en de waarde die de weegschaal aangeeft voor het gekende ijkgewicht. Het kan
zijn dat er een marge op deze waarde zit en daarom is het ook noodzakelijk om de weegschaal
te ijken. Druk op “OK” om het proces af te sluiten en terug te keren naar het
parameterformulier.


10.3.6.2   IJken zonder gewichten

Op deze manier kunnen we op basis van enkele getallen het meetsysteem gaan ijken. De
getallen zijn bekomen uit een vroeger ijkproces met gewichten en kan je terugvinden in het
“.urp”-bestand van het meetsysteem. Rechts onderaan uw beeld zien we de huidige AD
waarde van de weegeschaal. Ook bij deze methode is het de bedoeling dat er 3 parameters
meegegeven worden. De eerste parameter is het lege AD gewicht. In figuur 10.3.22 zien we
de eerste parameter. De weegcomputer heeft de vorige waarde onthouden en geeft deze als
standaardwaarde weer. Door op het pijltje te klikken kunnen we deze waarde als default
waarde gebruiken. Wil je toch een andere waarde gebruiken, dan kan je ten allen tijde zelf een
waarde ingeven via het toetsenbord. Gebruik echter bij voorkeur de default waarde.
                                                                                          80




                                      Figuur 10.3.22

Geef vervolgens de kalibratieAD en het gebruikte kalibratiegewicht in zoals weergegeven in
figuur 10.3.23. Ook hier kan je de standaard waarde gebruiken bij het kalibreren.




                                      Figuur 10.3.23

Wanneer alles ingevuld is, druk je op “OK” om het ijken te bevestigen en op “Annuleren”
om deze ijking niet te bevestigen. We keren terug naar het parameterformulier.

Klik op “Opslaan” en op “Exit” om alle waarden op te slaan en door te sturen naar de
weegcomputer.
                                                                                               81


10.4        Programmaparameters
Naast de systeemparameters en componentparameters zijn er nog een aantal parameters, de
programmaparameters. In tegenstelling tot de 2 andere zijn de programmaparameters voor
heel de weegcomputer dezelfde. We roepen het scherm op door de toetsencombinatie
“Alt + F12” in te drukken. Ook dit formulier is met een wachtwoord beveiligd. Typ het juiste
wachtwoord in en druk op “OK”. De knop “Annuleren” dient om terug te keren naar het
detailscherm.




                                         Figuur 10.4.1

Je krijgt nu volgend scherm te zien. We hebben hier de mogelijkheid om de taal en de
netwerkmode aan te passen. Door op het pijltje naast taal te klikken krijg je een lijst met alle
beschikbare talen te zien. Kies de gewenste taal en druk op “Toepassen”. Verder is er ook
nog de mogelijkheid om te kiezen tussen “Netwerkmode” of “Stand Alone”. Bij de
netwerkmode moet de weegcomputer alle gegevens van de receptencomputer krijgen. Bij
stand alone mode zullen de gegevens op de weegcomputer zelf ingevuld moeten worden.
Deze methode duurt langer maar is noodzakelijk als de netwerkverbinding met de
receptencomputer verbroken wordt.




                                         Figuur 10.4.2

Druk op ”Toepassen” en vervolgens op “OK” als alles naar wens is ingevuld. Druk op
“Annuleren” als je de veranderingen niet wil bewaren. Je komt nu terug in het
overzichtformulier terecht. Momenteel werkt het systeem enkel nog maar in stand alone
mode.
                                                                                            82



10.5       Het Overzichtscherm
We bevinden ons nu terug in het overzichtformulier en zien dat er al heel wat waarden
ingevuld zijn. De laatste gegevens kunnen we enkel invullen via het detailschem. Om alles
duidelijk te houden geven we hieronder al reeds een ingevuld overzichtscherm.

                                                                   2
                     1
                                                                   3

                     5                                             4

                     8                                             6

                     9                                             7

                    10

                    11
                                                                  14
                    12
                                                                  15
                    13
                                                                  16
                    17
                                                                  19
                    18
                                          Figuur 10.5.1

   1) De tekst van deze knop geeft weer welk meetsysteem momenteel op deze unit is
      toegewezen. Wanneer er op de knop gedrukt wordt, dan gaan we over naar het
      detailscherm.

   2) Hier worden een paar meldingen weergegeven zodat de gebruiker weet waar het
      programma zich ergens bevindt. De voorkomende meldingen zijn:

           a. Component: de actieve component of anders gezegd de component die op dat
              ogenblik aan het afwegen is.

           b. Stoot: onstabiele meting.

           c. Klaar: geeft aan wanneer het proces klaar is.

           d. Pauze: tussen 2 componenten in wordt er een pauze in acht genomen.

           e. Leeg: geeft aan wanneer de weger leeg is.
                                                                                            83


3) Geeft de totaal af te wegen componenten weer.

4) Geeft de actieve component weer.

5) Geeft weer in welke tank de mix na de afweging terecht komt.

6) Geeft het actieve receptnummer weer.

7) Geeft het totaal aantal af te wegen batchen weer.

8) Geeft de actieve batch weer.

9) Dit geeft weer dat de component grof aan het afwegen is. Dit betekent dat de klep ver
   opengestuurd wordt.

10) Dit geeft weer dat de component fijn aan het afwegen is. Dit betekent dat de klep een
    stuk minder ver opengestuurd wordt.

11) Geeft weer dat de component (groen) of de hele batch (blauw) afgewogen is.

12) Geeft weer dat de weegbunker leeg is. Bij een teller staat hier Telpuls in plaats van
    Leeg. Deze laat de effectieve telpuls zien.

13) Kleurt rood als er zich een alarm voordoet. Meer informatie over het soort alarm vind
    je in het detailformulier.

14) Geeft weer hoeveel er van de betreffende component moet afgewogen worden.
    (SOLL)

15) Geeft weer hoeveel er al reeds afgewogen is. (IST)

16) De eenheid waarin er afgewogen wordt.

17) Geeft het verschil weer tussen gewenste en werkelijke waarde in procent.

18) Hiermee kan je het weegcyclus starten en stoppen.

19) Hiermee kan je het weegcyclus stoppen of onderbreken.
                                                                                         84


10.6       Het detailscherm
Het detailscherm gaat dieper in op de verschillende meetsystemen. Het detailscherm kan
slechts één systeem visualiseren. We moesten echter de gewenste waarden (sollwaarden), het
aantal batchen en de tanknummers nog invullen. Voordat we het detailscherm verder gaan
bespreken gaan we eerst de gewenste waarden invullen. Druk op “F5” om het editeerscherm
op te roepen.


10.6.1     Het editeren van de gewenste waarden




                                      Figuur 10.6.1

Druk op “OK” om de gegevens te bevestigen. De gegevens worden nu doorgestuurd naar de
meetsystemen. Gebruik “Annuleren” als je de gegevens niet wilt opslaan. Hier moeten 3
parameters ingevuld worden. Het Batchnummer wordt door het programma zelf ingevuld. Je
kan dit uiteraard ook zelf wijzigen. Met het totaal aantal batchen bedoelt men het aantal
mengsels dat je wil gaan afwegen. Het tanknummer zorgt ervoor dat, na het afwegen en
mengen, het mengsel in de juiste tank terecht komt. Het receptnummer is vooral belangrijk
wanneer we via netwerkmode de recepten-PC gaan aanspreken. Met deze nummer kunnen we
dan het gewenste recept uit de database halen.

De volgende stap is het invullen van de gewenste waarden. De invulvakken komen
automatisch naar boven. Het programma geeft al direct de ingestelde nauwkeurigheid weer.
Vul voor elke component de gewenste waarde in en druk nogmaals op “F5” om te bevestigen.
De invulvakken worden nu terug grijs. Alles is nu klaar om de afweging te starten.




                                      Figuur 10.6.2
                                                                                            85


Er is een extra beveiliging voorzien. Wanneer er ongeldige waarden ingevuld worden dan
wordt er een rode balk zichtbaar op het detailscherm. Dit geeft weer waar de fout zich ergens
bevindt. Onderstaande figuur geeft zo een fout weer. Het programma kan 2 verschillende
fouten opsporen.

Wanneer het totaal af te wegen gewicht de maximum inhoud van de tank overschrijdt, dan
wordt onderstaande fout weergegeven. Wanneer er in meerdere batchen een fout opduikt, dan
zullen de fouten achtereenvolgens weergegeven worden.




                                        Figuur 10.6.3

Wanneer één van de gewenste waarden kleiner is dan de ingestelde fijnwaarde, dan wordt
volgende fout gegenereerd. In onderstaand voorbeeld zit de fout in de 3e component van de 2e
batch. Het programma geeft telkens de eerste gevonden fout. Wanneer er meerdere fouten in
het programma voorkomen, dan zal het programma deze fouten na elkaar weegeven. Dus als
er ook een fout bij component 4 van dezelfde batch voorkomt, dan zal deze pas weergegeven
worden als de fout in component 3 opgelost is.




                                        Figuur 10.6.4

Als we 3 batchen willen afwegen, dan moeten we toch maar voor 1 batch de gegevens
invullen. Deze gegevens worden in de volgende batchen automatisch overgenomen. Via het
editeerscherm kunnen we de werkelijke waarden in de andere batchen dan nog gaan wijzigen.

Bij een foutmelding druk je nogmaals “F5”. Wijzig het batchnummer naar de gewenste batch
dat je wilt editeren. Druk op “OK” in het editeerscherm als alle waarden nog juist staan. Je
kan nu in het detailscherm je fout verbeteren. Druk nogmaal F5 om je wijzigen te bevestigen.

Figuur 10.6.5 geeft het ingevulde detailscherm weer. Het is eigenlijk een gedetailleerder beeld
van het overzichtscherm.
                                                                                           86




                               6

                                                                                       1




                                       2            3             4         5

                                       7



                                       Figuur 10.6.5

1.     Deze tabel geeft een beter overzicht van de componenten. De gele balk geeft aan
       welke component op dat moment actief is. Zo kunnen we van op een geringe afstand
       het afweegproces volgen.
2.     Het nummer van de component. Deze nummers geven de volgorde waarin de
       componenten afgewogen moeten worden.
3.     In deze kolom wordt de naam van de component getoond.
4.     Deze kolom geeft de gewenste waarde weer.
5.     Wanneer de component al afgewogen is, dan wordt hier de werkelijke of afgewogen
       waarde getoond.
6.     Het detailscherm geeft meer informatie over het soort van alarm. Wanneer er een
       alarm optreedt, dan zal er bovenaan uw scherm een rode balk zichtbaar worden. Deze
       rode balk bevat meer gegevens over het soort van alarm.
7.     Deze knop brengt je terug naar het detailscherm.

De andere parameters komen ook voor in het overzichtscherm en hebben uiteraard dezelfde
functie. Door middel van de keuzelijst linksboven op het detailscherm kunnen we tussen de
verschillende actieve systemen switchen. Druk op de pijl naast de keuzelijst om uw keuze te
maken. In deze lijst zien we alleen de systemen die reeds toegewezen zijn.




                                       Figuur 10.6.6
                                                                                               87


10.6.2     Klaar met afweging




                                        Figuur 10.6.7

Het groene bolletje achter “Klaar” geeft aan dat ook de laatste component klaar is. De eerste
batch is nu afgewogen en onderaan het scherm verschijnt een blauwe balk die het totaal
gewenste en het totaal afgewogen gewicht weergeeft. De weger staat nu klaar om te lossen.
Als de klep nu opgestuurd wordt, dan zien we de afgewogen waarde stilaan zakken tot nul.
Het bolletje achter “Klaar” zal blauw kleuren als het lossen volledig klaar is. Na het lossen
staat alles terug klaar voor een nieuwe afweging. Druk op start om de volgende afweging te
starten.


10.7       Extra beveiligingen tijdens het afwegen
Het kan wel eens meermaals voorvallen dat er fouten optreden tijdens het afwegen van de
verschillende componenten. Voor de meeste fouten zijn er in het programma foutmeldingen
voorzien. Deze worden meestal weergegeven in een rode balk bovenaan het detailscherm.
Door middel van deze foutmeldingen kan je dan het probleem gaan oplossen.


10.7.1     Stoot

Wanneer het verschil tussen 2 metingen van het werkelijke gewicht te groot is, dan stopt het
programma even met afwegen tot dat de weger uitgedeind is. Dit is een alarm dat zichzelf
oplost, want na een bepaalde tijd gaat het programma zelf terug verder met de afweging.
                                                                                                88



10.7.2      Negatiefgrens

Wanneer na het lossen, de waarde van de weegschaal onder de ingestelde negatiefgrens komt,
zal hier melding van gegeven worden. Dit betekent dat de weger terug opnieuw moet geijkt
worden.




                                         Figuur 10.7.1


10.7.3      Maak weger leeg

Wanneer we een afweging willen starten wanneer de weger nog niet leeg is, dan krijgt u
volgende mededeling te zien. Het programma kan niet starten vooraleer de weger leeg is.
Maak de weger leeg en start de afweging opnieuw.




                                         Figuur 10.7.2


10.7.4      Watchdog time-out

Wanneer de werkelijke waarde niet of nauwelijks verandert, dan gaat het programma in
alarm. Dit kan verschillende redenen hebben. De klep is bijvoorbeeld stuk zodat er geen
grondstof meer in de tank valt. Het kan ook zijn dat de af te wegen grondstof op is of dat er
een communicatiefout is.




                                         Figuur 10.7.3
                                                                                           89


10.7.5     Maximum inhoud bereikt




                                        Figuur 10.7.4

Wanneer door grote nalopen de maximuminhoud van de tank bereikt wordt, dan krijgt u deze
melding te zien. Je kan nu zelf beslissen wat je wil doen. Wanneer je op “Ja” klikt, dan gaat
het programma gewoon verder met de afweging totdat deze klaar is zonder nogmaals te
vragen of we moeten verder gaan. Klik je op “Nee”, dan stopt het programma met afwegen
en is de batch afgewogen.
                                                                                                 90


BESLUIT
Het doel van mijn stage was om het oude Borland Pascal programma van de weegcomputers
te vervangen door een Visual Basic programma. Door de afweegmodules te programmeren
met behulp van ActiveX is het nu mogelijk om de verschillende componenten in eender welk
programma toe te voegen. Het nieuwe programma van de weegcomputer kan zonder
problemen gebruik maken van deze ActiveX componenten. We zijn ook nog gestart met de
communicatie tussen de S5-PLC en het hoofdprogramma maar wegens tijdsgebrek is dit niet
verder uitgewerkt. De communicatie met de recepten-PC is ook nog niet uitgewerkt.

Persoonlijk vond ik de stage interessant omdat ze in de eerste plaats zeer leerrijk was. Zo is
mijn inzicht in het programmeren in Visual Basic er op vooruit gegaan. Verder is mijn
interesse gewekt voor OPC en Profibus. Dit zijn toch twee standaarden die in de industrie
sterk aan het opkomen zijn.
                                                                                     91


LITERATUURLIJST
OPC foundation: http://www.opcfoundation.org (september – februari 2003-2004)

http://www.opcconnect.com (september – februari 2003-2004)

FRANS, Roger, 2001, Leren programmeren met Visual Basic 6.0, Campinia Media vzw,
370 p.

FRANS, Roger, 1999, Visual Basic 6.0 – Beginners, Campinia Media vzw, 238 p.

HANNES, A., Visual Basic 6.0 – Aanvullingen, Editie 02/2003, 106 p.

SILER, Brian en SPOTTS, Jeff, 1999, Het complete Handboek Visual Basic 6, Acedemic
Service, 912 p.

						
Related docs
Other docs by pEKxTDd
Liites arvud veerus 3
Views: 6  |  Downloads: 0
ELEVAGE DE REINES
Views: 15  |  Downloads: 0
Deutschland Thailand Kalender 2012
Views: 40  |  Downloads: 0
BANGHAY-ARALIN SA PAGTUTURO NG FILIPINO I
Views: 1135  |  Downloads: 0
10 10 10Rythme Mise en page j
Views: 3  |  Downloads: 0
Cartas de S�o Paulo
Views: 33  |  Downloads: 0
mju gov - Get as DOC
Views: 172  |  Downloads: 0
5841 CCIAANO 2332012
Views: 5  |  Downloads: 0
2007 NJC PROPOSED SUBJECT COMBINATIONS - DOC
Views: 1  |  Downloads: 0
RASA PSR 3 0 5 Guide
Views: 64  |  Downloads: 0