Voorwoord Eerst zou ik graag enkele mensen willen bedanken voor hun bijdrage aan dit eindwerk. Zonder hun steun, hulp en tijd zou ik er namelijk niet in geslaagd zijn om dit werk af te leveren in de huidige vorm. Mijn dank gaat in de eerste plaats uit naar mijn docent begeleider Ing. Johan Coudeville en buitenpromotor Graduaat Jeroen Adriaens. Daarnaast wil ik ook het bedrijf Yde bedanken voor de stage en de voorziene faciliteiten. Hierbij gaat mijn dank specifiek uit naar Gerard voor het helpen programmeren in Delphi en het aanreiken van informatie. Vanzelfsprekend zou ik ook mijn ouders en mijn vriendin Marijke willen bedanken, ondermeer voor hun steun en vertrouwen waardoor ik mijn eindwerk met vrucht heb kunnen afronden. Eveneens wil ik mijn dank betuigen aan alle docenten van het KHBO dept. IW & T voor een goede overdracht van hun kennis en ervaringen tijdens mijn opleiding.
Minimale Operating System voor communicatie met Saia PLC
-4-
Samenvatting De PLC wordt in het bedrijf Yde gebruikt voor automatisatie in de veehouderij waarvoor ze volledige installaties voorziet. Als aanvulling wordt de pc aangewend voor de visualisatie van de installatie, voor de opslag van gegevens en het besturen op afstand van de installatie. De visualisatie is momenteel een programma geschreven in Visual Basic dat via Merz en OPC communiceert met de PLC. Om snel aanpassingen mogelijk te maken bij de klant wordt Visual Basic geïnstalleerd. Bedrijfszekerheid en stabiliteit worden gegarandeerd door deze software te draaien op een pc voorzien van het besturingssysteem Windows XP Professional. Deze hele configuratie is echter vrij duur in verhouding met de noden van de klant. Het doel van het eindwerk is een studie te maken naar de mogelijkheden op het gebied van besturingssystemen en de communicatie met de PLC (merk: Saia Burgess). In dit eindwerk is een geminimaliseerd Windows 98 SE besturingssysteem gerealiseerd met de implementatie van een visualisatieomgeving geprogrammeerd in Delphi. Er werd hierbij gebruik gemaakt van freeware componenten.
Schooljaar 2005-2006
Tom De Crits
Minimale Operating System voor communicatie met Saia PLC
-5-
Inhoudstafel Voorwoord ................................................................................................................................ 3 Samenvatting ............................................................................................................................ 4 Inhoudstafel .............................................................................................................................. 5 Alfabetische lijst van gebruikte afkortingen.......................................................................... 8 1.
Inleiding............................................................................................................................. 9 1.1. 1.2. 1.3. 1.4.
2.
Doel ............................................................................................................................ 9 Situatieschets.............................................................................................................. 9 Opdracht ................................................................................................................... 10 Principeschema......................................................................................................... 11
De PLC ............................................................................................................................ 13 2.1. Wat is een PLC?....................................................................................................... 13 2.2. Waarom een PLC gebruiken? .................................................................................. 13 2.3. Technische informatie over de Saia PCD4-configuratie.......................................... 14 2.3.1. Inleiding ........................................................................................................... 14 2.3.2. Bus modules PCD4.C…................................................................................... 15 2.3.3. Power supply modules PCD4.M… .................................................................. 16 2.3.4. Processor modules PCD4.M… ........................................................................ 17 2.3.5. Digital I/O modules PCD4.A/B/E…................................................................ 19 2.4. Programmering van de Saia PLC ............................................................................. 19 2.4.1. Communicatie tussen PLC en pc ..................................................................... 19 2.4.2. Instellingen ....................................................................................................... 21 2.4.2.1. Online instellingen ................................................................................... 21 2.4.2.2. Hardware instellingen .............................................................................. 23 2.4.2.3. Software instellingen................................................................................ 24 2.4.2.4. Programma ............................................................................................... 24 2.4.2.5. Online debuggen ...................................................................................... 26
3.
Seriële communicatie: RS232........................................................................................ 27 3.1. 3.2. 3.3. 3.4. 3.5. 3.6. 3.7.
4.
Inleiding ................................................................................................................... 27 Bit treinen ................................................................................................................. 27 Startbit ...................................................................................................................... 28 Databits..................................................................................................................... 29 Pariteitsbit................................................................................................................. 29 Stopbits..................................................................................................................... 29 Fysieke eigenschappen ............................................................................................. 30
Saia S-bus protocol......................................................................................................... 31 4.1. Inleiding ................................................................................................................... 31 4.2. Toepassingslaag ....................................................................................................... 32 4.3. Presentatielaag.......................................................................................................... 33 4.4. Netwerklaag ............................................................................................................. 34 4.4.1. Data mode (SM2/SS2) ..................................................................................... 34
Schooljaar 2005-2006
Tom De Crits
Minimale Operating System voor communicatie met Saia PLC
-6-
4.4.2. Parity mode (SM1/SS1) ................................................................................... 34 4.4.3. Break mode (SM0/SS0) ................................................................................... 34 4.5. Datalinklaag ............................................................................................................. 35 4.6. Fysieke laag.............................................................................................................. 36 5.
Operating system............................................................................................................ 37 5.1. Wat is een operating system? ................................................................................... 37 5.2. Soorten ..................................................................................................................... 37 5.2.1. Real-time operating system (RTOS) ................................................................ 37 5.2.2. Single-user, single task..................................................................................... 38 5.2.3. Single-user, multi-tasking ................................................................................ 38 5.2.4. Multi-user ......................................................................................................... 38 5.3. Opstarten .................................................................................................................. 38 5.3.1. Hardwaretest..................................................................................................... 38 5.3.2. Booten .............................................................................................................. 38 5.4. Taken ........................................................................................................................ 39 5.4.1. Processorbeheer................................................................................................ 39 5.4.2. Geheugen- en opslagbeheer ............................................................................. 40 5.4.3. Apparatuurbeheer ............................................................................................. 40 5.4.4. Applicatie interface .......................................................................................... 41 5.4.5. Gebruikersinterface .......................................................................................... 41 5.5. Linux ........................................................................................................................ 42 5.5.1. Algemeen ......................................................................................................... 42 5.5.2. Kernel ............................................................................................................... 43 5.5.3. Distributies ....................................................................................................... 43 5.5.4. Voordelen ......................................................................................................... 43 5.5.5. Nadelen............................................................................................................. 44 5.6. Windows................................................................................................................... 45 5.6.1. Algemeen ......................................................................................................... 45 5.6.2. Voordelen ......................................................................................................... 46 5.6.3. Nadelen............................................................................................................. 47 5.6.4. Stabiliteit. ......................................................................................................... 47
6.
Uitvoering........................................................................................................................ 48 6.1. Inleiding ................................................................................................................... 48 6.2. Linux ........................................................................................................................ 48 6.2.1. Ubuntu installatie ............................................................................................. 48 6.2.2. Fedora Core 4 installatie .................................................................................. 50 6.3. Windows................................................................................................................... 52 6.3.1. Inleiding ........................................................................................................... 52 6.3.2. Keuze Delphi.................................................................................................... 52 6.3.3. Beginfase.......................................................................................................... 53 6.4. Minimale Windows .................................................................................................. 54 6.4.1. Inleiding ........................................................................................................... 54 6.4.2. Vereisten........................................................................................................... 55 6.4.3. Realisatie .......................................................................................................... 55
7.
Besluit .............................................................................................................................. 58
Schooljaar 2005-2006
Tom De Crits
Minimale Operating System voor communicatie met Saia PLC
8.
-7-
Bijlagen............................................................................................................................ 60 8.1. Bijlage 1: Situering van het bedrijf Yde................................................................... 60 8.1.1. Algemene beschrijving..................................................................................... 60 8.1.2. Bedrijfsorganigram........................................................................................... 61 8.1.3. Fabricatieprogramma ....................................................................................... 61 8.2. Bijlage 2: IL-instructies en Testprogramma............................................................. 62 8.2.1. IL-instructies .................................................................................................... 62 8.2.2. PG5 testprogramma en bijhorende uitleg......................................................... 66 8.3. Bijlage 3: OSI-model ............................................................................................... 67 8.4. Bijlage 4: Lijst van besturingssystemen................................................................... 68 8.5. Bijlage 5: Server- en clienttoepassing in Delphi ...................................................... 70 8.5.1. Woordje uitleg bij de servertoepassing ............................................................ 70 8.5.2. Woordje uitleg bij de clienttoepassing ............................................................. 72 8.5.3. Broncode servertoepassing............................................................................... 74 8.6. Bijlage 6: Principeschema communicatiemogelijkheden ........................................ 90
Literatuurlijst ......................................................................................................................... 91
Schooljaar 2005-2006
Tom De Crits
Minimale Operating System voor communicatie met Saia PLC
-8-
Alfabetische lijst van gebruikte afkortingen API CPU CRC DHCP GPL GUI HMI I/O IP LED MB MBR MS-DOS OS pc PCD PCMCIA PDA PLC RAM ROM S-Bus TCP UART UI USB
Schooljaar 2005-2006
Application Programming Interface Central Processing Unit Cyclic Redundancy Check Dynamic Host Control Protocol General Public License Graphical User Interface Human Machine Interface Input and Output Internet Protocol Ligth Emmiting Diode Mega Byte MasterBootRecord MicroSoft - Disk Operating System Operating System Personal computer Programmable Controller Device Personal Computer Memory Card International Association Personal Digital Assistant Programmable Logic Controller Random Acces Memory Read Only Memory Saia Bus Transmission Control Protocol Universal Asynchronous Receiver/Transmitter User Interface Universal Serial Bus
Tom De Crits
Minimale Operating System voor communicatie met Saia PLC
-9-
1. Inleiding 1.1.
Doel
Het doel van het eindwerk is een studie te realiseren naar de mogelijkheden op het gebied van besturingssystemen om een PLC aan te sturen en één van deze mogelijkheden concreet uit te werken. Dit weliswaar vertrekkende van het volgende basisidee: een zo klein, stabiel en betrouwbaar mogelijk systeem op te zetten. In het stagebedrijf Yde (Situering, zie BIJLAGE 1) en de industrie wordt gezocht naar economische oplossingen om processen te controleren, te visualiseren en om het hoofd te kunnen bieden aan de grote concurrentie en de klant op zijn wensen te kunnen bedienen. Het bedrijf is dan ook constant bezig met het bestuderen van nieuwe toepassingen en mogelijkheden. Maar wegens tijdsgebrek kunnen nieuwe ideeën niet altijd volledig uitgewerkt of bestudeerd worden. Het eindwerk komt hieraan tegemoet en situeert zich voornamelijk in het gebied van automatisatie.
1.2.
Situatieschets Principeschema Programma’s
Het probleem waarvoor een oplossing moet gezocht worden kan als volgt geformuleerd worden. Men moet de klant teveel laten betalen voor de installatie die nodig is voor de besturing en visualisatie van de installaties in kippenbedrijven. Dit komt voornamelijk door de hoge kost van licenties voor software die nodig zijn voor de visualisatie van het proces. Visual Basic PG5 Project Beter geformuleerd, de klant is altijd op zoek naar de VB6_SP5 Manager PG5_1.3.120 goedkoopste oplossing. Dit wil echter niet zeggen dat de klant een minderwaardige installatie wil. Integendeel, de klant zijn wensen en eisen zijn van OPC toenemende aard. datapakket Zoals u kunt zien op het principeschema, weergegeven rechts, wordt nu de communicatie met de PLC mogelijk gemaakt met behulp van OPC en Merz. De visualisatie van het productieproces wordt gerealiseerd door een Merz geschreven programma in Visual Basic die via OPC en Merz communicatie maakt met de PLC. Om nu vlug interventies/aanpassingen mogelijk te maken wordt Visual Basic en PG5 (de projectmanager van Saia RS232 PLC’s) geïnstalleerd op de pc van de klant. Deze programma’s zijn duur en in dit eindwerk wordt naar een beter alternatief gezocht. Voor grotere projecten zoals in voederbedrijven zal men deze werkwijze blijven hanteren, want daar weegt de kost van de hardware, software en de licenties voor Master PLC visualisatie maar weinig door ten opzichte van de totaalkost van de installatie. Maar bij de realisatie van kleinere projecten zou een goedkopere oplossing moeten uitgewerkt worden naar visualisatie toe. Schooljaar 2005-2006
Tom De Crits
Minimale Operating System voor communicatie met Saia PLC
-10-
De vereiste mogelijkheden, bv. in een kippenbedrijf zijn beperkt. De belangrijkste zaken die nodig geacht worden naar visualisatie toe en voor de controle over de installatie zijn de volgende: temperatuurregeling in- en uitschakelen van de verlichting de controle over voeding
1.3.
Opdracht
Er wordt in eerste instantie nog vanuit gegaan te werken met een standaard pc. Eerste belangrijke opmerking, deze moet wel voorzien zijn van een seriële poort voor de communicatie met de PLC. Tweede opmerking hierbij is dat in de meeste gevallen, voornamelijk bij kleinere projecten, zoals bij het uitbouwen van een kippeninstallatie de klant zelf de pc wil aanschaffen. In sommige gevallen heeft de klant nog een pc staan die dienst kan doen of soms schaft deze een goedkope tweedehands pc aan. Een eerste vereiste is dat deze mogelijkheden blijven bestaan. In het andere geval dat de klant de aankoop aan het bedrijf overlaat, zoekt het bedrijf zelf uit welke pc de beste oplossing vormt. Momenteel wordt hiervoor gebruik gemaakt van een heel compacte en goedkope standaard pc, zie ook de illustratie.
Tweede vereiste is dat het bedrijf deze pc zo vlug mogelijk kan voorzien van het minimale besturingssysteem en de nodige toepassingen, want tijd kost geld in de industrie zoals iedereen wel weet. Een derde essentiële vereiste is het gebruiksgemak van het hele systeem voor de klant. Als vierde en laatste vereiste is de betrouwbaarheid en de stabiliteit heel belangrijk. Het is mogelijk een hele resem vereisten te formuleren waaraan het vooropgestelde systeem moet voldoen, maar de belangrijkste waar er rekening mee moet gehouden worden zijn vermeld. Mijn taak bestaat er nu uit te bestuderen welke mogelijkheden er bestaan om tegemoet te komen aan deze vereisten. De voor- en nadelen van bepaalde keuzes te achterhalen alsook werkelijk een systeem proberen uit te bouwen om te kunnen presenteren op het einde van de rit. Om dit alles te kunnen realiseren is er eerst een goede voorkennis nodig over de PLC alsook over hoe de communicatie verloopt met deze. Verder moet er ook een theoretische achtergrondstudie gebeuren wat besturingsystemen betreft. Vandaar dat er in de eerst volgende hoofdstukken kennis gemaakt wordt met de gebruikte Saia PLC, de fysieke verbinding met deze, het S-bus protocol en het begrip operating system.
Schooljaar 2005-2006
Tom De Crits
Minimale Operating System voor communicatie met Saia PLC
1.4.
-11-
Principeschema
De systeemconfiguratie gehanteerd bij het eindwerk is weergegeven in de volgende illustratie. Principeschema Eindwerk Pc met minimale OS Servertoepassing + Clienttoepassing
Flags
Seriële Communicatie S-bus Protocol (parity) RS232
Registers
Master PLC Pc 1 Client 1 Clienttoepassing
Counters Timers
PLC2 Netwerk
UDP/IP TCP/IP
PLC3 Pc 2 Client 2 Clienttoepassing
PLC4
Enz.
Pc 3 Client 3 Clienttoepassing
Enz.
De pc met minimale OS komt in verbinding te staan met de PLC via RS232 en kan in de kast of in een lokaal naast de stalinrichting geïnstalleerd worden. In de PLC draait het programma opgemaakt in PG5 voor het specifieke project. Hierbij wordt voornamelijk de status van vlaggen gecontroleerd en ingesteld, registers weggeschreven en uitgelezen en timers/counters aangesproken. Via de pc krijgt men een visualisatie van het proces en heeft men ook de controle over het ganse proces. Concreet wil dit zeggen dat de klant op deze pc een duidelijke visualisatie krijgt van het proces en dat deze de mogelijkheid heeft via deze visualisatietoepassing bijvoorbeeld verlichting/motor handmatig in of uit te schakelen.
Schooljaar 2005-2006
Tom De Crits
Minimale Operating System voor communicatie met Saia PLC
-12-
Nu zou het ook mogelijk moeten zijn om via een netwerkverbinding van op een tweede pc of meerdere pc’s dezelfde visualisatie en controle te krijgen over het proces. Vandaar dat dit visualisatieprogramma ook wel clienttoepassing genoemd wordt. Stel dat de klant in kwestie ’s avonds nog eens alles wil checken, dan hoeft deze niet naar zijn stal te lopen. Maar deze zou eenvoudig weg met het opstarten van de clienttoepassing op zijn pc in huis de visualisatie en controle krijgen van zijn hele installatie. De servertoepassing die op de pc met minimale OS draait staat in voor het goede verloop van de communicatie tussen de PLC en de draaiende clienttoepassingen. Deze zorgt er dan voor dat de requests van de clients in een rij komen en één per één afgehandeld worden. Of beter geformuleerd, doorgespeeld worden aan de PLC en indien nodig het antwoord van de PLC aan de juiste client terug bezorgd wordt. Naar de toekomst toe zou mogelijk moeten worden deze clienttoepassing bijvoorbeeld van op een PDA te draaien, die je dan aansluit op het netwerk. Dit is maar één van de mogelijke denkpistes naar de toekomst toe. Hier moet dus een besturingssysteem gevonden of ontwikkeld worden die voldoet aan de vermelde eisen. Hierbij is ook duidelijk dat het systeem vlug moet kunnen heropgestart worden bij problemen zodat de klant niet te lang zonder visualisatie zit. Niet onbelangrijk om hier te vermelden voor alle duidelijkheid, is het feit dat de PLC wel degelijk autonoom een programma afwerkt opnieuw en opnieuw, zonder afhankelijk te zijn van de pc. Dus m.a.w. het vastlopen van de pc of één van zijn toepassingen betekent niet dat het proces niet bestuurd en gecontroleerd wordt. De belangrijkste alarmen in een proces worden meestal ook via lampen gevisualiseerd op de kasten waar de PLC in zit. Ook staan hier knoppen op waarmee de controle over het proces mogelijk is.
Schooljaar 2005-2006
Tom De Crits
Minimale Operating System voor communicatie met Saia PLC
-13-
2. De PLC 2.1.
Wat is een PLC?
In het Engels staat de afkorting PLC voor Programmable Logic Controller en in het Nederlands voor Programmeerbaar Logisch Controlesysteem. Het controlesysteem controleert (stuurt of regelt) een proces. Dit elektronische apparaat wordt gebruikt om processen geheel of gedeeltelijk te automatiseren. Via de ingangen wordt het systeem geïnformeerd over de procestoestand en de bedieningsbevelen. Deze signalen worden verwerkt door de CPU tot de nodige uitgangsbevelen en meldingen. Zowel digitale als analoge signalen zijn hierbij mogelijk. De algemene blokken van een PLC en ook hun relatie t.o.v. elkaar is grafisch voorgesteld in het onderstaande principeschema. Principeschema PLC
Bijvoorbeeld: Pt100
Voeding
2.2.
Bijvoorbeeld: ventilator
Handcontroller
Computer
Waarom een PLC gebruiken?
Vroeger werd er in de industrie voor elk project afzonderlijk een elektrische, pneumatische of hydraulische sturing ontwikkeld. Alleen in uitzonderlijke gevallen kon de ontwerper gebruik maken van voorgemonteerde componenten. Individueel printontwerp en juist afgestemde bedrading waren dus noodzakelijk in een dergelijk geval.
Schooljaar 2005-2006
Tom De Crits
Minimale Operating System voor communicatie met Saia PLC
-14-
Hierbij moet er stilgestaan worden bij het feit dat wijzigingen en uitbreidingen tijdens en na het in bedrijf stellen een ingewikkelde en kostbare operatie is. Iedere technicus weet dat wijzigingen een constante zijn bij het ontwikkelen van een besturing- en visualisatiemechanisme. In de praktijk blijkt meestal dat het probleem niet volledig juist werd geanalyseerd en dit impliceert meestal dat het besturingsmechanisme aangepast of uitgebreid moet worden. In veel gevallen komen er ook eisen bij na verloop van tijd. Bij individueel ontwikkelde systemen is het echter niet gemakkelijk nadien of tijdens de installatie nog aanpassingen aan te brengen. Men krijgt conflicten met de al geplaatste en voorziene installatie of men stoot op de beperkingen van het systeem. Individueel ontwikkelde systemen schieten daarom ook tekort en zijn vaak te duur. PLC ’s zijn daarom veelgebruikte elektronische systemen in de industrie. Dit vanwege de vele voordelen die ze bieden. Door het gebruik van de PLC creëert men een enorme flexibiliteit en een brede waaier aan mogelijkheden. De PLC kan heel gemakkelijk uitgebreid worden en de programma’s die ze draaien worden in een handomdraai aangepast aan alle eisen van het project. De mogelijkheid bestaat om aan online programmaren en diagnose te doen zonder onderbreking van het proces. Een tweede niet onbelangrijk gegeven is de betrouwbaarheid van de PLC. Hierbij kan het feit aangehaald worden dat een PLC geen enkel mechanisch bewegend onderdeel heeft zoals een computer bijvoorbeeld. Ook zijn PLC ’s vervaardigd volgens de strengste eisen. Een derde punt is de uniformiteit waardoor men eenvoudige en steeds terugkerende bedrading krijgt, alsook een gemakkelijke plaatsing in rekken. Een niet onbelangrijk gegeven om dit deel mee af te ronden is ook de standaardisatie van de communicatie met de PLC.
2.3.
2.3.1.
Technische informatie over de Saia PCD4-configuratie
Inleiding
In het bedrijf Yde B.V.B.A. worden PLC ’s aangewend van het merk Saia-Burgess Electronics. Deze firma geeft 25 jaar wereldervaring op gebied van verkoop en ondersteuning van een breed gamma aan elektronica producten. In dit gamma vinden we een reeks programmeerbare controller devices (PCD). De PLC die ter beschikking werd gesteld is afkomstig uit de PCD 4-reeks. Deze PCD 4-reeks wordt gekenmerkt door zijn extreme flexibiliteit. Het is mogelijk een basissysteem uit te bouwen met de meest basis processor, één seriële interface en twee I/Omodules. Maar men kan ook kiezen voor het volledig voorziene systeem waarbij 32 I/O- en functiemodules ter beschikking zijn, alsook 6 onafhankelijke seriële interfaces of Saia S-bus, Profibus FMS/DP of Ethernet-TCP/IP netwerk connecties.
Schooljaar 2005-2006
Tom De Crits
Minimale Operating System voor communicatie met Saia PLC
-15-
De flexibiliteit van het systeem wordt gekenmerkt door het gebruik van modules. Al deze modules zijn in cassettevorm vervaardigd en hebben dezelfde afmetingen. Hierdoor is het mogelijk een systeem uit te bouwen in één keer, of het uit te breiden in verschillende stappen. Deze cassettemodules (2) worden op hun beurt in de juiste busmodules (1) geklikt, die gemakkelijk kunnen gemonteerd worden op rails (3). Verbindingen met externe processen gebeuren via deze busmodules. Dit impliceert dat het heel gemakkelijk wordt een cassettemodule te vervangen, te verwijderen of toe te voegen zonder dat men aan de bedrading hoeft te komen.
(1) (3)
2.3.2.
(2)
Bus modules PCD4.C…
Schooljaar 2005-2006
Tom De Crits
Minimale Operating System voor communicatie met Saia PLC
-16-
Vanuit mechanisch oogpunt vormt de busmodule de ruggengraat van de PCD4. Men heeft de keuze uit verschillende busmodules waarop men de cassettemodules kan klikken, mechanische vastzetten en elektrisch verbinden met de I/O of CPU bus. De busmodule kan op zijn beurt gemonteerd worden op een dubbele 35mm rail met DIN/EN50 022.
2.3.3.
Power supply modules PCD4.M… Supply module PCD4.N210M4
De voedingmodule PCD4.M210M4 past volledig links naast de processormodule op onze net besproken busmodule PCD4.C100. Normaal volstaat deze voor de inwendige voeding van 512 I/O ’s of 32 digitale I/O-modules. Deze module staat in voor volgende zaken: Controleren van de 24 VDC ingangspanning, met een reset circuit. Controleren van de +5 VDC en ± 15 VDC uitgangsspanning. Controleren van het laadniveau van de back-up batterij. Watchdog controleert of het doorlopen van het gebruikersprogramma regulier juist gebeurd en stelt in staat om in geval van foutmeldingen bepaalde veiligheidsstappen te doorlopen. LED display geeft de staat van de processor weer.
Schooljaar 2005-2006
Tom De Crits
Minimale Operating System voor communicatie met Saia PLC
2.3.4.
-17-
Processor modules PCD4.M…
De processormodule PCD4.M170 kan beschouwd worden als de belangrijkste module. De versie die ter beschikking gesteld werd, heeft weliswaar geen B2-connector, TCP/IP plug en ook niet de Terminals 40…49. Blokdiagram van de PCD4.M170:
Blokdiagram PCD4.M170
Schooljaar 2005-2006
Tom De Crits
Minimale Operating System voor communicatie met Saia PLC
-18-
Systeem kenmerken geldig voor de volledige PCD familie:
Registers 4096 x 32 bit Verwerkingsbereik Integers: -2147483648…+214728367 (-231…+231-1) Floating-point numbers: ±9.22337 x 1018…±5.42101 x 10-20 Formats: decimal, binary, BCD, hexadecimal of floating point Index registers 17 x 13 bit (1 each per COB and XOB) Timers/Tellers 1600 vluchtige timers of niet-vluchtige tellers, verschil programmeerbaar Tellerbereik: 31 bit, unsigned (0…2147483647) Timerbereik: 31 bit, unsigned (0…2147483647 tijdsignalen, selecteerbaar van 10ms tot en met 10s Vlaggen 8192 x 1 bit, vluchtig en niet-vluchtig, verschil programmeerbaar Datum-tijd Tijdswaarden: s/min/h, week/dag of week, maand/dag of maand, jaar Nauwkeurigheid: beter dan 15s /maand Voedingreserve: 1 tot 3 jaar
Technische eigenschappen specifiek aan de PCD4.M170:
Aantal in-/uitgangen of I/O modules
510 32
Aantal CPU ’s
1 (CPU with 32 bit µC 68340 25MHZ)
Processing tijd - bit command - word command Seriële data poorten - RS232 connector voor PGU/S-bus - B1-connector (RS232, RS422,RS485) Connectie voor netwerk Gebruikers geheugen - standaard RAM - uitbreiding met RAM of EPROM
2 µs 10 µs 2 Ja Ja Nee 1024 KBytes 1024 KBytes (..R400)
Datum-tijd Ja Databeveiliging en voedingreserve voor real-time 1-3 jaar met lithium batterij clock Interrupt ingangen of 2 Snelle teller ingangen 1 kHz Field bus connecties Saia S-bus Profibus FMS Profibus DP LonWorks
Schooljaar 2005-2006
Tom De Crits
Minimale Operating System voor communicatie met Saia PLC
2.3.5.
-19-
Digital I/O modules PCD4.A/B/E…
Deze digitale I/O module PCD4.A400 is gemonteerd bij de ter beschikking gestelde PLCopstelling. Deze beschikt in totaal over 16 uitgangen (transistors). ‘Breaking capacity’ van 0,5A/5…32VDC en is niet galvanisch gescheiden. Typische stroom van zo’n 25A, deze stroom verschilt naargelang de belasting van de actieve uitgangen. Al de I/O modules zijn volgens de 4 kV interferentie tests immuun bevonden volgens IEC 1000-14-4. Ze kunnen op willekeurige plaats in het bussysteem gemonteerd worden. Om te voorkomen dat ze op welbepaalde plaatsen geklikt kunnen worden, maakt men gebruik van zogenaamde key tabs. LED ’s op het frontpaneel van de I/O module geven de processtatus weer. Ieder LED kan gemakkelijk gelabeld worden m.b.v. de inschuifstroken.
2.4.
Programmering van de Saia PLC
Saia PG5 Controls Suite laat toe om te programmeren, projectplanning te bewerkstelligen en de configuratie van een PLC gebaseerd systeem uit te voeren. Met deze aan te schaffen software kan men dus: de PLC gaan configureren: o online instellingen o hardware instellingen o software instellingen programma’s toevoegen en schrijven programma’s up- en downloaden online debuggen
2.4.1.
Communicatie tussen PLC en pc
Wanneer men vertrekt van de gedachte te werken met een standaard pc, zal zoals altijd de communicatie met de PLC verzekerd worden via de seriële poort. De PGU-poort (RS232) aan de PLC-zijde wordt in het algemeen gebruikt voor de communicatie met de pc te garanderen. De PLC wordt dan geprogrammeerd in het programma PG5. Alles wordt duidelijk op de volgende illustratie terug te vinden op de volgende pagina.
Schooljaar 2005-2006
Tom De Crits
Minimale Operating System voor communicatie met Saia PLC
-20-
Op stage werd de verbindingskabel ter beschikking gesteld. Voor het thuis verder werken kon er overgegaan worden tot een kabel kopen met de juiste verbindingen of deze te vervaardigen. Deze werd vervaardigd volgens het schema van de PCD8.K111 connecting cable (for S-bus protocol).
Wegens het feit dat er geen seriële poort aanwezig is op de gebruikte laptop, wordt er gebruik gemaakt van een USB-RS232-converter. Het gepaste stuurprogramma wordt afgehaald en geïnstalleerd en zorgt ervoor dat men via USB een virtuele seriële poort ter beschikking heeft.
Schooljaar 2005-2006
Tom De Crits
Minimale Operating System voor communicatie met Saia PLC
-21-
Het gebruik van een adapter zorgt er in vele gevallen wel voor dat de communicatie tussen PLC en pc vertraagd wordt. Hier moet rekening mee gehouden worden. Eenmaal de fysieke verbinding op punt staat tussen PLC en pc kan er overgaan worden tot het instellen van de project manager PG5.
2.4.2. 2.4.2.1.
Instellingen Online instellingen
Bij het opstarten van PG5 krijgt men het volgende scherm met aan de linkerzijde de project tree. Als deze er niet staat, kan deze zichtbaar gemaakt worden bij View in de menubalk, waar project tree aangevinkt moet worden.
Als men nu de instellingen wil aanpassen moet men in deze project tree het plusje voor Settings aanklikken.
Schooljaar 2005-2006
Tom De Crits
Minimale Operating System voor communicatie met Saia PLC
-22-
Bij het nu dubbelklikken op Online verschijnt het volgende scherm.
Het te gebruiken protocol, hier S-bus protocol, wordt geselecteerd bij Channel. De andere instellingen in dit venster worden bij default ingevuld en hoeft men niet te wijzigen. Om nu de seriële poort instellingen te wijzigen, wordt er op Setup geklikt. Het volgende scherm verschijnt. Het uitzicht van dit scherm wordt bepaald door de protocolkeuze.
In dit venster selecteert men in het frame S-bus Protocol de juiste seriële poort waarmee de Saia PlC verbonden, keuzebox naast Port. Ook de baudrate kan hier ingesteld worden. In mijn geval werk ik via COM4 en met een Baudrate van 9600. De communicatiemode stelt men in op Parity mode door een v’tje erbij te plaatsen. Wat S-bus Timing betreft laat men alle waarden op default staan. Men bevestigt de wijzigingen door op OK te klikken waardoor men terug in het vorige venster beland. Hier bevestigt men de wijzigingen nogmaals door op OK te klikken. Schooljaar 2005-2006
Tom De Crits
Minimale Operating System voor communicatie met Saia PLC
2.4.2.2.
-23-
Hardware instellingen
Om de hardware instellingen te wijzigen, dubbelklikt men op Hardware in de project tree en het volgende scherm komt te voorschijn.
In dit scherm zijn er meerdere tabbladen aanwezig. Wanneer de PLC al aangesloten is kan men beter eerst de hardware settings ophalen door op Upload… te klikken en nogmaals te bevestigen. Zo is men meestal niet genoodzaakt veel te veranderen aan de instellingen, want meestal zijn deze dan al juist. In het tabblad van PCD selecteert men de juiste PCD Type uit de reeks. Hier dus de PCD4.M170. Men overloopt nog eens vlug alle tabbladen en controleert de ingevoegde gegevens die normaler wijs juist zijn. Wanneer men zeker is dat alle instellingen correct zijn moet men deze in de PLC laden. Dit realiseert men door op Download… te klikken en te bevestigen. Nadien sluit men terug af door te bevestigen op de OK-knop.
Schooljaar 2005-2006
Tom De Crits
Minimale Operating System voor communicatie met Saia PLC
2.4.2.3.
-24-
Software instellingen
Om de software instellingen te wijzigen, dubbelklikt men op Software in de project tree en het volgende scherm komt te voorschijn.
Hier kan men de te programmeren registers, tellers, vlaggen, teksten en data blokken aanpassen. Wederom zijn de defaultwaarden hier correct en moet er niets aangepast worden. 2.4.2.4.
Programma
Om een nieuw programma aan te maken of een bestaand programma toe te voegen klikt men rechts op de project tree op Program files. Vervolgens maakt men een keuze in het snelmenu tussen New…of Add files…. Wanneer men nu op New… klikt, krijgt men volgend keuzescherm.
Schooljaar 2005-2006
Tom De Crits
Minimale Operating System voor communicatie met Saia PLC
-25-
Het programma kan men hier een naam geven en men kiest er ook met welk soort ‘file’ men wil werken. De drie belangrijkste types zijn Instruction List File, Graftec File en Fupla File.
Instruction List File (*.scr) wordt Vb van Instruction List File (*.scr) meestal gekozen voor snelle programma’s of voor simpelere programma’s zoals bij mij het geval is waarbij ik enkel de vlaggen koppel aan welbepaalde uitgangen (Zie BIJLAGE 2). IL of Instructie List is een soort van assembler code met 127 verschillende instructies die werken in combinatie met zeer doeltreffende assembler richtlijnen. De editor waarin alles gebeurt, noemt men S-Edit. Op de illustratie hiernaast zie je een stukje voorbeeldcode met Vb van Graftec File (*.sfc) bijhorende gegenereerde assembler ILcode. Bij het gebruik van een Graftec File (*.sfc) heeft men de mogelijkheid om met sequentiële blokken te werken. Men tekent a.h.w. het programma uit waardoor men een programma beter kan structureren en het eenvoudiger voorgesteld wordt. Het is een heel handig gebruiksmiddel om een programma te schrijven waarbij stap na stap komt en er iedere keer aan bepaalde voorwaarden moeten voldaan zijn voor er over mag gegaan worden naar een volgende stap. Dit kunnen zowel interne als externe handelingen zijn waaraan voldaan moet zijn. Hiernaast zie je een dergelijk voorbeeldprogrammaatje opgemaakt in S-Graf, de editor voor Graftec files. Fupla File (*.fup) biedt ook de mogelijkheid een programma grafisch uit te werken. Men heeft de keuze uit twee soorten: Ladder en Logic. Het enige verschil tussen de twee is de manier waarop men binaire combinaties tekent. Maar het implementeren van beide soorten gebeurt in dezelfde editor S-Fup. Op de volgende pagina is er een voorbeeld programmaatje opgemaakt in Fupla opgenomen, het is een voorbeeld van een dagelijkse timer. Bij het programmeren kan men altijd hulp aanroepen via de gekende F1-functie over de logische bouwstenen en hun eigenschappen.
Schooljaar 2005-2006
Tom De Crits
Minimale Operating System voor communicatie met Saia PLC
2.4.2.5.
-26-
Online debuggen
Nu moet men online gaan door op het volgende icoontje
te klikken in de menubalk.
Wanneer men succesvol online is, ziet men dat de volgende icoontjes niet langer onactief zijn. Er rest nu nog alleen online te debuggen, om te zien of de verbinding met de PLC volledig correct is. Hiervoor klikt men op het volgende icoontje , het volgende scherm komt te voorschijn. Met deze debugger kan men de werking van de programma’s grondig controleren. Alle mogelijke instructies staan onderaan het venster in de blauwe zone. Indien er meer hulp nodig is, kan men deze aanroepen door simpelweg H te typen en op Enter te drukken. Terug staan de navigatietoetsen onderaan in de blauwe zone.
Schooljaar 2005-2006
Tom De Crits
Minimale Operating System voor communicatie met Saia PLC
-27-
3. Seriële communicatie: RS232 3.1.
Inleiding
De RS232-standaard staat voor een punt naar punt verbinding, tussen een DTE (Data Terminal Equipment) en een DCE (Data Communication Equipment). De fysische connectie, namelijk de stekker, was oorspronkelijk een 25-polige D-sub-stekker (DB-25) maar is ondertussen vervangen door een 9-polige versie (DB-9) (zie illustratie: RS232 connectoren). De EIA standaard RS-232-C uit 1969 definieert het volgende:
de elektrische signaalkarakteristieken zoals het spanningsniveau; de mechanische interface karakteristieken zoals het soort stekkers en de pinidentificatie; en de functies van elk circuit in de interfacestekker. RS232 connectoren
De communicatie zoals gedefinieerd is een asynchrone seriële communicatiemethode. Het woord serieel betekent dat de informatie bit voor bit wordt verzonden. Asynchroon leert ons, dat de informatie niet op vooraf afgesproken momenten wordt verzonden. Het verzenden van data kan op elk willekeurig moment starten en het is daarbij de taak van de ontvanger om te detecteren wanneer een boodschap start en eindigt.
3.2.
Bit treinen
De RS232 standaard beschrijft een communicatiemethode waarbij informatie bit voor bit wordt verstuurd over een fysiek kanaal. De informatie moet opgedeeld zijn in datawoorden. De lengte van een datawoord is variabel. Op computers kan een lengte tussen 5 en 8 bits worden ingesteld. Deze lengte is de netto informatielengte van elk woord. Voor een goede overdracht worden extra bits toegevoegd om synchronisatie en foutdetectie mogelijk te maken. Het is belangrijk, dat zowel de zender als de ontvanger ingesteld staan op hetzelfde aantal databits. Anders kan de binnenkomende informatie als fout worden geïnterpreteerd, of
Schooljaar 2005-2006
Tom De Crits
Minimale Operating System voor communicatie met Saia PLC
-28-
zelfs helemaal niet worden herkend. Men kan niet zoals bij ethernet "alles op automatisch" zetten en de kabel vast klikken, bij RS232 moeten er instellingen gebeuren. Bij synchrone communicatie is een klok of trigger signaal aanwezig waarmee het begin van elke dataoverdracht wordt aangegeven. De afwezigheid van het kloksignaal maakt asynchrone communicatie goedkoper te implementeren omdat minder lijnen nodig zijn in de kabel. Een nadeel hierdoor is, dat de ontvanger op het verkeerde moment met ontvangst kan starten. In dat geval is tijdrovende synchronisatie noodzakelijk. Alle gegevens die tijdens die synchronisatieperiode worden verzonden gaan verloren. Deze extra bits die noodzakelijk zijn in de bit treinen om het begin en het einde van de nuttige informatie aan te geven gebruiken bandbreedte. Databits worden met een vastgelegde frequentie verzonden. Zowel de zender als de ontvanger moeten geprogrammeerd zijn voor gebruik van dezelfde bitfrequentie. Deze bitfrequentie wordt niet door de standaard gedefinieerd. Nadat het eerste bit ontvangen is berekent de ontvanger op welke momenten de volgende databits kunnen worden verwacht. De RS232 standaard definieert de signaalniveaus die corresponderen met een logische één en een logische nul als plus of min 3 tot 15 V. Het gebied rond nul volt (tussen -3 V en +3 V) is gee n geldig RS232 niveau. Een logische één heeft een negatief signaalniveau, wordt 'mark' genoemd en heeft als functionele betekenis UIT (OFF), een logische nul is positief, wordt 'space' genoemd en heeft als functionele betekenis AAN (ON). De standaard specificeert een maximum van ±25 V aan de ingang en aan de uitgang ±15 V. Als er geen gegevens worden verzonden wordt de lijn in de marking toestand gehouden.
3.3.
Startbit
RS232 definieert een asynchrone manier van communiceren. Dit betekent zoals in vorige paragraaf uitgelegd, dat het verzenden van een datawoord op elk moment kan beginnen. Het op elk moment kunnen starten levert enkele problemen op aan de ontvangstzijde om te detecteren welk bit het eerste te ontvangen bit van een datawoord is. Om dit probleem op te lossen wordt elk datawoord vooraf gegaan door een signaleringsbit. Dit signaleringsbit, ook bekend als startbit, is altijd herkenbaar aan het space signaalniveau. Omdat de lijn in marking status is als er geen communicatie geschiedt, kan het startbit eenvoudig door de ontvanger worden herkend.
Schooljaar 2005-2006
Tom De Crits
Minimale Operating System voor communicatie met Saia PLC
3.4.
-29-
Databits
Direct na het startbit worden de databits verzonden. Een bitwaarde 1 zorgt ervoor dat de lijn in de marking status gaat terwijl de bitwaarde 0 wordt gerepresenteerd door de space status.
3.5.
Pariteitsbit
Om transmissiefouten te kunnen detecteren is het mogelijk om aan het eind van het datawoord automatisch een pariteitsbit te laten genereren. De zender berekent de waarde van dit bit aan de hand van de verzonden informatie. De ontvanger voert dezelfde berekening uit en controleert dan of het ontvangen pariteitsbit overeen komt met de berekende waarde. Eenvoudig gezegd kan het pariteitsbit op twee manieren worden berekend. Wanneer even pariteit wordt toegepast zal het aantal verzonden hoge informatiebits altijd even zijn. Als het aantal bits met logische waarde één in het datawoord oneven is, dan zal een logische één als pariteitsbit worden toegevoegd. Anders zal een logische nul worden gebruikt. Het oneven pariteitsysteem lijkt op het even pariteitsysteem, maar in dit geval is het aantal hoge bits altijd oneven.
3.6.
Stopbits
Veronderstel, dat de ontvanger het startbit gemist heeft omdat er op dat moment ruis op de lijn aanwezig was. Dan start in dat geval de ontvangst met het eerstvolgende databit dat een space waarde heeft. Hierdoor wordt verminkte data ontvangen en klopt het frame niet meer. Framing werd geïntroduceerd om synchronisatie te bewerkstellingen. Framing betekent, dat de databits en het pariteitsbit worden omringd door start- en stopbits. De tijdsperiode tussen de start- en stopbits is constant en wordt bepaald door de baudrate en het aantal data- en pariteitsbits. Het startbit wordt altijd aangegeven met het space niveau, het stopbit met marking niveau. Als de ontvanger een andere waarde dan marking detecteert op het moment dat het stopbit had moeten worden ontvangen, dan is daarmee gedetecteerd dat er een ‘framing error’ heeft plaatsgevonden. Hierdoor wordt een foutconditie in de UART gezet. Vervolgens wordt geprobeerd opnieuw binnenkomende bits te synchroniseren. Om opnieuw te synchroniseren zoekt de ontvanger in de binnenkomende gegevens naar correcte paren van start- en stopbits. Dit werkt, zolang er genoeg variatie is in de bitpatronen van de binnenkomende datawoorden. Als bijvoorbeeld de datawaarde 0 continu verzonden wordt kan echter in het geheel geen hersynchronisatie plaatsvinden. Het stopbit dat het einde van het data blok aangeeft kan verschillende lengtes hebben. Eigenlijk is het niet echt een bit, maar de minimum periode dat de lijn in de marking stand moet zijn na het einde van elk datawoord. Op computers kan deze tijdsperiode worden ingesteld op drie waarden: de tijd benodigd voor 1, 1,5 of 2 bits. 1,5 bits kan alleen worden gebruikt bij datawoorden van 5 bits lengte en 2 bits is alleen toepasbaar voor langere woorden. Een stopbit lengte van 1 bit is toepasbaar bij alle datawoord lengtes.
Schooljaar 2005-2006
Tom De Crits
Minimale Operating System voor communicatie met Saia PLC
3.7.
-30-
Fysieke eigenschappen
De RS232 standaard beschrijft een communicatiemethode waarmee het mogelijk is om te communiceren onder verschillende omstandigheden. Dit heeft invloed op de maximaal toelaatbare spanningen en maximale kabellengte.
Spanningen
Het signaalniveau van de RS232 pinnen kan zich in twee toestanden bevinden. Een hoog bit, ofwel een marking status, wordt aangegeven met een negatieve spanning, terwijl een laag bit of space status herkenbaar is aan een positieve spanning. De spanningslimieten worden in de volgende tabel getoond. Niveau Logische 0 Space status Logische 1 Mark status Ongedefinieerd
Zender Ontvanger Grenswaarden [V] Grenswaarden [V] +5…+15 +3…+25 -5…-15
-3…-25
-
-3…+3
Maximale kabellengte
Kabellengte is één van de meest besproken onderwerpen in de RS232 wereld. De standaard heeft hier een duidelijk antwoord op. De maximaal toegestane kabellengte is 15 meter, of de kabellengte die overeen komt met een capaciteit van 2500 pF. De laatste regel wordt echter vaak vergeten. Dit betekent, dat door gebruik te maken van een kabel met een lage capaciteit het mogelijk is grotere afstanden te overbruggen zonder buiten de limieten van de standaard te vallen. Bij de in de standaard genoemde kabellengte is het mogelijk de maximale communicatiesnelheid te handhaven. Als de snelheid met een factor 2 of 4 wordt verlaagd, dan neemt de maximaal mogelijke lengte drastisch toe. Texas Instruments heeft een aantal jaar geleden praktische experimenten uitgevoerd om bij verschillende baudrates de maximaal toegestane kabellengte te bepalen. Hou hierbij in het achterhoofd, dat de RS232 standaard oorspronkelijk ontwikkeld is voor snelheden tot 20 kbps. Door het halveren van de maximale communicatiesnelheid neemt de maximaal toegestane kabellengte toe met een factor tien. De RS232 kabellengtes volgens Texas Insturments zijn weergegeven in volgende tabel. Ook de kwaliteit van de gebruikte kabel is bepalend. Baudrate Maximale kabellengte [m] 19200 15 9600 150 4800 300 2400 900
Schooljaar 2005-2006
Tom De Crits
Minimale Operating System voor communicatie met Saia PLC
-31-
4. Saia S-bus protocol
4.1.
Inleiding
Het S-bus protocol is het systeem protocol voor Saia PCD controllers. Het is een eenvoudig en heel efficiënt protocol dat door alle PCD CPU’s wordt ondersteund. Het werd speciaal ontwikkeld voor de data-uitwisseling met de PCD controllers alsook voor het programmeren van deze met behulp van PG5 programmeringomgeving. Het protocol onderscheidt zich door de volgende eigenschappen:
simpel en efficiënt door het lage aantal protocol overheads master/slave communicatie in half-duplex operatie met een eenvoudige RS485 kan men een heel economisch master/slave netwerk realiseren kan gebruikt worden met bijna alle fysieke overbrengingsmedia, zoals seriële poorten (RS232, RS422/RS485, TTY/20mA current loop), ethernet-TCP/IP, LWL, modem,… betrouwbare overbrenging of transmissie gegarandeerd door CRC16 fout herkenning adressering tot 254 stations in een locaal S-bus netwerk ondersteunt telegram verzenden het protocol kan gelijktijdig lopen op verschillende parallelle interfaces het protocol ondersteunt het lezen en schrijven van alle PCD data (inputs, outputs, flags, registers, timers, counters, text, data blocks, clock, etc.) bij seriële poorten is er ondersteuning van alle baudrates tot maximale baudrate
Schooljaar 2005-2006
Tom De Crits
Minimale Operating System voor communicatie met Saia PLC
-32-
een OPC server is beschikbaar voor Saia S-bus zodat Saia PCD controllers gemakkelijk gelinkt kunnen worden aan visualisatie- en beheersystemen.
Het OSI-model, ook wel zevenlagenmodel, toegepast op het Saia S-bus protocol ziet er als volgt uit in tabelvorm. (Voor meer informatie over OSI-model zie BIJLAGE 3) Toepassingslaag Presentatielaag Sessielaag Transportlaag Netwerklaag Datalinklaag Fysieke laag
4.2.
Saia S-bus herleid of volledig protocol Telegram 0…255 Niet gebruikt Niet gebruikt Niet gebruikt Gedwongen pariteitmechanisme Saia S-bus: ACK/NACK-mechanisme Byte synchronisatie + CRC 16 foutcontrole RS485, RS232, 20mA CL, etc.
Toepassingslaag
We onderscheiden in de toepassingslaag twee niveaus.
‘Data transfer service’ (niveau 1)
In het eerste geval onderscheiden we een ondergroep of ook wel herleid S-bus protocol (Reduced S-bus protocol). Het master-/hoofdstation kan enkel PCD data lezen en schrijven in een slave-/slaafstation, alsook de status uitlezen van deze laatstgenoemde. Wat verstaan we nu onder PCD data: ingangen, uitgangen, vlaggen, registers, timers, tellers, data blokken en de hardware klok.
Schooljaar 2005-2006
Tom De Crits
Minimale Operating System voor communicatie met Saia PLC
-33-
‘Commissioning service’ (niveau 2)
Op dit niveau wordt het volledig S-bus protocol ondersteund (Full S-bus protocol). De programmeermodule (PGU) kan gebruikt worden voor de controle over elk slaafstation in het netwerk. ‘Commissioning service’ wordt ook wel vaak S-bus PGU genoemd. Toegang via de publieke telefoon wordt ook ondersteund.
4.3.
Presentatielaag
De meeste telegrammen zijn van een vaste lengte en daardoor is er ook geen behoefte aan een speciaal einde of een telegram karakter. De telegrammen die geen vaste lengte hebben, hebben onmiddellijk na het commando code een count/tel byte om de lengte te duiden. In het antwoordtelegram is er geen behoefte aan een count/tel byte want de client weet al de lengte van het te verwachten telegram. In de handleiding van het Saia S-bus protocol vinden we volgend voorbeeldtelegram terug waarbij waarde 12345 (Dec) naar register 100 weggeschreven wordt in station 10 in het Saiabus netwerk.
M.b.v. een seriële ‘spyer’ werd vorig jaar door de stagestudenten het telegram bestudeerd en gecontroleerd tijdens de S-bus communicatie in een master/slave configuratie. Het resultaat hiervan is: voor STXM − telegram Serial Transmit Media: [STATION_ADRES] [COMMANDO_CODE] [VOLGENDE_BYTES-1 (zonder CRC)] [ADRES_BYTE1] [ADRES_BYTE2] [INDEX] [DATA1]…[DATA4] [CRC1] [CRC2] voor SRXM − telegram Serial Receive Media: [STATION_ADRES] [COMMANDO_CODE] [INDEX] [ADRES_BYTE1] [ADRES_BYTE2] [CRC1] [CRC2] [DATA_BYTE1] [DATA_BYTE2] [CRC_DATA1] [CRC_DATA2]
Schooljaar 2005-2006
Tom De Crits
Minimale Operating System voor communicatie met Saia PLC
4.4.
-34-
Netwerklaag
We onderscheiden drie verschillende modes waarop een telegram kan verstuurd of ontvangen worden.
4.4.1.
Data mode (SM2/SS2)
Ieder telegram begint in data mode met een speciaal FS-karakter (FS = frame synchronisatie). Dit FS-karakter heeft de vaste hexadecimale waarde B5 die opgenomen is in het telegram zijn header. Onmiddellijk wordt het gevolgd door een AT-karakter die aangeeft over welk soort telegram het gaat.
4.4.2.
Parity mode (SM1/SS1)
In pariteitmode geeft de pariteit aan over welk soort karakter het gaat. Voor een adres wordt de pariteitsbit geforceerd tot 1 en voor data wordt deze 0.
4.4.3.
Break mode (SM0/SS0)
Het break karakter is een speciaal karakter waarbij de seriële data laag in marking stand is voor het volledige karakter inclusief de stopbit en het geeft ook het begin van het telegram aan. Het volgende karakter wordt dan automatisch door de PLC als het adreskarakter uitgelezen en de hierna volgende karakters als data.
Schooljaar 2005-2006
Tom De Crits
Minimale Operating System voor communicatie met Saia PLC
4.5.
-35-
Datalinklaag
In deze laag onderscheiden we een bovenste hulplaag. Deze beheert de Point to Point communicatie in het netwerk. Als een telegram verloren gaat of corrupt geraakt zal deze laag ervoor zorgen dat het telegram terug doorgegeven wordt. De functionaliteit van deze laag wordt duidelijker aan de hand van volgende diagrammen en alinea’s. De volgende figuur geeft een succesvolle overbrenging weer van een telegram. (STXM)
Indien nu een onjuist telegram, bijvoorbeeld een fout bij de CRC-controle, ontvangen wordt door de server en de client krijgt geen antwoord of ACK dan zal het telegram terug worden gestuurd nadat de client eerst in time out is gegaan. Er wordt in totaal drie keer geprobeerd de boodschap te verzenden, m.a.w. er zijn twee nieuwe pogingen. In het geval dat de ontvanger het telegram niet kan interpreteren, zal deze een NACK-signaal genereren wat ook terug zal leiden tot het opnieuw zenden van de request.
De volgende illustratie is een voorbeeld van een succesvolle uitvoering van een lees/antwoord telegram, bijvoorbeeld het uitlezen van een bepaalde waarde of status. (SRXM)
Schooljaar 2005-2006
Tom De Crits
Minimale Operating System voor communicatie met Saia PLC
-36-
In een netwerk is er maar één master en enkel het half duplex protocol wordt ondersteund. Dit impliceert dat er nooit gevaar is dat alles muur vast komt te zitten of er wedijver ontstaat tussen clients. We onderscheiden anderzijds ook een onderste hulplaag waarvan het hoofddoel het controleren van de CRC-16 code is. Het CRC-16 foutcontrole algoritme gebruikt volgende polynoom: X^16 + X^12 + X^5 + 1 = 1021 Hex. En dit is een standaard CCITT CRC (referentie CCITT V-41).
4.6.
Fysieke laag
Saia S-bus zal functioneren op alle type communicatiepoorten die op de hele PCD-familie aanwezig zijn. Saia S-bus werd in het bijzonder ontwikkeld om te functioneren over een RS485 multidrop netwerk van één server en een maximum van 255 clients die gebruik maken van een S-bus herhaler. Maar Saia S-bus functioneert ook via RS232 seriële interface en via modems.
Schooljaar 2005-2006
Tom De Crits
Minimale Operating System voor communicatie met Saia PLC
-37-
5. Operating system 5.1.
Wat is een operating system?
Een Operating System (afgekort OS en in het Nederlands besturingssysteem) is het programma (meestal een geheel van samenwerkende programma’s) dat bij het opstarten van de computer als eerste in het geheugen geladen wordt. Het biedt de functionaliteiten aan om andere programma’s uit te voeren. Zonder een besturingssysteem is een computer onbruikbaar. Besturingssystemen komen niet enkel voor op pc’s, maar zijn ook terug te vinden in andere elektronische apparaten. Een mooi voorbeeld is de mobiele telefoon, die ook beschouwd kan worden als computer. Onder de noemer computer vallen dus meerdere elektronische apparaten en het begrip slaat dus niet enkel op pc’s. Op deze mobiele telefoon draait dus ook een besturingssysteem die de hardware en software van het systeem beheert. Algemeen zorgt het besturingssysteem voor het opstarten en beëindigen van andere programma’s, regelt de toegang tot de harde schijf, het scherm, de invoer van gegevens, enz. Het doel van een besturingssysteem is dus het organiseren en controleren van de hardware en software zodat de computer zich flexibel, maar toch voorspelbaar gedraagt. Bij de pc wordt het besturingssysteem meestal van de harde schijf gelezen, soms ook wel vanuit ROM-geheugen of vanaf een verwisselbaar medium zoals een diskette, cd-rom, of (voor ingebedde systemen) een flashgeheugen. Een schijfloos systeem is ook een optie. Dit is een systeem zonder harde schijven, waarbij vanaf een netwerk opgestart wordt. Het BootPprotocol en het nieuwere DHCP-protocol voorzien hierin. Het besturingssysteem is toegankelijk voor gebruikers via een opdrachtregel, bijvoorbeeld MS-DOS of de UNIX-terminal, of via een grafische gebruikersinterface als Microsoft Windows of het X-Windows systeem. De andere programma’s die gestart kunnen worden heten toepassingen of applicaties. Dergelijke toepassingen maken gebruik van het besturingssysteem op verschillende manieren en vormen er samen mee het werktuig van de eindgebruiker om iets te realiseren. Dit kan bijvoorbeeld een document opstellen zijn in Word om het vervolgens via randapparatuur, de printer op papier af te drukken. Voor een lijst van besturingssystemen voor op computers zie BIJLAGE 4.
5.2.
Soorten
In het brede gamma aan besturingssystemen zijn vier soorten te onderscheiden, gebaseerd op het type van computer die ze controleren en de toepassingen die ze ondersteunen.
5.2.1.
Real-time operating system (RTOS)
Real-time besturingssystemen worden gebruikt om machines, wetenschappelijke instrumenten en industriële systemen te beheren. Typisch bij een real-time besturingssysteem is de beperkte gebruikersinterfacemogelijkheden en de beperkte bruikbaarheid naar de eindgebruiker toe vanwege het feit dergelijke systemen in een ‘gesloten box’ worden geleverd. Een heel belangrijk aspect bij een RTOS is het beheren van de bronnen van de computer zodat een afzonderlijk proces uitgevoerd wordt in precies dezelfde tijdsspanne iedere keer het actief is. In een complexere machine mag het bijvoorbeeld niet zijn dat een werkstuk of werktuig zich Schooljaar 2005-2006
Tom De Crits
Minimale Operating System voor communicatie met Saia PLC
-38-
vlugger verplaatst vanwege het feit er meer systeembronnen ter beschikking zijn. Dit kan catastrofale gevolgen hebben. Ook in het ander geval wanneer het stuk zich niet verplaatst omdat het systeem bezig is, kan grote gevolgen hebben.
5.2.2.
Single-user, single task
Zoals de naam het zelf aangeeft, is dit besturingssysteem ontwikkeld om slechts effectief één toepassing tegelijkertijd te kunnen gebruiken. Een mooi en recent voorbeeld hiervan is het Palm Os ontwikkeld voor PDA’s.
5.2.3.
Single-user, multi-tasking
Op de meeste desktop pc’s en laptops draait dit soort besturingssysteem. Het laat één gebruiker toe tegelijkertijd meerdere toepassingen te draaien. Een voorbeeld van dergelijk besturingssysteem is Windows van Microsoft waarbij het mogelijk is voor de gebruiker een tekstbestand op te maken in Word, ondertussen een bestand te downloaden van het internet en tegelijkertijd een email te printen. Een ander voorbeeld is Apple’s MacOS.
5.2.4.
Multi-user
Een multi-user besturingssysteem laat toe dat meerdere gebruikers gelijktijdig gebruik maken van de computerbronnen. Het besturingssysteem moet hierbij erop letten dat de vereisten van de verschillende gebruikers in evenwicht zijn en dat elke toepassing die ze gebruiken voldoende en aparte systeembronnen ter beschikking krijgt. Dit is noodzakelijk zodat een probleem bij één gebruiker niet de hele groep gebruikers treft. Unix is een mooi voorbeeld van een multi-user besturingssysteem alsook Windows 2003 Server.
5.3.
Opstarten
Wanneer een computer ingeschakeld wordt komen steeds een aantal fasen in een vaste volgorde terug.
5.3.1.
Hardwaretest
De computer test eerst een aantal elementen van de hardware vooraleer de gebruiker toegang krijgt tot het besturingssysteem en zijn toepassingen. Is het geheugen van de computer betrouwbaar? Is er een toetsenbord aangesloten? Is er een muis geïnstalleerd? Deze testen bij de start noemt men de POST (Power On Self Test) en de instructies ervoor worden bewaard in het ROM-geheugen (Read Only Memory). Het resultaat wordt weggeschreven op een speciale geheugenplaats.
5.3.2.
Booten
Na de test van de elektronische onderdelen en verbindingen gaat de computer op zoek naar nog meer instructies. Deze instructies zullen moeten instaan voor een goede werking van de computer en zijn randapparatuur en dient dus voor de besturing van de computer. Ze vormen
Schooljaar 2005-2006
Tom De Crits
Minimale Operating System voor communicatie met Saia PLC
-39-
samen het besturingssysteem. De schijf waarop zich het besturingssysteem bevindt noemt men een systeemschijf. Meestal zoekt de computer het besturingssysteem eerst in het diskettestation (als dit aanwezig is op het systeem). Als daar geen diskette inzit zal er verder gezocht worden in het Cdromstation (als dit tenminste aanwezig is) en als laatste op de harde schijf. Er moet hierbij opgemerkt worden dat deze volgorde kan aangepast worden in het BIOS van de computer, maar meestal verloopt het zoeken naar verdere instructies zoals beschreven. Deze manier van opstarten en in het geheugen laden van het besturingssysteem noemen we booten. Het is gebruikelijk om het besturingsysteem na het starten van de computer te laden vanaf een harde schijf. Deze werkwijze geeft de mogelijkheid het besturingsysteem door een nieuwere versie te vervangen, of zelfs een geheel ander besturingsysteem te kiezen. Vroeger was het systeem laden vanaf een harde schijf niet vanzelfsprekend. Ook kan het besturingsysteem, net als de firmware, in chips gebrand worden. Dit werkt zelfs sneller dan het vanaf een harde schijf te starten, en maakt de hardware compacter. Dit wordt toegepast bij veel mobiele apparaten, zoals bij PDA’s (single-user, single task). Ook nu nog worden computersystemen gebruikt met een besturingsysteem "ingebakken", vaak inclusief een toepassingsprogramma. Het gaat dan meestal om een apparaat met slechts één doel, bijvoorbeeld een wasmachine, een melkmachine, besturing van slagbomen, een weegbrug, enz. (RTOS)
5.4.
Taken
De taken waarvoor een besturingssysteem ontwikkeld is kan men opsplitsen in hoofdzakelijk 6 categorieën:
processorbeheer geheugenbeheer apparatuurbeheer opslagbeheer applicatie interface gebruikersinterface
Hieromtrent bestaat er zekere onenigheid. Sommigen vinden dat een besturingssysteem meer zou moeten doen en soms is er ook veel meer functionaliteit, samen met gebruikertoepassingen opgenomen in een besturingssysteem. Maar deze zes taken definiëren de kern van bijna alle besturingssystemen. In de volgende paragrafen is kort toe gelicht wat deze categorieën inhouden.
5.4.1.
Processorbeheer
Aan de kern bij het beheren van de processor zijn twee gerelateerde beslissingen aan de orde:
Er moet voor gezorgd worden dat processen en applicaties genoeg tijd van de processor krijgen om goed te functioneren. Er moeten zoveel mogelijk processor cyclussen aanbesteed worden om zoveel mogelijk werk te kunnen uitvoeren in zo kort mogelijke tijdsspanne.
Schooljaar 2005-2006
Tom De Crits
Minimale Operating System voor communicatie met Saia PLC
-40-
Een woordje uitleg is hier wel aan de orde. Meeste mensen denken dat een toepassing één proces voorstelt, maar een toepassing opstarten kan meerdere processen nodig hebben en doen opstarten om goed te kunnen functioneren. Deze processen zijn nodig om de communicatie mogelijk te maken met andere apparatuur of computers. Een voorbeeld is de tekstverwerker Word opstarten. Hierbij zullen meerdere processen in de achtergrond opgestart en beheerd moeten worden. Elk hebben ze hun functie, de ene om de invoer van randapparatuur (het toetsenbord) te verwerken, de andere weer om de uitvoer naar randapparatuur (de monitor) te verzorgen. Ook in de achtergrond van een besturingssysteem lopen meerdere processen die verschillende taken voor hun rekening nemen. Deze processen zorgen bijvoorbeeld voor de afhandeling met het netwerk, het geheugenbeheer, virus controle, enz. Het besturingssysteem moet dus eerder processen juist gaan beheren i.p.v. toepassingen.
5.4.2.
Geheugen- en opslagbeheer
Wanneer het besturingssysteem het computergeheugen beheert, zijn er twee hoofdtaken die hij voor zijn rekening moet nemen:
Elk proces moet genoeg geheugen ter beschikking krijgen om correct uitgevoerd te kunnen worden. De verschillende types geheugen moeten zo optimaal mogelijk aangewend en gebruikt worden zodat processen uitermate doeltreffend uitgevoerd kunnen worden.
We onderscheiden in een computer verschillende types geheugen. Er volgt hier een opsomming van de verschillende types gerangschikt volgens hun werkingssnelheid:
High-speed cache is snel en relatief kleine hoeveelheid geheugen die ter beschikking staat van de CPU langs de snelste verbindingen. De cache controller voorspelt welke data de CPU nodig heeft en laadt deze reeds in vanuit het RAM-geheugen om de algemene prestatie van systeem op te voeren. Main memory is het welgekende RAM-geheugen of werkgeheugen en wordt uitgedrukt in megabytes. Secondary memory is de harde schijf waarop toepassingen en data ter beschikking staan en bewaard worden voor gebruik.
Het besturingssysteem moet nu een evenwicht vinden in de noden van verschillende processen en de beschikbaarheid van verschillende types geheugen.
5.4.3.
Apparatuurbeheer
De verbinding tussen het besturingssysteem en alle hardware wordt verzorgd door stuurprogramma’s. De hoofdtaak van dergelijk stuurprogramma is vertaler spelen tussen de elektrische signalen van het hardware subsysteem en de hogere programmeertalen van het besturingssysteem en toepassingen. Bij de harde schijf bijvoorbeeld zal het stuurprogramma ervoor zorgen dat data van een document/bestand verwerkt en vertaald wordt naar een reeks bits die op de magnetische schijf geplaatst worden. Stuurprogramma’s van de meeste hardwarefabrikanten zijn opgenomen in het besturingsysteem. Ondanks dit staan stuurprogramma’s eigenlijk los van het besturingssysteem. Een reden hiervoor is dat nieuwe functies kunnen toegevoegd worden aan
Schooljaar 2005-2006
Tom De Crits
Minimale Operating System voor communicatie met Saia PLC
-41-
het stuurprogramma en dus aan het hardware subsysteem, dit zonder dat het nodig is het besturingssysteem zelf aan te passen, te hercompileren en opnieuw te verspreiden. Het apparaatbeheer van het besturingssysteem bestaat er uit deze stuurprogramma’s te beheren en net zoals andere processen op te starten en nodige aandacht te verstrekken indien vereist. Apparaatbeheer houdt m.a.w. het regelen van in- en output van alle computerbronnen in en bestaat er voornamelijk uit om wachtrijen en buffers goed te beheren. Het beheren van al deze computerbronnen is één van de belangrijkste taken van het besturingssysteem en de hoofdreden van zijn bestaan. Want het zorgt ervoor dat de gebruiker de kracht van zijn hardware kan benutten op een eenvoudige en consequente manier.
5.4.4.
Applicatie interface
Net zoals stuurprogramma’s het mogelijk maken om gebruik te maken van hardware subsystemen zonder alle details te kennen van deze hardware, abstraheren API’s (Application Program Interfaces) de toegang tot verschillende hardware subsystemen (bijvoorbeeld harde schijf, beeldscherm via de grafische chip of grafische kaart, …). Applicatie programmeurs kunnen dus m.b.v. deze API’s de functies van het besturingssysteem en de computer aanspreken zonder de werking van de CPU in detail te kennen. Stel dat een programmeur zijn toepassing voorzien heeft van de functie iets op te slaan, dan neemt deze in zijn programma de API voor schijfopslag op. De programmeur hoeft zich niets aan te trekken van de instructiecode, data types en antwoordcode van de harde schijf of ander opslagmedium. Het besturingssysteem zal m.b.v. de stuurprogramma’s eigen aan het opslagmedium alle details van het proces voor zich nemen en ervoor zorgen dat alles vlot verloopt. De programmeur hoeft dus enkel de code voor de welbepaalde API op te nemen in zijn programma en op het besturingssysteem vertrouwen dat het de rest doet.
5.4.5.
Gebruikersinterface
Net zoals in de vorige paragraaf besproken API’s de toegang tot verschillende hardware subsystemen abstraheert, zorgt de gebruikersinterface (UI) voor structuur in de interactie tussen gebruiker en de computer. De gebruikersinterface is een programma of een groep van programma’s die als een laag boven het besturingssysteem komt te zitten. Dit geldt voor de verschillende gekende besturingsplatformen Windows, Unix, Linux,… De kern van besturingssysteemfuncties, het beheer van het volledige computersysteem m.a.w., zit in de kernel van het besturingssysteem vervat. De ‘display manager’ moet in feite los van de onderliggende kernel gezien worden, ondanks dat deze in vele gevallen vast verbonden is aan deze. We onderscheiden twee soorten gebruikerinterfaces, de grafische en niet grafische, meestal tekstmode genoemd. Het doel van beiden is echter gelijk, de gebruiker het eenvoudiger maken om de functies van het besturingssysteem te manipuleren. De laatste periode worden besturingssystemen meer en meer beoordeeld op hun grafische gebruikerinterface (GUI) en vele nieuwe ontwikkelingen vinden dan ook plaats op dit niveau. De verschillen tussen hedendaagse besturingssystemen worden gedefinieerd door de verbindingen tussen de kernel van het besturingssysteem en zijn gebruikersinterface, gereedschappen en andere software. Deze trend zal zich hoogstwaarschijnlijk in de toekomst blijven verder zetten.
Schooljaar 2005-2006
Tom De Crits
Minimale Operating System voor communicatie met Saia PLC
5.5. 5.5.1.
-42-
Linux Algemeen
Linux is een subset van het Unix besturingssysteem en is beschikbaar voor vele processortypes. Als we het strikt nemen bestaat Linux alleen maar uit het hart van dit besturingssysteem (de kernel). Meestal bedoelen we met Linux de kernel en alle software die reeds geschreven werd voor die kernel. Linux is ontstaan toen in 1991 een Finse student, Linus Torvalds, een besturingssysteem ontwierp dat gebaseerd was op Minix. Minix was een soort baby-Unix, geschreven door Andy Tanenbaum, hoogleraar aan de Vrije Universiteit van Amsterdam. Het Minix-systeem was bedoeld om studenten met een besturingssysteem vertrouwd te maken. Linus zocht een oplossing voor een technisch probleem. De computer van zijn universiteit kon niet meer dan 16 gebruikers tegelijk aan. Wat Linus deed was van grond af aan een nieuw besturingssysteem schrijven, Linux genaamd. Sindsdien wordt er door heel veel ontwikkelaars wereldwijd verder aan ontwikkeld. Deze wijze van ontwikkelen wordt mogelijk gemaakt door de licentie voorwaarde GPL waar Linux onder valt, de General Public Licence. Deze licentie voorwaarde garandeert dat iedereen vrij en kostloos toegang heeft tot de broncode van het Linux besturingssysteem. Linux kan en mag dus kosteloos verstrekt, ingezet en verspreid worden. Ontwikkelaars hebben op deze manier vrij toegang tot de broncode en kunnen daarom vrij eenvoudig nieuwe functionaliteiten inbouwen. Ook kunnen programmeerfouten snel gevonden en opgelost worden. Ondertussen is Linux aanvaard als alternatief besturingssysteem bij bekende systeembouwers zoals IBM, Dell, Acer, enz.
Schooljaar 2005-2006
Tom De Crits
Minimale Operating System voor communicatie met Saia PLC
5.5.2.
-43-
Kernel
De kernel is zoals in 5.4.5. vermeld het hart van een besturingsysteem die de hardware beheert (o.a. geheugenbeheer, procescommunicatie, processorbeheer,…) De Linuxkernel is met broncode vrij verkrijgbaar op de volgende site www.kernel.org.
5.5.3.
Distributies
Met een kernel alleen is men niet veel want het is enkel maar een onderdeel van een werkend Linux-systeem. Wat men nodig geeft als gebruiker is een volledig Linux-systeem, ofwel distributie genoemd. Een distributie wordt gemaakt door een bedrijf of een groep personen die een installatieprogramma, de Linuxkernel en bijhorende software op een informatiedrager (CD, DVD, internet) ter beschikking stelt. Enkele voorbeelden van dergelijke distributies: Redhat: de meeste gekende commerciële distributie. Fedora project: gekende gratis distributie, a.h.w. de betaversie van Redhat Gentoo Linux: in hoger onderwijs veel gebruikte distributie Debian: gemaakt door vrijwilligers Mandrake: vooral gericht op gebruiksvriendelijkheid. SuSE: populaire professionele commerciële linuxversie in Europa Slackware Linux TurboLinux: Aziatische distributie enz.
5.5.4.
Voordelen
Stabiliteit. Een eerste zaak die altijd aangehaald wordt is dat Linux stabieler draait dan elk ander besturingssysteem voor computers. Dit betekent dat Linux m.a.w. praktisch nooit vastloopt, wat je er ook mee doet. Dit komt doordat er veel mensen zijn die nieuwe versies testen en iedereen de broncode kan bestuderen en nazien op bugs en deze ook kan rapporteren. Een feit is dat door de opbouw van het besturingssysteem een vastgelopen toepassing kan afgesloten worden zonder het volledige systeem instabiel te maken. Snelheid. Doordat vele mensen bijdragen aan de verdere ontwikkeling van Linux worden vele goede ideeën gecombineerd die leiden tot een efficiënter besturingssysteem. De Linux kernel heeft ook multi-tasking en geheugenbeheer die ongekend soepel verlopen waardoor het besturingssysteem vaak beter scoort dan andere. Lage kostprijs. Door de meestal niet commerciële achtergrond van Linux zijn veel Linuxdistributies gratis te verkrijgen alsook een hoop toepassingen gratis ter beschikking bij de installatie ervan. Allerhande pakketten zoals Office pakketten, ontwikkelingsomgevingen, grafische pakketten, multimedia toepassingen, enz. Daarnaast stellen we ook vast dat meer en meer zgn. ‘third party’ software leveranciers producten beschikbaar maken of stellen voor het Linuxplatform (IBM, Novell, Lotus, Oracle, Borland,…). Complete controle. Als gebruiker (of systeembeheerder) kun je echt alle aspecten van het systeem gemakkelijk naar je hand zetten. Dit is een fundamenteel verschil met het besturingssysteem Windows waarvan de broncode niet volledig ter beschikking staat
Schooljaar 2005-2006
Tom De Crits
Minimale Operating System voor communicatie met Saia PLC
van de gebruiker. Deze kan dus ook maar bepaalde zaken naar zijn eigen hand zetten of wijzigen. Bij een Linux-systeem staat bijvoorbeeld praktisch elke instelling in een gewoon tekstbestand die gemakkelijk te wijzigen is. Netwerkmogelijkheden. Onder andere door de gedeeltelijke integratie in de kernel, is netwerkondersteuning soepel, snel en betrouwbaar. Een klein Linux-systeem biedt dan ook vaak meer mogelijkheden dan een zwaarder commercieel server-systeem. Linux is een subset van Unix en dus een server-systeem. Veiligheid. Virussen onder Linux zijn een zeldzaamheid. Dit komt ten eerste doordat het voor virusmakers veel minder interessant is omdat slechts een heel klein gedeelte van de computergebruikers Linux gebruikt. Een Linux-systeem kan nu eenmaal beter dicht getimmerd worden dan een Windows-systeem tegen aanvallen van buitenaf. Ten tweede is het veel moeilijker om een effectief virus te schrijven voor Linux door de opbouw van het systeem. Ten derde zijn veiligheidsgaten vlug gevonden en gedicht doordat vele programmeurs wereldwijd de code kunnen bekijken. Ten vierde is de toegang tot het besturingssysteem steeds op gebruikersniveau. Keuzevrijheid. Met Linux kan men werkelijk alle kanten op omdat men overal in kan kiezen. Het begint al bij de keuze van de Linuxdistributie die men wilt gebruiken. Vervolgens bepaalt men hoe men zijn systeem wil opdelen tijdens de installatie. Daarna kan men meestal kiezen uit een heleboel Windows managers, ‘display managers’, waarna je kunt bepalen welke toepassingen geïnstalleerd moeten worden.
5.5.5.
-44-
Nadelen
Ingewikkeld. Linux en zijn toepassingen worden meestal door ervaren computergebruikers geschreven en deze mensen denken niet altijd vanuit de hoek van de gemiddelde gebruiker. Hierbij moet men wel vermelden dat er het laatste jaar een verschuiving gaande is. Software. Nog veel populaire en vertrouwde softwarepakketten zijn (voorlopig) alleen beschikbaar in een Windows variant. Installatie van software. Bij Linux is het niet zoals bij Windows waarbij je simpel weg de aangekochte installatiecd-rom in je cd-romspeler steekt en vervolgens het programma automatisch geïnstalleerd wordt met enkele muisklikken. Hoewel de moderne distributies een vrij simpele methode hebben om (meegeleverde) software te installeren, is het over het algemeen zo dat je een programma ergens als programmacode vandaan haalt en vervolgens op je eigen systeem moet compileren. Dit impliceert dat het meer tijd en moeite kost, meestal omdat het programma vaak afhankelijk is van andere software, waar specifieke versies van moeten voor geïnstalleerd worden. Steile leercurve. Tegenwoordig laat Linux zich over het algemeen gemakkelijk installeren. Toch zal men redelijk veel moeite moeten doen om het systeem goed te doorgronden. Dit hangt echter ook af van de voorkennis van Linux die meestal niet aanwezig is en wel bij Windows. Hardware. Sommige hardware zijn moeilijk werkend te krijgen onder Linux. Dit omdat er nog fabrikanten zijn van hardware die nog steeds geen stuurprogramma’s voor Linux voorzien. Uniforme gebruikersinterface. Software op een Linux-systeem vertoont meestal niet hetzelfde, uniform uiterlijk en gedrag als op een Windows-systeem. In het bijzonder grafische dialoogvensters en de onderdelen ervan (bv. knoppen, schuifbalken, enz.)
Schooljaar 2005-2006
Tom De Crits
Minimale Operating System voor communicatie met Saia PLC
-45-
kunnen per toepassing verschillen. Ook werken diverse standaardhandelingen zoals bijvoorbeeld slepen en neerzetten, kopiëren, knippen en plakken niet in alle toepassingen op dezelfde manier. Dit kan behoorlijk hinderlijk en verwarrend zijn. Dit nadeel kan ook voorkomen bij Windows-toepassingen, maar is eerder uitzondering dan regel.
5.6. 5.6.1.
Windows Algemeen
Op de computermarkt is het besturingssysteem Windows nog steeds heer en meester. Het is het besturingssysteem bij uitstek dat voorgeïnstalleerd wordt op de meeste computersystemen. Het werd ontwikkeld en geïntroduceerd in 1985 door de softwaregigant Microsoft Corporation. Sinds de introductie van Windows 95 in 1995 domineert het de computermarkt. Ook uit onderstaande poll blijkt Windows het besturingssysteem bij uitstek te zijn die door de meeste computergebruikers gebruikt wordt als primair besturingssysteem. Deze poll heeft natuurlijk geen enkele wetenschappelijke waarde want ze is fraudeerbaar. Maar www.tweakers.net is een betrouwbare site waar al het recente computernieuws en dergelijke verzameld wordt en tevens een veel geraadpleegde site door informatici. Vandaar dat deze poll toch redelijk representatief is voor de computerwereld. Poll: Wat is je primaire besturingssysteem?
Schooljaar 2005-2006
Tom De Crits
Minimale Operating System voor communicatie met Saia PLC
5.6.2.
-46-
Voordelen
Ondersteuning. Windows springt altijd als eerste in op de nieuwste ontwikkelingen in hard- en softwareland. Windows ondersteunt vrijwel alle ontwikkelomgevingen. Bij andere besturingssystemen is dit niet altijd het geval. De informatie over Windows is gecentraliseerd opgeslagen in een zeer uitgebreide online “knowledge-base” waar u vrijwel alle technische problemen terug kunt vinden. Ook de diensten worden gecentraliseerd aangeboden. Comptabiliteit. Windows is vooral geschikt voor mensen die veel gebruik maken van ander Microsoft producten of programmeren in Visual Basic, PhP, C# of ASP. De software is voor één besturingssysteem ontwikkeld, waardoor u geen problemen heeft met verschillen tussen de varianten, zoals dat bij Linuxdistributies wel het geval kan zijn (Red Hat, Debian, Suse, enz.). Hardware. Tot nu toe is Windows besturingssysteem nog altijd het bekendste. Het heeft de laatste jaren wel een klein beetje moeten in boeten, voornamelijk voor het Linux besturingssysteem. Maar deze populariteit en overheersing op de markt uit zich dan ook naar de hardware markt toe. Fabrikanten zullen in de eerste plaats er altijd voor zorgen dat hun onderdelen altijd Windows compatibel zijn doormiddel van de gepaste stuurprogramma’s te ontwikkelen en up-to-date te houden voor alle Windows versies. De stuurprogramma’s van de meest hangbare hardware componenten zijn ook opgenomen in het besturingssysteem zelf, waardoor het installeren van stuurprogramma’s soms overbodig wordt en het apparaat zelf geïnstalleerd wordt voor de gebruiker. Anders zal het besturingssysteem automatisch het nieuwe component of apparaat detecteren voor de gebruiker en deze helpen m.b.v. een wizard waarmee gemakkelijk de gepaste stuurprogramma’s kunnen geïnstalleerd worden. Deze uitstekende hardwareondersteuning vormt één van de grootste voordelen verbonden aan het gebruik van het al om bekende Windows besturingssysteem. Ontwikkeling. De ontwikkeling van Windows kostte meer dan een miljard dollar, en gaf werk aan een immens team van software-ingenieurs. Het resultaat is het krachtigste en meest stabiele besturingssysteem dat Microsoft ooit op de markt geeft gebracht of dit beweert het toch. Het feit is wel dat er meer geld ter beschikking is voor de verdere ontwikkeling van het besturingssysteem en onderzoek. Wizards. Iedereen kent ze en kan zich er soms ongelooflijk aan ergeren, bij het minste heeft Windows een wizard klaar voor de gebruiker. Maar het kan niet ontkend worden het is ook een van de sterke punten van het besturingssysteem, voornamelijk naar de gebruiker toe. Goede wizards nemen veel werk uit handen van de gebruiker en maken het instellen van niet gekende zaken veel eenvoudiger zonder zich te moeten verdiepen in de stof of zonder dat de gebruiker in kwestie hoeft te weten hoe alles werkt in de achtergrond. Software. Veel populaire en vertrouwde softwarepakketten zijn alleen beschikbaar voor het Windows besturingssysteem. Dit pleit natuurlijk in het voordeel. De populariteit en de aanwezigheid van deze software op de meeste systemen zorgt er ook voor dat het elektronisch uitwisselen van documenten gemakkelijk verloopt door het universele karakter van de gekoppelde bestandtypes aan bepaalde software. Hierdoor is er geen nood aan het converteren van bepaalde bestanden die enerzijds tijd kost en anderzijds niet altijd van een leien dakje loopt. Gebruikersinterface. Waar ook ter wereld, men is bijna zeker wanneer men plaatst neemt achter een computer de vertrouwde gebruikersinterface van Windows voor zich
Schooljaar 2005-2006
Tom De Crits
Minimale Operating System voor communicatie met Saia PLC
-47-
te zien. Dit biedt een voordeel omdat de gebruiker zich onmiddellijk thuis voelt en direct weet waar alles terug te vinden is.
5.6.3.
Nadelen
Kostprijs. Vanwege het overgewicht van het Windows besturingssysteem wordt Microsoft er van beschuldigd een monopolistische positie te bezitten en daarvan handig gebruik te maken om onnodig hoge prijzen te vragen voor hun software. De meestal hoge aankoopprijs en de aanschaf van bijhorende licenties kan dan ook beschouwd worden als één van de grootste nadelen die verbonden is aan het gebruik van het besturingssysteem Windows. Broncode. Softwaregigant Microsoft heeft voor het eerst een deel van de broncode van Windows vrijgegeven om tegemoet te komen aan de eisen die de Europese Commissie heeft gesteld. Deze is dus niet volledig vrijgegeven waardoor het niet mogelijk wordt alles naar je hand te zetten. Grote software fabrikanten kunnen tegen betaling wel meer informatie en eventueel meer broncode krijgen van Microsoft voor de ontwikkeling van hun producten. Stabiliteit. Zie volgende paragraaf.
5.6.4.
Stabiliteit.
Belangrijk aan te halen feit is dat stabiliteit een moeilijk meetbaar begrip is. Windows wordt bijvoorbeeld meestal verweten niet zo stabiel te zijn als Linux, of dit als een feit kan beschouwd worden is moeilijk te zeggen. Het is nog nergens volgens mijn weten degelijk aangetoond. Beiden zijn monolithische systemen en in de grond dus een gelijkaardig besturingssysteem. Het grote verschil situeert zich voornamelijk in de specifieke opbouw van de kernel van de twee systemen. Bij Linux is dit voornamelijk opgebouwd uit modules waardoor het veiliger en stabieler beschouwd wordt. Een feit is dat door deze opbouw bij het installeren, verwijderen of vastlopen van toepassingen een dergelijk systeem voordelen biedt t.o.v. een Windows besturingssysteem. Men is niet verplicht het systeem te herstarten zoals dat meestal het geval is bij een Windows-systeem. Ook het welgekende blue screen als het systeem vastloopt, wordt meestal als argument aangehaald om aan te tonen dat Windows onstabiel is. Hierbij moeten we vermelden dat dit meestal door draaiende of geïnstalleerde toepassingen veroorzaakt wordt die voor een conflictsituatie zorgen of die niet geprogrammeerd werden zoals het hoort. Dit vastlopen van de pc kan evengoed bij Linuxsystemen voorkomen, maar men krijgt geen gekend blue screen en kan in de meeste gevallen gemakkelijker de vastloper terug draaiend krijgen zonder dat het systeem verplicht moet worden herstart. Vandaar dat Windows ook meestal het verwijt krijgt minder stabiel te zijn dan Linux. Over stabiliteit kan men uren discussiëren. Vele bronnen spreken elkaar dan ook tegen en ontkrachten elkaars goede argumenten. Iedere bron heeft zijn voorkeur en dit komt tot uiting in de vergelijking tussen de twee besturingssystemen. Er kan geconcludeerd worden dat beide systemen aan elkaar gewaagd zijn wat stabiliteit betreft en er hard wordt aan gesleuteld ze allebei zo stabiel mogelijk te krijgen. Bij nieuwe releases kan men vaststellen dat besturingssystemen keer op keer stabieler geworden zijn. Ook kan opgemerkt worden dat zolang er correct met het besturingssysteem omgesprongen wordt, de stabiliteit meer dan voldoende is!
Schooljaar 2005-2006
Tom De Crits
Minimale Operating System voor communicatie met Saia PLC
-48-
6. Uitvoering 6.1.
Inleiding
In vorige hoofdstukken wordt voornamelijk de theorie toegelicht en de werking van een besturingssysteem in het algemeen bestudeerd. In het vorige hoofdstuk wordt al voor een groot deel tegemoet gekomen aan de studie naar een gepast besturingssysteem door Windows met Linux te vergelijken. Dit hoofdstuk vormt in grote lijnen een soort logboek waarin de praktische realisatie besproken wordt en waarin de studie verder aangevuld wordt met elementen uit de praktijk. M.a.w. voor- en nadelen van beide besturingssystemen werden ook aan de lijve ondervonden en deze bevindingen zijn in dit hoofdstuk opgenomen.
6.2.
Linux
In een eerste contact met het bedrijf, samen met de promotor van school, werden enkele ideeën en denkpistes voor het eindwerk besproken. Het bedrijf stelde voor in een eerste fase Linux te gebruiken. Dit vanwege de interessante voordelen die eraan verbonden zijn en het innovatieve aspect. Ook voor mij als ‘newbie’ (een beginner, iemand die nog niet thuis is op een specifiek terrein) leek het interessant om kennis te maken met Linux.
6.2.1.
Ubuntu installatie
In een eerste fase zijn er allerhande informatiebronnen Distrowatch: Hits Per Dag* geraadpleegd om algemene informatie te bekomen over het besturingssysteem Linux (en besturingsystemen in het algemeen). Hierbij werd Ubuntu 5.04 van het Internet afgehaald. Ubuntu is een compleet en gratis Linux besturingssysteem, vrij beschikbaar met zowel gratis als betaalde ondersteuning. Ubuntu is een op Debian gebaseerde GNU/Linux distributie en staat op het moment van schrijven op nummer één op Distrowactch (www.distrowatch.com). De Ubuntu distributie omvat meer dan 16000 toepassingen. Het bevat elke standaard desktop toepassing van tekstverwerker tot Internet programma, zelfs webserver software. De vrijheden maken Ubuntu fundamenteel en de Ubuntugemeenschap die voor de ontwikkeling instaat, belooft zijn gebruikers het volgende:
Ubuntu zal altijd gratis zijn. Honderden bedrijven wereldwijd bieden ondersteuning voor Ubuntu. Elke 6 maanden komt er een nieuwe versie uit. Elke versie zal minimaal 18 maanden ondersteund worden. Ubuntu bevat de beste vertalingen en toegankelijkheid die de Vrije Software gemeenschap te bieden heeft, dit om Ubuntu voor zoveel mogelijk mensen bruikbaar te maken.
Schooljaar 2005-2006
Tom De Crits
Minimale Operating System voor communicatie met Saia PLC
-49-
Er wordt zo breed mogelijk gewerkt op het gebied van het ‘fixen van bugs’ en ‘delen van code’. Ubuntu is geheel toegewijd aan de principes van het ontwikkelen van open source en vrije software.
Er wordt gekozen om een dualboot te installeren. Naast het reeds geïnstalleerde Windows besturingssysteem komt Linux, meer bepaald Ubuntu 5.04. De harde schijf wordt opgedeeld in partities met het programma Partition Magic. Dit omdat de indeling in partities in Linux bij hergebruik in een Windowsomgeving veelal problemen met zich meebrengt. Om bij het opstarten van de pc keuze te hebben tussen de twee besturingssystemen wordt gebuik gemaakt van een bootloader GNU GRUB omwille van de visuele gebruikersinterface. De stappen die doorlopen worden bij het opstarten van een pc werden in Hoofdstuk 5 besproken. Wanneer de controle van het systeem plaats gevonden heeft zal het BIOS zoeken naar het medium waarvan het systeem verder geboot moet worden. Hier is dit dus de harde schijf, zoals meestal het geval is bij een pc. Het BIOS zal het eerste 512 byte data segment, Master Boot Record (MBR), in het geheugen laden. De instructies die hierin zitten bepalen het verdere bootproces. In de partitietabel vindt men terug welke actieve partities zijn of gemarkeerd staan met een ‘bootable flag’, gemarkeerd als opstartbaar. De ‘bootloader’ laat dan de keuze aan de gebruiker welk besturingssysteem moet opgestart worden. Linux heeft in tegenstelling tot Windows minimaal twee partities nodig om geïnstalleerd te worden. Linux kan zowel op de primaire als logische partities geïnstalleerd worden. Men heeft altijd een ‘root partitie’ nodig (aangegeven met ‘/’), en een swap partitie. Deze ‘swap partitie’ heeft dezelfde functie als het Windows ‘swap file’, als het geheugen vol loopt, overschakelen (‘swappen’) naar de harde schijf. Iedere gebruiker krijgt zijn eigen directory (‘/home/gebruiker/’) waarin bestanden, instellingen, enz. komen te staan. Het is echter verstandiger om een derde partitie aan te maken, een zogenaamde ‘gebruikers partitie’. Dit heeft een belangrijk voordeel: als er met de gebruikers partitie iets misgaat, blijft de Linux partitie intact! Hetzelfde geldt ook andersom: mocht er iets fout lopen met Linux, waarbij het noodzakelijk is het Linux besturingssysteem te formatteren en te herinstalleren, dan blijven de bestanden en instellingen van de gebruikers intact! Maar helaas loopt het bij de installatie verkeerd, meer specifiek bij de hardware detectie. Mits het redelijk recent zijn van de laptop wordt de grafische kaart ( ATI X600SE mobility) niet gedetecteerd en bij verder onderzoek blijkt dat deze nog niet ondersteund wordt door deze distributie. Bij het raadplegen van de site wordt duidelijk dat een nieuwe release zou uitkomen met de nieuwe stuurprogramma’s van ATI-fabrikant. Bij het afhalen en installeren van Ubuntu 5.10 loopt het terug fout bij de hardware detectie en is het enkel mogelijk op te starten in tekstmode. Via het posten van vragen op forums en het raadplegen van allerhande ‘postings’ die verband houden met hardwareproblemen kan het systeem na vele pogingen m.b.v. de ‘Vesa driver’ in grafische mode opgestart worden. 3D-acceleratie wordt wel niet ondersteund, maar dit is nu in eerste instantie niet van belang.
Schooljaar 2005-2006
Tom De Crits
Minimale Operating System voor communicatie met Saia PLC
-50-
Dit is echter het eerste bewijs dat de hardware ondersteuning nog niet volledig op punt staat of zo goed verloopt zoals men bij Microsoft gewoon is. Ook de tijd die nodig is om het probleem op te lossen is naar industrienormen te lang te noemen. Een tweede stap is kennis maken met het Linux-systeem. Hierbij wordt: ‘Linux’, een Nederlandstalige cursus door Alain Wenmaekers doorgenomen om enkele basiscommando’s en het ‘hoe en waarom’ van bepaalde zaken in het besturingsysteem te leren kennen. Een derde stap is het uitzoeken naar in welke programmeertaal er best gewerkt kan worden. Men moet weten dat er in iedere Linux distributie een C++ compiler ingebakken zit. In sommige distributies zijn er ook ontwikkelingsomgevingen opgenomen, waar men gemakkelijker kan in programmeren en debuggen, zoals ‘Python’ bijvoorbeeld. Deze geïntegreerde ontwikkelingsomgevingen zijn nog niet zo talrijk en efficiënt zoals in een Windows omgeving. Daarbij denken we aan het wel gekende Visual Basic en Delphi voor Windows, waarin heel gemakkelijk object georiënteerd en visueel geprogrammeerd kan worden. Een vierde stap is dus leren programmeren in C++ in deze Linux omgeving m.b.v. het boek ‘C++ Grand Cru’, geschreven door Steven Holzner. Maar helaas bij het proberen compileren van een basisapplicatie loopt het mis. Na het eerst zelf raadplegen van enkele bronnen wordt een kennis geraadpleegd. Deze kennis die student Industrieel Ingenieur Informatica is, heeft met mij nog eens alles overlopen en weet zich echter ook geen raad. Zijn advies is Ubuntu te verlaten en over te stappen op een ander en bekend vrije Linuxversie, Fedora Core 4 om dit C-compilatieprobleem op te lossen.
6.2.2.
Fedora Core 4 installatie
Fedora Core is een distributie die beweert eenvoudig te zijn in gebruik. Fedora is gericht op thuisgebruikers en kantoorgebruikers. Fedora is te beschouwen als de voortzetting van het gestopte en alom bekende Red Hat Linux 9. Fedora Core is slechts een onderdeel van de Fedora distributie. De Core bevat alles wat nodig is om normaal te kunnen werken. Naast de Core is er een onderdeel Extras. Daarin zitten pakketten die geen onderdeel uitmaken van Fedora Core, maar wel veel gevraagd zijn en eenvoudig kunnen geïnstalleerd worden. Ook alle pakketten uit de Fedora Core en Extras vallen onder de GPL. Red Hat steunt het Fedora Project, maar geeft geen officiële ondersteuning. Wil men echt officiële ondersteuning van Red Hat, dan moet men Red Hat Enterprise Linux of Red Hat Desktop kopen. Opnieuw wordt bij de installatie de grafische kaart niet herkend. Bij deze laatste distributie wordt de ‘Vesa-driver’ wel als alternatieve oplossing aangeboden. Dus het systeem is weliswaar onmiddellijk draaiend te krijgen zonder enige moeilijkheden. Helaas, bij het proberen opstarten blijft het systeem hangen bij het initialiseren van de PCMCIA-kaart en het netwerk. Om toch het besturingssysteem te kunnen opstarten in grafische modus en dit probleem op te lossen, wordt er overgeschakeld naar manueel opstarten. Hierbij beslist de gebruiker welke zaken moeten gecheckt worden door iedere stap met ‘ja’ of ‘nee’ te bevestigen. Bij het raadplegen van forums blijkt dit een veel voorkomend
Schooljaar 2005-2006
Tom De Crits
Minimale Operating System voor communicatie met Saia PLC
-51-
hardwareprobleem te zijn bij laptops. Door de vele ‘postings’ en ‘how-to’s’ door te nemen is het draadloos netwerk vlug aan de praat te krijgen. Nu kan terug uitgezien worden naar een gepaste en gebruiksvriendelijke ontwikkelingsomgeving. Kylix van de gekende softwaregigant Borland lijkt een goeie ontwikkelingsomgeving om in Linux te programmeren. Het is net zoals de Windows variant, Delphi, een gebruiksvriendelijke ontwikkelingsomgeving waar heel veel voorgeprogrammeerde freeware componenten en tools voorhanden zijn. Ook met het oog om ‘cross-over’ toepassingen te ontwikkelen lijkt het de betere keuze. Maar zoals reeds eerder vermeld in dit eindwerk is het installeren van software pakketten niet zo eenvoudig zoals bij een Windows-systeem. Dit wordt aan de lijve ondervonden bij het proberen afhalen en installeren van het Kylix-pakket. In Fedora is het redelijk simpel m.b.v. ‘yum-commando’s’ in het root-terminalvenster pakketten te zoeken om vervolgens te installeren. Maar men moet weten dat deze pakketten beschikbaar gesteld worden als ‘tarbestanden’ die nog ‘unzipt’ moeten worden. Het is meestal ook nodig het programma te compileren om het vervolgens te kunnen installeren. Bij het proberen installeren leest men best ook de leesbestanden erop na zodat men weet in welke volgorde en hoe alles best geïnstalleerd wordt. In deze leesbestanden staan ook enkele andere pakketnamen die moeten aanwezig zijn op het systeem alvorens het huidige pakket kan geïnstalleerd worden. Dus eerst wordt een kernel update uitgevoerd zoals beschreven en wordt er nagezien of de nodige pakketten op het systeem aanwezig zijn m.b.v. de ‘Borpretest’. Maar helaas ondanks het ingeven van de juiste commando’s wordt het pakket niet correct geïnstalleerd. Op de site van Fedora wordt het gebruik van Fedora Core afgeraden in een productieomgeving. Men tracht wel de meest recentste software op te nemen om het hoofd te kunnen bieden aan de concurrent Windows, maar daardoor kan men niet verzekeren dat alle software door en door getest is. Dit is wel het geval voor Red Hat Enterprise Linux, die terug betalend is zoals het Windows besturingssysteem, waardoor het belangrijkste punt om voor Linux te kiezen terug wegvalt. Dit kan beschouwd worden als een terug naar af, maar de vele ondervindingen zijn wel van belang voor het bedrijf. Deze bevindingen worden verder in het eindwerk opgesomd. De keuze wordt wegens de tijdsdruk verlaten in het voordeel van een direct bruikbare oplossing. De keuze om een andere weg in te slaan sluit het in de toekomst werken met een Linuxsysteem zeker niet uit! Maar het feit is dat het realiseren van een minimaal Linux besturingssysteem en toepassingen voor de communicatie met de PLC door de vele hindernissen niet direct haalbaar is. Hierbij komt dat er een grondige voorkennis reeds moet aanwezig zijn en dit misschien meer weggelegd is voor een student informatica.
Schooljaar 2005-2006
Tom De Crits
Minimale Operating System voor communicatie met Saia PLC
6.3.
-52-
Windows
6.3.1.
Inleiding
Er is gekozen verder onderzoek te doen naar wat de mogelijkheden zijn met een Windowssysteem. Er zijn verschillende redenen op te sommen waarom er in eerste instantie terug gegrepen wordt voor het gekende Microsoft besturingssysteem:
De mensen in het bedrijf zijn nog altijd het meest vertrouwd met de Windows omgeving en zijn werking. Windows is het meest voorgeinstalleerd besturingssysteem op computersystemen. Het feit is dat men door het gebruik van Windows zeker is van een stabiel en betrouwbaar systeem. Windows is nog altijd het vlugst als het op nieuwe up-to-date stuurprogramma’s aan komt voor hardware. De centrale support van Microsoft uit is bijna niet te evenaren. Een grote keuze aan degelijke ontwikkelingsomgevingen en andere software voor Windows. PG5, de project manager van Saia PLC’s die meestal ook op de pc’s geïnstalleerd wordt, is in eerste plaatst ontwikkeld voor het Windows besturingssysteem.
6.3.2.
Keuze Delphi
Begin 1995 bracht Borland de geïntegreerde ontwikkelingsomgeving ‘Delphi for Windows’ uit. Een goed doordachte en zorgvuldige ontworpen objectgeoriënteerde verzameling gereedschappen voor visueel programmeren van grafische gebruikersinterfaces. Alle componenten die Delphi bevat, zijn opgenomen in een hiërarchische structuur waarin objecten elkaars eigenschappen en functies kunnen overnemen, zodat complexe mechanismen gemakkelijk kunnen worden samengesteld uit eenvoudigere bouwstenen. Voor het specificeren van deze bouwstenen gebruikt Delphi de programmeertaal Object Pascal, een niet door een commissie ontworpen en daardoor praktische en efficiënte programmeertaal die verder bouwt op de ideeën over de didactiek van het programmeren van Niklaus Wirth. Zoals eerder aangehaald werd, kan het zijn dat er in de toekomst toch nog gebruik gemaakt wordt van het besturingssysteem Linux. Dit is nog één van de redenen waarom er voor Delphi gekozen wordt om het project uit te werken. Want de software gigant Borland heeft ook de eerder vernoemde Kylix in zijn gamma, die eigenlijk een Delphi versie voor Linux gebruikers is. Hierdoor is het gemakkelijker geworden ‘cross-over’ toepassingen te schrijven voor zowel Windows als Linux. Hier zal in dit geval weliswaar niet mogelijk zijn hetzelfde programma te gebruiken in de twee besturingssystemen. Dit omdat er beroep moet gedaan worden op Windows-API’s die niet gekend zijn onder Linux om de hardware aan te sturen. Een tweede reden is dat een collega op stage reeds heel vertrouwd is met het programmeren in Delpi. Hij is al sinds het ontstaan van de pc bezig met programmeren van allerhande zaken. Hierdoor kan er teruggevallen worden op iemand met kennis van zaken die weet waar er moet op gelet worden en indien nodig uitleg kan verschaffen. Delphi 5 werd mij ook ter beschikking gesteld en werd in der tijd officieel aangekocht door het bedrijf.
Schooljaar 2005-2006
Tom De Crits
Minimale Operating System voor communicatie met Saia PLC
-53-
Nog een goede reden om te werken met Delphi is dat er op het Internet heel veel ‘freeware componenten’ en ‘tools’ voor handen zijn met bijhorende voorbeeldprogramma’s. Meestal is de bijhorende broncode ook ter beschikking gesteld. Zo bestaat er een hele gemeenschap die elkaar helpt en componenten ter beschikking stelt net zoals in de Linux wereld. Hierdoor wordt het veel gemakkelijker om ingewikkelde toepassingen te programmaren. Want men kan de componenten gewoon afhalen, bestuderen en gebruiken, zonder altijd de volledige broncode zelf te herschrijven en te begrijpen van A tot Z. Er blijven natuurlijk altijd pro en contra’s aan de gemaakte keuze. Maar hier is kort en krachtig geprobeerd de keuze te verantwoorden.
6.3.3.
Beginfase
Het aanleren van het programmeren in de Delphi ontwikkelingsomgeving gebeurt m.b.v. goeie handleidingen van op het net en een boek uit de bibliotheek. Deze bronnen werden opgenomen in de bibliografie van het eindwerk. ‘Delphi’ is vlug aan te leren en zoals altijd, al doende leert men, kan hier gehanteerd worden. Na de basiskennis te hebben verworven van Object Pascal en het programmeren in Delphi, kan er overgaan worden tot het afhalen en installeren van allerhande ‘freeware’ componenten die terug te vinden zijn op het Internet. Een eerste fase bestaat eruit voorbeeldprogramma’s af te halen, deze te laten draaien en het bestuderen van de gebruikte componenten. Op de site van Indy (www.indyproject.org) zijn goede basis ‘server-client-applicaties’ terug te vinden. Men vindt hier ook de bijhorende bibliotheken waarin al de nodige componenten zitten en de broncode is van alles ter beschikking. Bij commercieel gebruik van deze componenten is de gebruiker verplicht Indy op te nemen in het infoblokje van het programma. Ook op Torry’s homepage (www.torry.net) is er een hoop interessante informatie terug te vinden. Het is hier nu niet de bedoeling de bestudeerde en gebruikte componenten toe te lichten, dit is van geen enkel nut en het zou ons te ver leiden. Deze twee informatiebronnen zijn goede referenties bij verder studiewerk. De opdracht blijft in de eerste plaats het bestuderen van en zoeken naar alternatieve mogelijkheden op het gebied van het besturingsysteem. Het realiseren van de server- en clienttoepassing in Delphi is daarom niet volledig opgenomen in dit eindwerk maar enkel verder in de bijlagen (BIJLAGE 5) toegelicht. Het is echter wel van belang de mogelijkheden, alsook voor- en nadelen te kunnen aantonen van het gebruik van Delphi. Daarom moet er wel degelijk een alternatief uitgebouwd worden die aantoont dat het mogelijk is communicatie te maken met de PLC en het proces te visualiseren. Hieruit kunnen conclusies getrokken worden en punten aangehaald worden waarmee het bedrijf in de toekomst rekening moet houden.
Schooljaar 2005-2006
Tom De Crits
Minimale Operating System voor communicatie met Saia PLC
6.4.
-54-
Minimale Windows
6.4.1.
Inleiding
Officieel bestaat er geen minimaal Windows besturingssysteem zoals er voor ogen is. De vereisten waaraan het besturingssysteem moet voldoen, worden in de volgende paragraaf nog eens duidelijk opgesomd. De bedoeling is een besturingssysteem te voorzien die voldoet aan deze eisen. Er is veel te doen rond het optimaliseren, ook wel ‘tweaken’ genoemd, in de computerwereld. Maar het probleem is in hoeverre maakt dit ‘tweaken’, aanpassen van het systeem, werkelijk het systeem beter qua stabiliteit, snelheid en bezetting van het geheugen. Veel commerciële software is dan ook beschikbaar, maar weinig bewijzen hun bijdrage tot een beter besturingssysteem. Tijdens de stageperiode werd een oudere pc ter beschikking gesteld om mijn minimale Windows op te realiseren. Nu volgen enkele argumenten waarom er in eerste instantie werd gekozen om te werken met Windows 98 SE:
Het besturingsysteem stelt geen zware hardware eisen. Het heeft zijn dienst reeds bewezen als een goed besturingsysteem en als er al problemen zijn, is de oplossing ervoor meestal wel gekend. Alle stuurprogramma’s zijn nog voor Windows 98 SE beschikbaar van hardwareapparaten. Licenties van Windows 98 zijn goedkoper dan voor Windows XP en meestal bezit de klant nog een officieel Windows 98 product met bijhorende licentie. Bij de installatie is reeds mogelijk om te kiezen voor een minimale installatie. Enorm veel gratis optimalisatieprogramma’s en informatie in het algemeen over het optimaliseren van het Windows-systeem met meestal bijhorende ervaringen van gebruikers zijn beschikbaar. Naar veiligheid toe, voor Windows 98 SE zijn nog altijd goede virusscanners en ‘firewalls’ beschikbaar.
Dit zijn stuk voor stuk goede argumenten waarom dit besturingssysteem gebruikt kan worden met de alternatieve toepassingen geschreven in Delphi. Er zijn echter ook goede tegenargumenten om Windows 98 SE niet te gebruiken:
Bij het raadplegen van de Microsoft website over licentiebeheer en support kan men vaststellen dat de support voor Windows 98 SE in juni 2006 definitief wordt stilgelegd. Dit wil echter niet zeggen dat er geen support meer mogelijk is, maar dat de eindgebruiker indien nodig voor specifieke problemen en support tegen betaling deze kan krijgen. Er zullen geen gratis updates meer beschikbaar zijn vanaf dat tijdstip. Windows 98 SE maakt geen gebruik of ondersteunt niet volledig de nieuwe processortechnologieën en -functies. Er vindt continu een enorme evolutie plaats op het gebied van processors. Een mooi voorbeeld is de ‘dual-core’ processor, waarbij de processor uit één chip bestaat waarop meerdere processorkernen (Eng.: cores) zijn geïntegreerd of de nieuwe AMD 64 bit processors. Hierdoor wordt bij een installatie van Windows 98 SE niet de volledige functionaliteit benut van het systeem.
Schooljaar 2005-2006
Tom De Crits
Minimale Operating System voor communicatie met Saia PLC
6.4.2.
-55-
Vereisten
In deze paragraaf volgt een opsomming van de belangrijkste eisen waaraan het vooropgestelde systeem bij dit eindwerk op zijn minst zou moeten voldoen. In de volgende paragraaf wordt de realisatie van het minimale besturingssysteem besproken en geëvalueerd aan de hand van deze vereisten. Ook worden handige en bijkomende vereisten geformuleerd in het besluit waarmee in de toekomst rekening zou moeten gehouden worden. 1.
2.
3.
4. 5.
6.4.3.
De mogelijkheid dat de klant zelf de pc aanschaft/voorziet moet blijven bestaan. Hierbij moet de klant de mogelijkheid krijgen een tweedehands pc aan te wenden. In het ander geval zal het bedrijf de beste oplossing zoeken. Deze pc moet zo vlug mogelijk kunnen voorzien worden van zijn (minimale) besturingssysteem en de toepassingen die nodig zijn voor de controle en visualisatie van het proces. Het gebruikersgemak naar de installateur als naar de klant toe is van groot belang. Voorkennis van het systeem mag bijvoorbeeld niet vereist zijn van de klant. Deze moet enkel een korte introductie krijgen tot het systeem en er onmiddellijk mee overweg kunnen. Stabiliteit en betrouwbaarheid van het systeem. Opstarten en afsluiten moet zo vlot en snel mogelijk verlopen.
Realisatie
Voor illustraties en informatie i.v.m. de installatie procedure die doorlopen wordt bij de installatie van Windows 98, zie de website http://www.windows98.windowsreinstall.com erop na. Een eerste stap is de harde schijf formatteren om vervolgens na te checken in het bootmenu of de pc eerst het diskette station naziet en daarvan tracht te booten. Vervolgens kan het systeem terug opgestart worden m.b.v. een opstartdiskette. Bij het zo opstarten is er de keuze uit drie mogelijke opstartprocedures. Hierbij kiest men bij voorkeur de eerste, waarna er gezocht wordt naar een gepast stuurprogramma voor het cdromstation. Als alles goed verloopt dan start het systeem terug op en gaat het de cd laden. De Windows installatieprocedure wordt gestart in de vorm van een handige wizard. Waarbij volgende stappen doorlopen worden: 1. 2.
3.
4. 5. 6. 7.
Installatie directory selecteren: Map: C:\WINDOWS Installatiemethode selecteren: hier heeft men keuze uit vier mogelijkheden, waarvan men reeds kan kiezen voor een minimal als basis. Om nog verder te gaan in het minimaliseren kiest men voor aangepast. Lijst met programma’s: hier kan men nu selecteren welke zaken men nodig acht voor installatie. Vink hierbij alles weg, behalve de zaken voor communicatie die van belang zijn voor de netwerkverbinding. Computergegevens worden gevraagd: ingeven van computernaam: SAIA, werkgroep: THUIS en beschrijving: SERVER. Vastleggen van de locatie: Belgïe (Ned.). Mogelijkheid tot het aanmaken van een opstartdiskette. Gebruikersgegevens worden gevraagd: ingeven van naam: YDE en bedrijf: YDE.
Schooljaar 2005-2006
Tom De Crits
Minimale Operating System voor communicatie met Saia PLC
8. 9. 10. 11.
12.
-56-
Licentieovereenkomst: akkoord gaan. Serienummer wordt gevraagd. Voor de rest verloopt nu alles automatisch. Dit alles neemt een 30-tal minuten in beslag. Het stuurprogramma of VGA driver voor de aanwezige Intel® 81x family chipset graphics moet afgehaald worden en geïnstalleerd worden omdat het vereiste stuurprogramma niet beschikbaar was op de installatiecd-rom. Als laatste wordt een ‘USB driver’, ‘U-Storage driver’ afgehaald en geïnstalleerd. Op deze wijze is een eenvoudige uitwisseling mogelijk voor de installateur bij het overzetten van nuttige bestanden.
De bezetting van dit Windows besturingssysteem bedraagt ongeveer 220 MB, m.a.w. het systeem heeft al een heel minieme omvang. Voor Windows 98 is op het Internet heel wat optimalisatie software ter beschikking. Allemaal beweren ze het systeem te optimaliseren. De vraag is natuurlijk wat is optimaliseren en wat moet er nog geoptimaliseerd worden aan de huidige installatie om te voldoen aan vereisten vermeld in voorgaande paragraaf. Een mogelijkheid om het systeem nog compacter te maken is het installeren van Windows 98 Lite (www.litepc.com). M.b.v. deze software is het mogelijk onderdelen in Windows optioneel te maken, deze te verwijderen en terug toe te voegen naar wens. Door dit programma te installeren komen we tot een besturingssysteem met een bezetting die onder de 195 MB gaat. Er is een gratis versie ter beschikking en ook een betalende versie met uitgebreidere functies. De meerwaarde aan het systeem is minimaal te noemen in vergelijking met de prijs die men ervoor betaald. Men kan besluiten dat een aangepaste installatie van Windows 98 SE al voldoende is om een pc van een minimaal besturingssysteem te voorzien. Bij het installeren en evalueren van enkele optimalisatieprogramma’s blijkt dat ze niet veel meer te bieden hebben dan het ingebouwde Tweak UI, dat meegeleverd is op de Windows 98 cd-rom. Dit installeren en enkelen instellingen aanpassen zorgt al voor een enorme snelheidswinst bij opstarten en afsluiten. Een van de mogelijkheden is bijvoorbeeld het systeem automatisch laten inloggen. M.b.v. Msconfig kan men gaan aanvinken welke zaken niet nodig geacht worden om gestart te worden en dit zorgt voor snelheidswinst bij het opstarten. Ook in het BIOS kan men de instellingen erop na zien of deze optimaal zijn. De BIOS instelmogelijkheden zijn echter afhankelijk van moederbord tot moederbord. Door enkel gebruik te maken van Microsoft gecertificeerde producten om het optimaliseren van het systeem te bewerkstelligen, garanderen we dat er geen conflictsituaties kunnen ontstaan en zorgen we voor een stabieler systeem. Stabiliteit en betrouwbaarheid van een systeem wordt meebepaald door de toepassingen die gedraaid worden, en niet enkel door het besturingssysteem. Ook de hardware speelt een belangrijke rol voor de betrouwbaarheid van het systeem. Tijdens de evaluatie verliep alles vlot en het systeem heeft dag en nacht staan draaien in simulatiemode zonder dat er aanwijzingen geweest zijn die duiden op een onstabiel systeem.
Schooljaar 2005-2006
Tom De Crits
Minimale Operating System voor communicatie met Saia PLC
-57-
Door het optimaliseren van het systeem zoals net vermeld duurt het een kleine 40 sec om de pc aan te schakelen en vooraleer de toepassingen opgestart zijn. Het afsluiten geschiet in amper 2 seconden.
Schooljaar 2005-2006
Tom De Crits
Minimale Operating System voor communicatie met Saia PLC
-58-
7. Besluit Het bedrijf had de wens een minimaal en bruikbaar besturingssysteem te ontwikkelen voor onmiddellijk gebruik. Dit werd ingevuld met een minimaal systeem van Microsoft, namelijk met een gestripte versie van Windows 98 SE. De visualisatie en controle van het proces is mogelijk door applicaties geschreven in Delphi. Het systeem is werkend en bruikbaar in dit stadium, maar het kan nog aangevuld worden of bijgestuurd zoals op het vlak van fouten opvangen. Het omschakelen naar een ander besturingssysteem kan reeds uitgevoerd ontwikkelingswerk verloren laten gaan. Voor een bedrijf is om deze reden de overstap in vele gevallen onmogelijk. De keuze van Visual Basic onder Windows is een mooi voorbeeld hiervan. Indien er wordt overgestapt naar Linux, moeten applicaties volledig herschreven worden. De gemaakte keuze zal binnen enkele jaren vervangen moeten worden omdat vooral de vereiste stuurprogramma’s voor bepaalde hardware niet meer beschikbaar zullen zijn voor Windows 98 SE. Als het bedrijf competitief wil blijven op de markt zal het gedwongen worden nieuwe keuzes te maken en over te stappen naar licentievrije software. Hierbij lijkt Linux als alternatieve basis de ideale oplossing te zijn. De keuze van de programmeertaal is ook van groot belang om het mogelijk te maken ‘cross-over’ toepassingen te realiseren. Een tweede conclusie die men kan maken is dat een pc teveel mogelijkheden aan boord heeft die niet gebruikt worden. Daarom is het beter over te schakelen naar een soort van elektronisch moederbord met ‘embedded’ besturingssysteem die volgende functies aan boord hebben:
Minstens één seriële poort voor de communicatie met de PLC te verzekeren. Aansluitingsmogelijkheden voor een display, om het proces te kunnen visualiseren en controleren via een ‘touchscreen’ (HMI). Een USB-poort met client- en servermogelijkheden voor diverse apparaten. Aansluiting langs welke het moederbord toegankelijk is m.b.v. laptop om te configureren, te voorzien van de nodige toepassingen, enz. Flash geheugen. De nodige communicatie- en visualisatie toepassingen worden hierop geladen en zijn door het gebruik van dit type geheugen gemakkelijk te vervangen door een nieuwe versie. Netwerkmogelijkheid, om te kunnen inloggen van op afstand met mogelijkheid tot visualisatie en controle van het proces te krijgen. Aanvullend een ingebouwde ‘webserver’ om op afstand platformonafhankelijk te kunnen inloggen en het systeem te visualiseren, te controleren en tevens zou het de mogelijkheid bieden om wijzigingen aan te brengen zonder zich te moeten verplaatsen naar het bedrijf.
Op het principeschema (BIJLAGE 6 ) kunt u duidelijk zien met welke communicatiemogelijkheden er rekening moet gehouden worden bij het zoeken naar een alternatief hardware- en besturingssysteem.
Schooljaar 2005-2006
Tom De Crits
Minimale Operating System voor communicatie met Saia PLC
-59-
Dit eindwerk bracht me heel wat kennis bij die niet direct werd onderwezen tijdens de opleiding zoals client-servertoepassingen, PLC-communicatie, de werking van pc en zijn besturingssysteem en het gebruik van Delphi. Ik leerde tevens op zelfstandige wijze opzoekingswerk te verrichten, de verkregen informatie te filteren en te verwerken, dit vormde voor mij een grote leerschool. Hieruit is ook gebleken dat communicatie tussen de verschillende partijen van groot belang is. Dit eindwerk moet duidelijk maken dat er doordachte keuzes moeten gemaakt worden met het oog op de toekomst.
Schooljaar 2005-2006
Tom De Crits
Minimale Operating System voor communicatie met Saia PLC
-60-
8. Bijlagen 8.1. 8.1.1.
Bijlage 1: Situering van het bedrijf Yde Algemene beschrijving
Het bedrijf B.V.B.A. Yde Elektro werd in 1976 opgericht door de huidige zaakvoerder Gabriël Yde. Het bedrijf is landelijk gelegen en heeft volgende contactgegevens:
Egemsestraat 44 8851 Ardooie – Koolskamp Mail:
[email protected] Site: www.bigdutchman.be Tel: +32(0)51/74.52.48 Fax: +32(0)51/74.72.99 Gsm: +32(0)478/51.74.40
Het bedrijf staat in voor de automatisatie van alle productieprocessen in de industrie en meer specifiek in de agrarische sector. Het bedrijf heeft zich voornamelijk gespecialiseerd in het plaatsen van stalinrichtingen en de bijhorende automatisatie van deze installaties. Bij het automatiseren van installaties wordt er voornamelijk gebruik gemaakt van PLC’s (programmeerbare logische controllers). Hierbij wordt er gebruik gemaakt van Saia PLC’s vanwege hun jarenlange ervaring met deze en hun uitstekende betrouwbaarheid. De visualisatie gebeurt voornamelijk m.b.v. zelf geschreven programma’s in Visual Basic. De projecten worden gerealiseerd in PG5-ontwikkelingsomgeving. De B.V.B.A. telt momenteel zo’n 9 bedrijfsleden in totaal. Gabriël Yde en zijn zoon Wim hebben de leiding van het bedrijf. Verder zijn er 7 werknemers waarvan 4 arbeiders voor installatie, herstellingswerken/interventies en onderhoudsklussen instaan. Dit gebeurt in samenspraak met 1 tekenaar en 2 programmeurs. Hierbij staan de tekenaar en de programmeur ook in voor het goede verloop van het volledige project, dit in samenspraak met de directie. Zodat arbeiders tijdig kunnen beginnen aan de werken en over het nodige materiaal beschikken. Ze stellen in samenspraak ook de offertes op voor hun klanten, alsook de facturatie van de werkelijk gepresteerde uren en werkzaamheden achteraf. Eén bediende staat tenslotte in voor het volledige secretariaat van het bedrijf. Voor de installatie en onderhoudswerken aan de informatici infrastructuur staat meestal een derde gekende toeleverancier in, waar meestal mee samengewerkt wordt.
Schooljaar 2005-2006
Tom De Crits
Minimale Operating System voor communicatie met Saia PLC
8.1.2.
-61-
Bedrijfsorganigram Bedrijfsorganigram B.V.B.A. Yde Elektro
Leveranciers
Yde
Directie: Gabriël Yde (zaakvoerder) Wim Yde
1 Tekenaar
8.1.3.
2 Programmeurs
Klanten
Secretariaat: 1 Bediende
4 Arbeiders
Fabricatieprogramma
Yde Elektro ontwerpt dus volledige installaties voor zijn klanten, vertrekkende van de bouwplannen of van de reeds aanwezige constructies. Hierbij is het contact met de klant heel belangrijk. Deze formuleert zijn wensen en eisen en stelt zijn plannen ter beschikking van het betreffende gebouw. Yde bestudeert dan de mogelijkheden en stelt deze voor aan de klant met bijhorende prijsoffertes. Als de klant tevreden is en bereid is akkoord te tekenen kan er overgegaan worden tot het bestellen van de nodige stukken en materialen. Het uitstippelen van de werken kan beginnen in samenspraak met toeleveranciers en de klant. Binnen de kortste keren kan er dan ook daadwerkelijk overgegaan worden tot de bouw of aanpassing van de installatie. Na het realiseren van het project wordt de installatie uitgebreid getest en gecontroleerd. Voor nodige aanpassingen en onderhoudswerken achteraf wordt dan ook dikwijls beroep gedaan op het bedrijf Yde Elektro.
Schooljaar 2005-2006
Tom De Crits
Minimale Operating System voor communicatie met Saia PLC
8.2.
-62-
Bijlage 2: IL-instructies en Testprogramma
In deze bijlage werden de 127 verschillende instructies opgenomen die kunnen gebruikt worden in een Instruction List File (*.scr). Ook werd het testprogramma opgenomen op het einde van deze bijlage waarmee 15 vlaggen in de PLC gekoppeld worden aan 15 uitgangen. Dit programma is in de PLC geladen en zorgt ervoor dat we visualisatie krijgen als we een vlag hoog of laag plaatsen.
8.2.1.
IL-instructies
BIT Instructies STart High STart Low ANd High ANd Low OR High OR Low eXclusive OR ACCu operations DYNamic (edge detection) OUTput the accu status to an element SET element RESet element COMplement element SET element Delayed RESet element Delayed
STH STL ANH ANL ORH ORL XOR ACC DYN OUT SET RES COM SETD RESD
WORD Instructies
LD LDL LDH DSP INC DEC SEI INI DEI STI RSI MOV COPY GET PUT TFR TFRI BITI
Schooljaar 2005-2006
LoaD (32 bit value) LoaD Low word (lower 16 bits) LoaD High word (higher 16 bits) load DiSPlay register INCrement register or counter DECrement register or counter SEt Index register INcrement Index register (+1) DEcrement Index register (-1) STore Index register ReStore Index register MOVe data COPY data GET data PUT data TransFeR data TransFeR data Indirect single BIT In register, PCD form.
Tom De Crits
Minimale Operating System voor communicatie met Saia PLC
BITIR BITO BITOR DIGI DIGIR DIGO DIGOR AND OR EXOR NOT SHIU SHID ROTU ROTD SHIL SHIR ROTL ROTR
single BIT In register Reversed, PCA form. single BIT Out from register, PCD form. single BIT Out from register Reversed,PCA form. DIGIt in register, PCD form. DIGIt in register Reversed, PCA form. DIGit Out from register, PCD form. DIGit Out from register Reversed, PCA form. AND registers (32 bits) OR registers (32 bits) EXOR registers (32 bits) complement register (32 bits) SHIft registers Up SHIft registers Down ROTate registers Up ROTate registers Down SHIft register contents Left Shift register contents Right ROTate register contents Left ROTate register contents Right
INTEGER REKENKUNDIGE Instructies ADD registers SUBtract registers MULtiply registers DIVide registers SQuare Root CoMPare registers
ADD SUB MUL DIV SQR CMP
-63-
FLOATING POINT REKENKUNDIGE Instructies
IFP FPI FADD FSUB FMUL FDIV FSQR FCMP FSIN FCOS FATAN FEXP FLN FABS
Schooljaar 2005-2006
Integer to Floating Point Floating Point to Integer Floating point ADDition Floating point SUBtraction Floating point MULtiplication Floating point DIVision Floating point SQuare Root Floating point CoMPare Floating point SINe function Floating point COSine function Floating point Arc TANgent function Floating point EXPonential function Floating point Natural Logarithm function Floating point ABSolute value
Tom De Crits
Minimale Operating System voor communicatie met Saia PLC
BLOCTEC Instructies Cyclic Organsation Block End of COB eXception Organisation Block End of XOB Program Block End of Program Block Call Program Block Call Program Block Indirect Function Block End of Function Block Call Function Block change to Next COB Stop COB Continue COB Restart COB
COB ECOB XOB EXOB PB EPB CPB CPBI FB EFB CFB NCOB SCOB CCOB RCOB
GRAFTEC Instructies Sequential Block End Sequential Block Call Sequential Block Restart Sequential Block Initial STep STep End of STeps TRansition End of Transition
SB ESB CSB RSB IST ST EST TR ETR
-64-
SERIËLE COMMUNICATIE Instructies
SASII SRXD STXD STXT SRXM SRXMI STXM STXMI SICL SOCL SCON SCONI
Schooljaar 2005-2006
Serial communication ASIgn interface Indirect Serial communication Receive Character Serial communication Transmit Character Serial communication Transmit Text Serial communication Receive Media Serial communication Receive Media Indirect Serial communication Transmit Media Serial communication Transmit Media Indirect Serial communication Input Control Line Serial communication Output Control Line Serial communication CONnect Serial communication CONnect Indirect
Tom De Crits
Minimale Operating System voor communicatie met Saia PLC
LAN2 Instructies Lan2 Receive Data Lan2 Transmit Data Lan2 Receive Status Lan2 Transmit Status
LRXD LTXD LRXS LTXS
CONTROLE Instructies
JR JPD JPI HALT LOCK UNLOCK
Jump Relative Jump Relative Direct JumP Indirect HALTs the cpu LOCK semaphore UNLOCK semaphore
DEFINITIE Instructies
DEFVM DEFTC DEFTB DEFTR DEFWPR DEFWPH
-65-
DEFine Voltile Memory (Flags) DEFine Timer/Counter DEFine Time Base DEFine Timer Resolution DEFine Write Protected area in Run DEFine Write Protected area in Halt
SPECIALE Instructies
NOP RTIME WTIME PID TEST DIAG XOB SYSRD SYSWR SYSCMP ALGI ALGO STHS OUTS
Schooljaar 2005-2006
No OPeration Read TIME (hardware clock) Write TIME (hardware clock) PID control algorithm TEST hardware detail-DIAGnostic SYStem ReaD SYStem WRite SYStem CoMPare AnaLoGue Input (PCA modules) AnaLoGue Output (PCA modules) STart High Slow OUTput the accu status to an element –Slow
Tom De Crits
Minimale Operating System voor communicatie met Saia PLC
8.2.2.
-66-
PG5 testprogramma en bijhorende uitleg
Schooljaar 2005-2006
Tom De Crits
Minimale Operating System voor communicatie met Saia PLC
8.3.
-67-
Bijlage 3: OSI-model
Het OSI-model (of ISO-OSI) is de benaming voor ISO Reference Model for Open Systems Interconnection. Het OSI-model is een verzameling afspraken over de manieren van communiceren tussen twee of meerdere computersystemen van eventueel verschillende merken. Dit model deelt de communicatie in zeven lagen. Daarom wordt dit ook wel het zevenlagenmodel genoemd en zijn de volgende van laagste naar hoogste weergegeven: 1. 2. 3. 4. 5. 6. 7.
Fysieke laag Datalinklaag Netwerklaag Transportlaag Sessielaag Presentatielaag Toepassingslaag
Het OSI-model is in 1977 voor het eerst bedacht, en in 1995 heeft het een herziening ondergaan. Oorspronkelijk waren er ook OSI-protocollen die voldeden aan het OSI-model, maar die waren niet echt succesvol door verschillende factoren. TCP/IP werd het meest gebruikte protocol, maar voldoet totaal niet aan het OSI-model. Zo schrijft het OSI-model bijvoorbeeld voor dat encryptie dient te gebeuren op de hogere netwerklagen. De verzameling TCP/IP-protocollen echter, een protocolstack uit de praktijk, laat encryptie toe op lagere lagen, zoals IPsec op de netwerklaag, of encryptie voor draadloze netwerken. Technisch heeft het OSI-model dus zijn nut verloren, daarom wordt het tegenwoordig alleen nog maar gebruikt als een 'referentiemodel'.
Schooljaar 2005-2006
Tom De Crits
Minimale Operating System voor communicatie met Saia PLC
8.4.
-68-
Bijlage 4: Lijst van besturingssystemen
Hieronder vindt u een lijst terug van bestaande besturingssystemen waar kennis van is, deze lijst is weliswaar onder voorbehoud. Er worden ook nog steeds nieuwe besturingssystemen ontwikkeld.
AmigaOS van Amiga Corporate AtheOS en later Syllable BeOS en later Zeta van YellowTAB BTOS en later CTOS van Convergent Technologies, oorspronkelijk op de markt gebracht door Burroughs, in de jaren 1990 door Unisys CP/M van Digital Research Darwin DOS: o DR-DOS van Digital Research o FreeDOS: een vrije software-variant o MS-DOS van Microsoft o PC-DOS of gewoon DOS van IBM eCos (voor embedded systemen) Mac OS van Apple Computer; systeem 6, 7, 8 en 9 (10 werd rond het jaar 2000 gebaseerd op UNIX) Windows van Microsoft MVS en VM van IBM Netware van Novell OS/400 PalmOS (voor PDA's) Plan 9 en Inferno van Bell Labs QNX (voor embedded real-time systemen) ReactOS RISCOS (RISC OS) RSTS, RSX en RT-11, voor de DEC PDP-11 SkyOS Starsys van Bull, oorspronkelijk van Convergent Technologies Symbian voor smartphones TOPS/10 en TOPS/20 UNIX; kent vele varianten zoals o AIX van IBM o FreeBSD o GNU/Hurd o GNU/Linux o HP-UX van Hewlett-Packard o Irix o Mac OS X o Minix o NetBSD o OpenBSD o Plan 9 o Solaris van Sun Microsystems
Schooljaar 2005-2006
Tom De Crits
Minimale Operating System voor communicatie met Saia PLC
-69-
o Ultrix o Xenix o enz... V2_OS VMS van Digital Equipment Corporation (DEC) VRX van NCR VxWorks (voor embedded real-time systemen) enz.
Schooljaar 2005-2006
Tom De Crits
Minimale Operating System voor communicatie met Saia PLC
8.5.
-70-
Bijlage 5: Server- en clienttoepassing in Delphi
In deze bijlage wordt kort de werking en functies besproken van de server- en clienttoepassing aan de hand van enkelen schermafbeeldingen. Daarna is de hoofdbroncode terug te vinden van de servertoepassing met een woordje uitleg in commentaar. Voor de twee toepassingen en hun volledige broncode zie het mapje SAIA PROJECT op de bijgevoegde Cd-rom.
8.5.1.
Woordje uitleg bij de servertoepassing
Bij het opgezet minimaal systeem start de servertoepassing automatisch op. Indien dit niet gewenst is of indien men ook wilt dat de visualisatie-/clienttoepassing onmiddellijk opgestart wordt, kan dit zonder probleem gewijzigd worden. Indien beide toepassingen handmatig moeten gestart worden, gebeurt dit via de volgende twee snelkoppelingen terug te vinden op het bureaublad.
Eerst moet men op het minimaal systeem YDESERV.exe opstarten om de communicatie met de PLC te verzekeren. Vervolgens kan men SAIARC.exe opstarten voor het visualiseren van het proces. Men krijgt het volgende scherm te zien bij het opstarten van YDESERV.exe: Maximaliseren werd disabled, enkel minimaliseren is mogelijk.
In dit veld worden Hostname en IP-adres automatisch ingevuld. Logscherm voor het visualiseren van de communicatie tussen client en server. Is vooral nodig voor controle over en het debuggen van de toepassingen. Controlepaneel met de nodige bedieningsknoppen Teller die aangeeft hoeveel requests afgehandeld zijn.
Led die de status weergeeft van de server.
Statusbalk waarin de mededelingen i.v.m. de communicatie tussen server en PLC komen.
Schooljaar 2005-2006
Tom De Crits
Minimale Operating System voor communicatie met Saia PLC
-71-
Deze servertoepassing regelt de communicatie tussen de client en de PLC. De instellingen van de toepassing zijn bereikbaar via de volgende instellingenknop de gebruiker prompt gevraagd achter Gebruikersnaam en Wachtwoord.
. Hierbij wordt
Deze moeten correct ingevuld worden of het instellingenpaneel wordt niet zichtbaar. Voor gebruikersnaam: YDE en voor wachtwoord: ydebvba invullen.
Indien geen wijzigingen moeten opgeslaan worden of de instellingen juist zijn, kan men gewoon m.b.v. de Cancelknop dit paneel terug verlaten. Bij het op OK-knop klikken zal men ervoor zorgen dat de wijzigingen opgeslaan worden en weggeschreven worden naar het register. Hierbij krijgt de gebruiker de volgende mededeling:
De servertoepassing moet dus terug opgestart worden. Naar de toekomst toe zou dit nog moeten veranderen. Want iedere keer de server moet afgesloten worden verliezen al de clients hun verbinding met de PLC. Dit vormt in dit stadium geen groot probleem, want de
Schooljaar 2005-2006
Tom De Crits
Minimale Operating System voor communicatie met Saia PLC
-72-
instellingen moeten normaal gezien enkel de eerste keer gewijzigd worden bij het plaatsen van het systeem. Bij het proberen afsluiten van de servertoepassing met behulp van het kruisje zal de toepassing zich minimaliseren in de taakbalk rechts onderaan. Vandaar uit kan men deze weer zichtbaar maken door op het icoontje dubbel te klikken of in het pop-up-menu’tje te klikken op Restore. De toepassing kan afgesloten worden door op EXIT te klikken. Indien men de toepassing zo of met de EXIT-knop afsluit, zal er om bevestiging gevraagd worden als volgt:
Eenmaal alle instellingen gebeurd zijn hoeft men in het vervolg enkel de servertoepassing te starten om de communicatie mogelijk te maken en te regelen met de PLC. Daarom dat dit automatisch gebeurd bij het opstarten van het systeem. De gebruiker moet zich dus niets van deze toepassing verder aantrekken. Voor hem is enkel de clienttoepassing van belang die een visualisatie weergeeft van zijn proces.
8.5.2.
Woordje uitleg bij de clienttoepassing
Wanneer men de clienttoepassing de eerste maal start door op SAIARC.exe te klikken, is men genoodzaakt enkele zaken in te stellen opdat de communicatie met servertoepassing goed zou verlopen. Deze instellingen zijn bereikbaar m.b.v. de toestencombinatie ‘Shift + F12’.
Schooljaar 2005-2006
Tom De Crits
Minimale Operating System voor communicatie met Saia PLC
-73-
Deze instellingen worden terug in het register van de pc weggeschreven en telkens bij het opstarten van de clienttoepassing weer bovengehaald. Wijzigen van deze instellingen is enkel noodzakelijk als iets aan het systeem of aan de opstelling veranderd is. Eenmaal de instellingen goed zijn zal bij het terug opstarten van de clienttoepassing volgend scherm verschijnen.
Reeks animaties om aan te tonen welke mogelijkheden er zijn op het vlak van visualisatie van het proces.
Bedieningsknoppen met statusindicatie.
Statusindicatie m.b.v. een ledje. Deze visualisatie is een voorbeeld van hoe het er zou kunnen uitzien. Een reeks bedieningsknoppen en animaties die de status van bepaalde procesparameters weergeven. Linksonder ziet men aan de kleur van het led of de client verbinding heeft met de server. Bij het opstarten van de client zal deze onmiddellijk ‘request’s’ sturen naar de server om de status van alle procesparameters op te vragen zodat de gebruiker altijd een juist beeld krijgt van de werkelijke situatie. De gebruiker kan nu door middel van deze knoppen het proces gaan controleren. M.b.v. de toetsencombinatie ‘Shift + F7’ haalt men het ‘debug-scherm’ te voorschijn. Dit is enkel nodig voor het debuggen van de toepassingen, het ‘loggen’ van de communicatie tussen client en server gebeurt in een logscherm zoals bij de servertoepassing. Dit is net zoals het
Schooljaar 2005-2006
Tom De Crits
Minimale Operating System voor communicatie met Saia PLC
-74-
instellingenpaneel enkel en alleen bestemd voor de programmeur zodat deze fouten kan opsporen en controleren of alles vlot verloopt.
8.5.3.
Broncode servertoepassing
unit Main; interface //*******************uses clause of a program or library************************ {units in the uses clause are used by the project} uses CommThread,MyMsgQueue, Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, Buttons, StdCtrls, ComCtrls, OoMisc, AdPort, IdAntiFreeze, IdUDPServer, IdBaseComponent, IdComponent, IdUDPBase, IdUDPClient, IdStack, LMDTrayIcon, Menus,Winsock, IdTCPServer,IdSocketHandle, AdPacket, ExtCtrls, ProCtrls, LMDIniCtrl, Mask, EditNew, ProDlgs, LMDCustomComponent, LMDWndProcComponent; Type byteArray = array[1..255] of byte; type TSrvrFrm = class(TForm) SourceGroupBox: TGroupBox; HostNameLabel: TLabel; HostAddressLabel: TLabel; HostName: TLabel; HostAddress: TLabel; PortLabel: TLabel; PortIN: TLabel; BufferSizeLabel: TLabel; Portout: TLabel; Btn_STOP: TButton; UDPMemo: TMemo; CB_LOG: TCheckBox; Btn_Settings: TBitBtn; StatusBar: TStatusBar; Zender: TIdUDPClient; Ontvanger: TIdUDPServer; SP: TApdComPort; TrayIcon: TLMDTrayIcon; PopupMenu1: TPopupMenu; N2: TMenuItem;
Schooljaar 2005-2006
//sp = seriële poort/compoort
Tom De Crits
Minimale Operating System voor communicatie met Saia PLC
-75-
N1: TMenuItem; mnuQuit: TMenuItem; VorigFormaat: TMenuItem; AckNackPacket: TApdDataPacket; DataPacket: TApdDataPacket; Btn_Clear: TBitBtn; SetPanel: TProPanel; Btn_OK: TBitBtn; CB_PORT: TComboBox; //Baudrate is hier gelijk aan Bitrate IniCtrl: TLMDIniCtrl; E_RS232_TIMEOUT: TEditN; Requests: TLabel; Label3: TLabel; ResetServer: TIdUDPServer; ResetLabel: TLabel; ProLoginDialog: TProLoginDialog; GroupBox1: TGroupBox; E_ADRESS: TEditN; E_UDP_PORT_ONTVANGER: TEditN; E_UDP_PORT_ZENDER: TEditN; ETime_OUT: TEditN; Label1: TLabel; Label2: TLabel; Label4: TLabel; Label5: TLabel; Label7: TLabel; Led: TShape; Label11: TLabel; Label12: TLabel; Btn_cancel: TButton; Label10: TLabel; Label9: TLabel; Cbx_BaudRate: TComboBox; ProConfirmDialog: TProConfirmDialog; procedure VorigFormaatClick(Sender: TObject); procedure TrayIconDblClick(Sender: TObject); procedure FormCreate(Sender: TObject); procedure Btn_STOPClick(Sender: TObject); procedure SPPortOpen(Sender: TObject); procedure FormShow(Sender: TObject); procedure OntvangerUDPRead(Sender: TObject; AData: TStream; ABinding: TIdSocketHandle); procedure DataPacketPacket(Sender: TObject; Data: Pointer; Size: Integer); procedure AckNackPacketTimeout(Sender: TObject); procedure DataPacketTimeout(Sender: TObject); procedure AckNackPacketStringPacket(Sender: TObject; Data: String); procedure Btn_ClearClick(Sender: TObject);
Schooljaar 2005-2006
Tom De Crits
Minimale Operating System voor communicatie met Saia PLC
-76-
procedure Btn_SettingsClick(Sender: TObject); procedure Btn_OKClick(Sender: TObject); procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); procedure CB_PORTDropDown(Sender: TObject); procedure CB_LOGClick(Sender: TObject); procedure ResetServerUDPRead(Sender: TObject; AData: TStream; ABinding: TIdSocketHandle); procedure Btn_cancelClick(Sender: TObject); procedure Cbx_BaudRateDropDown(Sender: TObject); private { Private declarations } CQ : TSimpleMsgQueue ; CS : TCommThread ; Lastcommand : byte; CurentPort : integer; Buffer: byteArray; udp_Name : string; UDP_PORT_IN,UDP_PORT_OUT : integer; NetTimeOut : integer; RS232_Timeout : integer; Tot_REQ : longint; Procedure WMQEUECOUNT(var msg : TMessage); message WM_QEUECOUNT; Procedure WMPACKETSIZE(var msg : TMessage); message WM_PACKETSIZE; procedure repply_Client(const answer : shortstring); procedure Bewerk_Data(const dat : byteArray; Hoeveel : byte); procedure Read_settings; procedure Read_PanelSettings; procedure Save_settings; Procedure UpdateLog(const s : string); public { Public declarations } end; //*************************declaratie constanten******************************** const HOSTNAMELENGTH = 80; RECIEVETIMEOUT = 2000; // milliseconds WM_QEUECOUNT = WM_USER + 3000; WM_PACKETSIZE = WM_USER + 3001; BaudRateFile = 'BaudRate.txt'; //Filename declareren als BaudRateFile //************* LOGIN GEGEVENS ************** Gebruiker = 'YDE'; Paswoord = 'ydebvba'; //************* SAIA S-BUS ****************** //************ commands *********************
Schooljaar 2005-2006
Tom De Crits
Minimale Operating System voor communicatie met Saia PLC
coRS coRR coRT coRC coWR coWT coWC coRI coRO coRF coWO coWF coRK coWK coRD coRV coR1 coR2 coRX coRZ coWZ coMZ
= = = = = = = = = = = = = = = = = = = = = =
-77-
$14; $6; $7; $0; $E; $F; $A; $3; $5; $2; $D; $B; $4; $C; $1; $20; $9B; $9C; $21; $96; $97; $98;
var SrvrFrm: TSrvrFrm; //*************************implementation sectie******************************** implementation uses AdSelCom ,Convert; {$R *.DFM} var mHandle: THandle; //Mutexhandle //*************************procedures and functions***************************** //****************************Form procedures*********************************** //procedure die doorlopen wordt bij het opstarten/creëeren van de applicatie procedure TSrvrFrm.FormCreate(Sender: TObject); begin read_Settings; CQ:=TSimpleMsgQueue.create; CommThread.queue:=CQ; CommThread.sp:=sp; CS:=TCommThread.create(false); MainHwnd := Self.handle; Requests.Caption := inttostr(Tot_Req); end;
Schooljaar 2005-2006
Tom De Crits
Minimale Operating System voor communicatie met Saia PLC
-78-
//procedure doorlopen bij het afsluiten van de toepassing procedure TSrvrFrm.FormCloseQuery(Sender: TObject; var CanClose: Boolean); begin canclose := false; try datapacket.Enabled := false; AckNackpacket.Enabled := false; sp.Open := false; Inictrl.writeInteger('Communication','Requests',Tot_REQ); Inictrl.writeInteger('Server','Running',0); finally canclose:= true end; end; //procedure die bij het tevoorschijn brengen van de toepassing doorlopen wordt {indien de juiste compoort niet geselecteerd is, komt een window tevoorschijn waarin de juiste compoort moet geselecteerd worden} procedure TSrvrFrm.FormShow(Sender: TObject); begin sp.Open := true end; //*********************************Logging Checkbox***************************** //v'tje wil zeggen loggen op scherm aan, en anders stilleggen loggen procedure TSrvrFrm.CB_LOGClick(Sender: TObject); begin case cb_LOG.Checked of //2 gevallen, logging aan of uit true : sp.Logging := tlOn ; false : sp.Logging := tldump; end end; //********************************ComPoort keuzesbox**************************** {alle compoorten die available zijn op het systeem moeten in de combobox weergegeven worden als keuzemogelijkheid.} {zie uses clausule: AdSelCom declareren, gebruiken hieruit methodes, functies} procedure TSrvrFrm.CB_PORTDropDown(Sender: TObject); var TempStr : string; //declareren van local variabele i : integer; //als string en integer begin UseDispatcherForAvail := True; //twee globale variabele uit AdSelCom.pas ShowPortsInUse := True; TempStr := ''; //initialiseren van de string als lege string for i := 1 to 10 do //eerste 10 mogelijke compoorten worden gecheckt {als er een compoort is dan wordt het nummer ervan toegevoegd aan de string
Schooljaar 2005-2006
Tom De Crits
Minimale Operating System voor communicatie met Saia PLC
-79-
en control string : carriage-return–line-feed} if IsPortAvailable(i) then //functie aanroepen uit AdSelCom.pas TempStr := TempStr + #13#10 + 'COM' + IntToStr(i); TempStr := Trim(TempStr); {Trim function removes leading and trailing spaces and control characters from the given string S.} CB_PORT.Items.Text := TempStr; {TDBComboBox.Items contains the strings that appear in the list of the database combo box. En hier gaan we de gevonden compoorten dus aan toevoegen} end; //******************************BaudRate keuzebox******************************* {alle keuzemogelijkheden moeten uit een extern bestand ingeladen worden iedere keer bij dropdownactie. Deze keuzemogelijkheden zijn tijdens runtime aanpasbaar zonder server te moeten afsluiten.} procedure TSrvrFrm.Cbx_BaudRateDropDown(Sender: TObject); begin Cbx_BaudRate.Items.Clear; {inhoud van de combobox wordt eerst iedere keer geledigd vooraleer weer te vullen bij dropdownactie} Cbx_BaudRate.Items.LoadFromFile(BaudRateFile); {inhoud van de baudrate combobox wordt iedere keer opnieuw ingelezen en in de combobox geplaatst} end; //********** Up to date houden van de compoort info over in statusbalk********** procedure TSrvrFrm.SPPortOpen(Sender: TObject); begin statusbar.Panels[0].Text := 'COM'+inttostr(sp.comnumber) +' <--> '+ IntToStr(sp.baud); end; //******************************Exit knop*************************************** //procedure aanroepen waarbij venster te voorschijn komt waarbij er om //bevestiging gevraagd wordt procedure TSrvrFrm.Btn_STOPClick(Sender: TObject); begin if ProConfirmDialog.Execute then close; end; //******************************Instellingen knop******************************* //Instellingen bereikbaar via juiste ingave van Username en Password procedure TSrvrFrm.Btn_SettingsClick(Sender: TObject); var ok : Boolean; //declareren van lokale boolean variabele begin ok := False; //initialiseren als false in het begin with ProLoginDialog do //voor het legen van de editvakken voor het aanroepen begin //van het loginvenster/window UserName := ''; {kan in commentaar gezet worden, zodat de login van vorige keer nog erin staat}
Schooljaar 2005-2006
Tom De Crits
Minimale Operating System voor communicatie met Saia PLC
-80-
Password := ''; end; if ProLoginDialog.Execute then begin ok := (ProLoginDialog.UserName = Gebruiker) and (ProLoginDialog.Password = Paswoord); if ok then {als de juiste gebruiker en paswoord ingevuld is, wordt ok variabele true en wordt de volgende lus uitgevoerd} begin Read_PanelSettings; //Instellingen ophalen en invullen SetPanel.Visible := True; {maakt het SettingsPanel zichtbaar} end else ShowMessage('Verkeerde Login of Paswoord!!'+#13#10+'Probeer opnieuw!!'); end end; //*****************************Clear Log knop*********************************** //door op de knop te drukken moet het logscherm geledigd worden procedure TSrvrFrm.Btn_ClearClick(Sender: TObject); begin UDPMemo.clear //clear methode aanroepen om Tmemo object te ledigen end; //*************************Logupdate om de 100 regels*************************** Procedure TSrvrFrm.UpdateLog(const s : string); begin with UDPMemo do begin if lines.count > 100 then clear; lines.add(s); Update end; end; //********************************Ok knop*************************************** //hierbij zouden dan ook alle instellingen zouden moeten opgeslaan worden procedure TSrvrFrm.Btn_OKClick(Sender: TObject); begin SP.Open := False; //communicatie met Compoort non actief plaatsen Save_settings; //aanroepen van procedure die alle instellingen opslaan SetPanel.Visible := False; //invisible maken van instellingenpaneel {Melding geven aan de gebruiker dat de instellingen gewijzigd en opgeslaan zijn} ShowMessage('De instellingen van de server werden gewijzigd en opgeslaan!' +#13+#10+'Server wordt afgesloten en dient handmatig weer opgestart te worden!'); SP.Open := True; //terug Compoort actief maken //Btn_STOPClick(Btn_STOP) //gesimuleerde klik op stopbutton Close;
Schooljaar 2005-2006
Tom De Crits
Minimale Operating System voor communicatie met Saia PLC
-81-
end; //********************************Cancel knop*********************************** procedure TSrvrFrm.Btn_CancelClick(Sender: TObject); begin SetPanel.Visible := False; //terug verbergen van instellingen paneel end; //***********************Taakbalkicoon dubbelklikprocedure********************** procedure TSrvrFrm.TrayIconDblClick(Sender: TObject); begin SrvrFrm.Visible := true //terug tevoorschijn halen van de server form end; //*****************************Taakbalk Popup menu****************************** //**********************Taakbalk Popup menu functie EXIT************************ //zelfde actie als bij klik op Exit knop, dus daaraan verbinden de event //**********************Taakbalk Popup menu functie Restore********************* procedure TSrvrFrm.VorigFormaatClick(Sender: TObject); begin SrvrFrm.Visible := true end; //************************Functie String to ByteString************************** //functie die string omzet naar een Byte string //dit zodat in het logscherm een request weergegeven wordt met leesbare tekens, //ipv hartjes, klavers, leegtes ipv nullen, enz. Function StringToByteValue(const instr : string) : string; Var i : integer; s : string; Begin s := '['; for I := 1 to length(instr) do if I < length(instr) then appendstr(s,ByteToHexChar(ord(instr[I]))+'*') else appendstr(s,ByteToHexChar(ord(instr[I]))+']'); result := s; end; //procedure die continu ervoor zorgt dat er in de status balk weergegeven wordt //hoeveel request er in de qeue zitten Procedure TSrvrFrm.WMQEUECOUNT(var msg : TMessage); begin statusbar.Panels[1].Text := 'IN QEUEU : '+ inttostr(msg.wparam); end;
Schooljaar 2005-2006
Tom De Crits
Minimale Operating System voor communicatie met Saia PLC
-82-
Procedure TSrvrFrm.WMPACKETSIZE(var msg : TMessage); begin led.brush.Color := clTeal; Lastcommand := msg.LParam; DataPacket.TimeOut := RS232_Timeout; AckNackPacket.TimeOut := RS232_Timeout; if msg.WParam = 1 then begin AckNackPacket.Enabled := true; DataPacket.Enabled := false; end else begin AckNackPacket.Enabled := false; DataPacket.PacketSize := msg.WParam; DataPacket.Enabled := true; end end; //******************************Save_Settings*********************************** //alle settings opslaan naar het register procedure TSrvrFrm.Save_settings; var portnmr : integer; begin {in onze combobox komen alle mogelijke compoorten waar 1 uitgekozen wordt, nu moet het poortnummer uit deze string gevist worden om dan te kunnen opslaan} portnmr := strToInt(copy(CB_PORT.Text,4,1)); with IniCtrl do begin {ComPoort gegevens worden weggeschreven in het register in het juiste pad SaiaServer, onder ComPort registersleutel} WriteInteger('comport','port',portnmr); WriteInteger('comport','Baudrate',StrToInt(Cbx_BaudRate.text)); //Netwerk gegevens opslaan in het register udp_Name := E_ADRESS.Text; UDP_PORT_IN := E_UDP_PORT_ONTVANGER.Valueinteger; UDP_PORT_OUT := E_UDP_PORT_ZENDER.Valueinteger; NetTimeOut := ETime_OUT.Valueinteger; RS232_Timeout := E_RS232_TIMEOUT.ValueInteger; WriteString('Network','SERVER_IP',udp_Name); WriteInteger('Network','UDPPortIN',UDP_PORT_IN); WriteInteger('Network','UDPPortOUT',UDP_PORT_OUT); WriteInteger('Network','TimeOut',NetTimeOut); Writeinteger('Communication','Timeout',RS232_Timeout); end; sp.Open := false;
Schooljaar 2005-2006
Tom De Crits
Minimale Operating System voor communicatie met Saia PLC
-83-
sp.ComNumber := portnmr; sp.Baud := StrToInt(Cbx_BaudRate.text); Ontvanger.Active := false; Zender.Active := false; HostName.Caption := Ontvanger.LocalName; HostAddress.Caption := udp_Name; PortIn.Caption := IntToStr(UDP_PORT_IN); PortOut.Caption := IntToStr(UDP_PORT_OUT); Ontvanger.DefaultPort := UDP_PORT_IN; Zender.Port := UDP_PORT_OUT; RS232_Timeout := E_RS232_TIMEOUT.ValueInteger; DataPacket.TimeOut := RS232_Timeout; AckNackPacket.TimeOut := RS232_Timeout; Zender.ReceiveTimeout := NetTimeOut; Ontvanger.Active := True; sp.Open := true; Zender.Active := true; end; //******************************Read_Settings*********************************** procedure TSrvrFrm.Read_settings; var s: string; begin //Read settings from registry s := inttoSTr(IniCtrl.ReadInteger('comport','Baudrate',9600)); with IniCtrl do begin {ComPoort gegevens worden uitgelezen uit het register, als er nog geen gegevens terbeschikking zijn gebruikt deze de defaultwaarden hier opgenomen} CB_PORT.Text := 'COM'+inttoSTr(ReadInteger('comport','port',1)); //Cbx_BaudRate.Text := IntToStr(ReadInteger('ComPoort','BaudRate',9600)); Cbx_BaudRate.text := s; //Netwerk gegevens worden uitgelezen(en indien nodig defaultwaarde ingevuld) UDP_Name := GStack.LocalAddress; UDP_PORT_IN := readInteger('Network','UDPPortIN',Ontvanger.DefaultPort); UDP_PORT_OUT := readInteger('Network','UDPPortOUT',Zender.Port); //Timeout gegevens worden uitgelezen(en indien nodig defaultwaarde ingevuld) NetTimeOut := readInteger('Network','TimeOut',RECIEVETIMEOUT ); // mSec RS232_Timeout := readinteger('Communication','Timeout',1000); E_ADRESS.Text := udp_Name ; E_UDP_PORT_ONTVANGER.setinteger(UDP_PORT_IN); E_UDP_PORT_ZENDER.setinteger(UDP_PORT_OUT); ETime_OUT.setinteger(NetTimeOut); E_RS232_TIMEOUT.SetInteger(RS232_Timeout); //Totaal aantal requests van voorheen wordt uitgelezen en anders 0 Tot_REQ := readInteger('Communication','Requests',0); //Saia Server draait reeds duiden in het register
Schooljaar 2005-2006
Tom De Crits
Minimale Operating System voor communicatie met Saia PLC
-84-
Inictrl.writeInteger('Server','Running',1); end; sp.Open := false; sp.ComNumber := strToInt(copy(CB_PORT.Text,4,1)); sp.Baud := StrToInt(Cbx_BaudRate.text); Ontvanger.Active := false; Zender.Active := false; HostName.Caption := Ontvanger.LocalName; HostAddress.Caption := udp_Name; PortIn.Caption := IntToStr(UDP_PORT_IN); PortOut.Caption := IntToStr(UDP_PORT_OUT); Ontvanger.DefaultPort := UDP_PORT_IN; ontvanger.Bindings[0].IP := udp_Name; ontvanger.Bindings[0].Port := UDP_PORT_IN; Zender.Port := UDP_PORT_OUT; Zender.ReceiveTimeout := NetTimeOut; Ontvanger.Active := True; sp.Open := true; DataPacket.TimeOut := RS232_Timeout; AckNackPacket.TimeOut := RS232_Timeout; Requests.Caption := inttostr(Tot_Req); end; //***************************Read_PanelSettings********************************* procedure TSrvrFrm.read_PanelSettings; Begin with inictrl do begin //Netwerk gegevens worden uitgelezen(en indien nodig defaultwaarde ingevuld) udp_Name := GStack.LocalAddress; UDP_PORT_IN := readInteger('Network','UDPPortIN',Ontvanger.DefaultPort); UDP_PORT_OUT := readInteger('Network','UDPPortOUT',Zender.Port); E_ADRESS.Text := udp_Name ; E_UDP_PORT_ONTVANGER.setinteger(UDP_PORT_IN); E_UDP_PORT_ZENDER.setinteger(UDP_PORT_OUT); //Timeout gegevens worden uitgelezen(en indien nodig defaultwaarde ingevuld) NetTimeOut := readInteger('Network','TimeOut',RECIEVETIMEOUT ); // mSec ETime_OUT.setinteger(NetTimeOut); E_RS232_TIMEOUT.SetInteger(readinteger('Communication','Timeout',500)); //Totaal aantal requests van voorheen wordt uitgelezen en anders default 0 Tot_REQ := readInteger('Communication','Requests',0); end; end; //**************************antwoord procedure********************************** //deze procedure wordt gebruikt voor te antwoorden aan de client in de queu //ook wordt indien logging aanligt deze up to date gehouden //de status van de led wordt ook overal aangepast in de volgende procedures
Schooljaar 2005-2006
Tom De Crits
Minimale Operating System voor communicatie met Saia PLC
-85-
procedure TSrvrFrm.repply_Client(const answer : shortstring); var s : string; i : byte; Begin if not zender.Active then Zender.Active := true; zender.Host := commThread.ClientIP; zender.Port := UDP_PORT_OUT; Zender.send(Answer); Zender.Active := false; application.ProcessMessages; led.brush.Color := clWhite; // CS.resume; if CB_LOG.Checked then begin if length(answer) = 1 then begin if answer[1] = #6 then s := '[ACK]' else if answer[1] = #21 then S := '[NACK]' end else begin if (answer = 'TIMEOUT !') or (answer = 'RS232 ERROR') or (answer = 'TIMEOUT ACK-NACK!') or (answer = 'TIMEOUT DATAPACKET!') then s := answer else begin s := stringToByteValue(answer); end; end; UpdateLog('ANSWER TO >> '+ zender.Host+':'+inttostr(zender.Port)+' "'+S+'"'); end; end; procedure TSrvrFrm.Bewerk_Data(const dat : byteArray; Hoeveel : byte); var i : integer; s : shortstring; Begin led.brush.Color := clYellow; setlength(s,hoeveel+1); s[1] := char(lastcommand); for i := 1 to hoeveel do s[i+1] := char(dat[I]);
Schooljaar 2005-2006
Tom De Crits
Minimale Operating System voor communicatie met Saia PLC
-86-
repply_Client(S); end; //**************************ontvang procedure*********************************** //de binnenkomende request wordt verwerkt in deze procedure //en de client krijgt de melding of de request goed toegekomen is //logscherm wordt up-to-date gehouden procedure TSrvrFrm.OntvangerUDPRead(Sender: TObject; AData: TStream; ABinding: TIdSocketHandle); var v : shortstring; p : TMyMsg; DataStringStream: TStringStream; s : String; ontop : boolean; //********************* calculates bytes to receive from saia *********** // 1-ste byte in een remote command is het aantal te verwachten bytes van SAIA // 1 voor schrijffuncties en status // meerdere voor andere begin s :=' SERVER GOT IT ON : '+timetostr(time) ; ABinding.SendTo(ABinding.PeerIP, ABinding.PeerPort, s[1], Length(s)); led.brush.Color := clLime; DataStringStream := TStringStream.Create(''); try DataStringStream.CopyFrom(AData, AData.Size); v:=DataStringStream.DataString; // contains AData.Read(buffer,size); //repply sender that message is received //store new message in qeue CurentPort := ABinding.PeerPort; p:=TMyMsg.create(length(v)); // repack for COMMThread p.asstring:=copy(v,2,length(v)); //messages - first char , //first char is bytes to receive p.command := ORD(v[3]); p.clientIP := ABinding.PeerIP; p.origin:=ABinding.PeerPort ; // get/make client handle p.BytesReturn := ORD(V[1]); //Get_Bytes_To_RECEIVE_FROM_SAIA(V); // quein de command en indien schrijfcommando vooraan in que invoegen // na andere schrijfcommando's ontop := ORD(v[3]) in [coWR,coWT,coWC,coWO,coWF,coWK,coWZ]; CQ.queuein(p,ontop); // Queue for COMMThread postmessage(self.Handle,WM_QEUECOUNT, CQ.count,0); //if CS.Suspended then CS.Resume; finally DataStringStream.Free; end;
Schooljaar 2005-2006
Tom De Crits
Minimale Operating System voor communicatie met Saia PLC
-87-
If CB_LOG.checked then begin UpdateLog('<
Schooljaar 2005-2006
Tom De Crits
Minimale Operating System voor communicatie met Saia PLC
-88-
Var s,command : shortstring; DataStringStream: TStringStream; FullProgPath: PChar; begin //reads a special command from a client statusbar.Panels[1].text := 'Special COMM from : '+ ABinding.PeerIP ; try DataStringStream := TStringStream.Create(''); DataStringStream.CopyFrom(AData, AData.Size); command := DataStringStream.DataString; // contains AData.Read(buffer,size); if uppercase(command) = 'RT' then Begin CS.Suspend; sp.Open := false; //close comport ResetLabel.Visible := true; //wait delayticks(10,true); Ontvanger.Active := false; Ontvanger.DefaultPort := UDP_PORT_IN; Ontvanger.Bindings[0].Port := UDP_PORT_IN; ontvanger.Bindings[0].IP := udp_Name; Delayticks(10,true); //wait Ontvanger.Active := true; ResetLabel.Visible := false; Tot_Req := 0; Requests.Caption := inttostr(Tot_Req); led.brush.Color := clWhite; s :='SERVER handles Your Reset '; ABinding.SendTo(ABinding.PeerIP, ABinding.PeerPort, s[1], Length(s)); sp.Open := true; //reopen comport CS.resume; end ; if uppercase(command) = 'MUCH' then Begin s :='HANDLED '+ inttostr(Tot_Req)+' UP TO NOW !'; ABinding.SendTo(ABinding.PeerIP, ABinding.PeerPort, s[1], Length(s)); end; if uppercase(command) = 'HO' then begin s := 'HI CLIENT I AM HERE'; ABinding.SendTo(ABinding.PeerIP, ABinding.PeerPort, s[1], Length(s)); end; {if uppercase(command) = 'HI' then With ontvanger do // bindings.Add; end;}
Schooljaar 2005-2006
//a new client is logged on
Tom De Crits
Minimale Operating System voor communicatie met Saia PLC
-89-
if uppercase(command) = 'RESTART' then begin s := 'SERVER WILL RESTART'; ABinding.SendTo(ABinding.PeerIP, ABinding.PeerPort, s[1], Length(s)); FullProgPath := PChar(Application.ExeName); WinExec(FullProgPath, SW_SHOW); // Or better use the CreateProcess function Application.Terminate; // or: Close; end; finally DataStringStream.Free end; end; //******************************Mutex afhandeling******************************* //Deze procedure maakt het onmogelijk de toepassing meermaals op te starten initialization mHandle := CreateMutex(nil, True, 'XYZ'); if GetLastError = ERROR_ALREADY_EXISTS then begin ShowMessage('SAIA SERVER DRAAIT REEDS!'); halt; end; finalization if mHandle <> 0 then CloseHandle(mHandle) end. //*******************************Einde programma********************************
Schooljaar 2005-2006
Tom De Crits
Minimale Operating System voor communicatie met Saia PLC
8.6.
-90-
Bijlage 6: Principeschema communicatiemogelijkheden Toekomst gericht principeschema Laptop Voor installatie & configuratie
RS232 of andere
Moederbord met Embedded OS Servertoepassing+ Clienttoepassing
Flags
Seriële Communicatie S-bus Protocol (parity) RS232
Registers
Master PLC Remote control: Pc Client 1 Clienttoepassing
Counters Timers
PLC2 Netwerk
UDP/IP TCP/IP
Internet
PLC3 Remote control: Laptop Client 2 Clienttoepassing
PLC4
Enz.
Remote control: PDA Client 3 Clienttoepassing Pc Bij leverancier Enz.
Schooljaar 2005-2006
Tom De Crits
Minimale Operating System voor communicatie met Saia PLC
-91-
Literatuurlijst Boeken:
Holzner, S. (2005). C++ Grand Cru, Budget Editie. Easy Computing. ISBN 90 456 3771 5 Schoenmakers, B. (2004). Linux in 10 minuten. Pearson Education Benelux B.V.. ISBN 90 430 0933 4 Stefanski, M. (1996). Basiscursus Delphi 2.0. Schoonhoven, Academic Service. ISBN 90 395 0526 8 Thomassen, H.J. (2000). UNIX het standard operating system (4e herziene uitgave, 1e oplage juni 2000). Schoonhoven, Academic Service. ISBN 90 395 1510 7 Zoer, F. (2004). Van Windows naar Linux, Arklinux – oogt als Windows, werkt als Linux. Elektuur. ISBN 90 5381 177 X
Niet-gepubliceerde documenten:
Lingier, N. ; Vandenberghe, B. (2005). Ethernet interface voor Saia PLC. niet gepubliceerd eindwerk voor het behalen van het diploma van gegradueerde in elektromechanica optie meet- en regeltechniek, Oostende, KHBO.
Manuals:
SAIA-BURGESS, 2002.Saia PCD, Process Control Devices, The complete system family for factory automation and building automation. Cd-rom. Saia-Burgess.
Elektronische bronnen:
Inprise Corporation. (1999). Quick Start Borland Delphi 5. http://info.borland.com/techpubs/delphi/delphi5/ (04/02/2006) Wegman, D. (2003). Online C++ tutorial. http://www.intap.net/~drw/cpp/ (28/11/2005) Wenmaekers, A. Cursus Linux. users.skynet.be/bluedigit/cursus/cursus.pdf (15/10/2005). Zarko, G. A Beginner’s Guide to Delphi Programming. http://delphi.about.com/od/beginners/a/delphicourse.htm (04/02/2006) Big Dutchman. http://www.bigdutchman.be/ Computer Interfacing. http://www.lammertbies.nl/ Debian. http://www.debian.org/index.nl.html Encyclopedie. http://www.howstuffworks.com Fedora. http://fedora.redhat.com/ Fedora Forum. http://forums.fedoraforum.org/ Linux documentatie. http://doc.nl.linux.org/ Linux Kernel. http://www.kernel.org/
Schooljaar 2005-2006
Tom De Crits
Minimale Operating System voor communicatie met Saia PLC
-92-
Microsoft. http://www.microsoft.com/ Saia-Burgess. http://www.saia-burgess.com/ Support Microsoft. http://support.microsoft.com/ The Indy Project. http://www.indyproject.org/index.en.iwp Torry’s Delphi Pages. http://www.torry.net/ Tweaks and Tips Windows. http://www.dougknox.com/ Tweakers.net. http://tweakers.net/ Ubuntu. http://www.ubuntulinux.nl/ Ubuntu Forums. http://ubuntuforums.org/, http://www.ubuntu-linux.nl/forum/ VNC. http://www.realvnc.com/ Vrije encyclopedie. http://nl.wikipedia.org Win 98 Lite. http://www.litepc.com/ Windows installatie en optimalisatie. http://www.schoonepc.nl/ enz.
Opmerking! Deze lijst elektronische bronnen bevat enkel de algemene en belangrijkste geraadpleegde sites. Voor de volledige en uitgebreidere lijst verwijs ik naar het mapje Eindwerk_Links dat terug te vinden is op de bijgevoegde Cd-rom.
Schooljaar 2005-2006
Tom De Crits