Siemens STEP7 Programmering

15
Nico Bartholomevis KHLim dep IWT PLC Automatisering

Transcript of Siemens STEP7 Programmering

Page 1: Siemens STEP7 Programmering

Nico Bartholomevis KHLim dep IWT

PLC Automatisering

Page 2: Siemens STEP7 Programmering

S7 Programmering

Page 3: Siemens STEP7 Programmering

S7 programmering Pagina - 1/13 -

KHLim dep IWT – BN -

3. S7 Programmering

3.1. Programmastructuur We kunnen in STEP 7 op drie manieren programma's ontwerpen. ð Lineair programma Het gehele programma is opgeslagen in een complete bouwsteen met instructies. Deze structuur komt overeen met een hardwarematig bedraad relaiscircuit, maar nu vervangen door een PLC. Het systeem voert de instructies één voor één na elkaar uit. ð Programma in partities Het programma wordt verdeeld in bouwstenen, waarbij iedere bouwsteen de logica-instructies van een bepaalde groep stelorganen of taken bevat. De instructies die in de organisatiebouwsteen (0B1) geïntegreerd worden, bepalen de volgorde waarin de bouwstenen doorlopen worden. Een opgesplitst programma kan bijvoorbeeld bouwstenen met instructies bevatten, waarin de diverse besturingsmethodes voor het fabricageproces gecontroleerd worden. ð Gestructureerd programma Een gestructureerd programma bevat bouwstenen met parameters (parametreerbare bouwstenen). Deze bouwstenen zijn zo ontworpen, dat ze universeel inzetbaar zijn. Tijdens het oproepen worden de actuele operanden (de adressen van ingangen en uitgangen) gespecificeerd. Een voorbeeld van een parametreerbare bouwsteen: • Een "pomp -bouwsteen" bevat instructies voor een pomp en

een aantal ingangen en uitgangen die voor iedere willekeurige pomp gebruikt worden in het proces.

• Een bouwsteen met logica-instructies, verantwoordelijk

voor de besturing van een specifieke pomp, roept de "pomp -bouwsteen" op (open) en voorziet in de informatie over welke pomp er bestuurd moet worden.

• Nadat de "pomp -bouwsteen" zijn instructies uitgevoerd

heeft, keert het programma terug naar de bouwsteen van waaruit de "pomp -bouwsteen" was opgeroepen (bijvoorbeeld 0B1), die dan doorgaat met het uitvoeren van zijn eigen instructies.

• Een wiskundige vergelijking, gebruikt om een analoog ingangssignaal om te schalen, waarbij ieder

analoog ingangssignaal zijn eigen bereik heeft.

3.1.1. Lineaire programmering Een lineair programma heeft een eenvoudige structuur: een enkele logica-bouwsteen (OB1) bevat alle instructies voor het programma. Lineaire programma's komen overeen met modellen voor vast bedrade relaiscircuits. Zoals de naam al aangeeft, beschrijft een lineair programma een verzameling instructies die één voor één uitgevoerd worden. Deze bewerking wordt continu herhaald. Alle aansluitende instructies zijn opgeslagen in één bouwsteen, normaliter een organisatiebouwsteen. Dit type bouwsteen wordt continu doorlopen, waarbij het gehele lineaire programma uitgevoerd wordt in iedere CPU- cyclus.

Page 4: Siemens STEP7 Programmering

S7 programmering Pagina - 2/13 -

KHLim dep IWT – BN -

Omdat alle instructies in één enkele bouwsteen opgeslagen worden, is deze programmeermethode bijzonder geschikt voor projecten waarbij het programma door één persoon geschreven is. Omdat er slechts één bouwsteen is, is het onderhouden van de software zeer eenvoudig. Echter, omdat alle instructies in één bouwsteen staan, wordt het gehele programma iedere cyclus uitgevoerd, zelfs als bepaalde delen van het programma niet gebruikt worden. Deze methode maakt geen efficiënt gebruik van uw CPU. Bovendien, als er identieke programmadelen voor de stelorganen zijn, moeten deze programmadelen steeds opnieuw ingevoerd worden, in plaats van het opnieuw doorlopen van één programmadeel met verschillende parameters. Een geschikte toepassing voor een lineair programma is de besturing van een lopende band. Omdat de logica in het programma uit een afloop van eenvoudige instructies bestaat en er geen data opgeslagen hoeven te worden, kunnen binnen één bouwsteen alle ingangen afgevraagd en alle uitgangen aangestuurd worden. Als u uw proces ontwerpt, gebruik dan de volgende stappen:

