Datatypes van variabelen

Bij het programmeren van een PLC wordt onder andere gebruik gemaakt van variabelen. Elke variabele heeft een bepaald datatype. In dit stuk alle informatie over datatypes van variabelen. Variabelen zijn objecten die een bepaalde waarde kunnen bevatten.

Als je bijvoorbeeld de temperatuur wilt kunnen onthouden om deze op een andere plek te gebruiken dan maakt je gebruik van een variabele die de temperatuur opslaat. Op een later tijdstip kan de waarde weer uit die variabele worden opgevraagd.

Elke variabele is van een specifiek datatype. Hiermee wordt van tevoren bepaald wat voor soort waarde er kan worden opgeslagen en hoeveel geheugen hiervoor nodig is. Het simpelste datatype is een Boolean. Dit data type heeft de grootte van 1 bit en kan dus maar 2 waardes bevatten: 0 of 1. Een ander voorbeeld is het datatype Byte. De naam verklapt het al, deze variabele heeft de grootte van 1 byte (8 bits) en kan een waarde bevatten van 0 tot en met 255.

Hieronder staan de basis datatypes van een PLC:

DatatypeGrootte (bits)Grootte (bytes)Waarde/bereik
Bool10 – 1
Byte810 – 255
Word1620 – 65.535
DWord3240 – 4.294.967.295

Naast deze basis datatypes zijn er ook nog een aantal andere datatypes die het mogelijk maken om ander soorten waardes op te kunnen slaan. Denk daarbij bijvoorbeeld aan negatieve getallen of komma getallen. Vaak zijn deze datatypes qua geheugengebruik niet groter dan de bovenstaande datatypes, maar ze worden op een andere manier gebruikt en hebben een andere bereik.

DatatypeGrootte (bits)Grootte (bytes)Waarde/bereik
Char81ASCII karakters
Int162-32.768 – 32.767
DInt324-4,3E+09
Real324Variabel:
  Grote waardes: +/-3,402823E+38
  Kleine waardes: +/-1,175495E-38
TIME324Tijdsduur in milliseconden:
  -24d 20h 31m 23s 648ms – 24d 20h 31m 23s 647ms*
DATE16201-01-1970 – 31-12-2168*
TIME_OF_DAY32400:00:00.000 – 23:59:59.999

*  (kan verschillen per merk PLC)

Bovenstaande datatypes kunnen, in tegenstelling tot de basis datatypes, zowel positieve als negatieve waardes bevatten (met uitzondering van TIME_OF_DAY). Dit zijn zogenaamde “signed” datatypes. Sommige PLC systemen ondersteunen daarnaast ook het gebruik van “unsigned” datatypes. In tegenstelling tot “signed” kunnen deze alleen positieve waardes bevatten. Een UInt (unsigned integer) is de unsigned variant van de Int. Deze is qua grootte identiek, maar het bereik ligt in dit geval van 0 tot en met 65.535. In wezen is de UInt gelijk aan de Word, maar soms is het wenselijk om hierin toch onderscheid te maken.

Arrays

Een Array is speciaal soort datatype. Het is een vooraf gedefiniëerde reeks van een bepaald datatype. Bijvoorbeeld: een ‘Array [1..10] of Int’ is een reeks van 10 elementen van het type Int. Elk element van een array is te benaderen door achter de naam van de array het element nummer op te geven: NAAM[2] is het tweede element van deze array en bevat een waarde van het type Int. Let op: Het is soms ook toegestaan om een array te gebruiken die begint bij 0: ‘Array [0..9] of Int’. Ook dit is een array met 10 elementen, maar hier is NAAM[2] het derde element van de array, omdat de array begint bij 0. Het gebruik van een array kan vooral handig zijn om samenhangende gegevens gegroepeerd op te slaan. Denk bijvoorbeeld aan gelijksoortige parameters of een reeks coördinaten.

Structs

Een andere speciaal type is de Struct (structure). Dit is een object dat geheel naar wens kan worden ingevuld met verschillende datatypes. Een struct kan bijvoorbeeld een Bool en twee Int’s bevatten. Het voordeel van het gebruik van een struct is dat eenvoudig een variabele gemaakt kan worden die in één keer alle relevante waardes kan opslaan, zoals die zijn vastgelegd in de struct. En ook hier is, net als bij een array, het voordeel dat samenhangende gegevens makkelijk gegroepeerd en gebruikt kunnen worden.

Verder lezen

De volgende pagina’s zouden ook interessant voor jou kunnen zijn;

Bit operaties 
Van Binair naar decimaal 
Bit, Byte en Nibble