Deze uitzending is door de gastheer als 'schoon' gemarkeerd.
--------------------
01 Inleiding
Dit is de derde aflevering van een achttal serie.
02
In de vorige aflevering bespraken we:
* De vroege geschiedenis van computers in industriële besturing
* De vroege geschiedenis van PLC's, inclusief hoe ze hun naam kregen
* Wie de grote merken zijn
* Hoe ze er fysiek uitzien
Een basisbeschrijving van de abstracte machinearchitectuur
Een zeer korte blik op wat een PLC-programma eruitziet
Het scan-concept
De belangrijkste PLC-programmeer talen
De minder belangrijke PLC-programmeer talen
De relatieve populariteit van elke programmeer taal
03
In deze aflevering beginnen we met een blik op een van de vroege PLC's uit de tijd dat ze voor het eerst wijdverspreid in gebruik kwamen.
Ik zal zelfs niet proberen om volledig te zijn, ik zal gewoon een breed overzicht geven binnen de beperkte tijd die ik hier beschikbaar heb.
Ik ben begonnen met een oudere model omdat de eenvoud en beperkte functies een makkelijkere introductie tot het onderwerp mogelijk maken.
--------------------
04 Allen Bradley PLC/2
De Allen Bradley PLC/2 werd in 1977 op de markt gebracht.
Het was niet hun eerste poging in dit gebied, maar het was hun eerste echt succesvolle.
Ik ben niet op de hoogte van een uitgebreide geschiedenis van hun vroege productlijn, maar een van hun vroege grote verkoopmodellen was de PLC2/30.
Dit is ook bekend als hun 1771 serie.
--------------------
05 Fysieke lay-out
De CPU-module was een grote metalen doos die naast de I/O-rek zat en eraan was verbonden met een kabel.
De I/O-rek was een doos met een open voorzijde en een reeks sleuven waarin lange, smalle dozen met de I/O-componenten konden worden ingeplaatst.
06
Een backplane liep over de achterkant en verbond de I/O met de CPU.
Meerdere rekken konden met kabels aan elkaar worden verbonden.
Voor de PLC2/30 had je maximaal 896 digitale I/O-punten.
07
Rekken waren 315 mm hoog en tussen 247 mm en 610 mm breed, met rekken verkrijgbaar in varianten met 4, 8, 12 en 16 sleuven.
De CPU had dezelfde hoogte als het rek en was ruwweg vierkant van vorm.
08
Naarmate de micro-elektronica zich ontwikkelde, kon het CPU-module in grootte worden verkleind, zodat het in een sleuf van het rek paste, wat de standaard werd voor PLC's.
--------------------
09 De elektronica binnenin
Vroegere modellen PLC/2s gebruikten een soort 8-bit processor, volgens sommige bronnen een Intel 8080.
10
Ze gebruikten ook vier AMD 2900 bit slice processors als logische co-processor.
Als je niet bekend bent met bit slice processors, zijn dit chips die een verticale 4-bit slice door een processor vormen en die samen met logische chips kunnen worden verbonden om een volledige CPU te vormen.
Dit is wat werd gebruikt om minicomputers te bouwen.
11
Ze werden gebruikt als co-processors in vroege PLCs omdat microprocessors op zichzelf simpelweg te langzaam waren om het gebruikersprogramma snel genoeg uit te voeren om een nuttige programma-grootte toe te staan.
Een of meer microprocessors werden ook gebruikt om de algehele werking en systeembeheer te coördineren.
12
Naarmate microprocessors sneller en krachtiger werden, nam de behoefte aan logische co-processors af en werden ze uiteindelijk weggelaten.
Vroegere versies gebruikten magnetische kerngeheugen.
Lateren modellen schakelden over naar een soort solid state RAM, waarschijnlijk statische RAM van een bepaalde soort.
13
Details over welke processors er binnen een PLC zitten, zijn eigenlijk heel moeilijk te achterhalen, aangezien fabrikanten daar over het algemeen niet over praten.
Ze wensen dat de gebruiker het ziet als een zwarte doos.
--------------------
14 De Datatabel
Vanuit het perspectief van een programmeur is het belangrijkste om eerst te begrijpen is de datatabel.
De datatabel is het geheugen voor data van de PLC.
15
Voor een PLC2 is dit een array van 16-bit woorden.
Elk woord bestaat uit twee 8-bit bytes.
Adresering voor zowel bits als woorden is in octaal.
16
Voor degenen die er niet bekend mee zijn, octale getallen volgen een telstelsel dat van 0 tot 7 gaat.
Het volgende getal na 7 is 10.
Het tellen gaat dan verder van 11, 12, 13, enzovoort naar 17, 20, 21, enzovoort.
Elke octale cijfer neemt precies 3 bits.
17
Individuele bits in PLC2-notatie kunnen worden aangepakt door het woord op te geven gevolgd door een slash, en dan de bit.
Voorbeeld: 030/12 is de 12de bit in woord 030. Houd er rekening mee dat dit octaal is, dus 12 is niet de 12de bit als je in decimale telmethode telt.
18 Geheugenorganisatie
Op de PLC2/30 heeft de datatabel de volgende organisatie.
19
Woordadressen 000 tot 007 zijn Processor Werkgebied nummer 1.
Dit is niet toegankelijk voor de gebruiker.
20
Woordadressen 010 tot, maar niet inclusief, 100 zijn de Uitvoerbeeldtabel.
Dit is een geheugenafbeeldingsweergave van de I/O-uitgangen.
010 tot 077 is voor Rek 1.
020 tot 027 is voor Rek 2.
Dit patroon gaat door tot Rek 7, wat 070 tot 077 is.
21
De woordenadressen 100 tot en met 107 zijn Processor Werkgebied nummer 2.
Dit is ook niet toegankelijk voor de gebruiker.
22
De woordenadressen 110 tot, maar niet inclusief, 200 zijn de Invoertabel Afbeelding.
Dit is een geheugenafbeelding van de invoer/uitvoer-invoer.
Dit is op dezelfde manier ingedeeld als de tabel afbeeldingen uitvoer, en reikt van 110 tot 177.
110 tot 117 is voor Rack 1.
120 tot 127 is voor Rack 2.
Dit patroon gaat door tot Rack 7, wat 170 tot 177 is.
23
Je zult opmerken dat de uitvoerbeeldtabel en invoerbeeldtabel lijken naar dezelfde rackslots te verwijzen.
Ze doen dat inderdaad.
Of een specifieke slot in een specifiek rek aan een bepaalde adres toewijst, hangt af van of er een invoerkaart of een uitvoerkaart in dat slot zit.
24
Adressen 200 tot 277 zijn voor Timer/Counter gecumuleerde waarden.
Een gecumuleerde waarde is de huidige tijd of telling.
25
Adressen 300 tot 377 zijn voor Timer/Counter vooraf ingestelde waarden.
Een vooraf ingestelde waarde is de doeltijd of telling die, wanneer bereikt, ervoor zorgt dat de timer of teller aangeeft dat hij de gewenste waarde heeft bereikt.
26
Het geheugen boven 400 kan worden geconfigureerd om het te splitsen in een gegevensopslaggebied en een gebruikersprogramma gebied.
Het opslaggebied voor gegevens is waar u gegevens moet opslaan die uw programma nodig heeft om te gebruiken, wat geen deel uitmaakt van I/O of tijd en tellers.
U moet de juiste balans vinden tussen gebruikersgegevens en programmaformaat.
27
Er zijn verschillende dingen die met betrekking tot bovenstaande kunnen worden gewijzigd en geconfigureerd, maar ik ga daar niet diep op in, aangezien dit geen handleiding is over de PLC2.
=
U zou echter een vrij goed idee moeten hebben van het geheugen van een vroege PLC-model.
De dingen die u moet begrijpen zijn dat I/O zijn toegewezen aan geheugenadressen, en
verschillende geheugengebieden worden voor verschillende doeleinden gebruikt.
28
Alle geheugenbeheer was handmatig.
Het was aan de gebruiker om bij te houden welke geheugenadressen voor welke doeleinden moesten worden gebruikt.
Allen Bradley heeft nuttige papieren formulieren verstrekt die je kunt fotokopiëren en gebruiken om te plannen en vast te leggen waarvoor elke adres zou worden gebruikt.
Een deel van de taak van de programmeur was om efficiënt en logisch gebruik te maken van het geheugen, terwijl er ook ruimte werd gelaten voor toekomstige wijzigingen.
--------------------
Het gebruikersprogramma
Het gebruikersprogramma bestaat uit instructies.
Elke instructie neemt typisch één woord geheugen in beslag.
Complexe instructies kunnen echter tot 8 woorden geheugen in beslag nemen.
30
Er is een hoofdprogramma.
Je kunt dit beschouwen als de "main" functie in C.
Als je deze analogie niet nuttig vindt, denk dan gewoon dat dit het begin is van je programma.
Het hoofdprogramma gaat verder met een stap na de andere totdat het de END-verklaring bereikt.
31
Er is ook een subroutine-gebied.
Het hoofdprogramma roept een subroutine aan door gebruik te maken van een sprong naar subroutine, of JSR-instructie.
De T3 Programmeerterminal
Toen de PLC2 uitkwam, waren dingen als laptops nog ver in de toekomst.
Zelfs de eerste Compaq Portable kofferstijl PC was nog jaren weg.
Inderdaad, de eerste PLC/2 kwam uit niet lang na de eerste Altair PC kit.
33
Programmeren werd daarom in eerste instantie uitgevoerd met behulp van een speciaal programmeerterminal genaamd een T3.
De T3 was een kofferformaat doos met een kleine CRT aan het einde ervan, en een toetsenbord eraan bevestigd onder het scherm.
Als dit klinkt als de vroege draagbare pc's, houd er dan rekening mee dat dit ze in feite voor een aantal jaren voorafging.
34
Het toetsenbord was geen typemachine of QWERTY stijl.
Het had een membraankeypad met grafische symbolen.
Herinner je de vorige aflevering over besturingsdiagrammen met relais en hoe deze werden gedocumenteerd met schematische symbolen in tekeningen.
Het T3 terminal keypad had symbolen die overeenkwamen met een vereenvoudigde en aangepaste versie van de symbolen die in die schematische tekeningen werden gebruikt.
35
Wanneer een programmeur een van die symbolen op het keypad drukke, verscheen het bijbehorende symbool op het scherm op de huidige cursorlocatie.
De programmeur konne dan het gegevensadres invoeren waar het symbool aan moest corresponderen met behulp van het numerieke deel van het toetsenbord.
36
Een ingenieur, technicus of elektricien kon daarom programma's creëren en invoeren met behulp van een volledig grafische omgeving die zijn bestaande kennis van besturing met hardware-onderdelen gebruikte.
Ze zagen dit niet als het programmeren van een computer, maar als iets heel anders dat niet gerelateerd was aan computers.
37
Het programmeren vond plaats met de T3 verbonden aan de PLC terwijl de PLC in programma-modus stond.
De instructies werden rechtstreeks vanaf de terminal naar het PLC-geheugen ingevoerd.
Programma's konden worden opgeslagen of hersteld op een cassettebandje.
Het programma zou draaien wanneer de PLC ingesteld was op draaimodus.
38
Bovendien maakte de T3-terminal online foutopsporing van programma's mogelijk.
Wanneer de T3 in run-modus werd aangesloten, zou het ladderdiagram in realtime worden bijgewerkt.
Wanneer een logische voorwaarde waar was, zou deze worden benadrukt.
Wanneer de logische voorwaarde onwaar was, zou deze in een niet-benadrukte staat worden weergegeven.
39
Door een specifieke traptreden te observeren, kon je zien of de verwachte reeks grafische instructies allemaal waren benadrukt volgens een patroon dat zou leiden tot de uiteindelijke uitvoer van de traptreden, waar of onwaar zoals verwacht.
Dit was een onschatbare hulpmiddel voor het oplossen van problemen bij het vinden van zowel softwarefouten als hardware-aandoeningen.
Programmatieterminals werden een onmisbaar onderdeel van de essentiële uitrusting van een industriële onderhoudselectronicus.
40
Uiteindelijk, toen draagbare pc's en later laptops beschikbaar werden, werd de T3 verouderd en werden deze functies overgedragen aan software die op standaard pc's draaide.
Maar ze werken nog steeds essentiële op dezelfde manier.
Extra functies zijn toegevoegd, zoals de mogelijkheid om programma's te schrijven zonder verbonden te zijn aan de PLC.
Beschrijvende labels en opmerkingen kunnen worden toegevoegd aan geheugenaanwijzingen om ze te documenteren en het lezen van het programma te vergemakkelijken.
Kruisverwijzingen zouden het eenvoudiger maken om te achterhalen welke adressen voor wat werden gebruikt.
enzovoort.
--------------------
41 Instructies
Ik ga nu over naar het opsommen van de soorten instructies die beschikbaar waren om te gebruiken.
Ik zal niet proberen alles uit te leggen, maar het zou je ten minste een vaag idee moeten geven van hoe deze geprogrammeerd werden.
Ik zal de namen van Allen Bradley gebruiken voor deze, wat ik moet benadrukken niet overeenkomt met wat andere fabrikanten ze noemen.
42 Relay Type Instructions
Dit zijn booleaanse instructies en bestaan uit de volgende elementen.
43 Input instructies
Deze instructies onderzoeken bits in het geheugen en leveren een logische staat op afhankelijk van de waarde van het aangepaste bit.
Input instructies beginnen aan de linkerkant van de stapel en werken naar rechts naarmate er meer worden toegevoegd.
Onderzoek aan - Dit is waar wanneer het aangepaste bit is ingesteld op 1.
Onderzoek uit - Dit is waar wanneer het aangepaste bit is ingesteld op 0.
44 Output Instructies
Deze bits schakelen aan of uit afhankelijk van de som van de booleaanse logische voorwaarden die tot hen leiden.
Uitvoerinstructies bevinden zich aan de rechterkant van de trap.
Er moet altijd ten minste één uitvoerinstructie zijn.
Uitvoer Energiseer - Wanneer de logische voorwaarden die tot het leiden waar zijn, zet het een bit op 1.
Wanneer de logische voorwaarden waar zijn, zet het een bit op 0.
45
Uitvoer Vergrendelen - Wanneer waar, wordt de bit ingeschakeld.
Wanneer onwaar, doet het niets.
Uitvoer Ontgrendelen - Wanneer waar, wordt de bit uitgeschakeld.
Wanneer het onwaar is, doet het niets.
46 Takinstructies
Deze doen niets zelf, maar ze maken verbindingen in het diagram.
Deze zijn belangrijk om de bovenstaande instructies parallel te plaatsen op dezelfde trap, zodat ze dingen kunnen doen zoals OR-voorwaarden specificeren.
Je kunt ze zien als het omzetten van een controle aan of controle uit naar een OR- of OR-niet instructie.
--------------------
47 Timer en Tellerinstructies
Timers en tellers zijn, zoals de naam al suggereert, instructies die tijdmetingen en telloperaties uitvoeren.
Ze hebben aparte vooraf ingestelde en opgebouwde waarden.
Ze zijn een soort uitvoeringsinstructie, omdat ze zich aan de rechterkant van de laddertraal bevinden en hun werking afhangt van de logische toestand van de traal aan hun linkerkant.
48
Tellers en counters werken in Binair Gecode Decimaal, of BCD waarden.
Elke BCD-waarde neemt 4 bits geheugen in.
Echter, in tegenstelling tot hexadecimaal, zijn alleen waarden van 0 tot 9 geldig.
Wat in hexadecimaal waarden van A tot F zouden zijn, zijn geen geldige waarden in BCD.
49
De vooraf ingestelde en gecumuleerde waarden worden opgeslagen in 16-bits woorden. De eerste 12 bits worden gebruikt om tot 3 BCD-cijfers op te slaan.
De resterende bovenliggende 4 bits worden gebruikt om instructiestatusbits op te slaan, zoals of de timer of teller klaar is en verschillende andere kenmerken.
50 Timers
De timer tijdsbasis komt overeen met de timer resolutie.
De tijdsbases zijn 1,0 seconde, 0,1 seconde en 0,01 seconde.
Dus een timer met een tijdsbasis van 1 seconde kan tijd meten van 0 tot 999 seconden met een resolutie van één seconde.
Een timer met een tijdsbasis van 0,1 seconde kan tijd meten van 0 tot 99,9 seconden met een resolutie van 0,1 seconde.
51
Er zijn drie soorten timer,
Timer Op Vertraging (of TON),
Timer Uit Vertraging (of TOF),
Retentieve Timer (of RTO).
52
Ze vertragen de tijd terwijl de actieve voorwaarde waar is en resetten wanneer deze onwaar wordt.
Uitgeschakelde vertragingstimers tellen de tijd na het verdwijnen van de actieve voorwaarde en resetten wanneer deze weer waar wordt.
Retentieve timers zijn vergelijkbaar met onvertragingstimers, maar behouden hun opgebouwde waarde tot ze worden gereset door de Retentieve Timer Reset (of RTR) instructie.
Over het algemeen start je een timer en controleer je vervolgens op een ander punt in je logica op het "afgerond" bit.
53 Tellers
Tellers tellen gebeurtenissen.
Deze komen in de volgende variëteiten voor.
54
Op-teller (of CTU).
Afdalingsteller (of CTD)
Teller reset (of CTR)
Scan teller (of SCT)
55
Op-tellers tellen omhoog vanaf nul, en afdalingstellers tellen omlaag vanaf een vooraf ingestelde waarde.
De scan-teller telt het aantal programma-scans.
Dit is iets waar je normaal gesproken geen gebruik van zou maken, hoewel je het kunt gebruiken om bijvoorbeeld de scantijd te berekenen.
--------------------
56 Gegevensmanipulatie-instructies
Gegevensmanipulatie-instructies worden gebruikt om bytes en woordgegevens te lezen, te schrijven en te vergelijken.
Operaties vinden plaats wanneer de rang waar is.
57
GET leest een 16-bits woord uit een geheugenlocatie.
PUT schrijft een 16-bits woord naar een geheugenlocatie.
LES wordt waar als de waarde die wordt gelezen door de GET-instructie kleiner is dan een opgegeven waarde.
EQU wordt waar als de waarde die wordt gelezen door de GET-instructie gelijk is aan een opgegeven waarde.
58
De LES- en EQU-instructies kunnen op verschillende manieren met elkaar en met GET worden gecombineerd om alle mogelijke vergelijkingscombinaties te geven, zoals groter dan, kleiner dan of gelijk aan, enzovoort.
59
GET BYTE leest een 8-bits byte uit een geheugenlocatie.
LIMIT TEST wordt waar als een byte-waarde tussen de limieten ligt die zijn opgeslagen in de boven- en onderbytes van een woord.
LIMIT TEST wordt gebruikt in combinatie met GET BYTE.
--------------------
60 Aritmetische instructies
Rekeninstructies werken ook op BCD-woordwaarden.
Operaties vinden plaats wanneer de rang waar is.
De hoogste byte wordt gebruikt om dingen aan te geven zoals rekenkundige overloop of onderloop.
Dit omvat:
61
Voeg
Afhankelijkheid
Vermenigvuldigen
Delen
BCD naar Binair converteren
Binair naar BCD converteren
--------------------
62 Blokoverdrachtsinstructies
Blokoverdrachtsinstructies zijn uitvoerinstructies die worden gebruikt om tot 64 16-bits woorden gegevens tussen de datatabel en I/O-modules over te dragen.
Deze worden gebruikt met intelligente I/O die werkt met woorden in plaats van individuele bits.
63
Voorbeelden hiervan zijn dingen als
Analoge invoer/uitvoer die spanningen lezen en schrijven in plaats van alleen aan of uit.
PID-regelaars die gesloten lusregeling van zaken als temperatuur behandelen.
Thermocouples die temperaturen lezen.
Servomotorcontrole die posities van servomotoren commando.
Stapelmotorcontrole.
Positie-encoders.
64
Ik zal geen details geven over blokoverdrachten, maar dit zou genoeg moeten zijn om je een algemeen idee te geven van hoe een PLC dat soort apparatuur kan behandelen in vergelijking met de eenvoudige aan/uit-toestanden van digitale modules.
Natuurlijk kunnen deze in combinatie worden gebruikt met GET, PUT en andere instructies voor gegevensmanipulatie die geheugenlocaties kunnen lezen en schrijven.
--------------------
65 Spronginstructies en subroutine programmering
Dit omvat de volgende instructies.
66
Sprong (of JMP)
Label (of LBL)
Sprong naar subroutine (of JSR)
Terugkeer (of RET)
67
Een sprong instructie zal de uitvoering naar een label positie springen.
Je kunt het zien als een GOTO instructie.
68
Labels zijn numeriek en kunnen variëren van 00 tot 77 in octaal.
Springinstructies zijn uitvoer van ringen, en wanneer de ring waar is, springt de uitvoering naar het labelnummer dat in de instructie is opgegeven.
Labels zijn invoerinstructies en verschijnen aan het begin van de ring waar de uitvoering wordt hervat.
69
Normale sprongen kunnen niet springen naar een onderroutine, en ze kunnen alleen vooruit springen, niet achteruit.
Dit betekent dat lussen niet mogelijk zijn met behulp van sprongen.
Dit zou een bewuste ontwerpbeslissing zijn om te voorkomen dat programma's vastlopen in een lus en om te voorkomen dat de scan voortgaat.
70
Onderroutines verschijnen na het einde van het hoofdprogramma.
Ze zijn gedefinieerd door numerieke octal labels met behulp van de label-instructie.
Subroutines worden aangeroepen met de instructie "Jump to Subroutine" (of JSR).
Aan het einde van de subroutine, retourneert de instructie "Return" (of RET) de uitvoering naar de volgende stap na de JSR die het heeft aangeroepen.
Je kunt subroutines tot 8 niveaus diep aanroepen.
--------------------
71 Data Transfer File Instructions
Ondanks wat je misschien denkt op basis van de naam, zijn er geen schijfbestanden in de PLC2.
Een "bestand" instructie verplaatst blokken van woorden van één locatie in het datageheugen naar een andere.
=
Dit omvat bron- en bestemmingsadressen, en verschillende andere parameters die de operatie beheersen.
Er zit eigenlijk best veel in betrokken, maar ik ga niet in op de details.
Je moet gewoon weten dat het mogelijk is om blokken van gegevensgeheugen te verplaatsen.
--------------------
72 Instructies voor Shift Register
Deze opereren op hele reeksen woorden en omvatten
=
Bestand Omhoog Verplaatsen
Bestand Naar Beneden Verplaatsen
FIFO Laden
FIFO Ontladen
73
Deze kunnen opereren op 1 tot 999 woorden.
Een typische toepassing van dit soort instructies zou het volgen van een onderdeel zijn terwijl het door de verschillende stations van een machine beweegt.
--------------------
74 Bit Shifts
Deze werken op individuele bits en omvatten de volgende.
75
Bit Shift Links
Bit Shift Rechts
Onderzoek Off Shift Bit
Onderzoek On Shift Bit
Stel Shift Bit in
Reset Shift Bit
76
Deze doen ongeveer wat je zou verwachten in termen van het verschuiven van bits naar links of rechts.
Met name, het register kan echter worden gedefinieerd als elk aantal bits tussen 1 en 999, dus het is niet beperkt tot de grootte van een woord.
--------------------
77 Sequencer Instructies
Sequencer instructies zijn een software-emulatie van elektromechanische trommelsleutels.
Drumcontrollers maakten het mogelijk om een lange reeks operaties uit te voeren.
Ze gebruikten een draaiende trommel die een regelmatige reeks parallelle gaten in de buitenoppervlak had.
Boven een rij van deze gaten was een rij van limietschakelaars.
Door door haken in enkele van deze gaten die contact maakten met de limitschakelaars, de trommelregelaar kon patronen van relais of kleppen inschakelen.
78
Sommige van de limitschakelaars konden verbonden zijn met sensoren op de bewegende elementen van de machine.
Wanneer de onderdelen van de machine in de juiste positie waren voor die stap in de sequentie, zou het patroon van haken een elektrische weg voltooien door de limitschakelaars en een solenoïde inschakelen die de trommel naar de volgende stap zou drijven.
79
Dit wordt vaak vergeleken met een muzieklade of met een oude stijl wasmachine controle.
Echter in het geval van de trommelregelaar, zouden de haken de invoer match voorwaarden alsmede de gewenste uitvoer programmeren.
De PLC/2 trommelregelaar zou deze sequencer nabootsen.
Deze functie werd zeer wijdverspreid in apparatuur gebruikt in de automobiel industrie en andere assemblage georiënteerde productie processen en vormde vaak het hart van het PLC/2 programma.
80
Ik zal geen details geven van de sequencer instructies, maar er zijn aparte invoer en uitvoer sequentie instructies.
De invoersequentie-instructie zou proberen de toestanden van de sensoren te matchen, en de uitvoersequentie-instructie zou verschillende uitvoer in aan- of uitstand brengen, dingen als solenoïdekleppen besturen.
De sequentie zelf zou worden gedefinieerd door een reeks woorden in het geheugen, waarbij elk bit overeenkomt met een individuele invoer of uitvoer.
--------------------
81 Bestandslogica-instructies
Bestandslogica-instructies kwamen neer op array-operaties op woorden, hoewel de term "bestand" wordt gebruikt voor wat in computerterminologie een "array" zou zijn.
Deze instructies omvatten
EN
OF
UITZETTENDE OF
Aanvulling
--------------------
82 Speciale Programmeertechnieken
Dit zijn diverse instructies.
Deze bestaan uit het volgende.
Eenmalig Vooraan
Eenmalig Achteraan
83
Een eenmalig is een uitvoerinstructie die het aangepakte bit voor één scan inschakelt wanneer er een verandering optreedt in de ruggengraatlogica-voorwaarde.
Eenmaligs kunnen worden geactiveerd bij een verandering van vals naar waar of van waar naar vals, afhankelijk van welke van de twee instructies wordt gebruikt.
--------------------
Waarom gebruikte de PLC2 BCD?
Waarschijnlijk vraag je je af waarom de PLC2 BCD-getallen gebruikte in plaats van normale gehele getallen.
Dit weerspiegelt de werkomgeving waar een vroege PLC in zou moeten werken.
Vroegere operatorpanelen met mechanische numerieke invoerapparaten en eenvoudige elektronische uitvoerweergaven die typisch in BCD werkten.
85
Duimwielschakelaars waren kleine, drumvormige draaiende apparaten met de cijfers 0 tot 9 afgedrukt op de rand.
Verschillende wielen zouden naast elkaar gestapeld zijn.
Ze leken enigszins op de mechanische kilometerteller die je in een oudere auto zou vinden.
De operator kon echter elk cijferwiel afzonderlijk verplaatsen.
Elke cijfer zou worden gelezen door 4 draden terug te verbinden naar 4 invoerpunten op de PLC.
Zo was elk cijfer inherent BCD vanwege de werking van de duimwielhardware.
86
Door de individuele wielen afzonderlijk te draaien, kon de operator zaken als temperaturen, snelheden, tijdvertragingen, enz. aanpassen en zo de procesparameters wijzigen.
Uitvoerende operator-schermen waren typisch 7-segment LED, neon of vacuümfluorescerende schermen.
Deze schermen of vergelijkbare apparaten voorafden PLC's en waren dus veelvoorkomende industriële apparaten die moesten worden gehanteerd.
Elke numerieke cijfer had 4 invoerpunten die zouden worden verbonden met 4 uitgangen op de PLC.
Zeven-segmentenschermen kunnen hexadecimaal gebruiken, maar dat was niet erg nuttig als je een temperatuur in Celsius aan een operator wilde weergeven.
Zo was BCD opnieuw het meest praktische soort getal om mee te werken.
87
Terwijl PLC's en hun gebruikersprogramma's steeds capabeler en geavanceerder werden, begonnen ze te werken met normale gehele getallen en zelfs met drijvende komma getallen.
Desondanks behielden veel, zo niet de meeste, PLC's instructies om te vertalen naar en van BCD.
--------------------
De invloed van de PLC2
De PLC2 was een enorm succesvol product voor Allen Bradley en vestigde hen stevig als een van de leidende leveranciers van PLC's, met een nummer één positie op de Noord-Amerikaanse markt en in de top 5 wereldwijd.
Het had echter een aantal zwaktes, met name de zeer primitieve geheugen- en subroutinearchitectuur en de focus op octale en BCD getallen.
Het was gericht op het vervangen van controle relais en deed dit redelijk goed.
89
De volgende echt succesvolle opvolger van de PLC2 voor Allen Bradley was de PLC5.
Dit combineerde de basis-PLC2 instructieset met een nieuw geheugensysteem, nieuwe datatypen, afzonderlijke naamruimtes en geparametriseerde functies.
90
Het was alsof je van het programmeren in Basic met linienummers en sprongen overging naar Pascal.
Toch kon het nog steeds PLC2 I/O-rekken en -modulen gebruiken, een belangrijke overweging aangezien het grootste deel van de kosten van een PLC in het I/O-systeem zat.
91
De PLC 5 werd op zijn beurt opgevolgd door de Contrologix-serie, die de dingen nog verder moderniseerde, terwijl het een kleinere vormfactor had.
Allen Bradley blijft een van de grootste PLC-leveranciers van vandaag, die onder de naam Rockwell opereren.
--------------------
92 Conclusie
In deze aflevering richtten we ons op één specifieke maar zeer wijdverspreide vroege PLC, de Allen Bradley PLC2.
We behandelden de volgende onderwerpen.
De interne elektronica.
De datatabel.
Het gebruikersprogramma.
De T3 programmeerterminal.
En een zeer beknopte overzicht van de instructieset.
93
Dit was een vrij eenvoudige en op sommige manieren primitieve PLC, maar je zou een ruwe idee moeten hebben van de concepten achter een PLC, inclusief de datatabel en het scanconcept en de instructieset die vergelijkbaar is met een relais.
94
In de volgende aflevering zullen we een kijkje nemen naar een PLC van de grootste leverancier wereldwijd, Siemens.
In dit voorbeeld zullen we een model bekijken uit een iets latere periode dan de PLC2, de S5-serie.
Dit kan worden gezien als een tweede generatie PLC.
Aangezien we de basisconcepten die al behandeld zijn, niet opnieuw hoeven te herhalen, kunnen we ons meer richten op wat nieuw en anders is aan de S5 in vergelijking met de PLC2.
95
Dit was de derde aflevering in een achdelige serie.
--------------------