1. Omschrijf de specifieke taken van het proces.

2. Deel de taken op in ingangstaken en uitgangstaken.

3. Definieer de ingangen en uitgangen voor iedere taak.

4. Ontwerp programmastappen voor iedere taak, totdat alle taken gereed zijn.

Maak een 0B1, die geactiveerd wordt door het systeem zodra de CPU in de RUN modus gaat. Programmeer in de bouwsteen de noodzakelijke instructies. Sla het programma op en test het. Let erop dat uw I/0-strategie voor de relevante externe stelorganen correct gedocumenteerd is, zodat het eenvoudiger is om het programma te begrijpen.

3.1.2. Programmeren in partities Een opgedeeld programma is een in bouwstenen opgesplitst programma, waarbij in iedere bouwsteen de logica geprogrammeerd is voor een bepaalde groep van stelorganen of voor bepaalde taken. De instructies die opgenomen zijn in een organisatiebouwsteen (0B1), bepalen de uitvoering van de opgedeelde bouwstenen van het besturingsprogramma. Een voorbeeld van opgedeelde bouwstenen zijn functies (FC) of functiebouwstenen (FB), die de diverse procestaken besturen zoals de bedieningsmodus, de diagnose, of het actuele machineprogramma. Deze bouwstenen fungeren dan als subroutine in het cyclische (hoofd)programma. In een opgedeeld programma is er eveneens geen data- uitwisseling tussen het cyclische programma en de opgeroepen bouwsteen. Iedere functie of taak is opgedeeld in een aparte bouwsteen. Dit maakt het eenvoudiger voor verschillende mensen om tegelijkertijd te programmeren, zonder dat er conflicten optreden als er aan hetzelfde project gewerkt wordt. Ook is het programma eenvoudiger te testen en zijn storingen 'beter te lokaliseren, als het programma in kleine stukken is opgedeeld. Het programma in 0B1 bestaat uit de instructies om de diverse bouwstenen in de juiste volgorde op te roepen. Als de organisatiebouwsteen de andere bouwsteen oproept, doorloopt de opgeroepen bouwsteen zijn programma tot het einde, waarna

Page 5: Siemens STEP7 Programmering

S7 programmering Pagina - 3/13 -

KHLim dep IWT – BN -

het systeem terugkeert naar de bouwsteen (en het netwerk) waar vandaan het gekomen is. Door nu de bouwsteen alleen dan op te roepen, als dit noodzakelijk is, kan de CPU efficiënter benut worden, omdat niet alle bouwstenen noodzakelijkerwijs in ieder cyclus doorlopen hoeven te worden. Voor sommigen die niet gewend zijn aan het opsplitsen van taken, lijkt deze methode misschien geen voordelen te hebben. Maar als de techniek éénmaal begrepen is, zal de programmeur in staat zijn, zijn programma's efficiënter en eenvoudiger te ontwikkelen. Een voorbeeld van een opgesplitst programma zijn de diverse bedieningsmodi van een fabricageproces. Het bewaken van een langzaam proces hoeft niet iedere cyclus uitgevoerd te worden. Het programma zou zelfs efficiënter uitgevoerd worden, als het bewaken van het proces op een tijd- of interruptbasis zou kunnen gebeuren. Het niveaubewakingsdiagram toont een voorbeeld van zo'n proces. Terwijl 0B1 het cyclische proces uitvoert, kan er een functie opgeroepen worden, die slechts op bepaalde momenten het niveau bewaakt. Als u uw programma ontwerpt, kunt u de volgende aanpak hanteren:

1. Ontwerp een functie FC die de bewakings- en controletaken uitvoert.

2. Maak een OB waarin de bouwsteen (functie) opgeroepen wordt volgens een bepaald tijdsinterval. Het bewaken van het niveau wordt volgens dit interval uitgevoerd.

