| 6 . . |
|
![]() |
Bij het programmeren en in bedrijfstellen van een profibus-DP installatie gaan we uit van de apparatuur en software van het merk Mitsubishi die in het busproject is geadviseerd. Voordat de profibus kan werken, moeten er een aantal handelingen worden verricht. Deze zijn:
Als voorbeeld voor het programmeren en in bedrijfstellen van een profibus nemen we één master-PLC en twee slave-PLCs. We maken hiermee een schakeling waarbij we met de ingangen van de ene slave-PLC de uitgangen van de andere slave-PLC kunnen aansturen en omgekeerd. Om de status van de PLC-uitgangen en het slavenummer van de profibus-slave-modules terug te melden naar de master reserveren we in de master-PLC een aantal registers die gekoppeld zijn met een aantal markers. Deze markers kunnen we dan gebruiken om het één en ander zichtbaar te maken met behulp van een visualisatie programma zoals Citect. Verder dient de master alleen voor de communicatie en de koppeling tussen de verschillende registers.
De toegepaste master PLC is modulair opgebouwd en bestaat in ons geval uit een basisrek met daarop gemonteerd:
master
slaveDe slave-PLCs zijn van het Type FX0N-24-ER met daaraan gekoppeld een profibusmodule FX0N-32NT-DP
De gebruikte software is:
Het configureren van de profibus.
Het configureren van de profibus doen we met het configuratieprogramma Profimap. Dit gaat als volgt:
U ziet nu de opbouw van het netwerk.
Gebruik de help functie bij eventuele problemen.
We zijn nu toe aan het programmeren van de diverse PLCs.
Voordat we hiermee beginnen, maken we eerst een plan voor welke registers we gaan gebruiken en hoe we deze aan elkaar koppelen. Dit is vooral bij grote projecten van groot belang om het overzicht op de werking te behouden. Ook is het van belang dat we een goede registratie bijhouden van de opbouw van de registers. Dus welk signaal door welk bitje in het register wordt vertegenwoordigd. In ons geval is het nog eenvoudig omdat alle ingangen X0 t/m X15 en de uitgangen Y0 t/m Y11 bijeen gebracht zijn in een array. Elke PLC krijgt één of meer in- en uitgangsregisters. We kunnen naast elkaar liggende in- en uitgangen samenvoegen tot één woord door bijvoorbeeld de instructie K4X0, hierbij worden alle ingangen, te beginnen bij X0 in 4 nibbles (een nibble is een woord van 4 bits) samengevoegd tot één woord van 16 bits.
De koppelingen die we gaan maken tussen de in- en uitgangsregisters van de PLCs en de in- en uitgangsbuffers van de profibusmodules is weergeven in onderstaand figuur.
De koppelingen tussen de verschillende registers en markers kunnen we ook weergeven in een 'cross-list' zoals in de volgende tabel is weergegeven.
Tabel 6.01
Het programmeren van de master PLC.
In de master-PLC maken we de inputregisters D0, D1, D2, D40, D41en D42 een outputregister D20 en een outputregister D60. Elk register is 16 bits groot. Deze registers worden met behulp van TO- en FROM-instructies gekoppeld aan de in- en outputbuffers van de profibusmodule. In de profibusmodule van de master beginnen de inputbuffers bij het adres 0 en de outputbuffers bij het adres 960. Als alle slaves ingesteld staan op 16 woorden IN en 16 woorden UIT dan kunnen er maximaal 60 slaves worden aangesloten.
De master-PLC kan geprogrammeerd worden door de volgende instructies op te volgen.
In deze POU is de Header leeg en de body ziet er als volgt uit:
De verklaring van de verschillende codes zie je hieronder.
(*Exchange PLC data with Profibus DP*)
LD
X1B
(*Communication READY signaal*)
AND
X1D
(*Module READY signaal*)
TO
H00
(*Nummer uitbreidingsmodule, de eerste module heeft het nummer 0*)
K960
(*Begin adres van de verzendbuffer voor slave 1in de profibusmodule*)
D20
(*Begin adres van de eerste data outputregister in de PLC*)
K16
(*Aantal datawoorden van 16 bits, voor D20*)
TO
H00
(*Nummer uitbreidingsmodule, het eerste heeft het nummer 0*)
K976
(*Begin adres van de verzendbuffer voor slave 2in de profibusmodule*)
D60
(*Begin adres van het tweede data outputregister in de PLC*)
K1
(*Aantal datawoorden van 16 bits, voor D60*)
OUT
Y00
(*Exchange start request signaal*)
AND
X00
(*Exchange start end signaal*)
FROM
H00
(*Nummer uitbreidingsmodule, het eerste heeft het nummer 0*)
K0
(*Begin adres van de ontvangstbuffer voor slave 1in de profibusmodule*
D0
(*Begin adres van het eerste data inputregister in de PLC*)
K3
(*Aantal datawoorden van 16 bits, voor D0, D1 en D2*)
FROM
H00
(*Nummer uitbreidingsmodule, het eerste heeft het nummer 0*)
K16
(*Begin adres van de ontvangstbuffer voor slave 2in de profibusmodule*)
D40
(*Begin adres van het tweede data inputregister in de PLC*)
K3
(*Aantal datawoorden van 16 bits, voor D40, D41 en D42*)
Header van In_Out
Maak nu de verbindingen in de body zoals is aangegeven.
Body van In_Out
Maak nu een Task aan en geeft deze ook de naam "Master". Voer de gegevens in zoals aangegeven.
Task
Test nu het programma op eventueel gemaakte fouten. Als alles foutloos is kunnen we het project compileren.Kies onder Project, Compile Project.Sluit nu de rode kabel aan tussen de juiste com-poort van de PC en de PLC en zet spanning op de master.Kies nu onder Project, Transfer, MEDOC to PLC. De master is nu geprogrammeerd.
Programmeren van de slaves.
Het programmeren van de slave gebeurt op dezelfde wijze als de Master.
De Header van deze POU hoeft niet ingevuld te worden en in de Body typen we in zoals in fig. profi6.04a is aangegeven. (Het cursief gedrukte is alleen toelichting en hoeft niet ingetypt te worden).
Voor de slave hebben we al een inputregister D0 en een outputregister D20 benoemd bij het configureren van de profibus. Deze registers moeten met behulp van TO- en FROM-instructies gekoppeld worden aan de in- en outputbuffers van de profibus-slave-module.
De POU SLAVE
Verklaring van de gebruikte codes in de POU SLAVE.
In de profibus-slave-module hebben zowel de input- als het outputbuffer het beginadres 0.
(*Stationsnummer=1*)
LD
M8002
(*M8002 geeft een puls als de PLC in de RUN-mode komt*)
TO
K0
(*Nummer uitbreidingsmodule, het eerste heeft het nummer 0*)
K27
(*Geheugenplaats die het stationsnummer bevat*)
K1
(*Stations- of slavenummer*)
K1
(*Aantal datawoorden van 16 bits*)
(*Data van de PLC naar de FX0N-32-DP*)
LD
M8000
(*M8000 is hoog zolang de PLC in de RUN-mode is*)
TO
K0
(*Nummer uitbreidingsmodule, het eerste heeft het nummer 0*)
K0
(*Begin adres van de verzendbuffer in de profibusmodule*)
D20
(*Begin van de data outputregister in de PLC*)
K3
(*Aantal datawoorden van 16 bits, voor D20, D21 en D22*)
(Data van de FX0N-32-DP naar de PLC*)
FROM
K0
(*Nummer uitbreidingsmodule, het eerste heeft het nummer 0*)
K0
(*Begin adres van de ontvangstbuffer in de profibusmodule*)
D0
(*Begin van de data inputregister in de PLC*)
K1
(*Aantal datawoorden van 16 bits*)
FROM
K0
(*Nummer uitbreidingsmodule, het eerste heeft het nummer 0*)
K29
(*Adres van buffer BFM#27 in de profibusmodule die het slavenummer bevat*)
D2
(*Begin van de data inputregister in de PLC*)
K1
(*Aantal datawoorden van 16 bits, voor D2, maximaal 20 woorden*)
Bij de tweede slave is de POU bijna hetzelfde. We moeten hier alleen het stationsnummer wijzigen in 2 en als de data registers op een ander adres beginnen moeten we dit natuurlijk ook wijzigen. In ons geval hoeft dat niet.
De Global Variable List.
Header van de POU In_Out.
Body van de POU In_Out.
Task
Als alles foutloos is kunnen we het project compileren.
Het programmeren van slave 2 gaat op dezelfde manier. Maak hiervoor een nieuw project aan met de naam PLC2. Eenvoudiger is het project PLC1 nogmaals maar dan onder de naam PLC2 te saven. Denk er aan het stationsnummer in de POU SLAVE en de naam van de TASK te veranderen.
Nu alles geconfigureerd en geprogrammeerd is kunnen we de profibus-kabel aanbrengen.
Aanbrengen van de profi-bus kabel.
Zet voor de veiligheid alle voedingsspanningen uit. Breng de paarse profibus-kabel aan en zorg voor een goede verbinding van de connectoren door deze vast te schroeven. Als er in beide connectoren aan het einde van de kabel afsluitweerstanden zijn aangebracht moet het schakelaartje "BUS TERMINATION" op "ON" staan.
Testen en in bedrijf stellen.
Voordat we de profibus in bedrijf stellen controleren we nogmaals alle verbinding en zetten het sleutelschakelaartje op de CPU-module op STOP. Controleer ook of het draaischakelaartje op de profibus-master-module op 0 staat. Hierna schakelen we bij alle PLCs de voedingsspanning in.
Bij de master-PLC brandt nu de led POWER en bij de Slaves de leds POWER en DC.
Draai nu het sleutelschakelaartje rechtsom naar RESET en daarna terug naar RUN. Zet nu alle slaves in de RUN-mode. Als alles goed geconfigureerd en geprogrammeerd is moet de profibus nu werken. Dit is te zien aan de leds op de master-module. De volgende leds moeten nu branden, RUN, SD/RD (knippert), TOKEN, READY en FROM/TO. Als de led RSP ERR ook brandt, betekent dit dat één of meerdere slaves niet communiceren.
OP de slave-modules branden nu drie groene leds, POWER, DC en RUN.
De betekenis van de verschillende leds zullen we nu bekijken.
De leds op de master-module hebben de volgende betekenis:
De leds op de slave-module:
Voor meer informatie betreffende de master- en de slave-modules verwijs ik naar de verschillende handboeken.
Het bussysteem is als alles goed gegaan is nu in bedrijf.
Een visualisatie zie je in de figuur. Hierbij wordt ook de decimale waarden van de registers getoond.
Visualisatie van het project.
Het toepassen van een gateway
Als we twee verschillende bussystemen met elkaar willen laten communiceren maken we gebruik van een gateway. Dit is een elektronische schakeling die bijvoorbeeld het profibus protocol vertaalt naar het asi-bus protocol. De gateway die hier besproken wordt is een Profibus-DP / Asi-bus gateway van het merk Bihl+Wiedemann. Een GSD-file wordt hierbij meegeleverd. Met behulp van de configuratie software Profimap kunnen we het netwerk configureren. Kijk eerst of de GSD-file voor deze gateway al is opgenomen in profimap. Zoniet dan moet eerst de GSD-file in Profimap geïmporteerd worden. Definieer binnen profimap een nieuwe I/O-slave Door 'Insert DP-slave en voor gateway te kiezen. Als de GSD-file is geïmporteerd staat de juiste GSD-file in het lijstje genoemd. Druk op de toets 'Select Module' en stel de 'Standard Mode' in. De Input CPU Devices stellen we in op bijvoorbeeld M 100 to 227. En de 'Output CPU Device op M 228 to 355. De software vraagt nu bij de master settings de minimal slave interval op 50 * 100 ms in te stellen. Verder kunnen de instellingen blijven zoals ze zijn.
Op een asi-bus kunnen 31 deelnemers worden aangesloten en voor elke deelnemer zijn 4 bits (1 nibble) gereserveerd. De eerste 4 bits worden door asi zelf gebruikt. De volgende nibbles zijn opvolgend voor de asi-deelnemers 1 tot en met 31 bestemd. Houd goed bij wat de richting van het signaal is. Bijvoorbeeld:
Bij een drukknopkastje met twee drukknoppen een twee signaallampjes is bit 0 en 1 voor de beide drukknoppen en bit 2 en 3 voor de signaallampjes. Echter voor de PLC zijn de eerste twee bits ingangsignalen en het tweede stel bits uitgangssignalen. Dit betekent dat de eerste twee bits op een inputregister bij de master binnenkomen en het tweede stel bits op een outputregister de master uitgaan.
Maak altijd een 'cross-list' waarin alle signalen en de koppelingen daartussen vermeld zijn.
Een voorbeeld van een 'cross-list' is weergeven in tabel 6.02
Tabel 6.02
Reserveer altijd voldoende markers voor de gateway. Reserveer, ook al heb een beperkt aantal asi-deelnemers, voldoende markers in de master. Bijvoorbeeld voor de uitgaande signalen M100 tot en met 227 (32 deelnemers x 4 bits is 128 bits) en voor de binnenkomende signalen M228 tot en met M355. Er kunnen nu altijd asi-deelnemers toegevoegd worden zonder veel in het programma van de master te wijzigen.