3.1.3. Gestructureerd programmeren Een gestructureerd programma kenmerkt zich door gelijksoortige of herhalende functies die nodig zijn voor het proces en probeert in een algemene oplossing te voorzien die voor meerdere taken gebruikt kan worden. Door specifieke informatie (in de vorm van parameters) toe te voegen aan de bouwsteen met instructies, is het gestructureerde programma in staat om de algemene bouwstenen meerdere malen in te zetten. Voorbeelden van deze bouwstenen zouden kunnen bevatten: • een bouwsteen die de logica bevat, die voor alle motoren van een transportband identiek is. • een bouwsteen die vaak gebruikte berekeningen uitvoert, steeds met verschillende ingavewaarden van

verschillende bronnen. Het programma dat afloopt in 0B1 (of een andere bouwsteen), roept deze algemene bouwstenen op om uitgevoerd te worden. In tegenstelling tot bij een gepartitioneerd programma, kunnen data die algemeen gebruikt worden, gedeeld worden. In plaats van de instructies steeds te herhalen en steeds de adressen te vervangen voor de specifieke stelorganen, kunt u nu de instructies in een bouwsteen schrijven en de parameters (zoals de specifieke adressen van stelorganen of data) door het programma mee laten geven aan de bouwsteen. Dit biedt u de mogelijkheid om een bouwsteen te schrijven, die voor verschillende stelorganen in het proces gebruikt kan worden. Het gebruik van een gestructureerd programma vereist echter wel van u dat u de data beheert, die door het programma opgeslagen en gebruikt worden.

Page 6: Siemens STEP7 Programmering

S7 programmering Pagina - 4/13 -

KHLim dep IWT – BN -

Voorbeeld van een gestructureerd programma Om ingrediënten voor een product te selecteren, moet u beslissen met welke tankinhoud de opslagtank wordt gevuld. Omdat de stelorganen van de tanks identieke commando's hebben, kan men het selecteren van een product in bouwstenen programmeren. Afhankelijk van het geselecteerde product, ingegeven m.b.v. de duimwielschakelaars, zal de organisatiebouwsteen één van de bouwstenen oproepen, actuele parameters meegeven, en het vullen van de opslagtank besturen. Als u uw proces ontwerpt, gebruik dan de volgende stappen: 1. Bepaal welke onderdelen en activiteiten toegepast kunnen worden op alle tanks en de bijbehorende

stelorganen. 2. Projecteer een functie of functiebouwsteen om de gewenste besturing in te bouwen. 3. Projecteer de declaratietabel voor de bouwsteen zodat de parameters kunnen worden toegekend om te

bepalen welke tank en welke stelorganen geadresseerd moeten worden. 4. Ontwerp een programma om de functie of de functiebouwsteen op te roepen, uitgaande van de stand van de

duimwielschakelaars. Oplossing Bij het programmeren van uw logica kunt u het beste onderstaande volgorde aanhouden: 1. Maak een functiebouwsteen of functie om de inlaat van de tank te besturen (als u een FB gebruikt, moet u

ook een bijbehorende databouwsteen maken; dit is niet nodig bij gebruik van een FC). 2. Maak de variabelen- declaratietabel voor de betreffende bouwsteen. Noteer de parameternamen en de

adressen. 3. Maak een OB om de functie of functiebouwsteen op te roepen, uitgaande van de stand van de

duimwielschakelaars. De oproepfunctie wordt in een gestructureerd programma net zo behandeld als in een gepartitioneerd programma.

3.1.4. Bouwsteentypes Systeembouwstenen Systeembouwstenen zijn voorgedefinieerde functies of bouwstenen die geïntegreerd zijn in het operating system in de CPU. Deze bouwstenen nemen geen extra ruimte in het gebruikersgeheugen in. Deze bouwstenen hebben dezelfde interface, dezelfde benaming en hetzelfde nummer in het gehele systeem. Het is daarom geen enkel probleem om het gebruikersprogramma uit te wisselen tussen verschillende CPU's of verschillende PLC'S. Gebruikersbouwstenen Gebruikersbouwstenen zijn bereiken, die bedoeld zijn voor het opslaan van de programma- instructies en de data voor uw programma. U kunt uw programma zelf structureren, uitgaande van de benodigdheden voor uw proces, met de vele mogelijkheden in gebruikersbouwstenen. Sommige van deze bouwstenen kunnen cyclisch doorlopen worden, andere bouwstenen alleen als dit noodzakelijk is. Gebruikersbouwstenen worden ook programmabouwstenen genoemd.

Page 7: Siemens STEP7 Programmering

S7 programmering Pagina - 5/13 -

KHLim dep IWT – BN -

3.1.5. Gebruikersbouwstenen Organisatiebouwstenen OB's zijn de koppeling tussen de S7-CPU en het gebruikersprogramma. U kunt uw complete programma in 0B1 opslaan en het cyclisch laten doorlopen. U kunt uw programma ook over meerdere bouwstenen verdelen en 0B1 gebruiken om de bouwstenen op te roepen wanneer dit noodzakelijk is. Naast 0B1, kan het operating system ook andere OB's oproepen om op bepaalde gebeurtenissen te reageren, zoals: ð Tijd- interrupts ð cyclustijd- interrupts ð diagnose- interrupts ð hardware- interrupts ð foutafhandelings- interrupts

Functiebouwstenen(FB) Een functiebouwsteen is een functie of een aantal functies in een bouwsteen waaraan er geheugen is gekoppeld. Hierin kunnen variabelen opgeslagen worden. Een FB heeft dit extra geheugen nodig in de vorm van een "bijbehorende databouwsteen". Parameters worden naar de FB doorgestuurd, en een deel van de lokale data wordt opgeslagen in de bijbehorende databouwsteen. Andere tijdelijke data worden opgeslagen in de lokale (L) stack. Data die in de bijbehorende databouwsteen opgeslagen worden, zijn gebufferd zodra de functiebouwsteen beëindigd wordt. Data die opgeslagen zijn in de L- stack, zijn niet gebufferd. Functies (FC) Een functie is een bouwsteen met logica-instructies die gelijkwaardig is aan een functiebouwsteen, maar waaraan er geen geheugen is gekoppeld. Een FC heeft geen bijbehorende databouwsteen. Tijdelijke variabelen worden in de lokale (L) stack opgeslagen totdat de functie wordt beëindigd; daarna zijn deze variabelen verloren. Databouwstenen (DB) Een databouwsteen is een permanent toegewezen gebied waarin er data of informatie worden opgeslagen die door een andere functie zijn verzameld. Databouwstenen zijn schrijf / lees- gebieden die in de CPU geladen kunnen worden als gedeelte van uw programma.

Page 8: Siemens STEP7 Programmering

S7 programmering Pagina - 6/13 -

KHLim dep IWT – BN -

3.1.6. Systeembouwstenen Systeem functies (SFC) Een systeemfunctie is een voorgeprogrammeerde en geteste functie die in de S7-CPU geïntegreerd is. Sommige van de taken die door deze bouwstenen ondersteund worden, zijn het voorzien van parameters, datacommunicatie, functies kopiëren enz. SFC's kunnen vanuit het programma opgeroepen worden, zonder dat ze als deel van uw programma geladen moeten worden. SFC's hoeven niet aan een instantie- databouwsteen (DB) gekoppeld te worden. Systeemfunctie- bouwstenen (SFB) Een systeemfunctiebouwsteen is een geïntegreerd deel in de S7-CPU. U kunt een SFB oproepen vanuit uw programma, zonder dat deze in uw programma geladen hoeft te worden, omdat de SFB's een deel zijn van het operating system. SFB's moeten aan een databouwsteen gekoppeld worden, die wel in uw programma opgenomen en in de CPU geladen moet zijn. Systeemdata- bouwstenen (SDB) Een systeemdatabouwsteen is een programmageheugenbereik dat door diverse STEP7-tools gegenereerd wordt en waarin er data opgeslagen worden, die nodig zijn voor het functioneren van de processor. Informatie zoals de configuratiedata, communicatieverbindingen en parameters, wordt opgeslagen in SDB'S.

3.1.7. Databouwsteentypes en –structuur Databouwstenen (DB's) zijn bouwstenen in het geheugen van de CPU, waarin uw programma data opslaat. Als er een logicabouwsteen (FC, FB, of OB) opgeroepen wordt, gebruikt deze geheugenruimte in het lokale-databereik. Naast dit lokale-databereik kan een bouwsteen een opslagbereik in de vorm van een DB openen. In tegenstelling tot de data in het lokale-databereik, worden de data in de DB niet gewist als de DB gesloten is, of als de bewerking door de logicabouwsteen afgesloten is. Er zijn twee verschillende types databouwstenen, elk met een eigen taak, gebaseerd op hun relatie tot de logicabouwsteen. Gezamenlijke databouwsteen Gezamelijke DB's kunnen door alle logicabouwstenen in het programma gebruikt worden. Iedere FB, FC of OB kan de data in een gezamelijke DB lezen of schrijven. De data blijven in de databouwsteen gebufferd, zelfs als de databouwsteen wordt gesloten. Als u een gezamenlijke DB maakt, moet u de variabelen (naam en data- type) ingeven, die u wilt opslaan in de DB. De volgorde waarin u de variabelen ingeeft, bepaalt de structuur van de data in de DB. Instantie databouwsteen Een instantie-DB is verbonden met een specifieke functiebouwsteen. De gegevens die in deze databouwsteen staan, kunnen door de bijbehorende functiebouwsteen gelezen of geschreven worden. De instantie-databouwsteen voorziet de functiebouwsteen van geheugenruimte voor datatransfer. De data blijven in de data- bouwsteen gebufferd, zelfs als de databouwsteen wordt gesloten (in tegenstelling tot lokale data (L-stack) in een functie of functiebouwsteen, die gewist worden, zodra de logicabouwsteen gesloten is). Er kunnen meerdere instantie-databouwstenen aan een functiebouwsteen gekoppeld worden.

Page 9: Siemens STEP7 Programmering

S7 programmering Pagina - 7/13 -

KHLim dep IWT – BN -

3.1.8. Bouwstenen oproepen en parametreren Als u een programma ontwerpt dat in bouwstenen (of subroutines) is opgesplitst, kunt u een bouwsteen starten door deze vanuit een andere bouwsteen op te roepen. Dit stelt u in staat om deze subroutine- taken op te slaan in functiebouwstenen (FB's) en functies (FC's).

Zoals u in bovenstaand diagram kunt zien, zal de opgeroepen bouwsteen al zijn instructies doorlopen. Zodra de opgeroepen bouwsteen klaar is , zal de bouwsteen waar de oproep in stond, verder gaan met het afhandelen van zijn programma in het netwerk dat volgt na de oproepinstructie. Oproep van een functie in STL:

Call FC100 // oproep om FC100 te starten (voor gepartitioneerde programma's) Oproep van een functiebouwsteen in STL:

Call FB20, DB45 // oproep om FB20 te starten en opent DB45 (voor gestructureerde programma's) Oproep van een functie in LAD/FBD:

Wanneer u een bouwsteen oproept, kunt u de bouwsteen van waarden of adressen voorzien, die de bouwsteen gebruikt tijdens de bewerking. Deze waarden en adressen noemt men parameters.

Page 10: Siemens STEP7 Programmering

S7 programmering Pagina - 8/13 -

KHLim dep IWT – BN -

Het voorzien van parameters betekent dat u de waarden en adressen opneemt in de Call-instructie. Door deze methode te gebruiken, bent u in staat universele en herbruikbare bouwstenen te programmeren waarbij de logica menig programmabouwsteen kan dienen (de methode om een bouwsteen op te roepen, is identiek in gepartitioneerde en gestructureerde programma's). Om de adressen tussen bouwstenen te leiden, moet de opgeroepen bouwsteen de adressen declareren. Deze declaratie wordt gedaan in het variabelen- declaratiebereik van de bouwsteen. Hierin staan de parameters, variabelennamen en -types.

Parameters: Definieert de ingangs- (read-only), uitgangs- (write-only), en ingangs-/uitgangsparameters die aan de bouwsteen doorgegeven worden. Statische data: Definieert de variabelen ("stat") die opgeslagen worden in de instantie-DB. Statische variabelen worden alleen gebruikt in FB's (omdat alleen FB's instantie-DB's hebben). Tijdelijke data: Definieert de variabelen ("temp") die in de L-stack (lokaal) opgeslagen worden. Deze data zijn slechts beschikbaar zolang de bouwsteen bewerkt wordt en worden gewist, zodra de bouwsteen is afgesloten. Parameters die in de variabelentabel gedeclareerd zijn, noemt men de formele parameters. De adressen of waarden die u meegeeft als u de bouwsteen oproept, noemt men de actuele parameters. U geeft geen statische en tijdelijke variabelen mee in de bouwsteenoproep.

Page 11: Siemens STEP7 Programmering

S7 programmering Pagina - 9/13 -

KHLim dep IWT – BN -

3.2. Cyclische programma- afloop Opstarten Als er van STOP naar RUN omgeschakeld wordt, voert de CPU een complete restart uit (met 0B100). Bij een complete restart, wist het operating system de niet remanente merkers, timers en tellers, de interrupt- stack en de bouwsteen- stack, reset alle opgeslagen proces- interrupts en diagnose- interrupts, en start de cyclustijdbewaking. Bewerkingscyclus Zoals in bovenstaand beeld wordt getoond, bestaat de cyclische CPU- bewerking uit drie hoofdzaken: ð De CPU vraagt de status van de ingangssignalen af en werkt de informatie in het ingangsregister (Pil) bij.

ð De CPU voert de instructies van het gebruikersprogramma uit.

ð De CPU schrijft de waarden van het uitgangsregister (PIQ) naar de uitgangsmodules.

Manuele Stop naar Run Automatische spaningsterugkeer

Wis procesbeeld I / Q niet remanente M; T, C

Startbauwsteen OB100

één maal uitvoeren

start van de cyclustijdbewaking

Inlezen van de ingangen

en opslaan in PII (ingangsregister)

Uitvoeren van cyclische programmaafloop in OB1 Oproepen van andere OB’s, FB’s, FC’s enz

Kopiëren van uitgangsregister PIQ

naar de uitgangsmodules De CPU bewerkt de status van de ingangen en uitgangen in iedere cyclus. Er zijn bepaalde geheugenbereiken waarin de binaire data voor de modules worden opgeslagen: PII en PIQ. Het programma heeft toegang tot deze registers tijdens de programmabewerking. Het ingangsregister ("process image input") is de locatie in de CPU waar de signaaltoestand van alle ingangen (I) is opgeslagen. Het uitgangsregister ("process image output") bevat de uitgangswaarden die het resultaat zijn van programmabewerking. Aan het einde van de cyclus worden deze waarden naar de werkelijke uitgangen (Q) gestuurd. Als u de ingangen afvraagt in het gebruikersprogramma (bijvoorbeeld met A 12.0), wordt de laatste status in het PII afgevraagd. Dit garandeert altijd dezelfde signaaltoestand, als een ingang tijdens dezelfde cyclus meerdere keren wordt afgevraagd.

Page 12: Siemens STEP7 Programmering

S7 programmering Pagina - 10/13 -

KHLim dep IWT – BN -

3.3. S7 300 modules en slot- adressering

De slot-nummers in het rack van de S7-300 helpen om het adressenschema te bepalen binnen de S7-300-omgeving. Het eerste adres in de module wordt bepaald door de locatie in het rack.

Page 13: Siemens STEP7 Programmering

S7 programmering Pagina - 11/13 -

KHLim dep IWT – BN -

Slot 1: Voeding. Dit is altijd het eerste slot. Er zijn geen module- adressen toegekend aan de voeding. Slot 2: CPU; moet altijd naast de voeding geplaatst worden. Er zijn geen module- adressen toegekend aan de CPU. Slot 3: lnterfacemodule (IM). Voor de verbinding naar uitbreidingsrekken. Er zijn geen module- adressen toegekend aan de IM. Zelfs als de IM niet geplaatst is, moet slot 3 gereserveerd blijven voor de IM. Slots 4 - 11: Signaalmodules. Slot 4 is het eerste slot voor in- / uitgangsmodules. Het adressenschema, weergegeven in het onderstaande figuur, begint met de eerste binaire ingang / uitgang in de module en wordt, afhankelijk van het type module, verhoogd.

3.3.1. Digitale adressering De digitale adressen voor zowel de ingangen als de uitgangen (I en Q) beginnen met adres 0 bij het eerste signaalmoduleslot. De relatie tussen het fysieke slot en de module- adressen wordt weergegeven in de volgende figuur. Iedere digitale module krijgt automatisch 4 bytes van het adresregister toegewezen, onafhankelijk van het werkelijke aantal in- / uitgangen van de module. De fysieke in- / uitgangen van het systeem S7-300 corresponderen met de periferiegeheugenbereiken (PI en PQ) van de CPU.

Page 14: Siemens STEP7 Programmering

S7 programmering Pagina - 12/13 -

KHLim dep IWT – BN -

U kunt de I / O ook via de ingangs- en uitgangsregisters (PII en PIQ) aanspreken. U kunt de registers (I en Q) aanspreken in bits, bytes, woorden of dubbelwoorden, zoals in de volgende voorbeelden ð Q4.0 is de data in de eerste bit (bit 0) van byte 4 in het uitgangsregis ter (gebruik makend van de default

1/0-adressering zoals in volgend diagram is weergegeven; dit komt overeen met de eerste bit van module 2).

ð IB100 komt overeen met de data opgeslagen in byte 100 van het ingangsregister.

ð IW100 komt overeen met de data opgeslagen in bytes 100 en 101 van het ingangsregister.

ð QD24 is de data die zijn opgeslagen in bytes 24, 25, 26, 27 van het uitgangsregister.

De S7-400 heeft ook default- adressering voor alle signaalmodules. leder default adres voor een digitale module heeft een adresbereik van 4-byte (32 bit) zoals de S7-300. Het eerste adres in de module bepaalt men volgens dit configuratieschema: Digitaal startadres = (fysiek slotnummer - 1) x 4 Voorbeeld: startadres van een digitale module in slot 4 is 12.0

3.3.2. Analoge adressering De analoge adressen voor zowel ingangen als uitgangen beginnen met adres 256 bij het eerste signaalmoduleslot. Een voorbeeld van een rack in volgende figuur geeft de fysieke slots en het module-adressenschema weer. Iedere analoge module krijgt automatisch 16 bytes van het adressenregister toegewezen. Iedere analoge waarde bevat twee bytes met data, zodat analoge adressen die in ons programma gebruikt worden, altijd een even nummer moeten hebben, om te voorkomen dat er data overschreven worden. De ingangs- en uitgangskanalen van een analoge module krijgen hetzelfde adres, gebaseerd op de fysieke locatie. De S7-300 en S7-400 hebben voor de analoge I/0, in tegenstelling tot voor de digitale adressen, geen vaste procesregisters, die in elke cyclus geactualiseerd worden. In plaats daarvan worden de analoge adressen elke keer dat ze in het gebruikersprogramma aangesproken worden, geactualiseerd. De adres- identificatie voor een analoge ingang is PIW, voor een analoge uitgang PQW. Omdat de adressering voor analoge signalen bij 256 begint, is het eerste analoge signaal op de eerste module in het eerste rack PIW 256. Het laatste analoge adres is 766. Voorbeeld: om data van het tweede signaal op de eerste module in rack 2 te bewerken, gebruikt men het analoge-ingangsadres PIW 514. De S7-400 heeft ook default-adressering voor alle signaalmodules. leder default- startadres voor een analoge module wordt met dit configuratieschema bepaald: analoog startadres = (fysiek slotnummer - 1) x 64 + 512 Voorbeeld: startadres van een analoge module in slot 4 is 704

Page 15: Siemens STEP7 Programmering

S7 programmering Pagina - 13/13 -

KHLim dep IWT – BN -

.

3.3.3. STEP7-adressering

adresbereik toegang tot afkorting max. adresbereik in- uitgangsregister I/Q ingangs- uitgangsbit I / Q 0.0 tot 65535.7 ingangs- uitgangsbyte IB / QB 0 tot 65535 ingangs- uitgangswoord IW / QW 0 tot 65534 ingangs uitgangs- dubbelwoord ID /QD 0 tot 65532 gebufferde merkers merkerbit M 0.0 tot 255.7 merkerbyte MB 0 tot 255 merkerwoord MW 0 tot 254 merkerdubbelwoord MD 0 tot 252 I/Q externe input / output I/Q-byte, periferie PIB / PQB 0 tot 65535 I/Q-woord, periferie PIW / PQW 0 tot 65534 I/Q-dubbelwoord, periferie PID / PQD 0 tot 65532 tijdfuncties timer (T) T 0 tot 255 tellers teller (C) c 0 tot 255 databouwsteen databouwsteen (DB) DB 1 tot 65532 databouwsteen openen met OPN DB bit, byte, woord, dubbelwoord DBX, DBB 0 tot 65532 DBW, DBD openen met OPN DI bit, byte, woord, dubbelwoord DIX, DIB 0 tot 65532 DIW, DID