14.09.2015 Views

programspråken referensmanualen programverktyget

Förord - Beijer Electronics

Förord - Beijer Electronics

SHOW MORE
SHOW LESS
  • No tags were found...

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Förord<br />

Förord<br />

Denna handbok skall ses som en introduktion till GX IEC Developer som behandlar<br />

en del av programmets funktionalitet.<br />

GX IEC Developer (fortsättningsvis benämnt GXIEC) följer den internationella<br />

standarden IEC 61131.3. I denna standard beskrivs de förekommande <strong>programspråken</strong>,<br />

hur ett projekt byggs upp mm.<br />

För ytterligare information om IEC-standarden hänvisas till den engelska <strong>referensmanualen</strong><br />

(reference.pdf) för GXIEC som installeras tillsammans med <strong>programverktyget</strong>.<br />

Förutom denna manual finns också följande manualer tillgängliga<br />

– MELSEC A, Programmeringsmanual<br />

– MELSEC FX1S, FX1N, FX2N, Programmeringsmanual<br />

– MELSEC FX1S, FX1N, FX2N, Systemmanual<br />

– MELSEC QnA, Programmeringsmanual (Engelsk)<br />

– MELSEC Q/QnA, Programmeringsmanual (Svensk)<br />

Allmän kunskap om Windows-hantering samt tidigare erfarenhet av<br />

Mitsubishi Electrics PLC-system förutsätts.<br />

© Beijer Electronics AB MA00411B 2003-10<br />

Alla exempel i denna manual är enbart ämnade för att öka förståelsen av utrustningens funktionalitet och<br />

handhavande. Beijer Electronics AB tar inget ansvar om dessa exempel används i verkliga applikationer. På<br />

grund av det stora antalet användningsområden för denna utrustning, måste användaren själv inhämta tillräckligt<br />

med kunskap för att rätt använda denna i sin speciella applikation.<br />

Beijer Electronics AB fråntager sig allt ansvar för skador som kan uppstå vid installation eller användning av<br />

denna utrustning.<br />

Beijer Electronics AB förbjuder all modifiering, ändring eller ombyggnad av utrustningen<br />

Beijer Electronics AB, MA00411B


Förord<br />

Beijer Electronics AB, MA00411B


Förord<br />

Har du synpunkter på manualen ser vi gärna att du noterar detta nedan och faxar/<br />

skickar denna sida, eller en kopia av den till oss. Du kan också skicka e-post till nedanstående<br />

adress.<br />

Synpunkter på manual MA00411B 2003-10<br />

Namn .............................................................................<br />

Företag .............................................................................<br />

Adress .............................................................................<br />

Postadress.............................................................................<br />

Land .............................................................................<br />

Telefon ................................Telefax ..................................<br />

E-mail .............................................................................<br />

Marknadsavdelningen<br />

Beijer Electronics AB<br />

Box 426, 201 24 MALMÖ.<br />

Fax: 040-93 23 01<br />

E-mail: manual@beijer.se<br />

Beijer Electronics AB, MA00411B


Förord<br />

Beijer Electronics AB, MA00411B


Innehåll<br />

Innehåll<br />

1 Installation ................................................................................................... 1-1<br />

1.1 Versionsinformation ........................................................................ 1-1<br />

1.1.1 GX IEC Developer 6.0.................................................................... 1-1<br />

1.1.2 GX IEC Developer 5.0.................................................................... 1-2<br />

1.1.3 GX IEC Developer 4.0.................................................................... 1-2<br />

1.1.4 MELSEC MEDOC plus 2.50.......................................................... 1-5<br />

1.2 Systemkrav ...................................................................................... 1-6<br />

1.2.1 Installation av GX IEC Developer ................................................... 1-7<br />

1.3 Kompatibilitet ................................................................................. 1-8<br />

1.3.1 Projektkompatibilitet....................................................................... 1-8<br />

1.3.2 Kodkompatibilitet ........................................................................... 1-8<br />

1.3.3 Konvertera projekt till senaste GXIEC-version ................................ 1-9<br />

1.3.4 Skillnader i drivrutiner för Ethernet............................................... 1-13<br />

1.4 Vilken hårdvara ska man välja? ...................................................... 1-14<br />

2 Användargränssnitt ...................................................................................... 2-1<br />

2.1 Projektnavigatorn ............................................................................ 2-2<br />

2.2 Editorer ........................................................................................... 2-4<br />

2.2.1 Grafiska editorer.............................................................................. 2-4<br />

2.2.2 Texteditorer ..................................................................................... 2-6<br />

2.3 Contextmenyn................................................................................. 2-8<br />

2.3.1 Programsymboler............................................................................. 2-9<br />

3 Nytt projekt steg för steg.............................................................................. 3-1<br />

3.1 Skapa ett nytt projekt ...................................................................... 3-2<br />

3.2 Parametrar ....................................................................................... 3-5<br />

3.3 Global Variabellista (GVL) .............................................................. 3-6<br />

3.4 Skapa programdel (POU) .............................................................. 3-11<br />

3.4.1 POU-header.................................................................................. 3-12<br />

3.4.2 POU-body .................................................................................... 3-13<br />

3.5 Skapa en Task................................................................................ 3-15<br />

Beijer Electronics AB, MA00411B


Innehåll<br />

4 Editorer......................................................................................................... 4-1<br />

4.1 Reläschema (LD) ............................................................................. 4-3<br />

4.1.1 Programexempel - LD...................................................................... 4-5<br />

4.2 Reläschema (LD) - Guided Editor ................................................... 4-6<br />

4.3 Funktionsblocksdiagram (FBD)....................................................... 4-9<br />

4.3.1 Programexempel - FBD ................................................................. 4-11<br />

4.4 Sekvensdiagram (SFC) ................................................................... 4-12<br />

4.4.1 Programexempel - SFC .................................................................. 4-17<br />

4.4.2 Sekvenskontroll i MELSEC Q och QnA........................................ 4-18<br />

4.4.3 Sekvenskontroll i MELSEC FX......................................................4-21<br />

4.4.4 Sekvenskontroll i MELSEC A........................................................ 4-21<br />

4.4.5 Sekvenskontroll i MELSEC Q ....................................................... 4-22<br />

4.5 Strukturerad text (ST).................................................................... 4-23<br />

4.5.1 Programexempel - ST .................................................................... 4-32<br />

4.6 Instruktionslista (IL)...................................................................... 4-33<br />

4.6.1 Programexempel - IL ..................................................................... 4-35<br />

4.7 MELSEC-instruktionslista (MELSEC_IL) ....................................4-36<br />

4.7.1 Programexempel - MELSEC IL ..................................................... 4-37<br />

5 Funktioner och funktionsblock .................................................................... 5-1<br />

5.1 IEC-instruktioner ............................................................................ 5-1<br />

5.2 MELSEC-instruktioner ................................................................... 5-3<br />

5.3 Räknare ........................................................................................... 5-4<br />

5.3.1 Funktion och användningsområde................................................... 5-4<br />

5.4 Tidskretsar ....................................................................................... 5-8<br />

5.4.1 Funktion och användningsområde................................................... 5-8<br />

5.4.2 Systemvariabler ................................................................................ 5-8<br />

5.4.3 Tillslagsfördröjning........................................................................5-10<br />

5.4.4 Frånslagsfördröjning ...................................................................... 5-14<br />

5.4.5 Pulstimer ....................................................................................... 5-15<br />

5.5 Skapa egna funktionsblock............................................................. 5-16<br />

5.6 Skapa egna funktioner ................................................................... 5-19<br />

Beijer Electronics AB, MA00411B


Innehåll<br />

5.7 Använd funktioner och funktionsblock ......................................... 5-23<br />

5.8 Användarbibliotek ......................................................................... 5-25<br />

5.8.1 Skapa användarbibliotek................................................................ 5-25<br />

5.8.2 Öppna / Stänga bibliotek............................................................... 5-26<br />

5.8.3 Läsrättigheter i funktionsblock ...................................................... 5-28<br />

5.8.4 Flytta FUN/FB/PRG till ett användarbibliotek.............................. 5-30<br />

5.8.5 Hämta in färdigt användarbibliotek............................................... 5-31<br />

5.8.6 Ändring av användarbibliotek........................................................ 5-32<br />

5.9 OUT_SV Övervakningsinstruktion............................................... 5-33<br />

5.10 Bitadressering - MELSEC Q.......................................................... 5-35<br />

5.11 Dekadadressering........................................................................... 5-36<br />

5.12 Omvandla ingångsvariabler............................................................ 5-37<br />

6 Programfunktioner....................................................................................... 6-1<br />

6.1 Kontroll och kompilering ................................................................ 6-1<br />

6.1.1 Kontroll av projektet ....................................................................... 6-1<br />

6.1.2 Kompilering av projektet ................................................................. 6-2<br />

6.1.3 Visa använda systemvariabler........................................................... 6-3<br />

6.1.4 Visa programstorlek......................................................................... 6-3<br />

6.2 Överföring av program och parametrar............................................ 6-4<br />

6.3 Verifiering av PLC-program............................................................. 6-6<br />

6.4 Monitorering av PLC-programmet .................................................. 6-8<br />

6.4.1 In Cycle Monitor........................................................................... 6-10<br />

6.5 Onlineändringar av PLC-program................................................. 6-13<br />

6.5.1 Online Change Mode.................................................................... 6-15<br />

6.5.2 Online Program Change................................................................ 6-16<br />

6.5.3 Beräknad tid för online-ändring .................................................... 6-17<br />

6.6 Simulering av PLC-program.......................................................... 6-18<br />

6.6.1 Device Memory Monitor............................................................... 6-18<br />

6.6.2 I/O System Setting ........................................................................ 6-19<br />

6.7 Entry Data Monitor (EDM).......................................................... 6-23<br />

6.8 Device Edit.................................................................................... 6-25<br />

Beijer Electronics AB, MA00411B


Innehåll<br />

6.9 Korsreferenslista............................................................................. 6-26<br />

6.9.1 Browse ........................................................................................... 6-27<br />

6.9.2 Tracking......................................................................................... 6-28<br />

6.10 Visa variabelinformation med Tooltip............................................ 6-30<br />

6.11 Dra och släpp.................................................................................6-31<br />

6.12 Options-meny ............................................................................... 6-34<br />

6.13 Onlinehjälp ................................................................................... 6-35<br />

6.14 Dokumentation av projekt............................................................. 6-36<br />

6.15 Export och import av programdelar ............................................... 6-38<br />

6.15.1 Export............................................................................................ 6-38<br />

6.15.2 Import ........................................................................................... 6-38<br />

6.15.3 Import och export av benämningar................................................ 6-39<br />

6.16 Filer och backupmöjligheter........................................................... 6-40<br />

6.16.1 Filer under editering ...................................................................... 6-40<br />

6.16.2 Backup av projekt .......................................................................... 6-41<br />

6.17 Data Unit Type (DUT) ................................................................. 6-42<br />

6.17.1 Direktadressering av strukturerade datatyper.................................. 6-43<br />

6.17.2 Array of Data Unit Types...............................................................6-44<br />

6.18 Scantime........................................................................................ 6-46<br />

7 Diagnostik och felsökning ............................................................................ 7-1<br />

7.1 Kompileringsfel................................................................................ 7-1<br />

7.2 Allmänna fel .................................................................................... 7-3<br />

7.3 Felsökning i applikationsprogram .................................................... 7-4<br />

7.3.1 Visa programkod ............................................................................. 7-4<br />

7.3.2 Hitta överlappande hårdvaruadresser................................................ 7-5<br />

7.4 Diagnostik ....................................................................................... 7-6<br />

7.4.1 PLC-diagnostik................................................................................ 7-6<br />

7.4.2 Nätverksdiagnostik ..........................................................................7-8<br />

7.4.3 System monitor för MELSEC Q...................................................... 7-9<br />

Beijer Electronics AB, MA00411B


Innehåll<br />

8 Appendix...................................................................................................... 8-1<br />

8.1 QnA(S) till A(nS)-seriens kommunikationsmoduler ........................ 8-1<br />

8.2 Konfigurering av PROFIBUS DP.................................................... 8-2<br />

8.3 FX2N-serien.................................................................................... 8-3<br />

Sakregister ............................................................................................................ I<br />

Beijer Electronics AB, MA00411B


Innehåll<br />

Beijer Electronics AB, MA00411B


Installation<br />

1 Installation<br />

1.1 Versionsinformation<br />

1.1.1 GX IEC Developer 6.0<br />

Generellt<br />

– Stöd för centralenheterna:<br />

Q00(J) och Q01 ver B<br />

QnPH<br />

Qn(H) ver B<br />

– Stöd för Windows XP/2000/NT4.0/Me/98<br />

– Förbättrad monitoreringsfunktion i MELSEC Q och QnA, (In Cycle-monitoring)<br />

– Utökad tracking-funktion<br />

– Stöd för variabletypen Array of DUT, dvs. en vektor av strukturer.<br />

Förbättrade verktyg för snabb PLC-programmering<br />

– Ny valbar fast laddereditor (Guided Editing Mode).<br />

– Uppdaterad ST-editor, bl a med färgkodning av programkod och automatiskt<br />

variabelförslag.<br />

– Förenklad variabeldefiniering i LD- och FBD-editorerna.<br />

– Stöd för dra och släpp-funktion, av text och objekt.<br />

– Ny sök/ersätt-funktion i LD- och FBD-editorerna.<br />

– Export och import av variabellistor till och från Microsoft Excel.<br />

– Funktion att öppna en POU-body i läsläge för skyddade användarbibliotek.<br />

Uppdaterat användargränssnitt<br />

– Uppdaterade parameter- och överföringsmenyer. Samma utseende som i<br />

GX Developer.<br />

– Ny Options-meny<br />

– Förbättrad sökfunktion<br />

– Förbättrad korsreferenssökfunktion<br />

– Tooltip-funktion stödjer programmering och monitorering.<br />

Beijer Electronics AB, MA00411B 1-1


Installation<br />

1.1.2 GX IEC Developer 5.0<br />

Generellt<br />

– Stöd för PLC-typerna:<br />

Q00<br />

Q00J<br />

Q01<br />

Q CPU (version B)<br />

FX2N (version 3.00)<br />

– Stöd för Windows 95/98/Me/NT4.0 och 2000 Pro<br />

– Förenklad nätverkskonfiguration och nätverksdiagnostik för Ethernet och CC-<br />

Link.<br />

– Effektiviserade programmeringsfunktioner<br />

1.1.3 GX IEC Developer 4.0<br />

Generellt<br />

– Namnbyte från MELSEC MEDOC plus till GX IEC Developer<br />

– 32-bitars mjukvara som stödjer Windows 95/98/Me/NT/2000<br />

– Intern versionskontroll i programmet ger ökad säkerhet för användaren<br />

– Stöd för PLC-typerna:<br />

FX1S<br />

FX1N<br />

A2US-S30<br />

A2US-S60<br />

Q2A(H)<br />

Q2A(H)-S1<br />

Q2AS(H)<br />

Q2AS(H)-S1<br />

– Stöd för MELSEC Q med PLC-typerna:<br />

Q02(H)<br />

Q06H<br />

Q12H<br />

Q25H<br />

– Ny projektnavigator och grafiskt användargränssnitt<br />

Projektnavigator med 3 olika vyer (Project, Call tree, Used by)<br />

Utseende och handhavande enligt senaste Windows MFC teknologi<br />

1-2 Beijer Electronics AB, MA00411B


Installation<br />

Kompatibilitet<br />

– Direktkonvertering av MELSEC MEDOC plus projekt fr o m version 2.10<br />

– Import av MELSEC MEDOC-projekt från textfil i ASCII-format till MELSEC<br />

IL<br />

– Import av GX Developer (GPPWin)-projekt från textfil i ASCII-format till MEL-<br />

SEC IL<br />

Observera!<br />

Textfilen måste göras med export från GX Developer vilket kräver ett speciellt mjukvarutillägg,<br />

SW0D5C-CNVW-E<br />

Felsökning och diagnostik<br />

– Förbättrad PLC-diagnostik, visar grafiskt PLC-systemets status och eventuella felkoder<br />

i klartext<br />

– Förbättrad nätverksdiagnostik för Ethernet och MELSECNET/10<br />

– Offline-simulator (Ladder Logic Test), ger funktioner för monitorering och aktivering<br />

av variabler samt tidschema, utan behov av PLC-system<br />

– Utökad verifieringsfunktion som visar skillnaden mellan projekt i PC och PLCsystem.<br />

Skillnaden visas som MELSEC IL-kod. Möjlighet finns att gå till aktuellt<br />

nätverk i programmet.<br />

Monitor<br />

– Entry Data Monitor (EDM): Registrering av tvångsställda I/O, samt<br />

gemensam återställning av ingångar (gäller ej FX-serien)<br />

– Monitorera in- och utgångar i koden för funktionsblock med macrokod<br />

– Sökning av variabler i monitoreringsmode, genom att markera och högerklicka på<br />

önskad variabel i programkoden<br />

Editorerna<br />

– Diverse hanteringsförbättringar i de grafiska editorerna:<br />

- Lägg till nytt nätverk i Online-mode<br />

- Hoppa mellan variabelfält i reläschema med [Tab] och [Shift] + [Tab]<br />

- Ändra signaltyp (set, reset, inverterar) med [Ctrl] + Dubbelklick<br />

- Koppla utgångar direkt till ingångar mellan funktionsblock med<br />

macrokod<br />

– SFC (MELSEC Q)<br />

- Inställning för Resume start mode i PLC-parametrarna<br />

- Manuell styrning av SFC-sekvenserna (Kräver inställning i menyn<br />

Extras/Options)<br />

Beijer Electronics AB, MA00411B 1-3


Installation<br />

Variabelhantering<br />

– Globala variabellistan:<br />

- Adress Batch Replace ger möjlighet att skifta adressområde på en<br />

area av variabler<br />

- Förbättring i deklarationen av direktadresser till strukturerade<br />

datatyper (DUT)<br />

– Funktion för automatisk uppdatering av globala och lokala variabler till programkoden<br />

(kräver inställning i menyn Extras/Options)<br />

Parametrering för moduler<br />

– Förbättrad parametrering för Ethernet och MELSECNET i PLCparametrarna<br />

Speciella funktioner för MELSEC Q<br />

– Funktionen System Monitor läser av modulerna i ett Q-system och presenterar<br />

denna information grafiskt med varje moduls startadress. Felstatus och detaljerad<br />

modulinformation kan också presenteras.<br />

– Uppkoppling via USB-port<br />

– Stöd för CC-Link<br />

– Konfiguration av “intelligenta moduler”<br />

Observera!<br />

Speciella mjukvarutillägg krävs för denna funktion. SW0D5-QCTU-E för High-speed<br />

counter, SW0D5-QADU-E för AD-omvandling, SW0D5-QDAU-E för DA-omvandling och<br />

SW0D5-QSCU-E för Computer Link.<br />

1-4 Beijer Electronics AB, MA00411B


1.1.4 MELSEC MEDOC plus 2.50<br />

– Stöd för ST-programeditor (Strukturerad Text) enligt IEC 61131-3 standard<br />

Installation<br />

– Visar projekt i titelraden på MM+ fönstret<br />

– Globala variabler kan användas utan att en adress definieras (dvs en global systemvariabel)<br />

– Funktion att söka överlappande adresser i globala variabellistan<br />

– MELSEC code visas med absolutadresser - Show MELSEC code of network<br />

– Task intervallinställning möjlig med global variabel eller global<br />

konstant av typen TIME<br />

– CC-Link instruktioner för systemtyperna AnAS/AnU och AnSH<br />

Beijer Electronics AB, MA00411B 1-5


Installation<br />

1.2 Systemkrav<br />

– 64 MB RAM för Windows 98/Me<br />

– 128 MB RAM för Windows NT 4.0 / 2000 / XP<br />

– Pentium Processor II, 350 MHz eller högre (rekommenderas)<br />

– Hårddisk med minst 100MB fritt utrymme<br />

– Grafisk upplösning minst 1024x768 i minst 256 färger<br />

– Mus<br />

Information angående manualerna till GX IEC Developer<br />

– GX IEC Developer Reference och Beginner's manual (engelsk) levereras som<br />

PDF-dokument på CD-skivan.<br />

Filformatet PDF måste läsas med Acrobat Reader. En kopia av Acrobat Reader finns<br />

på CD-skivan.<br />

1-6 Beijer Electronics AB, MA00411B


1.2.1 Installation av GX IEC Developer<br />

Under denna procedur kommer installationsprogrammet att skapa ett bibliotek på<br />

hårddisken till vilket GXIEC filerna kommer att kopieras.<br />

Installation<br />

Installation av GXIEC på din hårddisk från CD-ROM:<br />

Se till att ha tillgång till installationskoden (PAK-koden), vilken bifogas verktyget.<br />

– Sätt i installationsskivan och installationen startar normalt automatiskt.<br />

Om inte, öppna Windows filhanterare:<br />

– Välj och öppna CD -ROM-driven i vilken du har satt in installationsskivan.<br />

– Dubbelklicka på filen SETUP.exe, då startar GXIEC installationsprogram.<br />

– Följ instruktionerna på skärmen.<br />

– Installationsprogrammet skapar en ny programgrupp som innehåller genvägar för<br />

att starta GXIEC tilläggsprogram med tillhörande dokumentation.<br />

Närmare detaljer om hur man installerar program under Windows finns i Windows<br />

dokumentationen.<br />

Starta GX IEC Developer<br />

– Dubbelklicka på programikonen för GXIEC, då startar programmeringsverktyget<br />

och uppstartfönstret visas.<br />

– Bekräfta med OK.<br />

Gå ur GX IEC Developer<br />

Du kan avsluta GXIEC vid vilken punkt som helst i programmet.<br />

Välj Quit i Projektmenyn, men glöm inte att spara.<br />

Beijer Electronics AB, MA00411B 1-7


Installation<br />

1.3 Kompatibilitet<br />

1.3.1 Projektkompatibilitet<br />

GX IEC Developer är bakåtkompatibel. Det innebär att projekt skapade i en tidigare<br />

version av programmeringsverktyget kan öppnas i en senare version. Även ett exporterat<br />

projekt (*.asc) kan öppnas i en senare version. För ytterligare information se<br />

kapitel 2.1.3 i den engelska <strong>referensmanualen</strong> (reference.pdf) som installeras tillsammans<br />

med programmeringsverktyget.<br />

Projekt skapade i en ny version av GX IEC Developer normalt kan exporteras och<br />

öppnas i senare versioner av programmeringsverktyget. Notera att de gamla versionerna<br />

inte stödjer nya funktioner. Dessa kan förloras vid en export. Lämpligen exporteras<br />

programdelar, globalvariabellista, parametrar mm var för sig.<br />

1.3.2 Kodkompatibilitet<br />

Program genererad med GX IEC Developer 6.00 kan skilja sig från äldre versioner.<br />

Under menyn Extras/Options kan man ställa in vilken typ av generering man vill använda<br />

se sidan 1-11.<br />

För detaljerad information om kompatibilitet hänvisas till kapitel 2 i den engelska <strong>referensmanualen</strong><br />

(reference.pdf) som installeras tillsammans med programmeringsverktyget.<br />

1-8 Beijer Electronics AB, MA00411B


1.3.3 Konvertera projekt till senaste GXIEC-version<br />

Installation<br />

Uppdatera projekt från MELSEC MEDOC plus (MM+)<br />

När ett äldre projekt skapat i MM+ 2.10-2.50 öppnas i GXIEC känner mjukvaran<br />

av detta och meddelar att den 16-bitars databasen måste konverteras.<br />

Uppdatera projekt från äldre GX IEC Developer-versioner<br />

När ett projekt öppnas i en GXIEC-version som är senare än i den version där projektet<br />

skapades känner mjukvaran av detta och meddelar att databasen måste konverteras.<br />

Observera!<br />

Projektfilen kommer att bli konverterad så att den inte längre kan öppnas med det äldre<br />

verktyget. Jobba därför alltid med en kopia av originalprojektet!<br />

Man bör i ett övergångsskede ha tillgång till den tidigare versionen av MM+ eller GXIEC<br />

samt originalprojektfilen. Om ett problem uppstår kan man på ett enkelt sätt snabbt<br />

byta tillbaka till ursprungskoden.<br />

Glöm inte ta backup från PLC-systemet på viktiga data (t ex PID-parametrar eller recept)<br />

som kan finnas lagrade i register före nerladdning av nytt projekt. Använd funktionen<br />

Device Memory Monitor eller Entry Data Monitor för att läsa och lagra data.<br />

Beijer Electronics AB, MA00411B 1-9


Installation<br />

Generell konverteringsinformation<br />

För att säkerställa funktionen för styrsystem och anläggning bör följande rutiner följas<br />

när projekt skapat i MM+ (ver 2.10 - 2.50) alternativt äldre GXIEC-version skall<br />

uppgraderas till senaste version av GXIEC.<br />

Läs hela informationen innan konverteringen påbörjas!<br />

1. Gör först en kopia på hela det gamla projektet till en ny projektkatalog.<br />

Observera!<br />

Notera att vid konvertering av ett MM+ projekt för PLC-typerna Q2AS eller Q2AS-S1 växlas<br />

PLC-typen till Q2A respektive Q2A-S1 i GXIEC. Därför måste PLC-typen ändras tillbaka<br />

till ursprunget efter konverteringen vilket medför att alla PLC-parametrar återgår<br />

till grundinställningen.<br />

För att spara tid och slippa mata in alla PLC-parametrar manuellt, bör dessa exporteras<br />

från originalprojektet i MM+ till en asc-fil. Då är det också lätt att importera på nytt i<br />

GXIEC-projektet. Export/Import görs genom att markera PLC_Parameter i navigatorn<br />

och välja Object-Export eller Import.<br />

2. Starta GXIEC och öppna kopian av projektet.<br />

3. GXIEC konverterar programmet till ny databasmodell.<br />

4. När projektet öppnats i GXIEC, kan användarbiblioteken tappa anslutningen<br />

till projektet. Då kan de gamla användarbiblioteken behöva kopplas till det nya<br />

projektet på nytt (*.sul). Detta görs genom att markera Library_pool i navigatorn<br />

och under menyn Edit/ User Library välja Install/Create och leta upp rätt<br />

biblioteksfil (*.sul).<br />

5. Därefter kompileras projektet i sin helhet (Rebuild All).<br />

1-10 Beijer Electronics AB, MA00411B


Installation<br />

6. Från och med GXIEC ver 6.00 kan man välja hurvida projektet skall kompileras<br />

enligt metoden i ver 5.02 alternativt ver 6.00 genom kryssrutan “Generate code<br />

as in GX IEC Developer 5.02" under menyn Extras/Options/Code Generation.<br />

Man kan också välja om skillnader mellan version 5.02 och 6.00 skall indikeras<br />

som varningsmeddelande efter kompilering.<br />

Beijer Electronics AB, MA00411B 1-11


Installation<br />

Bilden visar en kompileringsvarning som beror på en förändring av kompileringssättet i<br />

version 6.0 jämfört med 5.02.<br />

7. Eventuella fel och varningar kontrolleras.<br />

8. När inga fel kvarstår kan man göra en verifiering mot koden i PLC-systemet.<br />

Verifieringen (Project/Transfer/Verify) kommer att visa om den nya programkoden<br />

är lika den som finns nerladdad i PLC-systemet. Om skillnader finns kan<br />

dessa visas som MELSEC IL-kod i ett delat fönster.<br />

9. Kontrollera eventuella skillnader och om de påverkar funktionen.<br />

10.När detta är gjort kan man ladda ner programmet till PLC-systemet och testa<br />

med den nya programkoden.<br />

1-12 Beijer Electronics AB, MA00411B


1.3.4 Skillnader i drivrutiner för Ethernet<br />

Installation<br />

Ethernet (TCP/UDP)<br />

Med MELSEC MEDOC plus (MM+) kan MELSEC A och QnA-system programmeras<br />

via Ethernet-moduler och TCP/IP-protokollet.<br />

Efter konvertering till GX IEC Developer 4.00 (eller senare) och med samma inställningar<br />

på modulen och i programmet fungerar inte kommunikationen. Det beror på<br />

att MM+ och GX IEC Developer använder olika protokoll för Ethernet-kommunikationen.<br />

MM+ använder TCP-protokoll med ASCII- eller Binär-format, GXIEC<br />

använder UDP-protokoll med Binär-format.<br />

För att A(1S)J71(Q)E71-modulen skall fungera mot GXIEC måste modulens switchar<br />

ställas in för UDP-kommunikation, samt måste PLC-systemets parametrar ställas<br />

in för korrekt kommunikationsinitiering.<br />

Inställningsanvisningar finns i manualen för (Q)E71-modulen, eller kontakta Beijer<br />

Electronics support för detaljerad information.<br />

Beijer Electronics AB, MA00411B 1-13


Installation<br />

1.4 Vilken hårdvara ska man välja?<br />

1) Begränsningar angående C24/QC24, E71/QE71, hänvisas till kapitel 8.1.<br />

2) Kontrollera med kabelguiden.<br />

Observera!<br />

För ytterligare information hänvisas till kapitel 2.9 i den engelska <strong>referensmanualen</strong><br />

(reference.pdf) som installeras tillsammans med programmeringsverktyget.<br />

1-14 Beijer Electronics AB, MA00411B


Användargränssnitt<br />

2 Användargränssnitt<br />

Illustrationen nedan beskriver flera olika fönster:<br />

Projektnavigator, PLC-parameterar och programdelens header och body. Förstoring,<br />

förminskning och placering av fönster på skärmen görs efter eget önskemål<br />

9HUNW\J<br />

Body<br />

Header<br />

3/&SDUDPHWHUGLDORJUXWD<br />

3URMHNWQDYLJDWRU<br />

I menyn Window kan man ordna alla öppna fönster “sida vid sida” eller i kaskad.<br />

Observera!<br />

Objektnamnen i programmet, som t ex programdelar, tasknamn, variabelnamn och<br />

egna bibliotek, kan vara upp till 32 tecken långa.<br />

För ytterligare information om användargränssnitt hänvisas till kapitel 3 i den engelska<br />

<strong>referensmanualen</strong> (reference.pdf) som installeras tillsammans med programmeringsverktyget.<br />

Beijer Electronics AB, MA00411B 2-1


Användargränssnitt<br />

2.1 Projektnavigatorn<br />

Projektnavigatorn är hjärtat i ett GXIEC-projekt. Den visar en trädstruktur över hela<br />

projektet och alla dess objekt. När man stänger navigatorfönstret stängs aktuellt projekt.<br />

Ifrån navigatorn styrs verkan på alla objekt och här bestäms t ex vilka programobjekt<br />

som skall ingå i det totala PLC-programmet och hur dom skall köras i PLCsystemet.<br />

Notera att projektnavigatorn inte är synlig förrän ett projekt har öppnats.<br />

Man kan alltid aktivera projektnavigatorn via menyn Window/Navigator.<br />

Projektnavigatorn är uppbyggd som en trädstruktur.<br />

Förstoring och förminskning av de olika delarna i navigatorn<br />

görs genom att klicka på +/- symbolerna i trädet.<br />

“+” förstorar och “-” förminskar. Man kan också dubbelklicka<br />

på objektet för att förstora/förminska strukturen.<br />

Windows standardkommando kan användas för att<br />

klippa ut, kopiera, klistra in och ta bort objekt. Markera<br />

objekt(-en) i projektnavigatorn, kopiera [Ctrl] + [C]<br />

och därefter klistra in [Ctrl] + [V]. Döp sedan om kopian<br />

genom att öppna egenskaperna för objektet med<br />

menyvalet Information under Object, eller snabbkommando<br />

[Alt] + [Enter]. På så sätt kan man enkelt göra<br />

en kopia av en programdel för att snabbt testa något eller<br />

återanvända kod.<br />

Observera!<br />

Fr o m GXIEC 6.00 kan navigatorobjekt hanteras med dra och släpp, se kapitel 6.11<br />

2-2 Beijer Electronics AB, MA00411B


Användargränssnitt<br />

Tre vyer<br />

Navigatorn består av tre flikar. Varje flik presenterar projektet i olika vyer . I varje vy<br />

kommer man åt installerade bibliotek i användarbiblioteket, Library_pool.<br />

Project<br />

Denna vy innehåller projektets alla delar. Programdelar (POU) är sorterade i en<br />

POU_Pool och Tasker i en Task_Pool. Dessutom kan man i denna vyn komma åt<br />

PLC-parametrarna och den globala variabellistan.<br />

Call Tree<br />

I denna vy är programdelarna sorterade under den Task som styr dem. De programdelar<br />

som inte är knutna till någon Task, ligger under Unreferenced POU’s. Genom<br />

att högerklicka på en programdel och välja Display Global Variables, kan man även<br />

visa globala variabler som används. I denna vyn kan man enkelt kan se vilka programdelar<br />

som styrs av vilken Task, och vilka programdelar som inte används.<br />

Used by<br />

I denna vy är programdelarna sorterade under en POU_Pool och under varje programdel<br />

ligger den Task som styr den. Dessutom finns en Global variabellista där<br />

man kan se vilka programdelar som använder respektive Global variabel och vilken<br />

Task som styr en viss programdel. I denna vyn kan man enkelt ta reda på i vilka programdelar<br />

en viss global variabel används, samt i vilket program eller funktionsblock<br />

ett visst funktionsblock anropas. Det sistnämnda kan annars vara mycket svårt att<br />

hitta.<br />

Globala variabler<br />

De globala variablerna definieras i en gemensam tabell. Nya rader på tabellen kan läggas<br />

till med New Declaration kommandot i Edit menyn, alternativt med verktygsknapparna.<br />

Lokala variabler<br />

De lokala variablerna definieras i varje enskild programdel (POU Header).<br />

Beijer Electronics AB, MA00411B 2-3


Användargränssnitt<br />

2.2 Editorer<br />

Ett PLC-program är alltid uppdelat i ett antal logiska programsektioner, s k nätverk<br />

eller network (gäller inte i SFC- och ST-editorn). Ett nätverk kan tilldelas ett namn<br />

(label) som används vid hopp i PLC-programmet. Nya nätverk infogas med kommandot<br />

New Network i Edit-menyn, eller med hjälp av verktygskapparna. För att<br />

öppna ett editeringsfönster, dubbelklicka på Body i Project Navigator-fönstret.<br />

2.2.1 Grafiska editorer<br />

– Ladder Diagram (LD)<br />

– Function Block Diagram (FBD)<br />

– Sequential Function Chart (SFC)<br />

De grafiska editorerna påminner om grafiska ritprogram. Från verktygsmenyn kan<br />

symboler väljas in och placeras på arbetsytan i editeringsfönstret. Följande symboler<br />

kan väljas:<br />

– Ingångskontakt LD (Contact, input)<br />

– Utgångspole LD (Coil, output)<br />

– Programinstruktioner, funktioner och funktionsblock<br />

– Ingångsvariabel (Input variable)<br />

– Utgångsvariabel (Output variable)<br />

– Returninstruktion<br />

– Hopplabel<br />

– Kommentar<br />

2-4 Beijer Electronics AB, MA00411B


Användargränssnitt<br />

När du har placerat de olika delarna på arbetsytan förbinder du dem med (interconnect)<br />

förbindningsverktyget. Välj in denna med verktygsknapp eller via högerklick.<br />

Exempel på ett nätverk i Laddereditorn<br />

Exempel på ett nätverk i Function Block Diagram (FBD)<br />

Beijer Electronics AB, MA00411B 2-5


Användargränssnitt<br />

2.2.2 Texteditorer<br />

– IEC Strukturerad text (ST)<br />

– IEC Instruktionslista (IL)<br />

– MELSEC Instruktionslista (MELSEC IL)<br />

Följande regler bör tillämpas i texteditorerna:<br />

– Varje programrad innehåller en PLC-instruktion med följande syntax: operator,<br />

tabstopp, operander. (IL, MELSEC IL)<br />

– Operator och Operander måste alltid åtskiljas med tabstopp. (IL, MELSEC IL)<br />

– Operander åtskiljs med komma (,). (IL)<br />

– Med markören i första kolumnen, då [F2] aktiveras visas en lista på möjliga operatorer<br />

(instruktioner). (IL)<br />

– Med markören i första kolumnen, då [Shift] + [F2] aktiveras visas en lista på möjliga<br />

operatorer (instruktioner). (ST)<br />

– Med markören direkt efter ett funktionsnamn eller FB-instansnamn använd<br />

[Ctrl] + [F1] för att få hjälp med placeringen av operander. (ST)<br />

– Egna kommentarer kan infogas, de kan vara en eller flera rader långa. Kommentarer<br />

måste börja med (* och sluta med *). (ST, IL, MELSEC IL)<br />

– I aktivt nätverk flyttas markören med piltangenterna på tangentbordet för att placeras<br />

på önskad programrad. (IL, MELSEC IL)<br />

2-6 Beijer Electronics AB, MA00411B


Användargränssnitt<br />

Exempel på IEC Strukturerad Text<br />

Exempel på IEC Instruktionslista<br />

Exempel på MELSEC Instruktionslista<br />

Beijer Electronics AB, MA00411B 2-7


Användargränssnitt<br />

2.3 Contextmenyn<br />

I editeringsläge öppnas contextmenyn genom ett tryck på höger musknapp.<br />

Interconnect Mode/Select Mode (växlingsfunktion)<br />

Växlar mellan Select Mode (placera och flytta grafiska symboler) och Interconnect<br />

Mode (rita förbindelserna mellan de grafiska symbolerna).<br />

Guided Editing<br />

Växlar editeringsläge till fast laddereditor. Gå tillbaka genom att välja Select mode<br />

eller Interconnect mode.<br />

Auto Connect<br />

Gör placering och rörelser av grafiska symboler enklare. När symbolen flyttas, följer<br />

förbindningen med automatiskt.<br />

VarInput (endast FBD)<br />

Infogar ingångsvariabeln (samma som Tools/Network Elements/Input Variable).<br />

Contact (endast LD)<br />

Infogar ingångskontakten (samma som Tools/Network Elements/Contact).<br />

VarOutput (endast FBD)<br />

Infogar utgångsvariabeln (samma som Tools/Network Elements/Output variable).<br />

Coil (endast LD)<br />

Infogar utgångskontakten (samma som Tools/Network Elements/Coil).<br />

FUN/FB<br />

Öppnar funktionsblocksfönstret för urval av programinstruktioner.<br />

De senaste 5 listade funktionsblocken<br />

De sista funktionsblocken som infogas i LD eller FBD editorerna lagras för återanvändning<br />

genom val från contextmenyn.<br />

2-8 Beijer Electronics AB, MA00411B


Användargränssnitt<br />

2.3.1 Programsymboler<br />

Verktygssymbol Betydelse Menykommando<br />

Förbindninglinje<br />

(Interconnect mode)<br />

Tools - Interconnect<br />

Ingångskontakt<br />

(endast i Ladder)<br />

(Snabbval: 1)<br />

Ingångskontakt - inverterad<br />

(endast i Ladder)<br />

(Snabbval: 2)<br />

Ingångskontakt (ELLER-funktion)<br />

(endast i Ladder)<br />

(Snabbval: 3)<br />

Ingångskontakt - inverterad (ELLERfunktion)<br />

(endast i Ladder)<br />

(Snabbval: 4)<br />

Förbindelselinje, vertikal<br />

(endast i Ladder)<br />

(Snabbval: 5)<br />

Förbindelselinje, horisontell<br />

(endast i Ladder)<br />

(Snabbval: 6)<br />

Utgångskontakt<br />

(endast i Ladder)<br />

(Snabbval: 7)<br />

Function block<br />

(programmeringsinstruktion)<br />

(Snabbval i Ladder: 8)<br />

Ingångsvariabel<br />

(Snabbval i Ladder: 9)<br />

Utgångsvariabel<br />

(Snabbval i Ladder: 0)<br />

Tools - Network Elements -<br />

Contact<br />

Tools - Network Elements -<br />

Contact<br />

Tools - Network Elements -<br />

Contact<br />

Tools - Network Elements -<br />

Contact<br />

Tools - Network Elements -<br />

Contact<br />

Tools - Network Elements -<br />

Contact<br />

Tools - Network Elements -<br />

Coil<br />

Tools - Network Elements -<br />

Function block<br />

Tools - Network Elements -<br />

Input Variable<br />

Tools -- Network Elements -<br />

Output Variable<br />

Beijer Electronics AB, MA00411B 2-9


Användargränssnitt<br />

Verktygssymbol Betydelse Menykommando<br />

Hoppinstruktion Tools - Network Elements -<br />

Jump<br />

Returinstruktion Tools - Network Elements -<br />

Return<br />

Vertikalt utrymme ökas.<br />

[Shift] + knapp: utrymmer minskas<br />

Tools - Open Row<br />

Horisontellt utrymme ökas.<br />

[Shift] + knapp: utrymmer minskas<br />

Tools - Open Column<br />

Kommentartext Tools - Network Elements -<br />

Comment<br />

Autoconnect<br />

Muspekaren får följande former i autoconnect:<br />

Muspekaren<br />

Betydelse<br />

Select Mode + Auto Connect<br />

Interconnect Mode +<br />

Auto Connect<br />

Förbindelsen ritas automatiskt då startpunkten och slutpunkten markeras mellan<br />

symbolerna.<br />

Flytta symbolerna (med bibehållna anslutningar)<br />

1. Aktivera Select mode och Auto Connect.<br />

2. Klicka på symbolen som skall flyttas och håll vänster musknapp nere.<br />

3. Släpp knappen där symbolen skall placeras.<br />

2-10 Beijer Electronics AB, MA00411B


Användargränssnitt<br />

Infoga anslutningslinjer (autorouting)<br />

1. Aktivera Interconnect mode och Auto Connect.<br />

2. Klicka på början som markeras av svarta punkter. Detta aktiverar anslutningslinjen<br />

som följer muspekaren.<br />

3. Placera muspekararen på slutpunkten.<br />

4. Klicka på slutpunkten och linjen ritas automatiskt.<br />

Ändra linjen<br />

Menykommandot Recalculate Line i Tools-menyn ritar om den linje som redan<br />

finns.<br />

1. Aktivera både Select mode och Auto Connect.<br />

2. Klicka på förbindelselinjen och alla linjerna kommer att markeras.<br />

3. Aktivera kommandot Recalculate Line i Tools menyn och förbindelsen ritas om.<br />

Ankarpunkter<br />

Med Interconnect mode och Auto Connect mode kan en ankarpunkt skapas.<br />

Dubbelklicka där linjen skall fästas och linjen “förankras” dvs dess placering förblir<br />

oförändrad även om symbolerna flyttas. Ankarpunkter känns igen som svarta kvadrater.<br />

En ankarpunkt tas bort i Select mode då Auto Connect är bortkopplat. Markera<br />

ankarpunkten och tryck [Del].<br />

När symbolen flyttas i editeringsfönstret blir ankarpunkten oförändrad<br />

Beijer Electronics AB, MA00411B 2-11


Användargränssnitt<br />

2-12 Beijer Electronics AB, MA00411B


Nytt projekt steg för steg<br />

3 Nytt projekt steg för steg<br />

Detta kapitel beskriver steg för steg hur ett projekt skapas<br />

Kontroll av vad som skrivs in i benämningslistor och i de olika editorerna sker på<br />

kommando. Tag därför alltid för vana att med jämna mellanrum göra en kontroll av<br />

programmet eller benämningslistan.<br />

Kontroll sker via Check i menyn Object, via kontrollknappen eller [Alt] + [C].<br />

Bilden nedan ger ett bra överblick över strukturen i ett projekt.<br />

Villkor för<br />

exekvering av<br />

programdel<br />

Programdelar<br />

gjorda i olika<br />

programspråk<br />

Benämningslista<br />

Programstrukturen i GXIEC<br />

Observera!<br />

För mer information se kapitel 6 i den engelska nybörjarmanualen (beginner.pdf) som<br />

installeras tillsammans med programmeringsverktyget.<br />

Beijer Electronics AB, MA00411B 3-1


Nytt projekt steg för steg<br />

3.1 Skapa ett nytt projekt<br />

GXIEC arbetar med en underkatalog för varje projekt. En anledning till detta är att<br />

programfilen har samma namn i alla projekt. Välj New under menyn Project, fönstret<br />

öppnar sig.<br />

Välj vilket PLC-system som skall användas under CPU Type. Klicka därefter på OK.<br />

I fönstret New Project skrivs sökvägen och namnet på katalogen, dvs projektet,<br />

klicka sedan Create. Genom att bläddra i listan kan man hoppa mellan redan sparade<br />

kataloger samt byta enhet. Döp ej om filer i projektkatalogen, det kan innebära att<br />

projektet ej går att öppna.<br />

Observera!<br />

För bästa funktion, skapa projekt på en lokal hårddisk.<br />

3-2 Beijer Electronics AB, MA00411B


Nytt projekt steg för steg<br />

När projektfilen har skapats öppnas GXIEC New Project Start Up Options. I dialogrutan<br />

kan man få hjälp med att skapa ett nytt projekt med alla nödvändiga delar inlagda.<br />

Behövs inte hjälpen väljs Empty Project dvs ett tomt projekt utan Task och<br />

POU.<br />

För att skapa en programdel av typen ladderdiagram (LD), markera Ladder Diagram<br />

och klicka på OK.<br />

Project Structure kan markeras om man vill ha hjälp att skapa projektet. Programmeringsverktyget<br />

guidar användaren igenom ett antal steg där man specificerar hur<br />

många programdelar och taskar som skall skapas i projektet. Fler programdelar och<br />

taskar kan läggas till i efterhand.<br />

Nästa fönster kallas navigatorn. Här visas hur hela projektet ser ut, senaste ändringar<br />

av variabellista, programdelar mm.<br />

Beijer Electronics AB, MA00411B 3-3


Nytt projekt steg för steg<br />

Eftersom Ladder Diagram valdes i dialogrutan på föregående sida har en Task samt<br />

en POU av typen LD skapats.<br />

Genom att högerklicka med muspekaren i navigatorn och välja Extended Information<br />

kan man välja hur mycket information som skall visas i navigatorn. Med valet<br />

Extended Information aktivt visas också antal objekt (entry) för de olika delarna i<br />

navigatorn t ex POU_Pool samt datum och tid då objektet skapades eller sparades<br />

senast. Genom att välja bort Extended Information blir navigatorn “renare”. Samma<br />

funktion finns också under menyn View, eller via contextmenyn (högerklick).<br />

3-4 Beijer Electronics AB, MA00411B


3.2 Parametrar<br />

Nytt projekt steg för steg<br />

Med parametrarna ställs PLC-systemets funktioner in. De bestämmer bland annat<br />

hur PLC-systemet skall reagera vid error (PLC RAS), värde på Watchdogtimer, batterimatade<br />

areor (Device), inställning av I/O-kort (I/O-assignment), eventuell konstant<br />

cykeltid etc. Vilka parametrar som kan ställas in och inom vilka områden,<br />

varierar beroende på vald PLC-typ.<br />

Det går att byta PLC-typ genom att klicka på denna knapp, eller i menyn Project -<br />

Change PLC Type.<br />

Tips!<br />

Vid byte av PLC-typ bör först en export av projektets parametrar göras.<br />

När PLC-bytet är utfört kan dessa parametrar importeras, vilket spar tid t ex om ett<br />

större MELSECNET-nätverk finns parametrerat sedan tidigare.<br />

Vid dubbelklick på Parameter - PLC i navigatorn kommer ett fönster upp där PLCsystemets<br />

parametrar kan justeras. Flikarna ser olika ut beroende på vald PLC-typ.<br />

Hur varje flik kan ställas in för respektive PLC-typ förklaras i detalj i kapitel 5 i den<br />

engelska <strong>referensmanualen</strong> (reference.pdf) som installeras tillsammans med<br />

programmeringsverktyget.<br />

Beijer Electronics AB, MA00411B 3-5


Nytt projekt steg för steg<br />

3.3 Global Variabellista (GVL)<br />

Detta är den lista där in-/utgångarna och de interna variablerna kan ges en benämning.<br />

De globala variablerna är gemensamma för hela programmet. Gäller även globala instanser<br />

av funktionsblock, se kapitel 5.7.<br />

Öppna editorn genom att dubbelklicka på Global_Vars i navigatorn.<br />

Om man vill ändra bredden på en kolumn, placerar man markören längst upp i<br />

fönstret på linjen som delar av kolumnerna. Markören ändrar då utseende och man<br />

kan “dra” linjen åt valfritt håll. Stäng och spara fönsterinställningen.<br />

Sortera på kolumn genom att klicka på fältet i toppen av kolumnen, t ex MIT-Addr<br />

eller Identifier.<br />

Class<br />

Här skall alltid stå VAR_GLOBAL eller VAR_GLOBAL_CONSTANT.<br />

Autoextern<br />

Globala variabler kan automatiskt läggas till och uppdateras i alla lokala headers genom<br />

att Autoextern kryssas i.<br />

Identifier<br />

Här skrivs benämningen in för I/O-adressen. Denna måste vara unik och får inte<br />

innehålla mellanrum eller nationella tecken. GXIEC skiljer inte på variabler skrivna<br />

med stora eller små bokstäver. Max 32 tecken kan användas.<br />

MIT-Addr<br />

I kolumnen skrivs MELSEC-adressen.<br />

IEC-addr<br />

I kolumnen skrivs IEC-adressen. Om man vet MELSEC-adressen skrivs IEC-adressen<br />

in automatiskt och vice versa.<br />

3-6 Beijer Electronics AB, MA00411B


Nytt projekt steg för steg<br />

Type<br />

Här väljer man mellan olika variabeltyper:<br />

BOOL - Boolean<br />

BOOL är en bitvariabel som kan anta värdet 1 eller 0 (TRUE eller FALSE). Exempel<br />

på BOOL-variabler är in- och utgångar (X, Y) och minnesceller (M).<br />

INT - Integer<br />

INT är en 16-bitars heltalsvariabel med teckenbit som kan anta värden mellan -<br />

32 768 och +32 767. Exempel på INT-variabler är dataregister typ D, W och R.<br />

DINT - Double Integer<br />

DINT är en heltalsvariabel som är ett dubbelord på 32 bitar, och kan anta värden<br />

mellan -2 147 483 648 och +2 147 483 647. En DINT-variabel upptar två dataregister.<br />

Exempel på DINT-variabler är dataregister typ D, W och R.<br />

WORD<br />

WORD är en 16-bitars heltalsvariabel utan teckenbit som kan anta värden mellan 0<br />

och +65 535. Exempel på WORD-variabler är dataregister typ D, W och R.<br />

DWORD<br />

DWORD är en heltalsvariabel som är ett dubbelord på 32 bitar, och kan anta värden<br />

mellan 0 och +4 294 967 295. En DWORD-variabel upptar två dataregister. Exempel<br />

på DWORD-variabler är dataregister typ D, W och R.<br />

REAL<br />

REAL är en flyttalsvariabel som kan anta värden mellan ± 3.4x10 ±38 . En REAL-variabel<br />

upptar två dataregister. Exempel på REAL-variabler är dataregister typ D, W<br />

och R.<br />

TIME<br />

TIME är en 32-bitars datatyp som används för att ange tidsvärden för IEC-instruktioner.<br />

En TIME-variabel kan anta värden mellan<br />

T#-24d20h31m23s648.00ms och T#+24d20h31m23s647.00ms.<br />

Exempel:<br />

5 dagar, 6 timmar, 23 minuter, 12 sekunder och 546 millisekunder skrivs:<br />

T#5d6h23m12s546.00ms<br />

Beijer Electronics AB, MA00411B 3-7


Nytt projekt steg för steg<br />

ARRAY<br />

En ARRAY är en vektor (dvs en serie variabler), i GX IEC Developer kan man ha upp<br />

till tre dimensioner data. Vektorerna kan vara hur stora som helst bara det finns tillräckligt<br />

många lediga element (t ex dataregister). Alla variabler i en array skall normalt<br />

vara av samma datatyp, men genom att skapa en array av DUT dvs en vektor av<br />

strukturer är det möjligt att ha olika datatyper i en array, se även kapitel 6.17. Precis<br />

som andra variabler kan en array vara global eller lokal. Längden på en array bestäms<br />

av inställningen inom klammern t ex [0..2].<br />

Exempel 1<br />

Nedan visas hur man deklarerar en lokal endimensionell array samt en global tvådimensionell<br />

array av typen INT i en lokal variabellista:<br />

– Öppna headern<br />

– Lägg till en tabellrad med följande inmatning:<br />

Class Identifier Type Initial<br />

VAR EnDimArray ARRAY [0..2] OF INT 3(0)<br />

VAR_EXTERNAL TvaDimArray ARRAY [0..2,0..4] OF INT 15(0)<br />

Betydelse:<br />

ARRAY [0..2] OF INT<br />

Den endimensionella vektorn innehåller tre stycken element av typen INT, totalt 3<br />

register behövs.<br />

ARRAY [0..2,0..4] OF INT<br />

Den här vektorn är tvådimensionell. Deklarationen av den andra dimensionen är separerad<br />

av ett kommatecken. I exemplet består den första dimensionen av tre element<br />

(0..2) och den andra av fem element (0..4), totalt 15 register behövs.<br />

3-8 Beijer Electronics AB, MA00411B


Nytt projekt steg för steg<br />

Observera!<br />

Den globala vektorn i exemplet måste deklareras i den globala variabellistan.<br />

Initial<br />

I fältet är tanken enligt IEC-standarden att kunna tilldela I/O-adressen ett värde/tillstånd<br />

vid programnedladdning. I GXIEC finns inget stöd för detta vilket innebär att<br />

denna kolumn inte har någon funktion för normala I/O. För variabelklassen<br />

VAR_GLOBAL_CONSTANT skall konstantvärdet deklareras i detta fält<br />

Comment<br />

Här kan valfri kommentar skrivas in för I/O-adressen. Den behöver inte vara unik<br />

och kan innehålla mellanrum samt nationella tecken. Max 1 000 tecken kan användas.<br />

Remark<br />

Extra kommentarsfält med 1 000 tecken.<br />

Under menyn Tools finns möjlighet att välja Sort så att man kan sortera inskrivna<br />

I/O-adresser på olika sätt.<br />

Spara listan under Object/Save<br />

Beijer Electronics AB, MA00411B 3-9


Nytt projekt steg för steg<br />

Address Batch Replace<br />

Med Address Batch Replace aktiv i GVL-listan kan man enkelt skifta adresser från en<br />

area till en annan area. T ex användbart då man måste flytta en I/O-modul till ett<br />

annat adressområde.<br />

Observera!<br />

Överlappande hårdvaruadresser kan enkelt hittas med funktionen Find Overlapping<br />

Addresses i menyn Tools, se kapitel 7.3.2.<br />

3-10 Beijer Electronics AB, MA00411B


3.4 Skapa programdel (POU)<br />

Nytt projekt steg för steg<br />

Till varje programdel (POU) skapas en lokal benämningslista header samt en programarea<br />

body i vilken programmet skrivs.<br />

1. Klicka på denna knapp då du befinner dig i navigatorn.<br />

2. Skriv in namnet på den nya POU och ange om det skall vara ett program (PRG),<br />

en funktion (FUN) eller ett funktionsblock (FB).<br />

3. Välj programspråk. Klicka sedan på OK.<br />

En ny POU (Control) har deklarerats som<br />

ett program (PRG).<br />

PLC-programmet i POU-body skall skrivas<br />

i progranspråket Ladder.<br />

4. Dubbelklicka på POU-namnet Control i POU-poolen.Detta expanderar trädstrukturen<br />

och visar en header och en body för programdelen.<br />

Observera!<br />

– Bara ett projekt i taget kan vara öppet för editering i varje session av GXIEC.<br />

– Då man valt IEC-språk kan man inte växla fritt mellan dessa.<br />

– När man väljer att arbeta med GXIEC bör inga ändringar i aktuellt PLC-program ske<br />

med andra programmeringsverktyg! Eftersom GXIEC automatiskt belägger I/Oadresser<br />

(minnesceller mm) kan det vara svårt att förstå hur programmet hänger<br />

ihop.<br />

– Inställning för om objekt skall expanderas eller öppnas i navigatorn då man dubbelklickar<br />

på POU-namnet kan ställas in via contextmenyn (högerklick) och markera<br />

Settings/Expand on Double Click, Open Header on Double Click, Open Body on<br />

Double Click eller Open Header/Body on Double Click.<br />

Beijer Electronics AB, MA00411B 3-11


Nytt projekt steg för steg<br />

3.4.1 POU-header<br />

POU header används till att deklarera och spara lokala- och globala variabler som används<br />

i denna programdel. Dessa deklarationer kan också innefatta instansnamn på<br />

funktionsblock, se kapitel 5.7.<br />

1. Kontrollera att headern och bodyn visas i POU_Pool och expandera listan om<br />

det är nödvändigt.<br />

2. Dubbelklicka på Header i navigatorn. Detta öppnar ett fönster som innehåller<br />

en deklarationstabell för headerns lokala variabler.<br />

3. För att deklarera de lokala variablerna gör på samma sätt som med de globala<br />

genom att ange klass, identifierare och datatyp för varje variabel.<br />

4. Välj Object/Save.<br />

IEC-standarden trycker mycket hårt på att samtliga variabler som används i en programdel<br />

(POU) måste vara definierade i dess benämningslista (Header).<br />

Därför måste de variabler som används i POU kopieras in från den globala variabellistan<br />

(GVL). Detta kan göras på olika sätt, t ex genom att namnet automatiskt koperas<br />

över till headern när den används i POU-bodyn, detta aktiveras i menyn<br />

Extras/Options/Variable Selection justera instänning för Setting if variable doesn’t<br />

exist till Use Global. Alternativt markera variablerna i GVL, kopiera och klistra sedan<br />

in dem i Headern. Markering av en rad sker genom att klicka med markören på radnumret<br />

i listan.<br />

Man kan också använda autoextern (AU) i GVL en funktion som gör att en variabel<br />

i den globala variabellistan automatiskt kopieras över till alla programdelarna.<br />

Class<br />

En VAR är en lokal variabel för denna programdel, medan en VAR_EXTERNAL<br />

kommer från den globala variabellistan. En VAR belägger en I/O-adress från arean<br />

definierad under System Variabels.<br />

Identifier ...<br />

För Identifier, Type, Initial och Comment gäller samma som för den globala listan.<br />

3-12 Beijer Electronics AB, MA00411B


Nytt projekt steg för steg<br />

3.4.2 POU-body<br />

Genom att dubbelklicka på Body i Projektnavigatorn öppnas fönstret för den valda<br />

editorn. Hur program editeras beskrivs i kapitel 4.<br />

Både lokala och globala variabler kan skrivas in direkt i programbodyn och deklareras<br />

i en dialog som heter Variable Selection. Skriv in nytt variabelnamn och tryck<br />

[Enter], så öppnas nedanstående dialog.<br />

Observera!<br />

Denna dialogruta kan stängas av i menyn Extras/Option/Variable Selection, justera inställning<br />

för Setting if variable doesn’t exist, välj mellan Ask/Define Global/Define<br />

Local.<br />

Ange om variabeln skall vara global eller lokal. Detta kan ändras i nästa dialog, där<br />

variabelns namn, typ och eventuell hårdvaruadress anges.<br />

När alla uppgifter är klara, tryck Define.<br />

Beijer Electronics AB, MA00411B 3-13


Nytt projekt steg för steg<br />

Finns variabler redan deklarerade i globala variabellistan eller i headern kan dessa väljas<br />

in via samma dialog. Öppna med [F2] eller högerklicka när ett variabelfält är markerat.<br />

3-14 Beijer Electronics AB, MA00411B


Nytt projekt steg för steg<br />

3.5 Skapa en Task<br />

Hur definieras en ny Task?<br />

Ett projekt består av en eller flera Tasks. Till en Task knyts en eller flera programdelar<br />

(POU). En Task är ett överordnat villkor som bestämmer när en programdel skall köras.<br />

1. Klicka på denna knapp då navigator-fönstret är aktivt. Detta fönster öppnas.<br />

2. Skriv in ett namn, max 32 tecken och bekräfta med OK<br />

Observera!<br />

Genom att tilldela en Task namnet MELSEC_FIRST kommer kodgeneratorn hantera de<br />

programdelar som är kopplade till denna tasken annorlunda. Dessa programdelar kommer<br />

alltid placeras först i programmet och all annan kod placeras efter.<br />

Följande interna kontroller görs vid kompileringen och kan generera felmeddelanden:<br />

– Interrupthändelser kan inte användas för denna task<br />

– SFC-program måste initieras första programvarvet och skall inte kopplas till denna<br />

task<br />

– SFC-kontrollblock såsom SFC_CTRL och SFC_PAUSE använder speciella minnesceller<br />

vilka återställs i början av programmet. Dessa kontrollblock skall inte användas i<br />

programdelar eller anrop via funktionsblock som kopplas till MELSEC_FIRST<br />

– Taskprioritet ignoreras för MELSEC_FIRST och användaren informeras om detta via<br />

varningsmeddelande under kompilering<br />

3. Dubbelklicka på tasknamnet i navigatorn, taskfönstret öppnas. Definiera sedan<br />

vilka programdelar som skall tillhöra tasken<br />

Exekveringsordningen av de programdelar som styrs av en Task, sker i den ordning<br />

de är listade, se bilden ovan.<br />

Beijer Electronics AB, MA00411B 3-15


Nytt projekt steg för steg<br />

4. Välj Rebuild All i menyn Project. Först nu har binärkod skapats som kan skickas<br />

ned till PLC-systemet. Med Build kompileras endast det som är ändrat i projektet.<br />

Observera!<br />

Endast de programdelar (POU) som är knutna till en Task blir kompilerade. Detta markeras<br />

i navigatorn genom att stjärnan bredvid namnet försvinner efter kompilering.<br />

Ändra på egenskaperna för en task<br />

1. Ta fram informationsrutan genom att markera aktuell Task i navigatorn och<br />

sedan välja Information i menyn Object.<br />

2. Event:<br />

En Task kan exekveras beroende på dessa villkor:<br />

– Varje programvarv, sätt Event till TRUE.<br />

– På händelse, sätt Event till I/O-adressen/benämningen på det villkor som skall styra<br />

exekveringen (t ex X0 eller Switch0).<br />

– På interrupthändelse, sätt Event till en interruptadress, kopplad till en interruptmodul<br />

eller tidsinterrupt i PLC-systemet (t ex Event sätts till I1 eller I31).<br />

– Tidsintervall, sätt Event till FALSE samt Interval till önskat tidsintervall mellan<br />

programexekveringarna (t ex T#200ms innebär att en Task exekveras fem gånger<br />

per sekund med 200 ms tidsintervall). Tiden skall vara större än cykeltiden.<br />

3-16 Beijer Electronics AB, MA00411B


Nytt projekt steg för steg<br />

3. Priority:<br />

Upp till 32 olika prioriteter kan väljas, där 0 innebär högst prioritet.<br />

Vid kompilering gäller följande:<br />

– Programdelar kopplade till Tasks med högst prioritet anropas först i PLC-programmet.<br />

– Om två eller flera Tasks har samma prioritet, hamnar de i den ordningen som de<br />

finns i navigatorn.<br />

4. Comment:<br />

Till varje Task eller programdel (POU) kan en förklarande text skrivas in på<br />

maximalt 64 Kbyte.<br />

5. Timer/Output Control:<br />

Inställningen påverkar tidskretsar och digitala utgångar vilka är aktiverade med<br />

OUT, om man också valt aktivering på händelse (Event).<br />

– Task med Timer/Output Control-rutan ikryssad och POU innehåller en timer:<br />

Om Taskvillkoret nollställs återställs timern.<br />

– Task med Timer/Output Control ej ikryssad där POU innehåller en timer:<br />

Om Taskvillkoret nollställs återställs ej timern utan räknar vidare. Om timerns<br />

startvillkor nollställs fortsätter timern att räkna upp. För att timern skall sluta räkna<br />

krävs att Taskvillkoret aktiveras på nytt.<br />

Exekvering på händelse utan Timer/Output Control sker genom att kompilatorn<br />

skapar kod med hopp över respektive taskprogram (CJ Pxxx). Detta gör att digitala<br />

utgångar som aktiverats med OUT samt timerutgångar kommer att förbli aktiverade<br />

om villkoret för en viss task nollställs.<br />

Däremot med inställningen Timer/Output Control skapas MC-MCR exekverad<br />

kod i kombination med hoppkod vilket därför kommer att nollställa utgångar och<br />

timers då villkoret för tasken nollställs.<br />

Beijer Electronics AB, MA00411B 3-17


Nytt projekt steg för steg<br />

Med hjälp av valet Timer/Output Control kan man styra om utgångarna ska återställs<br />

då Tasken inte är aktiverad.<br />

Exekveringsläge<br />

Timer/Output Control<br />

inte aktiverad<br />

Timer/Output Control<br />

aktiverad<br />

Normal exekvering MC - MCR exekvering<br />

Task händelse X10 X100<br />

Exekveringssekvens LDI X10<br />

LDI X100<br />

CJ End of the Task ANI Intern minnescell<br />

POU exekvering<br />

CJ End of the Task<br />

LD X100<br />

MC Intern minnescell<br />

POU exekvering<br />

MCR<br />

När händelsen är aktiv Om X10 är ettställd kommer<br />

POUns task att exekveras.<br />

Om X100 är ettställd startar<br />

programexekveringen<br />

mellan MC och MCR.<br />

När händelsen inte är<br />

aktiv<br />

Om X10 är nollställd går<br />

PLC-programmet till slutet<br />

av tasken.<br />

Programmet går till slutet<br />

av Tasken, men vissa operander<br />

behåller sin status:<br />

Tidskretsar: Fortsätter att<br />

räkna.<br />

Batterimatade tidskretsar<br />

och räknare: Behåller sin<br />

status<br />

Variabler aktiverade med<br />

OUT behåller sin status.<br />

Om X100 är nollställd går<br />

PLC-programmet till slutet<br />

av Tasken.<br />

Operandernas status återställs:<br />

Tidskretsar: Återställs till<br />

0.<br />

Batterimatade tidskretsar,<br />

räknare och ingångar:<br />

Behåller sina värden,<br />

utgångarna återställs.<br />

Variabler aktiverade med<br />

OUT återställs.<br />

SET, RESET, SFT behåller<br />

sin status.<br />

Observera!<br />

För hantering av programkompilering och nerladdning till PLC-systemet hänvisas till<br />

kapitel 6.<br />

3-18 Beijer Electronics AB, MA00411B


Editorer<br />

4 Editorer<br />

Eftersom programsyntaxen skiljer sig i IEC-editorerna från det man kanske är van<br />

vid, t ex MELSEC-språkets, följer här några enkla programexempel för respektive<br />

editor i GXIEC.<br />

IEC-standarden trycker hårt på att all programmering skall ske med benämningar.<br />

Dock går det utmärkt att skriva program med hårdvaruadresser enligt nedan. Det<br />

finns stöd för att växla mellan I/O-adress och benämning i monitoreringsläge<br />

[Alt] + [F9] eller med [Ctrl] + [dubbelklick].<br />

Notera att man i GXIEC aldrig behöver tänka på att skriva in FEND- och END- instruktioner.<br />

Detta sker automatiskt vid kompilering.<br />

Det finns olika programmeringsspråk (editorer) med vilka man kan skapa applikationsprogram.<br />

Bodyn innehåller PLC-programmets programkod.<br />

1. Kontrollera att headern och bodyn visas i POU_Pool, expandera trädet om det<br />

är nödvändigt<br />

2. Dubbelklicka på Bodyn i projektträdet och ett programmeringsfönster öppnas.<br />

3. Nu kan du börja skriva PLC-programmet.<br />

Observera!<br />

Man kan öka programmeringsytan med muspekaren genom att dra pekaren nedåt enligt<br />

ovan.<br />

I menyn Extras/Options/Graphic/Predefined Network Height when inserting kan du<br />

också ställa in grundinställningen för nätverkets höjd.<br />

Beijer Electronics AB, MA00411B 4-1


Editorer<br />

4. Spara ändringar genom att välja Save i menyn Object.<br />

Man kan använda Context-menyn i grafiska editorer, för att enklare välja olika typer<br />

av objekt. Context öppnas genom att högerklicka med muspekaren i ett nätverk<br />

eller med snabbvalet [F2].<br />

Contextmenyn i Ladder<br />

4-2 Beijer Electronics AB, MA00411B


Editorer<br />

4.1 Reläschema (LD)<br />

Detta är en grafisk editor, dvs programmet byggs upp av grafiska symboler. Symbolerna<br />

kan placeras fritt, flyttas och kopieras mellan olika nätverk (networks). Det är<br />

möjligt att kombinera reläsymboler och block i samma nätverk.<br />

Används programmeringsläget Guided Editing placeras symbolerna efter ett fast<br />

mönster, liknande det i programmeringsverktyget GX Developer.<br />

Nedan beskrivs hur man programmerar utan fast laddereditor mode (Guided Editor<br />

mode), detta beskrivs i kapitel 4.2.<br />

1. Dubbelklicka på en body med ladderprogrammet (LD).<br />

2. Klicka på kontaktikonen på verktygsmenyn eller snabbval[1].<br />

3. Flytta muspekaren till önskad plats på arbetsytan och klicka på vänster musknapp<br />

för att placera kontakten.<br />

4. Klicka på utgångsspolens ikon eller snabbval [7] och placera den på högra delen<br />

på arbetsytan.<br />

5. Klicka på interconnect/linjeverktyget på verktygsmenyn och håll vänster musknapp<br />

intryckt och förbind utgången med ingången.<br />

Observera!<br />

Relälogiken kopplas alltid till 24 V linan (power rail) i vänsterkanten av nätverk.<br />

Beijer Electronics AB, MA00411B 4-3


Editorer<br />

Network<br />

Det mörka fältet längst till vänster kallas Network (nätverk). Det indikerar en komplett<br />

krets. I ett nätverk bör endast en komplett krets finnas! I annat fall genereras en<br />

varning vid kompileringen.<br />

Då en kontakt eller spole placerats på en linje får man med [F2] upp de benämningar<br />

som skrivits in i Headern. Genom att hålla [Ctrl] nertryckt och dubbelklicka på en<br />

kontakt inverteras signalen. Om man dubbelklickar på en spole får man upp ett fönster<br />

Signal Configuration där man kan välja Normal, Negation, Set eller Reset.<br />

Vid programmering i IEC-ladder finns det även möjlighet att placera in funktionsblock.<br />

Med dessa symboler knyter man variabler till in- och utgångar på funktionsblock.<br />

Håll nere [Ctrl]-tangenten så kan flera objekt placeras ut på en gång.<br />

Kommentarer kan placeras på godtycklig plats i arbetsarean. Välj denna symbol och<br />

“dra ut” ut en box för att skriva in kommentaren. Radbrytning i boxen görs genom<br />

att trycka [Ctrl] + [Enter].<br />

Exempel på ett timerfunktionsblock i laddereditorn<br />

Observera!<br />

När objekt som kontakter, spolar och variabelanslutningar skall placeras på arbetsytan,<br />

kan [Ctrl] hållas nere för att placera ut flera objekt utan att behöva gå till verktygsraden<br />

för att hämta nya.<br />

4-4 Beijer Electronics AB, MA00411B


Ersätt funktioner och funktionsblock i LD-editorn<br />

Fr o m GXIEC 6.00 kan en funktion eller ett funktionsblock enkelt ersättas av ett<br />

annat. Markera det funktionsblock eller den funktion som skall bytas ut och välj ett<br />

annat från dialogrutan (F2) eller contextmenyn (högerklick).<br />

Det går även att använda funktionen Edit/Replace. Skriv in namnet på det block som<br />

skall ersättas och namnet på det nya blocket, välj Replace för att byta ut ett specifikt<br />

block, eller Replace All för att byta alla.<br />

Om det nya blocket är större än det ersatta görs automatiskt plats i programmet.<br />

Överflödiga variabler ligger kvar i nätverket och måste raderas innan kompilering.<br />

4.1.1 Programexempel - LD<br />

Editorer<br />

Exempel på reläschema<br />

Beijer Electronics AB, MA00411B 4-5


Editorer<br />

4.2 Reläschema (LD) - Guided Editor<br />

Detta är en grafisk editor dvs programmet byggs upp av grafiska symboler. Symbolerna<br />

placeras automatiskt i ett rutnät. Med Guided Editor kan man enkelt programmera<br />

med tangentbordskommando och på så sätt minska musanvändandet.<br />

Guided Editor mode aktiveras i contextmenyn (högerklick eller [F2]) eller via verktygsknappsen,<br />

snabbval [Ctrl] + [G].<br />

Programmering sker med tangentkommandon, enligt nedanstående tabell.<br />

Snabbtangent<br />

Funktion<br />

1 Seriekontakt<br />

2 Inverterad seriekontakt<br />

3 Parallellkontakt<br />

4 Inverterad parallellkontakt<br />

5 Vertikal förbindelselinje<br />

6 Horisontell förbindelselinje<br />

7 Utgångsspole<br />

4-6 Beijer Electronics AB, MA00411B


Editorer<br />

Snabbtangent<br />

Funktion<br />

8 Funktion eller funktionsblock<br />

9 Ingångsvariabel<br />

0 Utgångsvariabel<br />

Programmeringssymbolerna läggs i ett fast rutnät och förbinds till varandra automatiskt.<br />

Symbolerna kan flyttas i efterhand efter önskemål.<br />

Observera!<br />

Rutnätet syns bara om funktionen Grid är aktiverad, via menyn View/Grid<br />

Beijer Electronics AB, MA00411B 4-7


Editorer<br />

I menyn Extras/Options/LD-Guided Mode ställer man in efter hur många kretsar<br />

programmet skall radbryta, om Guided mode skall vara standard editeringsmode<br />

samt aktivera snabbknappsupprepning (Hotkey Repeater).<br />

I menyn Extras/Options/LD-Variable name anges inställningar för hur variabelnamn<br />

skall presenteras i Ladder-editorn.<br />

För ytterligare information hänvisas till kapitel 7 i den engelska <strong>referensmanualen</strong><br />

(reference.pdf) som installeras tillsammans med programmeringsverktyget.<br />

4-8 Beijer Electronics AB, MA00411B


Editorer<br />

4.3 Funktionsblocksdiagram (FBD)<br />

Detta är en fri grafisk editor dvs block kan fritt placeras, flyttas och kopieras mellan<br />

olika nätverk.<br />

Network<br />

Det mörka fältet längst till vänster indikerar det som kallas Network (nätverk). Det<br />

indikerar en komplett krets. I ett nätverk bör endast en krets finnas! I annat fall genereras<br />

en varning vid kompilering.<br />

Med knappen för funktionsblock får man upp en lista med valbara objekt. Dessa är<br />

antingen egna block, IEC-standard block eller block med MELSEC-instruktioner.<br />

Ändelsen på blocknamnen talar också om vilken<br />

typ de är av:<br />

_E: IEC-instruktioner med enable-ingång<br />

_M: MELSEC-specifika instruktioner<br />

_MD: Utökade MELSEC-instruktioner<br />

Beijer Electronics AB, MA00411B 4-9


Editorer<br />

Med dessa symboler knyter man variabler till in- och utgångar på funktionsblock.<br />

När man dubbelklickar inuti blocket på en in- eller utgång, kan man invertera funktionen.<br />

Kommentarer kan placeras på godtycklig plats i arbetsarean. Välj denna symbol och<br />

“dra ut” ut en box för att skriva in kommentaren.<br />

Om en insignal skall läggas till eller plockas bort på t ex ett AND-block, så görs detta<br />

genom att markera blocket och dra ut nedankanten på blocket (dubbel pil) till önskad<br />

storlek.<br />

Vissa funktionsblock har längst upp en ingång märkt EN (Enable). Detta block exekveras<br />

endast om signalen EN är ettställd. Då EN är ettställd är utgången ENO (Enable<br />

Out) ettställd. Den senare kan t ex användas som signal till eventuellt<br />

efterföljande blocks EN-ingång.<br />

Observera!<br />

När objekt som variabelanslutningar skall placeras på arbetsytan, kan [Ctrl] hållas<br />

nere för att placera ut flera objekt utan att behöva gå till verktygsraden för att hämta<br />

nya.<br />

Ersätt funktioner och funktionsblock i FBD-editorn<br />

Fr o m GXIEC 6.00 kan en funktion eller ett funktionsblock enkelt ersättas av ett<br />

annat. Markera det funktionsblock eller den funktion som skall bytas ut och välj ett<br />

annat från dialogrutan [F2] eller contextmenyn (högerklick).<br />

Det går även att använda funktionen Edit/Replace. Skriv in namnet på det block som<br />

skall ersättas och namnet på det nya blocket, välj Replace för att byta ut ett specifikt<br />

block, eller Replace All för att byta alla.<br />

Om det nya blocket är större än det ersatta görs automatiskt plats i programmet.<br />

Överflödiga variabler ligger kvar i nätverket och måste raderas innan kompilering.<br />

4-10 Beijer Electronics AB, MA00411B


Editorer<br />

4.3.1 Programexempel - FBD<br />

Exempel på IEC-funktionsblocksdiagram under monitorering<br />

Beijer Electronics AB, MA00411B 4-11


Editorer<br />

4.4 Sekvensdiagram (SFC)<br />

Detta är en fast grafisk editor, dvs strukturen följer ett fast mönster.<br />

Varje sekvenssteg i programmet skall tilldelas ett namn som ej behöver<br />

definieras i den lokala variabellistan (i Headern).<br />

Till varje steg kan man knyta en eller flera händelser som består av<br />

antingen en variabel (BOOL) eller ett PLC-program (Action).<br />

Använder man en boolesk variabel, t ex Y0 eller dess benämning,<br />

kommer den att vara ettställd så länge steget är aktivt. PLC-programmet<br />

kan skrivas i valfri editor, dock ej SFC.<br />

Mellan två steg finns ett övergångsvillkor. Övergångsvillkoret kan vara en variabel<br />

eller ett PLC-program. För att komma till nästa steg skall detta övergångsvillkor uppfyllas.<br />

En utgång med den unika benämningen TRAN (fördefinierad) eller med samma<br />

namn som på övergångsprogrammet skall aktiveras om PLC-program används som<br />

övergångsvillkor.<br />

Strukturen på programmet ritas upp genom att klicka på symbolerna för steg och<br />

övergång. Tänk på att GXIEC skjuter in nya element före aktuell markörposition.<br />

4-12 Beijer Electronics AB, MA00411B


Editorer<br />

När strukturen är klar börjar man lägga in kod i stegen och övergångarna.<br />

Tryck på denna knapp för att editera det markerade steget eller övergångsvillkoret<br />

(Alt. gå ur editering). Man kan också använda [Enter] eller bara dubbelklicka på steg<br />

eller övergång vilket brukar vara enklare.<br />

När stegets händelse öppnas visas detta i ett fönster som kallas Action Association.<br />

Under ett steg kan både I/O-adresser aktiveras och PLC-program (Action) startas<br />

som händelser för steget. Samma Action-program kan användas som händelse under<br />

flera steg.<br />

Då man trycker på [F2] i detta fönster eller på denna knappen öppnas en lista på de<br />

variabler som är definierade i den lokala benämningslistan samt de actionprogram<br />

vilka blivit skapade med verktygsknappen Act.<br />

För att skapa nya actions, markera rätt POU i navigatorn och tryck på Act. Skriv önskat<br />

namn på PLC-programmet i dialogen New Action och därefter OK.<br />

Man öppnar ett actionprogram enklast i navigatorn genom att dubbelklicka på actionnamnet,<br />

alternativt i stegets Action Associationlista, markera namnet och använd<br />

knappen härintill, eller högerklicka med muspekaren när steget är markerat och välj<br />

Enhanced Display/Open action/transition.<br />

Med denna knapp kan får man upp en ruta i vilken man kan skriva in kommentartext<br />

i sekvenssteget. För att se inskriven kommentartext måste inställningen View/Extended<br />

Information vara aktiv.<br />

Varje steg och övergång måste ha ett unikt namn. För editering markera steg eller<br />

övergång med ett klick, klicka därefter ytterligare en gång.<br />

Observera!<br />

För A-serien skapar GXIEC en mikrodatorkod som läggs i en speciell area i PLC-systemet.<br />

Reservera minst 4 Kbyte Main Micro-datorkod under PLC-parametrarna. Upp till<br />

30Kbyte mikrodatorkod kan skapas.<br />

Observera!<br />

Inställningen på View/Extended Information påverkar också utseendet på SFC-sekvensen.<br />

Är funktionen aktiv visas stegen med kommentartext och övergångar visas med<br />

namnet utan radbrytning.<br />

Även projektnavigatorns utseende påverkas av denna inställning<br />

Beijer Electronics AB, MA00411B 4-13


Editorer<br />

Inställningar för SFC<br />

Autoscroll, letar upp aktivt steg vid monitorering<br />

Övergångsvillkoren kan också skrivas i Strukturerad Text (ST) som en Transition<br />

Condition, detta väljs under Tools/Edit Transition Condition, eller genom att<br />

trycka på denna knappen då Transition Condition är valt som standard övergångsvillkor<br />

(se nedan).<br />

Transition Condition uttryck följer IEC 61131-3 ST, vilken också kan monitoreras.<br />

Alla typer av ST-uttryck som resulterar i ett binärvärde (Sant eller Falskt) kan användas.<br />

4-14 Beijer Electronics AB, MA00411B


I menyn Extras/Options/Transition Condition kan man välja vilken typ av övergång<br />

som användas som förval.<br />

Editorer<br />

Välj en Transition Condition eller en Standard Body<br />

När man monitorerar Transition Condition delar uttrycken upp sig i flera booleska<br />

delar som monitoreras var för sig.<br />

Uppdelningen görs av de booleska uttrycken utom för NOT (se följande tabell). När<br />

en boolesk operand ingår i ett uttryck delar uttrycket upp sig i två delar, dels till vänster<br />

och dels till höger om operanden. Paranteser hanteras i enlighet med aritmetiska<br />

lagarna.<br />

Booleska operanden NOT kommer att hanteras på särskilt sätt. Alla delar kommer<br />

att sökas för jämförelseoperander. Om en jämförelseoperand hittas kommer jämförelsen<br />

att beräknas till ett booleskt värde som monitoreras.<br />

Beijer Electronics AB, MA00411B 4-15


Editorer<br />

Syntax för Transition Condition<br />

Prioritets<br />

-nivå<br />

Operation<br />

Operandsymbol<br />

Kommentar<br />

Vid<br />

monitorering<br />

1 Paranteser ( ) Hanteras<br />

2 Funktionsanrop FUN( ) Ignoreras<br />

3 Exponent * * Ignoreras<br />

4 Negation<br />

Complement<br />

-<br />

NOT<br />

Minus<br />

Ignoreras<br />

Hanteras<br />

5 Multiplikation<br />

Division<br />

Modulo<br />

*<br />

/<br />

MOD<br />

Rest från heltalsdivision<br />

Ignoreras<br />

Ignoreras<br />

Ignoreras<br />

6 Addition<br />

Subtraktion<br />

+<br />

-<br />

Binärt minus<br />

Ignoreras<br />

Ignoreras<br />

7 Jämförelse , =<br />

Beräknas<br />

8 Lika med<br />

Olika med<br />

=<br />

< ><br />

Beräknas<br />

Beräknas<br />

9 Logisk AND AND, & Separator<br />

10 Logisk Exclusive OR XOR Separator<br />

11 Logisk OR OR Separator<br />

4-16 Beijer Electronics AB, MA00411B


Editorer<br />

4.4.1 Programexempel - SFC<br />

Exempel på IEC Sekvensdiagram<br />

Beijer Electronics AB, MA00411B 4-17


Editorer<br />

4.4.2 Sekvenskontroll i MELSEC Q och QnA<br />

Kontrollblock i SFC editorn<br />

För QnA(S)- och Q-serierna finns kontrollblock vilket gör det möjligt att initiera,<br />

starta, stoppa och pausa sekvenssteg separat för varje sekvensprogram.<br />

Funktionerna är SFC_STOP, SFC_PAUSE, SFC_START och SFC_CTRL samt indikeringsblocken<br />

SFC_PAUSED och SFC_STOPPED.<br />

SFC_PAUSE<br />

Om ingången EN är ettställd kommer den programdel vars namn angetts vid<br />

SFC_name att pausa. Programdelens namn skrivs inom citationstecken “ ”.<br />

Om ingångsparametern OUT_mode är ettställd, kommer utgångarna i sekvensen att<br />

bibehålla sin status.<br />

Om ingångsparametern OUT_mode är nollställd stängs utgångarna av.<br />

Detta sker genom att OUT_mode påverkar specialminnescell SM325 som hanteras<br />

när SFC_PAUSE är aktiv, dvs SM325:s status bestämmer hur utgångarna skall hanteras<br />

vid paus.<br />

För att undvika påverkan av andra SFC_PAUSE funktioner med annan OUT_mode<br />

inställning använder blocket en Pause-is-Currently-Executed-Flag för att under ett<br />

programvarv pausa alla programdelar med samma OUT_mode inställning. Vid nästa<br />

programvarv kommer andra programdelar av motsatta OUT_mode inställning att<br />

påverkas. Använd därför inte pulsoperander till EN och OUT_mode för blocket<br />

SFC_PAUSE.<br />

SFC_PAUSED<br />

Status för en given programdel är tilldelad utgångsparametern Paused.<br />

Om programdelen är pausad, är utgångsparametern Paused ettställd. Om programdelen<br />

inte är pausad, är utgångsparametern Paused nollställd.<br />

4-18 Beijer Electronics AB, MA00411B


Editorer<br />

SFC_START<br />

Med funktionen SFC_START startas en pausad eller en stoppad programdel.<br />

Step_name används inte för pausad programdel, den fortsätter alltid där den pausades.<br />

Om ett stegnamn anges på ingång Step_name, startar programdelen på angivet steg.<br />

Om flera steg skall aktiveras, används flera SFC_START funktioner.<br />

Anges inget stegnamn mellan citationstecknen “ ” kommer en pausad programdel att<br />

fortsätta i samma steg, medan en stoppad programdel börjar om i startsteget.<br />

Observera!<br />

SFC_START bör alltid ligga före SFC_STOP i programmet<br />

SFC_START och SFC_STOP skall inte exekveras samma programvarv.<br />

SFC_STOP<br />

Med funktionen SFC_STOP stoppas den angivna programdelen. Alla stegen återställs<br />

och utgångarna nollställs. SFC_STOP påverkar utgångar som används med instruktionen<br />

OUT genom att exekvera dessa när programdelen stoppats.<br />

Beijer Electronics AB, MA00411B 4-19


Editorer<br />

SFC_STOPPED<br />

Med funktionen SFC_STOPPED, för en given programdel tilldelas status för utgångsparametern<br />

Stopped. Utgångsparametern Stopped är ettställd när programdelen<br />

är stoppad. Utgångsparametern Stopped är nollställd när programdelen<br />

exekverar.<br />

SFC_CTRL<br />

Funktionen SFC_CTRL aktiveras via EN ingången.<br />

Är EN ettställd, kan programdelen påverkas av SFC_CTRL-funktionen.<br />

Är EN nollställd påverkas inte programdelen.<br />

Så länge SFC_ON är ettställd exekveras den angivna programdelen.<br />

Om SFC_ON är nollställd pausar programdelen.<br />

Status på utgångarna aktiverade i programdelen beror på ingångsparametern<br />

OUT_mode vid steget som exekverats när programdelen kommer att pausas. Om ingångsparametern<br />

OUT_mode är ettställd kommer utgångarna i sekvensen att behålla<br />

sin status. Om ingångsparametern OUT_mode är nollställd stängs utgångarna av.<br />

Om SFC_INI är ettställd kommer den angivna programdelen att stoppas. Alla stegen<br />

kommer att återställas och alla utgångarna nollställas vid exekveringen av steget när<br />

programdelen stoppas. SFC_INI skall vara aktiv minst 2 programvarv.<br />

När SFC_INI är nollställd igen och SFC_ON är ettställd, startar programdelen med<br />

första steget.<br />

Om både SFC_ON och SFC_INI är aktiva, pausar programdelen och återgår till första<br />

steget.<br />

SFC_CTRL kan användas inom en programdel som redan kontrolleras av<br />

SFC_CTRL. I detta fall exekveras endast SFC_CTRL när aktivt sekvenssteg innehåller<br />

en action som innefattar SFC_CTRL. När programdelen pausas eller återställs<br />

måste SFC_CTRL startas utanför programdelen.<br />

4-20 Beijer Electronics AB, MA00411B


4.4.3 Sekvenskontroll i MELSEC FX<br />

Emergency off<br />

Med FX finns möjlighet att avbryta sekvensen vid exempelvis ett nödstopp genom<br />

att aktivera en global variabel med den exakta kommentaren !RESET!. Flaggan skall<br />

finnas deklarerad i GVL-listan och inkopierad i den lokala headern för den sekvens<br />

som skall återställas.<br />

Editorer<br />

Class Identifier Type Inital Comment<br />

VAR_EXTERNAL EMERGENCY_OFF BOOL FALSE !RESET!<br />

Då flaggan aktiveras, från någon annan POU eller extern enhet som t ex en operatörsterminal,<br />

kommer alla stegflaggor i sekvensen att återställas och därefter sätts<br />

startsteget aktivt. På detta sätt kan man återställa en eller flera sekvenser med samma<br />

flagga.<br />

Utan hjälp av reset-flagga kommer FX-systemet att efter en normal STOP/RUN<br />

aktivera initieringssteget samt det sist aktiverade steget. Lägg in reset vid First Scan<br />

(M8002) för att undvika dessa problem.<br />

4.4.4 Sekvenskontroll i MELSEC A<br />

Det går normalt ej att med automatik avbryta en sekvens vid t ex ett nödstopp. Men<br />

viss möjlighet finns att kontrollera med specialminnescellerna M9101 och M9102.<br />

AnN/AnS<br />

Övergångsvillkor, s k Transitions, bör skrivas i MELSEC instruktionslista. Kompilatorn<br />

kan vid användandet av andra editorer generera dubbla OUT-instruktioner vid<br />

komplexa uttryck.<br />

Då kommer inte denna övergång att fungera alls!<br />

A-system<br />

För A-systemen skapas ett mikrodatorprogram (min. 4kbyte).<br />

Man kan styra med en specialminnescell om sekvensen skall starta om i startsteget<br />

vid t ex spänningsavbrott (M9102=OFF) eller om den skall starta om i det senast aktiva<br />

sekvenssteget (M9102=ON).<br />

För sekvenser skrivna i SFC-editorn för A-systemen gäller att man bara kan återställa<br />

samtliga sekvenser genom att använda denna metod. Om man vill återställa sekvenser<br />

individuellt så kan man skapa ett ELLER-villkor i övergångsvillkoren som gör att<br />

man “trillar” igenom alla sekvenser och hamnar i startsteget.<br />

Beijer Electronics AB, MA00411B 4-21


Editorer<br />

För MM+ v2.3x och senare samt för GXIEC, styrs återställningen av en parameter<br />

“GenerateSfcStartupCode” vilken skall finnas med i initieringsfilen mmp600.ini (se<br />

Windows katalogen).<br />

[SFC]<br />

GenerateSfcStartupCode=TRUE<br />

Vid TRUE lägger GXIEC själv in koden LD M9039, OUT M9101 i programmet.<br />

Vid återställning av sekvens genom M9101 kontrolleras också om initieringssteget eller<br />

tidigare aktivt steg skall aktiveras beroende på minnescell M9102 status. Om parametern<br />

saknas i mmp600.ini kommer GXIEC ändå automatiskt att lägga till<br />

koden LD M9039, OUT M9101 vid kompilering.<br />

Vill man själv ha möjlighet att kontrollera när återställning skall göras genom att aktivera<br />

M9101 måste GenerateSfcStartupCode=TRUE<br />

ändras till GenerateSfcStartupCode=FALSE.<br />

Observera!<br />

För sekvenser skrivna i SFC-editorn gäller att man bara kan återställa samtliga sekvenser<br />

genom att använda denna metod. Om man vill återställa en sekvens individuellt så<br />

måste man skapa ELLER-villkor i övergångsvillkoren och tvinga sekvensen till t ex<br />

startsteget.<br />

4.4.5 Sekvenskontroll i MELSEC Q<br />

När SFC programmet startar, får specialminnescell SM321 status aktiv (1=SFC program<br />

start). Sekvensprogrammet ställer sig också i initieringssteget.<br />

Om programmet stannar i ett visst steg kan man göra reset på sekvenserna med hjälp<br />

av att återställa SM321 (0=SFC program stop) och därefter aktivera den igen. SFCprogrammet<br />

kommer att gå till initieringssteget och börja om från början.<br />

4-22 Beijer Electronics AB, MA00411B


Editorer<br />

4.5 Strukturerad text (ST)<br />

ST-editorn är en texteditor, dvs man kan skriva programmet i en Windowseditor eller<br />

MS Word och sedan kopiera in programmet via Windows klippbord och tvärtom.<br />

ST liknar programmeringsspråken för PC (t ex PASCAL) och stödjer matematiska<br />

funktioner och programslingor på ett effektivt sätt.<br />

ST följer IEC 61131-3 standard.<br />

ST är tillgängligt fr o m MELSEC MEDOC plus 2.50 och GX IEC Developer 4.00.<br />

Network<br />

I ST-editorn kan man bara ha ett nätverk per programdel (POU).<br />

Instruktioner<br />

Ett uttryck i ST är sammansatt av instruktioner och operander, tillgängliga instruktioner<br />

är samlade i tabellen nedan i prioriteringsordning.<br />

Observera!<br />

Med hjälp av [Shift] + [F2] får man upp en lista på tillgängliga operatorer, funktioner<br />

och funktionsblock.<br />

[Ctrl] + [F1] ger information om syntax för FUN-/FB-anrop<br />

Beijer Electronics AB, MA00411B 4-23


Editorer<br />

Färgkodat PLC-program<br />

Under programmering färgkodas vissa ord i PLC-programmet. Nyckelord, operander,<br />

konstanter och variabler ges individuella färger så att de enkelt kan hittas i koden.<br />

Färgerna kan justeras under menyn View/Colors.<br />

Nyckelord AND, BY, CASE, DO, ELSE, ELSIF, END_CASE, END_FOR, END_IF,<br />

END_REPEAT, END_WHILE, EXIT, FALSE, FOR, IF, MOD, NOT, OF, OR,<br />

REPEAT, RETURN, THEN, TO, TRUE, UNTIL, WHILE, XOR<br />

Operander -, &, *, **, /, +, =, ;<br />

Kommentarer (*kommentarer*)<br />

Konstanter Decimala konstanter (400000(IEC), K400000 (MELSEC))<br />

Hexadecimala konstanter (16#FFFF (IEC), HFFFF (MELSEC))<br />

Oktala konstanter (8#0745 (IEC))<br />

Binära konstanter (2#01010101 (IEC))<br />

Flyttalskonstanter (REAL) (1.2E-10 (IEC))<br />

Tidskonstanter (TIME) (T#3h10s3ms (IEC))<br />

Strängkonstanter (‘abc’ (IEC), “abc” (MELSEC))<br />

Variabler Alla variabler som deklarerats i programdelens header.<br />

Automatiskt indrag<br />

När man trycker Enter i ST-editorn läggs ett tabstopp till automatiskt om det fanns<br />

ett tabstopp på raden innan.<br />

Antalet tabstopp ökar med ett automatiskt vid instruktioner vars struktur förväntar<br />

detta, t ex efter FOR-instruktionen. Antalet tabstopp minskar med ett automatiskt<br />

vid instruktioner vars struktur förväntar detta, t ex efter END_FOR-instruktionen.<br />

Funktionen kan stängas av i menyn Extras/Options/ST Editor och valet Auto<br />

indentation.<br />

Automatiskt benämningsförslag<br />

GXIEC jämför automatiskt inmatade variabelnamn mot innehållet i programdelens<br />

header och föreslår benämningar som överensstämmer. Jämförelsen tar ej hänsyn till<br />

stora och små bokstäver.<br />

Om det bara finns en benämning som passar väljs den automatiskt in i programmet.<br />

I annat fall kommer en vallista upp där programmeraren kan välja önskad benämning.<br />

Funktionen kan stängas av i menyn Extras/Options/ST Editor, och valet Identifier<br />

proposal.<br />

4-24 Beijer Electronics AB, MA00411B


Delat fönster i monitoreringsläge<br />

Med funktionen Online/Start Monitoring/Split Window delas programmeringsfönstret<br />

vertikalt. Till vänster visas programkoden, och till höger visas status på benämningarna,<br />

rad för rad. Det är möjligt att dela fönstret även horisontellt. Placera<br />

musmarkören i underkanten av fönstret där den byter utseende till en vertikal dubbelpil.<br />

Tryck ner vänster musknapp och drag upp till önskad storlek.<br />

Editorer<br />

I fönsterdelen till vänster monitoreras booleska variabler. I fönsterdelen till höger monitoreras<br />

analoga variabler (t ex INT, REAL)<br />

Observera!<br />

Aktivera gärna Tooltip-fuktionen som visar valbar variabelinformation från GVL-listan<br />

samt monitorerat värde på utpekad variabel.<br />

Beijer Electronics AB, MA00411B 4-25


Editorer<br />

Operatorerna i rangordning<br />

Instruktion Operator Prioritet<br />

Parentes () Högst<br />

Funktion<br />

Exempel:<br />

Funktion(variabel/variabler)<br />

LN(A), MAX(X,Y), etc.<br />

Negation -<br />

Invers (Komplement) NOT<br />

Exponent **<br />

Multiplikation *<br />

Division /<br />

Rest vid division<br />

MOD<br />

Addition +<br />

Subtraktion -<br />

Jämförelser , =<br />

Lika med =<br />

Skiljt ifrån <br />

Booleskt OCH<br />

& (AND)<br />

Booleskt Exklusivt ELLER ^ (XOR)<br />

Booleskt ELLER<br />

+ (OR)<br />

Tilldelning := Lägst<br />

4-26 Beijer Electronics AB, MA00411B


Editorer<br />

Nyckelord och funktionsanrop<br />

Instruktion Användning Exempel<br />

Tilldelning<br />

Funktioner<br />

Funktionsblocksanrop och<br />

användande av Funktioner<br />

Return<br />

IF<br />

CASE<br />

FOR<br />

För att tilldela variabler<br />

ett värde<br />

För att använda funktioner<br />

med eller utan<br />

EN/ENO<br />

För att anropa funktionsblock<br />

(Funktionsblocket<br />

deklareras i<br />

headern)<br />

För att hoppa ur funktion,<br />

funktionsblock<br />

eller program<br />

För att utföra en uppgift<br />

om ett booleskt<br />

uttryck är uppfyllt<br />

För att utföra olika<br />

uppgifter beroende på<br />

värdet hos en heltalsvariabel<br />

För att utföra en uppgift<br />

ett förutbestämt<br />

antal gånger<br />

A := B;<br />

CV := CV+1;<br />

C := sin(X);<br />

D2 := BOOL_TO_INT(X1);<br />

BOOL_TO_INT_E(TRUE, X2, D3)<br />

COUNT(CU:=X1, RESET:=X2,<br />

PV:=K5);<br />

Y11:=COUNT.Q;<br />

RETURN;<br />

IF (X1 = TRUE) THEN<br />

Y11 := TRUE;<br />

ELSE<br />

Y11 := FALSE;<br />

END_IF;<br />

CASE HASTIGHET OF<br />

1: GAS := 25;<br />

2: GAS := 50;<br />

3: GAS := 75;<br />

4: GAS := 100;<br />

ELSE<br />

GAS := 0;<br />

END_CASE;<br />

FOR I := 1 TO 100 DO<br />

IF KOLL[I] = 0 THEN<br />

STATUS := FALSE;<br />

ELSE<br />

STATUS := TRUE;<br />

END_IF;<br />

END_FOR;<br />

--------------------<br />

FOR I:=1 TO 10 BY 2 D0<br />

(BY n) används för att ange<br />

högre stegräkning än 1.<br />

Beijer Electronics AB, MA00411B 4-27


Editorer<br />

WHILE<br />

REPEAT<br />

Instruktion Användning Exempel<br />

För att utföra en uppgift<br />

tills ett villkor är<br />

uppfyllt<br />

Möjlighet att slingan ej<br />

genomlöps<br />

För att utföra en uppgift<br />

tills ett villkor är<br />

uppfyllt<br />

Slingan genomlöps<br />

minst en gång<br />

EXIT För att hoppa ur loopar EXIT;<br />

J := 1;<br />

WHILE J


Funktionsblock<br />

Vid användning av funktionsblock deklareras instansnamnet för blocket först i headern<br />

(för en lokal instans) eller i globala variabellistan (för en global instans).<br />

Editorer<br />

Variabeln används sedan vid anrop av blocket i programkoden, t ex:<br />

CanAreaAndVolume(Height := CanHeight, Radius := CanRadius);<br />

Aktivering med utgång från blocket gör genom tilldelning t ex<br />

CanArea := CanAreaAndVolume.Area;<br />

CanVolume := CanAreaAndVolume.Volume;<br />

Det går även att aktivera utgångar genom att tilldela status i funktionsblocksanropet<br />

på följande sätt.<br />

Detta sätt att tilldela utgångsstatus överensstämmer inte med IEC-standarden, och<br />

för att inte erhålla ett felmeddelande vid kompilering måste användaren kryssa för Allow<br />

VAR_OUTPUT in call of FB (IL and ST) under menyn Extras/Options/Compiler.<br />

Beijer Electronics AB, MA00411B 4-29


Editorer<br />

Radkommentarer<br />

Radkommentarer i ST skrivs som (*egen kommentar*). Man kan kommentera över<br />

flera rader och även kommentera bort programkod som exemplet nedan visar.<br />

Upprepningssatser<br />

FOR- WHILE- och REPEAT-satser är upprepningssatser, FOR-satsen används när<br />

man i förväg vet hur många gånger funktionen skall upprepas. Annars används<br />

WHILE- och REPEAT-satserna.<br />

Notera, dessa instruktioner kan drastiskt påverka den totala cykeltiden i programmet<br />

(scan time) och får inte överstiga PLC-systemets maximala scantid (dvs Watchdogtiden).<br />

Kontrollera att PLC-programmet inte hamnar i en oändlig loop.<br />

4-30 Beijer Electronics AB, MA00411B


Urvalssatser<br />

IF- och CASE-satser används när man vill att ett villkor skall styra utförandet av en<br />

funktion. IF-satsen styrs av ett booleskt uttryck, medan CASE-satsen styrs av värdet<br />

hos en integervariabel. Se exempel nedan.<br />

Editorer<br />

Beijer Electronics AB, MA00411B 4-31


Editorer<br />

EXIT<br />

EXIT-funktionen används för att avbryta upprepningar innan avslutningsvillkoret är<br />

uppfyllt. I följande exempel ökar WORDs pekare till ascii-texten KEY hittas. Då avbryts<br />

slingan.<br />

4.5.1 Programexempel - ST<br />

Exempel på IEC Strukturerad text<br />

Observera!<br />

Läs mer om ST-editorn i onlinehjälpen för GXIEC.<br />

4-32 Beijer Electronics AB, MA00411B


Editorer<br />

4.6 Instruktionslista (IL)<br />

Detta är en texteditor, dvs man kan t ex skriva programmet i en Windows-editor eller<br />

MS Word och sedan kopiera in programmet via Windows klippbord och tvärtom.<br />

Network<br />

Det mörka fältet längst till vänster indikerar det som kallas ett Network (nätverk). I<br />

denna editor kan hela programmet skrivas i ett nätverk. Ett nytt nätverk krävs endast<br />

vid t ex ett hopp i programmet.<br />

Label<br />

Ett nätverk kan förses med en Label som man sedan refererar till vid hopp i programmet.<br />

Dubbelklicka på ett nätverk och skriv in labelnamnet. Det får maximalt vara sju<br />

tecken och skall avslutas med kolon.<br />

MELSEC Network<br />

Var som helst kan ett MELSEC Network läggas in i programmet för att lösa t ex problem<br />

med indexering eller något liknande.<br />

Välj menyn Edit/New Network/MELSEC before.<br />

1:a Kolumnen<br />

Här skriver man instruktionen som skall utföras. Med [F2] får man upp en lista med<br />

tillåtna instruktioner.<br />

Beijer Electronics AB, MA00411B 4-33


Editorer<br />

2:a Kolumnen<br />

I denna kolumn fyller man i operanden (I/O-adressen). Med [F2] får man upp en<br />

lista på aktuella benämningar.<br />

3:e Kolumnen<br />

I programmet kan kommentarer skrivas in, antingen i den tredje kolumnen eller på<br />

en ny rad. De skall börja med (* och sluta med *).<br />

Använd [Tab]-tangenten för att hoppa mellan kolumnerna.<br />

Observera!<br />

Instruktioner skrivna i IEC IL respektive MELSEC IL skiljer vad det gäller operandernas<br />

ordning dvs syntax. Se bild nedan.<br />

Skriv in namnet på funktionen eller funktionsblocket och tryck snabbval [Ctrl] + [F1] då<br />

får man hjälp med syntaxen på operanderna (endast i IEC IL). Se bild nedan.<br />

4-34 Beijer Electronics AB, MA00411B


Editorer<br />

4.6.1 Programexempel - IL<br />

Ett exempel med både MELSEC och IEC instruktionslista<br />

Beijer Electronics AB, MA00411B 4-35


Editorer<br />

4.7 MELSEC-instruktionslista (MELSEC_IL)<br />

Detta är en texteditor, dvs man kan t ex skriva programmet i en Windows-editor eller<br />

MS Word och sedan kopiera in programmet via Windows klippbord.<br />

Observera!<br />

Endast MELSEC-instruktioner är tillåtna i denna editor.<br />

Network<br />

Fältet till vänster, markerat med MELSEC, indikerar det som kallas Network (nätverk).<br />

I denna editor kan hela programmet skrivas i ett nätverk. Ett nytt nätverk krävs<br />

endast för subprogram eller vid hopp i programmet.<br />

Label<br />

Ett nätverk kan förses med en Label som man sedan refererar till vid hopp i programmet.<br />

Dubbelklicka på ett nätverk och skriv in Labelnamnet. Det får maximalt vara<br />

sju tecken och skall avslutas med kolon.<br />

Editorn<br />

Editorn är nästan identisk med editorn i GX Developer. Det som främst skiljer dem<br />

åt är att i GXIEC visas inga stegnummer i vänsterkanten av programmet. Med [F2]<br />

tangenten får man upp tillåtna instruktioner.<br />

4-36 Beijer Electronics AB, MA00411B


Editorer<br />

4.7.1 Programexempel - MELSEC IL<br />

Ett exempel på MELSEC IL editorn<br />

Beijer Electronics AB, MA00411B 4-37


Editorer<br />

4-38 Beijer Electronics AB, MA00411B


5 Funktioner och funktionsblock<br />

Funktioner och funktionsblock<br />

Genom att använda funktioner och funktionsblock förenklas programmeringen och<br />

det blir enklare att få ett strukturerat och lättförståeligt PLC-program.<br />

Dela in programdelen i olika avsnitt med hjälp av funktioner och funktionsblock, det<br />

blir lättare att underhålla och förenklar återanvändandet av programkoden.<br />

5.1 IEC-instruktioner<br />

Genom att i första hand använda IEC-instruktioner skapas PLC-program som följer<br />

IEC 61131-standarden. Det går också lätt att flytta program mellan PLC-system. Ett<br />

program skrivet för MELSEC FX kan enkelt göras om och laddas ner i en<br />

MELSEC Q.<br />

IEC-instruktioner väljs via dialogrutan nedan. Markera Operators, Functions eller<br />

Function Blocks under Operator Type samt Standard_Lib i Libraries.<br />

IEC-instruktioner använder samma funktion eller funktionsblock oberoende av vilken<br />

typ operanderna är av.<br />

Exempel: En 16/32-bits eller flyttalsaddition använder samma ADD-block.<br />

16-bitarsaddition 32-bitarsaddition Flyttalsaddition<br />

Beijer Electronics AB, MA00411B 5-1


Funktioner och funktionsblock<br />

IEC-räknare och tidskretsar, exempelvis<br />

– CTU/CTD/CTUD Upp/nerräknare<br />

– TP/TON/TOF Puls/till- och frånslagsfördröjda timers<br />

Exempel<br />

TON är en IEC-timer för tillslagsfördröjning:<br />

– M17 ettställs när X0 har varit ettställd i 43 min och 5,2 sek, och nollställs när X0<br />

nollställs.<br />

Förklaring<br />

Blocket belägger automatiskt en ledig timeradress. Kodningen av blocket skapar en<br />

subrutin och tar därför en pekaradress i anspråk.<br />

Variabel Typ Funktion<br />

TIM_7 TON Timerns instansnamn, deklareras som variabel<br />

i headern.<br />

IN BOOL Startar timern<br />

PT TIME Förvalsvärde<br />

Q BOOL Utgång. Ettställs när ET = PT<br />

ET TIME Visar löpt tid. TO7 är en variabel av typen<br />

time<br />

5-2 Beijer Electronics AB, MA00411B


5.2 MELSEC-instruktioner<br />

Funktioner och funktionsblock<br />

För vissa funktioner måste MELSEC-instruktioner användas, t ex finns ingen IECinstruktion<br />

för att läsa information ur en funktionsmodul.<br />

MELSEC-instruktioner väljs via dialogrutan nedan. Markera Functions eller Function<br />

Blocks under Operator Types samt Manufacturer_Lib i Libraries.<br />

Funktionsmodulsinstruktioner<br />

– FROM_M - läs data från funktionsmodul (alla MELSEC PLC-typer)<br />

– TO_M - skriv data till funktionsmodul (alla MELSEC PLC-typer)<br />

Exempel<br />

FROM_M läser 2 register ur en funktionsmodul på adressplats 2 (16#2), buffertminne<br />

9 och 10. Värdena skickas direkt in i funktionsmodulen på adressplats 4 (16#4)<br />

buffertminne 1 och 2.<br />

Beijer Electronics AB, MA00411B 5-3


Funktioner och funktionsblock<br />

5.3 Räknare<br />

5.3.1 Funktion och användningsområde<br />

Det finns ett antal funktionsblock och funktioner i GXIEC för räknare. Här nedan<br />

beskrivs de räknare som finns tillgängliga och hur de används.<br />

Följande funktionsblock finns för räknare<br />

Funktionsblock Typ Kommentar<br />

COUNTER_FB_M<br />

Uppräknare<br />

CTD Nedräknare IEC-räknare, skapar subrutin<br />

CTD_E Nedräknare IEC-räknare, skapar subrutin<br />

CTU Uppräknare IEC-räknare, skapar subrutin<br />

CTU_E Uppräknare IEC-räknare, skapar subrutin<br />

CTUD Upp-/ Nedräknare IEC-räknare, skapar subrutin<br />

CTUD_E Upp-/Nedräknare IEC-räknare, skapar subrutin<br />

Blocknamn som slutar på _E har en separat enable ingång. Enable måste vara aktiv<br />

för att ingångar till blocket ska läsas av.<br />

Följande funktioner finns för räknare<br />

Funktion Typ Kommentar<br />

COUNTER_M Uppräknare Du väljer räknaradress själv, 16 bitars<br />

räknare.<br />

COUNTER32_M<br />

Upp-/Nedräknare<br />

Endast FX-familjen 32 bitars räknare, du<br />

väljer räknaradress själv.<br />

Observera!<br />

I system som saknar eller har få pekare (t ex FX1N) är det lämpligt att använda räknarblock<br />

som inte skapar subrutiner.<br />

5-4 Beijer Electronics AB, MA00411B


Funktioner och funktionsblock<br />

Exempel 1<br />

M1 ettställs när X0 har ettställts 3 gånger. Räknaren och M1 nollställs när X4 ettställs,<br />

genom att instansen för räknaren återställs.<br />

Förklaring till exempel 1<br />

Variabel Typ Funktion<br />

Counter1 COUNTER_FB_M Räknarens instans, deklareras som variabel<br />

i headern. Blocket belägger automatiskt<br />

en ledig räknaradress.<br />

Coil BOOL Räknaringång. Räknar upp på positiv<br />

flank.<br />

Preset INT Förvalsvärde<br />

ValueIn INT Offset. Om man vill att räknaren ska<br />

börja räkna från ett högre värde än noll.<br />

Kan utelämnas.<br />

ValueOut INT Aktuellt räknarvärde. Kan utelämnas.<br />

Status BOOL Utgång. Ettställs när ValueOut = Preset.<br />

Observera!<br />

Instans av ett block kan jämföras med en kopia av koden bakom blocket, för mer information<br />

om instansnamn, se sidan 5-24.<br />

Beijer Electronics AB, MA00411B 5-5


Funktioner och funktionsblock<br />

Exempel 2<br />

M2 ettställs när X1 har ettställts 3 gånger. Räknaren och M2 nollställs när X4 ettställs.<br />

Med denna funktion måste man själv välja adress till räknaren.<br />

Adresser: CNnnn = aktuellt värde, CCnnn = ingång, CSnnn = utgång<br />

Förklaring till exempel 2<br />

Variabel Typ Funktion<br />

EN BOOL Räknaringång. Räknar upp på positiv flank.<br />

CCoil BOOL Räknarens adress<br />

CValue INT Förvalsvärde<br />

ENO BOOL Visar status på EN<br />

5-6 Beijer Electronics AB, MA00411B


Funktioner och funktionsblock<br />

Exempel 3<br />

M7 ettställs när räknarvärdet (CV) är >=3. M27 ettställs när räknarvärdet är = PV<br />

QD BOOL Utgång räkning nedåt, aktiv då CV


Funktioner och funktionsblock<br />

5.4 Tidskretsar<br />

5.4.1 Funktion och användningsområde<br />

Det finns ett antal funktionsblock och funktioner i GXIEC för tillslagsfördröjning,<br />

frånslagsfördröjning och pulser. Här nedan beskrivs de funktioner som finns tillgängliga<br />

och hur de används.<br />

5.4.2 Systemvariabler<br />

GXIEC använder sig av s k systemvariabler då PLC-programmet skapas (kompileras).<br />

Systemvariablerna är vanliga minnesceller och dataregister som reserveras av<br />

GXIEC. Dessa adresser får endast anropas som lokala variabler. Grundinställningen<br />

för systemvariabler täcker normala behov av minnesceller, dataregister, tidskretsar<br />

osv, men om man vill använda ackumulerande tidskretsar (retentive timer) måste<br />

dessa definieras.<br />

Exempel för inställning av ackumulerande tidskretsar i A1S CPU<br />

Inställning görs i två olika menyer:<br />

– Extras/Options/System Variables<br />

– Parameters/PLC i navigatorn<br />

1. Ange ny startadress för Retentive timer i fliken Device i PLC-parametrarna<br />

2. Tryck på knappen Check och kolumnerna Points och End justeras, dessutom<br />

kontrolleras att alla angivna värden är korrekta.<br />

5-8 Beijer Electronics AB, MA00411B


Funktioner och funktionsblock<br />

3. Stäng dialogrutan med End.<br />

4. Öppna menyn för System variabler och justera inställningen för 100ms och<br />

Retentive timers. Avsluta med OK.<br />

1<br />

2<br />

3<br />

Beijer Electronics AB, MA00411B 5-9


Funktioner och funktionsblock<br />

5.4.3 Tillslagsfördröjning<br />

Följande funktionsblock finns för tillslagsfördröjning:<br />

Funktionsblock Typ Kommentar<br />

TIMER_10_FB_M 10 ms-timer (1)<br />

TIMER_100_FB_M 100 ms-timer (1)<br />

TIMER_CONT_FB_M 100 ms-ackumulerande<br />

timer (1)<br />

TIMER_HIGH_FB_M High Speed Timer Endast QnA/Q, justerbar tidbas<br />

TIMER_LOW_FB_M Low Speed Timer Endast QnA/Q, justerbar tidbas<br />

TON<br />

100 ms- (2) eller IEC-timer, skapar subrutin<br />

Low Speed Timer (4)<br />

TON_E<br />

100 ms- (2) eller IEC-timer, skapar subrutin<br />

Low Speed Timer (4)<br />

TON_10 10 ms-timer (3) Ej QnA/Q.<br />

IEC-timer, skapar subrutin<br />

TON_10_E 10 ms-timer (3) Ej QnA/Q.<br />

IEC-timer, skapar subrutin<br />

TON_HIGH High Speed Timer (4) Endast QnA/Q, justerbar tidbas.<br />

IEC-timer, skapar subrutin<br />

TON_HIGH_E High Speed Timer (4) Endast QnA/Q, justerbar tidbas.<br />

IEC-timer, skapar subrutin<br />

Blocknamn som slutar på _E har en enable ingång. Enable måste vara aktiv för att<br />

blockets ingångar skall läsas av.<br />

1. Max förval för en 10 ms-timer är 32 767 dvs 327,67 s (5m 27s 670ms). Max förval<br />

för en 100 ms-timer är 32 767 dvs 3276,7 s (54m 36s 700ms).<br />

2. Max förval för en 100 ms-timer är 54m 36s 700ms.<br />

3. Max tid för en 10 ms-timer är 5m 27s 670ms.<br />

4. Max tid beror på inställd tidbas för timers i QnA/Q. Default är Slow=100 ms,<br />

Fast=10 ms.<br />

GXIEC ger en varning vid kompilering om förvalsvärdet överskrids.<br />

Observera!<br />

I system som saknar eller har få pekare (t ex FX1N) är det lämpligt att använda timerblock<br />

som inte skapar subrutiner.<br />

5-10 Beijer Electronics AB, MA00411B


Funktioner och funktionsblock<br />

Följande funktioner för tillslagsfördröjning finns:<br />

Funktion Typ Kommentar<br />

TIMER_M 10 eller 100-ms timer Du väljer timeradress själv<br />

TIMER_H_M High Speed Timer Endast QnA/Q, justerbar tidbas<br />

TIMER_VALUE_M Laddar timer-börvärde Du väljer timeradress själv<br />

Endast extended timer<br />

TIMER_START_M Startar timer Du väljer timeradress själv<br />

Endast extended timer<br />

Exempel 1<br />

M11 ettställs när X0 har varit ettställd i 1 sekund, och nollställs när X0 faller.<br />

Förklaring till exempel 1<br />

Variabel Typ Funktion<br />

TIM1 TIMER_10_FB_M Timerns instans, deklareras som variabel<br />

i headern eller GVL. Blocket<br />

belägger automatiskt en ledig timeradress.<br />

Coil BOOL Startar timern<br />

Preset INT Förvalsvärde. 100 x10 ms i detta<br />

exempel.<br />

ValueIn INT Offset. Om D0 = 20 ger 20 x10 ms<br />

kortare fördröjning. Kan utelämnas.<br />

ValueOut INT Timervärde (löpt tid). Kan utelämnas.<br />

Status BOOL Utgång.<br />

Ettställs när ValueOut = Preset<br />

Observera!<br />

Instans av ett block kan jämföras med en kopia av koden bakom blocket, för mer information<br />

se sidan 5-24.<br />

Beijer Electronics AB, MA00411B 5-11


Funktioner och funktionsblock<br />

Exempel 2<br />

M25 ettställs när X0 har varit ettställd i sammanlagt 3,5 sekunder, och nollställs när<br />

X1 ettställs, genom att instansen för timern återställs.<br />

Timerblockets variabler har samma funktion som det i exempel 1.<br />

Exempel 3<br />

M17 ettställs när X0 har varit ettställd i 43 min och 5.2 sek, och nollställs när X0<br />

nollställs.<br />

Förklaring till exempel 3<br />

Variabel Typ Funktion<br />

TIM7 TON Timerns instans, deklareras som variabel<br />

i headern eller GVL. Blocket belägger<br />

automatiskt en ledig timeradress.<br />

IN BOOL Startar timern<br />

PT TIME Förvalsvärde<br />

Q BOOL Utgång. Ettställs när ET = PT<br />

ET TIME Visar löpt tid. TO7 är en variabel av<br />

typen time<br />

5-12 Beijer Electronics AB, MA00411B


Funktioner och funktionsblock<br />

Exempel 4<br />

Förvalsvärde till timer T256 läses in från D25 när X0 ettställs. Timern startar när X1<br />

ettställs.<br />

M40 ettställs efter den tid som angetts i D25, och nollställs när X1 nollställs.<br />

Adresser: TNnnn = aktuellt värde, TCnnn = ingång, TSnnn = utgång<br />

OBS! Endast med utökade tidskretsar (extended timers).<br />

Förklaring till exempel 4<br />

Variabel Typ Funktion<br />

EN BOOL Startar timern<br />

TCoil BOOL Adress till timern<br />

TValue INT Förvalsvärde<br />

ENO BOOL Visar status på enable<br />

Beijer Electronics AB, MA00411B 5-13


Funktioner och funktionsblock<br />

5.4.4 Frånslagsfördröjning<br />

Följande funktionsblock för frånslagsfördröjning finns:<br />

Funktionsblock Typ Kommentar<br />

TOF<br />

100 ms- (1) eller<br />

TOF_E<br />

Low Speed Timer (3)<br />

TOF_10 10 ms-timer (2) Ej QnA/Q<br />

TOF_10_E<br />

TOF_HIGH High Speed Timer (3) Endast QnA/Q, justerbar tidbas<br />

TOF_HIGH_E<br />

Blocknamn som slutar på _E har en enable ingång. Enable måste vara aktiv för att<br />

ingångar till blocket ska läsas av.<br />

1. Max tid för en 100 ms-timer är 54m36s700ms.<br />

2. Max tid för en 10 ms-timer är 5m27s670ms.<br />

3. Max tid beror på inställd tidbas för timers i QnA/Q. Default är Slow=100 ms,<br />

Fast=10 ms.<br />

GXIEC ger en varning vid kompilering om förvalsvärdet överskrids.<br />

Exempel 1<br />

M14 ettställs när X0 ettställs, och nollställs när X0 har varit nollställd i 3 min.<br />

Förklaring till exempel 1<br />

Variabel Typ Funktion<br />

TIM4 TOF_HIGH Timerns instans, deklareras som variabel i<br />

headern. Blocket belägger automatiskt en ledig<br />

timer-adress.<br />

IN BOOL Startar timern.<br />

PT TIME Förvalsvärde.<br />

Q BOOL Utgång. Nollställs när ET = PT.<br />

ET TIME Visar löpt tid. TO4 är en variabel av typen<br />

time.<br />

5-14 Beijer Electronics AB, MA00411B


Funktioner och funktionsblock<br />

5.4.5 Pulstimer<br />

Följande funktionsblock för pulstimer finns:<br />

Funktionsblock Typ Kommentar<br />

TOP<br />

100 ms- (1) eller<br />

TOP_E<br />

Low Speed Timer (3)<br />

TOP_10 10 ms-timer (2) Ej QnA/Q<br />

TOP_10_E<br />

TOP_HIGH High Speed Timer (3) Endast QnA/Q, justerbar tidbas<br />

TOP_HIGH_E<br />

Blocknamn som slutar på _E har en enable ingång. Enable måste vara aktiv för att<br />

ingångar till blocket ska läsas av.<br />

1. Max tid för en 100 ms-timer är 54m 36s 700ms.<br />

2. Max tid för en 10 ms-timer är 5m 27s 670ms.<br />

3. Max tid beror på inställd tidbas för timers i QnA/Q. Default är Slow=100 ms,<br />

Fast=10 ms.<br />

GXIEC ger en varning vid kompilering om förvalsvärdet överskrids.<br />

Exempel 1<br />

M21 ettställs när X0 ettställs, och nollställs efter 2 minuter. Om X0 faller fortsätter<br />

timern att räkna.<br />

Förklaring till exempel 1<br />

Variabel Typ Funktion<br />

TIM11 TP Timerns instans, deklareras som variabel i<br />

headern eller GVL. Blocket belägger automatiskt<br />

en ledig timer-adress.<br />

IN BOOL Startar timern<br />

PT TIME Förvalsvärde<br />

Q BOOL Utgång. Nollställs när ET = PT<br />

ET TIME Visar löpt tid. ET11 är en variabel av typen<br />

TIME<br />

Beijer Electronics AB, MA00411B 5-15


Funktioner och funktionsblock<br />

5.5 Skapa egna funktionsblock<br />

När man skapar egna block kan de vara av typen Funktionsblock (FB) eller Funktion<br />

(FUN).<br />

Ett funktionsblock kan ha 0-253 ingångar och utgångar. Resultatet av exekveringen<br />

sparas i en kopia (instans) och dessa värden används vid nästa exekvering av blocket.<br />

Utsignalerna kan alltså variera mellan två exekveringar med samma inparametrar.<br />

Ett funktionsblock kan skrivas i alla IEC-editorer utom SFC<br />

Man skapar lämpligen ett funktionsblock genom att göra om en färdigtestad programdel.<br />

Ta fram inforutan för programdelen. Markera aktuell programdel i navigatorn<br />

och välj Information i menyn Object.<br />

Type<br />

Ändra programtypen från PRG (vanligt program) till FB (funktionsblock).<br />

5-16 Beijer Electronics AB, MA00411B


Funktioner och funktionsblock<br />

Det totala antalet funktionsblock och funktioner begränsas av antalet pekaradresser<br />

i det använda PLC-systemet.<br />

För MELSEC Q och QnA är det 4 096 st, för MELSEC A 254 st, för<br />

MELSEC FX1S/FX 60 st och för MELSEC FXU/FX1N/FX2N 126 st.<br />

Detta kan dock kringgås genom att kryssa i rutan Macrocode. Ingen pekare skapas<br />

när man använder macrokodade funktionsblock. Varje block ligger som en egen kopia<br />

i huvudprogrammet.<br />

Use with EN/ENO<br />

Kryssa i om Enable input/output önskas i blocket. Dvs om funktionen skall exekveras<br />

varje programvarv, eller om den skall ha ett ingångsvillkor.<br />

Class<br />

Då man ändrar programtypen från PRG till FB så dyker det upp flera alternativ i<br />

Headern.<br />

I stället för att bara ha VAR respektive VAR_EXTERNAL att välja på, finns nu även<br />

VAR_INPUT, VAR_OUTPUT samt VAR_IN_OUT.<br />

Exempel<br />

Variablerna Start, Stopp och Gangtid är deklarerade som VAR_INPUT och hamnar<br />

på funktionsblockets vänstra sida som ingångar till blocket. Variabeln Motor är deklarerad<br />

som VAR_OUTPUT och hamnar på funktionsblockets högra sida som en<br />

utgång från blocket. Variabeln GangStopp är en lokal variabel som används internt i<br />

blocket.<br />

Ändra de I/O-adresser som skall vara in- eller utgångar på blocket.<br />

Beijer Electronics AB, MA00411B 5-17


Funktioner och funktionsblock<br />

Identifier<br />

Den benämning som står i detta fält är den text som kommer att visas inuti blocket.<br />

Välj därför ett så beskrivande namn som möjligt.<br />

Variabelbenämningarna kommer att visas i den ordning de är listade i headern då<br />

blocket anropas i någon programeditor.<br />

Observera!<br />

Var försiktig med att sortera i headern till blocket efter funktionsblocket använts i programmet.<br />

Det kan innebära att anslutna in- och utgångar inte längre ger önskad funktion.<br />

För mer information om hur man skapar funktionsblock hänvisas till kapitel 6.7 i<br />

den engelska <strong>referensmanualen</strong> (reference.pdf) som installeras tillsammans med programmeringsverktyget.<br />

5-18 Beijer Electronics AB, MA00411B


5.6 Skapa egna funktioner<br />

Funktioner och funktionsblock<br />

När man skapar egna block kan de vara av typen Funktionsblock (FB) eller Funktion<br />

(FUN).<br />

En funktion kan bara ha en utsignal och har inte något internt minne. Utsignalen<br />

blir alltså densamma mellan två exekveringar med samma inparametrar. Antalet ingångar<br />

kan vara 0-253 st.<br />

En funktion kan skrivas i alla IEC-editorer utom SFC<br />

Ett eget block skapas enklast genom att göra om en avtestad och fungerande programdel.<br />

Nedan finns ett exempel på ett program som gjorts om till en funktion.<br />

Observera!<br />

Utsignalen från en funktion skall vara namnet på programdelen (i exemplet Pt100).<br />

Beijer Electronics AB, MA00411B 5-19


Funktioner och funktionsblock<br />

Ta fram informationsrutan för programdelen. Markera aktuell programdel i navigatorn<br />

och klicka på Information i menyn Object.<br />

Type<br />

Ändra programtypen från PRG (vanligt program) till FUN (funktion). En funktion<br />

tar bara en pekare oavsett hur många gånger den används.<br />

Result Type<br />

Här bestämmer man vilken utgångstyp denna funktion skall ha.<br />

Use with EN/ENO<br />

Kryssa i om Enable input/output önskas i blocket. Dvs om funktionen skall exekveras<br />

varje programvarv, eller om den skall ha ett ingångsvillkor.<br />

5-20 Beijer Electronics AB, MA00411B


Funktioner och funktionsblock<br />

Class<br />

Då man ändrar programtypen från PRG till FUN så ändras alternativen i Headern.<br />

Variablerna kan bara vara av typen VAR, VAR_INPUT eller VAR_CONSTANT. De<br />

som deklareras som VAR_INPUT kommer att bli funktionens ingångar.<br />

Exempel<br />

Variablerna Start, Stopp och Gangtid är deklarerade som VAR_INPUT och hamnar<br />

på funktionsblockets vänstra sida som ingångar till blocket. Resultatet av funktionen<br />

är bestämd till att bli ett heltal (INT)<br />

Identifier<br />

Den benämning som står i detta fält är den text som kommer att visas inuti blocket.<br />

Välj därför ett så beskrivande namn som möjligt.<br />

Variabelbenämningarna kommer att visas i den ordning de är listade i headern då<br />

funktionen anropas i någon programeditor.<br />

Observera!<br />

Var försiktig med att sortera i headern till funktionen efter den använts i programmet.<br />

Det kan innebära att anslutna ingångar inte längre ger önskad funktion.<br />

Välj en funktion<br />

Välj en funktion i listan enligt nedan.<br />

Beijer Electronics AB, MA00411B 5-21


Funktioner och funktionsblock<br />

Då kan det se ut som följer.<br />

Programkoden för funktionen finns dold bakom blocket<br />

Till en funktion behöver man inte koppla någon benämning, eftersom ingen kopia<br />

eller Instans finns. Man kan se detta block som ett anrop av en subrutin. En viss typ<br />

av funktion skapar denna subrutin. Därigenom sparar man pekare jämfört med om<br />

man använder funktionsblock med olika instansnamn.<br />

Observera!<br />

Benämningarna av typen VAR_INPUT i benämningslistan, visas inuti själva blocket som<br />

ingångar. På utgången finns ingen text eftersom en funktion endast kan ha en utgång.<br />

För mer information om hur man skapar funktioner hänvisas till kapitel 6.6 i den<br />

engelska <strong>referensmanualen</strong> (reference.pdf) som installeras tillsammans med programmeringsverktyget.<br />

5-22 Beijer Electronics AB, MA00411B


Funktioner och funktionsblock<br />

5.7 Använd funktioner och funktionsblock<br />

För att använda funktionerna (Functions) eller funktionsblocken (Function Blocks)<br />

ändrar man Operator Type till önskad typ. Markera i Libraries vilka huvudgrupper<br />

som skall visas, Standard_Lib för IEC-funktioner, Manufacturer_Lib för MELSECfunktioner,<br />

Project för egna funktioner.<br />

Välj ett funktionsblock i Function Block Selection-listan och placera in det i bodyn.<br />

Då kan det se ut enligt nedan.<br />

Programkoden för funktionsblocket finns nu dolt bakom boxen<br />

Observera!<br />

Benämningarna av typen VAR_INPUT och VAR_OUTPUT i benämningslistan visas i funktionsblocket<br />

som in- respektive utgångar.<br />

Beijer Electronics AB, MA00411B 5-23


Funktioner och funktionsblock<br />

Ovanför blocket frågas efter ett variabelnamn (Instance). Denna används för att skapa<br />

en kopia av blocket.<br />

I Headern till programdelen där funktionsblocket används, skapar man en lokal variabel.<br />

Variabelns typ är inte BOOL eller liknande utan skall väljas från listan Funktionsblock<br />

och vara samma som blockets namn. Variabeln kan även definieras i GVL<br />

och kopieras in i headern som en global variabel.<br />

Om instansnamnet är unikt (lokal eller global) skapas en kopia av koden i funktionsblocket<br />

som används varje gång instansen anropas. Man kan se det som en subrutin.<br />

Om inställningen macrocode har valts för funktionsblocket skapas ingen subrutin,<br />

koden placeras direkt i huvudprogrammet.<br />

5-24 Beijer Electronics AB, MA00411B


5.8 Användarbibliotek<br />

Funktioner och funktionsblock<br />

Från början finns Manufacturer_Lib och Standard_Lib installerade i projektet. Förutom<br />

dessa två bibliotek kan användaren skapa och installera egna bibliotek knutna<br />

till projektet. I ett sådant bibliotek kan man spara funktioner (FUN), funktionsblock<br />

(FB) och program (PRG) för användning i andra projekt. Biblioteket sparas som en<br />

separat fil på hårddisken med filändelsen *.sul (benämns SUL-fil nedan). Flera bibliotek<br />

kan kopplas till ett och samma projekt.<br />

5.8.1 Skapa användarbibliotek<br />

För att skapa ett användarbibliotek gör man på följande sätt:<br />

– Markera Library_Pool i navigatorn, välj Install/Create under menyn<br />

Edit/ User Library. Det går också bra att högerklicka på Library_Pool och välja<br />

Install/Create.<br />

Beijer Electronics AB, MA00411B 5-25


Funktioner och funktionsblock<br />

– Klicka på knappen Browse Lib och ange var filen (*.sul) skall placeras, t ex på lokal<br />

hårddisk eller på en gemensam server (ex. D:\Eget_FB). Ge också filen ett unikt<br />

namn (Mitt_FB.sul). Klicka på Öppna och därefter på OK. Filen lägger sig i gruppen<br />

Library_Pool i navigatorn.<br />

5.8.2 Öppna / Stänga bibliotek<br />

För att kunna göra ändringar i ett användarbibliotek måste det vara öppet. Öppna<br />

det nya biblioteket på följande sätt:<br />

– Markera biblioteket under Library_Pool, välj Open under menyn Edit/User Library.<br />

Det går också bra att högerklicka på biblioteket och välja Open.<br />

5-26 Beijer Electronics AB, MA00411B


Funktioner och funktionsblock<br />

– Biblioteket kan skyddas av ett lösenord (password) om det finns behov att spärra<br />

det för obehöriga användare. Ange lösenordet i dialogen som kommer upp. Som<br />

grundinställning har inte biblioteket något lösenord, det ställs in i bibliotekets<br />

egenskaper.<br />

För att stänga biblioteket igen gör man på följande sätt:<br />

– Markera filen under Library_Pool, välj Close under menyn Edit/ User Library.<br />

Det går också bra att högerklicka på filen och välja Close.<br />

Normalt kan man inte titta på programkoden i ett funktionsblock eller en funktion<br />

som ligger i ett stängt bibliotek. För att kunna studera programkoden måste biblioteket<br />

öppnas. Om man inte har tillgång till lösenordet är detta inte möjligt.<br />

Beijer Electronics AB, MA00411B 5-27


Funktioner och funktionsblock<br />

5.8.3 Läsrättigheter i funktionsblock<br />

Fr o m GXIEC version 6.0 finns en funktion där man kan, för varje användarbibliotek,<br />

aktivera Allow read access for closed library. Detta är kopplat till projektet. På<br />

så vis kan programkoden visas även då biblioteket är stängt. FUN-/FB-bodyn öppnas<br />

som vanligt via projektnavigatorn eller genom att man dubbelklickar på blocket i en<br />

programdel.<br />

Markera aktuellt bibliotek och välj menyn Edit/User Library/Change Password…,<br />

eller högerklicka med musen och välj Change Password via popup-menyn. Kryssa i<br />

Allow read access for closed library.<br />

5-28 Beijer Electronics AB, MA00411B


Funktioner och funktionsblock<br />

Nu kan FUN-/FB-bodyn öppnas genom att man dubbelklickar på blocket i ett program.<br />

Funktionen kräver dock en inställning av “Open Body” i menyn Extras/Options/Zoom<br />

Header/Body för alternativen Navigator Zoom och FBD/LD zoom.<br />

Grundinställningen är att funktionen är inaktiverad för nya bibliotek och bibliotek<br />

skapade i en äldre version av GXIEC.<br />

Beijer Electronics AB, MA00411B 5-29


Funktioner och funktionsblock<br />

5.8.4 Flytta FUN/FB/PRG till ett användarbibliotek<br />

I ett öppet bibliotek kan man spara funktioner (FUN), funktionsblock (FB) och program<br />

(PRG), på följande sätt:<br />

– Under POU_Pool, markera det/de FUN, FB eller PRG som skall sparas i biblioteket.<br />

– Välj Copy under menyn Edit. Det går också bra att högerklicka på objektet och<br />

välj Copy.<br />

– Markera POU_Poolen under biblioteket där det kopierade objektet (FUN/FB/<br />

PRG) skall sparas.<br />

– Klistra in med Paste under menyn Edit. Det går också bra att högerklicka på<br />

POU_Pool och välja Paste.<br />

Observera!<br />

Windows standardkommandon för att kopiera [Ctrl] + [C], klippa ut [Ctrl] + [X] och<br />

klistra in [Ctrl] + [V] fungerar också.<br />

Observera!<br />

Samma FUN-/FB-/PRG-namn får endast förekomma en gång i ett användarbibliotek och<br />

POU-poolen. Om det är dubblerat genereras ett fel vid kompilering.<br />

5-30 Beijer Electronics AB, MA00411B


Funktioner och funktionsblock<br />

5.8.5 Hämta in färdigt användarbibliotek<br />

Om man vill hämta in ett färdigt användarbibliotek (dvs SUL-fil) i projektet gör man<br />

på följande sätt:<br />

– Markera Library_Pool, välj Install/Create under menyn Edit/ User Library. Det<br />

går också bra att högerklicka på Library_Pool och välja Install/Create.<br />

– Klicka på knappen Browse Lib och sök upp SUL-filen på hårddisken eller på nätverksservern<br />

(ex. D:\Eget_FB\Mitt_FB.sul). Klicka på Öppna och därefter på<br />

OK. Filen lägger sig under Library_Pool. Nu finns möjlighet att använda de funktioner,<br />

funktionsblock och program som finns i biblioteket i det egna projektet.<br />

– På samma sätt kopplas en hjälpfil till biblioteket via Browse Help.<br />

Beijer Electronics AB, MA00411B 5-31


Funktioner och funktionsblock<br />

5.8.6 Ändring av användarbibliotek<br />

För att göra ändringar i ett befintligt bibliotek, t ex lägga till eller ta bort objekt eller<br />

ändra i koden för ett FB, gör på följande sätt:<br />

– Öppna biblioteket.<br />

– Utför ändringen.<br />

– När ändringen är gjord, spara SUL-filen genom att markera aktuellt bibliotek under<br />

Library_Pool, välj Save under menyn Edit/ User Library. Det går också bra<br />

att högerklicka på biblioteket och välja Save.<br />

– Stäng sedan biblioteket, på så sätt ligger koden mer skyddad. Välj Close under menyn<br />

Edit/ User Library. Det går också bra att högerklicka på filen och välja Close.<br />

Observera!<br />

Man bör alltid göra en Update Libraries (under Project Other) när ett projekt öppnas<br />

som är gjort med en äldre version av MELSEC MEDOC plus eller GX IEC Developer. På<br />

detta vis uppdateras Manufacturer_Lib och Standard_Lib i projektet<br />

5-32 Beijer Electronics AB, MA00411B


5.9 OUT_SV Övervakningsinstruktion<br />

Funktioner och funktionsblock<br />

OUT_SV är en specialinstruktion för tidsövervakning. Det är en effektiv funktion<br />

för att t ex övervaka att mekaniska rörelser inte hänger upp sig. Kan användas för<br />

MELSEC Q och QnA(S).<br />

– Med hjälp av OUT_SV kan man automatiskt övervaka att en kvittens erhålls<br />

inom en bestämd tid efter att en utgång har aktiverats. Tiden för övervakningen<br />

kan matas in manuellt och kan vara mellan 0,0 - 3276,7 sek. Om tiden överskrids<br />

erhålls ett larm på T_O-utgången, dvs det blir en TimeOut.<br />

– OUT_SV finns i fler varianter, även OUT_SV2 till OUT_SV6, för att möjliggöra<br />

kombinationer med fler Stop/TimeOut för samma parametrar på Time och Margin.<br />

Tidsövervakning med 3,0 sek. på kvittenssignal Open_ready efter att insignal Open aktiverar<br />

utsignalen Motor_on<br />

OUT_SV instruktionen måste alltid åtföljas av ett speciellt program med namnet SV.<br />

Denna skall placeras i en alltid aktiv Task och kompileras med övrig kod. Det är SVprogrammet<br />

som sköter om tidsövervakningen mot de hjälpminnen som OUT_SV<br />

genererar.<br />

Max. 992 larm kan hanteras av SV-programmet och den filregistertabell som skapas<br />

av GXIEC. Av dessa kan max 100 aktiva övervakningar hanteras samtidigt.<br />

Observera!<br />

Notera att SV-programmet upptar ca 1 000 steg och scantiden ökar med antalet övervakningar.<br />

Om bara några få signaler skall övervakas är det därför mer effektivt att använda<br />

en vanlig timerfunktion.<br />

Beijer Electronics AB, MA00411B 5-33


Funktioner och funktionsblock<br />

I en separat dialog under menyn Extras - SV - Options… ställer man in det antal<br />

hjälpminnen som används. Kan ställas i steg om 32 hjälpminnen.<br />

SV-programmet reserverar vissa variabler som inte får användas i övriga programmet.<br />

Vilka adresser detta är kan kontrolleras i globala variabellistan för Supervision_Lib<br />

biblioteket.<br />

Generellt för SV-programmet och OUT_SV gäller:<br />

M8000-8099, R0-99, R500-599, R1000-1099, R1500-1603, R2000-6959 (flytande<br />

SV tabell max. 4960 register, dvs 992 OUT_SV-funktioner).<br />

Samtliga OUT_SV-funktioner samt SV-programmet finns i ett speciellt bibliotek<br />

som kan importeras till projektet, det kallas Supervision_Lib. För att importera<br />

Supervision_Lib måste följande inställning göras i MMP600.INI-filen i Windowskatalogen:<br />

[Libraries]...<br />

;Bibliotek för Super Vision (SV) funktion<br />

Manufacturer2=Supervision_Lib,SV.LIB<br />

För mer detaljerad information angående OUT_SV-funktionen hänvisas till hjälpen<br />

i GXIEC [F1], eller den engelska <strong>referensmanualen</strong> (reference.pdf) som installeras<br />

tillsammans med programmeringsverktyget. Sök på SV eller OUT_SV.<br />

5-34 Beijer Electronics AB, MA00411B


5.10 Bitadressering - MELSEC Q<br />

Unika standardblock för MELSEC Q är följande tre:<br />

GET_BIT_OF_INT, SET_BIT_OF_INT, CPY_BIT_OF_INT<br />

Funktionerna finns både med och utan enable-ingång.<br />

Funktioner och funktionsblock<br />

Om bit 5 i ordet INT7 är TILL blir bit 10 i INT8 TILL<br />

Om bit 8 i ordet INT9 är TILL går M200 TILL<br />

Om M201 är TILL går bit 15 i ordet INT10 TILL<br />

Beijer Electronics AB, MA00411B 5-35


Funktioner och funktionsblock<br />

5.11 Dekadadressering<br />

Det finns flera standardfunktioner för att hantera dekadadressering och bitadressering<br />

med IEC funktioner.<br />

Blocken är BITARR_TO_INT, BITARR_TO_DINT, INT_TO_BITARR,<br />

DINT_TO_BITARR, CPY_BITARR.<br />

Gäller alla PLC-typer (FX, A, QnA, Q)<br />

Exempel på dekadadressering<br />

5-36 Beijer Electronics AB, MA00411B


5.12 Omvandla ingångsvariabler<br />

Funktioner och funktionsblock<br />

Ingångarna på vissa av MELSEC-instruktionerna kräver en direktadress av datatyperna<br />

BOOL, INT eller WORD. Om man i programmet har variabler som inte stämmer<br />

överens med ingångens datatyp kan funktionerna GET_BOOL_ADR,<br />

GET_INT_ADR, GET_WORD_ADR användas för att omvandla ingångsvariabeln<br />

till rätt format.<br />

Funktion Datatyp (ingång) Datatyp (utgång)<br />

GET_BOOL_ADR<br />

GET_INT_ADR<br />

GET_WORD_ADR<br />

BOOL<br />

ARRAY OF BOOL<br />

INT<br />

DINT<br />

WORD<br />

DWORD<br />

REAL<br />

TIME<br />

STRING<br />

ARRAY OF INT<br />

ARRAY OF DINT<br />

ARRAY OF WORD<br />

ARRAY OF DWORD<br />

ARRAY OF REAL<br />

ARRAY OF TIME<br />

BOOL<br />

INT<br />

WORD<br />

Tabellen visar möjliga kombinationer<br />

Exempel:<br />

Ingångsparametern till TO_M instruktionen måste vara en 16-bitars variabel. Det är<br />

inte möjligt att ansluta en variabel av typen STRING eller en 32-bitars variabel t ex<br />

DINT direkt till ingången S. Däremot tillåter funktionen GET_INT_ADR dessa<br />

som invariabel. Utgångsvariabeln från funktionen ger en 16-bitars integer (INT), vilken<br />

är den första adressen i strängvariabeln STRINGVariabel respektive den första<br />

adressen i dubbelordet DINTVariabel.<br />

Beijer Electronics AB, MA00411B 5-37


Funktioner och funktionsblock<br />

5-38 Beijer Electronics AB, MA00411B


Programfunktioner<br />

6 Programfunktioner<br />

I detta kapitlet finns förklaringar på nyttiga funktioner i GX IEC Developer.<br />

6.1 Kontroll och kompilering<br />

6.1.1 Kontroll av projektet<br />

I GXIEC kontrolleras inte det man skriver in i benämningslistor och i de olika editorerna<br />

automatiskt.<br />

Tag alltid för vana att med jämna mellanrum kontrollera med intilliggande knapp<br />

eller med [Alt] + [C]. Då sparas de senaste ändringar som har gjorts i det öppna<br />

fönstret. Denna kontroll kan antingen göras för hela eller delar av projektet. Det senare<br />

kan också göras genom att peka på vad som skall kontrolleras i navigatorn och<br />

sedan klicka på Object/Check. Då man väljer t ex Global_Vars, kontrolleras enbart<br />

detta.<br />

Genom att dubbelklicka på felen (markerade med Error) som visas i checklistan öppnas<br />

det eller de fönster som innehåller felen (om de inte redan är öppna) och felen<br />

markeras med inställd färg (standard: röd).<br />

I detta fall är benämningen Ingang_2 definierad på mer än ett ställe.<br />

Observera!<br />

Varningar kan avaktiveras i menyn Extras/Options/Compiler och funktionen<br />

Disable Compiler Warnings.<br />

Använd snabbtangent [F4] efter kontroll eller kompilering, vilket öppnar och fokuserar<br />

på det första felet i listan. Rätta alltid felen från början av listan.<br />

Beijer Electronics AB, MA00411B 6-1


Programfunktioner<br />

6.1.2 Kompilering av projektet<br />

Innan projektet kan överföras till PLC-systemet måste det kompileras till körbar<br />

PLC-kod.<br />

Knappen för kompilering (rebuild all) innebär att systemet översätter hela programkoden<br />

till körbar kod och förbereder den för nedladdning till PLC.<br />

Knappen för build project innebär att endast ändringar i programmet kompileras.<br />

När projektet kompilerats indikeras detta genom att asterisken framför objekten i navigatorn<br />

försvinner. De programdelar (POU) som ej är kopplade till en Task behåller<br />

asterisken.<br />

Exempel på ett projekt före och efter kompileringen. POU Extra är inte kopplad till någon<br />

Task.<br />

6-2 Beijer Electronics AB, MA00411B


Programfunktioner<br />

6.1.3 Visa använda systemvariabler<br />

Med funktionen Display used ranges visas hur många operander som använts som<br />

systemvariabler. Funktionen finns under menyn Extras/Options/System Variables.<br />

6.1.4 Visa programstorlek<br />

Med funktionen Display program size visas storleken på det aktuella programmet.<br />

Funktionen finns under menyn Extras/Options/System Variables.<br />

Beijer Electronics AB, MA00411B 6-3


Programfunktioner<br />

6.2 Överföring av program och parametrar<br />

Nedladdning/Uppladdning av projekt till PLC<br />

När ned-eller uppladdning av projekt aktiveras via knapparna, öppnas menyn överföringsinställningar.<br />

Klicka på knappen Configure vid Transfer Setup Ports eller välj Online/Transfer<br />

Setup/Ports för att ställa in hur projektet skall kommunicera med PLC-systemet.<br />

Välj anslutningstyp för PC-sidan och PLC-sidan. Ställ också in om projektöverföring<br />

skall ske via någon typ av nätverk, Ethernet, MELSECNET etc.<br />

6-4 Beijer Electronics AB, MA00411B


Programfunktioner<br />

Klicka på knappen Configure vid Transfer Setup Project eller välj Online/Transfer<br />

Setup/Project för att ställa in hur projektet skall överföras till PLC-systemet.<br />

Observera!<br />

För detaljerad information om inställningsmöjligheterna i menyerna och för överföring<br />

via modem hänvisas till kapitel 8.3.1 till 8.3.4 i den engelska <strong>referensmanualen</strong> (reference.pdf)<br />

som installeras tillsammans med programmeringsverktyget.<br />

Som komplement till den interna modemuppringningen kan tredjepartsprogram som<br />

HMITools eller Hyperterminalen användas. Modemuppringning beskrivs mer utförligt i<br />

ett kom-igång-dokument som kan laddas ner från vår hemsida. www.beijer.se.<br />

Beijer Electronics AB, MA00411B 6-5


Programfunktioner<br />

6.3 Verifiering av PLC-program<br />

Under menyn Project/Transfer/Verify kan man starta en verifiering mellan programkoden<br />

i PC och PLC-systemet. Resultatet efter utförd verifiering visas i ett separat<br />

fönster.<br />

Markera raden Main-Program not identical och välj Show, då visas utökad verifieringsinformation<br />

som MELSEC IL kod.<br />

Koden presenteras i ett separat, delat fönster, där GXIEC-projektet visas till vänster<br />

och PLC-koden till höger.<br />

6-6 Beijer Electronics AB, MA00411B


Programfunktioner<br />

Från detta fönster kan man via menyn Tools/Goto Editor öppna den aktuella programdelen<br />

och visa nätverket som skiljer. Den grå markören vid stegnummerna på<br />

vänster sida pekar ut den rad som skall öppnas.<br />

I menyn Tools finns även fler val som Next Difference eller Previous Difference. Det<br />

går också att dubbelklicka på den markerade arean för PC projektet för att öppna aktuellt<br />

nätverk.<br />

Det nätverk som motsvarar det utpekade steget i MELSEC IL koden markeras. Om felet<br />

uppståt i en grafisk editor, markeras nätverkskanten för det nätverk där skillnaden finns.<br />

Beijer Electronics AB, MA00411B 6-7


Programfunktioner<br />

6.4 Monitorering av PLC-programmet<br />

Starta monitoreringen på det fönster som är i fokus på skärmen med knappen i verktygsfältet<br />

eller [Ctrl] + [F8]. Därefter startas monitoreringen för övriga fönster var för<br />

sig via menyn Online/Start Monitoring, snabbval [Ctrl] + [F8].<br />

Att man är i monitoreringsläge visas på ett tydligt sätt genom texten MONITO-<br />

RING i titelraden. Detta ställs in under menyn Extras/Options/Monitor Indication.<br />

Växla visning hårdvaruadress/benämning<br />

Med funktionen Toggle Variable [Alt] + [F9] kan man växla mellan att visa benämning<br />

eller absolutadress. Funktionen nås via contextmenyn (högerklick på variabeln)<br />

vid monitorering. Funktionen kan också aktiveras via menyn Online/Toggle variable<br />

eller med snabbval [Ctrl] + Dubbelklick direkt på benämningen. Inställningen görs<br />

individuellt på varje variabel och kommer att återställas då monitoreringen avslutas.<br />

6-8 Beijer Electronics AB, MA00411B


Programfunktioner<br />

Tvångsställning av variabler<br />

Vid monitorering är det möjligt att ändra värdet på enstaka variabler direkt i editorerna.<br />

Det gäller både binära och numeriska variabler. Genom att dubbelklicka på variabeln<br />

får man upp en dialog som ger möjlighet att ändra värdet. Dialogen kan<br />

öppnas via Contextmenyn också (högerklicka på variabeln)<br />

Poll rate<br />

I menyn Extras/Options/Monitor Mode kan man ändra parametern Poll Rate, och<br />

på så sätt snabba upp kommunikationstiden med PLC-systemet. Grundinställningen<br />

är 25 ms, dvs i bästa fall sker en förfrågan om status 4 gånger per sekund. Detta kan<br />

upplevas som långsamt om det finns snabba signaler i anläggningen man vill monitorera.<br />

Parametern måste justeras i offline mode. Ställ in t ex 20 ms, avsluta med OK och<br />

starta monitoreringen igen.<br />

Stoppa monitorering<br />

Avsluta monitoreringen med menyvalet Online/Stop Monitoring, snabbval<br />

[Alt] + [F8]. Monitoreringen stängs av i vart fönster för sig.<br />

Klicka på verktygsknappen igen för att stoppa all statusvisning i alla fönster. Funktionen<br />

finns i menyn Online/Monitoring Mode, snabbval [Shift] + [Esc]<br />

Beijer Electronics AB, MA00411B 6-9


Programfunktioner<br />

6.4.1 In Cycle Monitor<br />

En signal kan ändra status flera gånger under ett programvarv. Vid normal monitorering<br />

visas endast status vid END-instruktionen. Med In Cycle Monitoring kan<br />

man välja att se aktuell status vid ett visst programsteg under bearbetningen.<br />

Observera!<br />

In Cycle Monitoring finns fr o m GXIEC version 6.00.<br />

Funktionen aktiveras med menyvalet Online/Start In Cycle Monitor... Ange vid vilket<br />

programsteg monitoreringen skall utföras.<br />

Om ett nätverk i programkoden är markerat då funktionen aktiveras får man en fråga<br />

om monitorering skall ske före eller efter nätverket. Stegnummer beräknas sedan automatiskt.<br />

6-10 Beijer Electronics AB, MA00411B


Programfunktioner<br />

När funktionen aktiverats visas en dialogruta som anger på vilket stegnummer monitorering<br />

sker.<br />

In Cycle Monitoring-funktionen visar status på operander före det stegnummer som<br />

anges i dialogrutan. För att visa rätt värde måste man beräkna angivet stegnummer<br />

enligt följande.<br />

Stegnummer för önskad instruktion att monitorera + antal steg den instruktionen<br />

tar. För att förenkla beräkningen kan funktionen Tools/Show MELSEC Code of<br />

Network användas. Här visas startsteget för varje instruktion inom parenteser.<br />

Exempel<br />

I dessa 12 steg PLC-program ändras värdet på dataregister D1 fyra gånger, av fyra olika<br />

MOV-instruktioner.<br />

D1 ändras inte på något annat ställe i programmet. Vid monitorering av D1 i normalt<br />

monitoreringsläge kommer värdet presenteras som 4444, vilket är värdet registret<br />

får i den sista MOV-instruktionen.<br />

I exemplet vill vi monitorera värdet på D1 efter MOV-instruktionen vid steg 25. Addera<br />

värdet 2 (antalet steg för MOV-instruktionen) till 25 (stegnumret vi vill titta på).<br />

Det ger resultatet 27, vilket också är stegnumret på efterföljande steg.<br />

Beijer Electronics AB, MA00411B 6-11


Programfunktioner<br />

Nedanstående tabell visar det presenterade värdet på D1 vid olika stegnummer i In<br />

Cycle Monitoring<br />

Stegnummer Presenterat värde på D1<br />

.. 17 4444<br />

18 .. 20 4444<br />

21 .. 23 1111<br />

24 .. 26 2222<br />

27 .. 29 3333<br />

30 .. 4444<br />

Observera!<br />

Det är viktigt att det angivna programsteget verkligen bearbetas under programcykeln.<br />

Om det hoppas över eller om PLC-systemet är i STOP-läge visas inga värden och ett<br />

kommunikationsfel uppstår.<br />

In Cycle Monitor avslutas med menyvalet Online/Stop In Cycle Monitor. Även vanlig<br />

monitorering stoppas av detta menyval. In Cycle Monitor upphör även av menyvalet<br />

Online/Stop Monitoring.<br />

6-12 Beijer Electronics AB, MA00411B


6.5 Onlineändringar av PLC-program<br />

Programfunktioner<br />

I GXIEC finns två olika alternativ för att utföra en online-ändring av ett PLC-program,<br />

Online Change Mode och Online Program Change.<br />

Generellt<br />

En generell begränsning för att göra en onlineändring i ett MELSEC PLC-system är<br />

att man enbart kan utföra en ändring i taget, av ett sammanhängande block med kod.<br />

(MELSEC Q- och QnA-system har andra möjligheter, se nedan.) Naturligtvis kan<br />

ett antal utspridda ändringar göras, bara samtliga ändringar befinner sig inom detta<br />

block med kod. Storleken på blocket varierar mellan PLC-familjerna. Detta upplägg<br />

med enbart hela block kan därför medföra en del begränsningar vid t ex användning<br />

av programblock som är skrivna som FUN och FB.<br />

Den maximala blockstorleken är:<br />

PLC-typ Programsteg Block<br />

FX 127 1<br />

AnU/AnS 250 1<br />

Q00(J), Q01 (tidigare än version B),<br />

512 1<br />

Q02 eller högre, äldre än version 03043..........B<br />

Det vill säga varje onlineändring får öka eller minska programmet med maximalt ovanstående<br />

antal programsteg.<br />

Beijer Electronics AB, MA00411B 6-13


Programfunktioner<br />

Utökad online-ändring i MELSEC Q och QnA<br />

Fr o m MELSEC MEDOC plus ver 2.32 och för GX IEC Developer finns en funktion<br />

för onlineändring över flera block, så kallad Multi Block Online Change<br />

(MBOC).<br />

PLC-typ Programsteg Block<br />

QnA version M (9903), (ej Q4AR) eller<br />

1 024 64<br />

QnAS version U (9903)<br />

Q00(J), Q01 (version B eller senare),<br />

1 024 1/32/64<br />

Q02 eller högre, version 03043..........B eller<br />

senare<br />

Det vill säga varje onlineändring får öka eller minska programmet med maximalt ovanstående<br />

antal programsteg.<br />

Med MBOC-funktionen kan onlineändringar göras på flera ställen i programmet<br />

samtidigt, så länge det totala antalet steg och förändringsställen ej överstiger begränsningarna<br />

för centralenheten. I menyn Online/Format Drive ställs parametern Create<br />

system area to enable Multi Block Online Change (MBOC) in för att ge följande<br />

funktion:<br />

– 0k steps = max 512 programsteg i 1 block<br />

Varje onlineändring får öka eller minska programmets storlek med högst 512 steg.<br />

Om programmet ändras på mer än ett ställe räknas även oförändrade programsteg<br />

mellan första och sista ändringen in.<br />

– 2k steps (MELSEC Q00(J)/01: 1,25k steg) = max 512 programsteg i 32 block<br />

Varje onlineändring får öka eller minska programmets storlek med högst 512 steg.<br />

En onlineändring får lov att ändra programmet på 32 ställen.<br />

– 4k steps (MELSEC Q00(J)/01: 2,5k steg) = max 1 024 programsteg i 64 block<br />

(enda alternativet i MELSEC QnA och QnAS)<br />

Varje onlineändring får öka eller minska programmets storlek med högst 1 024<br />

steg. En onlineändring får lov att ändra programmet på 64 ställen<br />

6-14 Beijer Electronics AB, MA00411B


6.5.1 Online Change Mode<br />

Alternativet Online Change Mode används vid mindre ändringar.<br />

Programfunktioner<br />

Online-ändringar i detta läge kan enbart göras i ett nätverk i taget. Det innebär att<br />

när en ändring är gjord i ett nätverk måste ändringen först skickas över innan man<br />

kan göra nästa ändring i ett annat nätverk.<br />

Ändringen överförs då man klickar någonstans utanför det nätverk som blivit ändrat.<br />

Att tänka på<br />

– Efter en ändring i en POU, som är gjord i offline-läge, kan inte GXIEC avgöra om<br />

det verkligen har skett någon ändring av binärkoden (binärkod = kod efter kompilering).<br />

Det är därför inte möjligt att starta en online-ändring med hjälp av metoden<br />

Online Change Mode efter en sådan ändring. Utgångspunkten är att koden<br />

i PLC-systemet respektive projektet i GXIEC alltid är lika vid start av en onlineändring.<br />

För att komma runt detta, gör följande:<br />

Exempel 1<br />

– Om en ändring av en funktion i en POU skulle resultera i en oförändrad funktionalitet<br />

och man har gjort en så kallad dummy-ändring kommer editorn, trots en<br />

egentligen oförändrad funktion, ej att tillåta aktivering av Online Change Mode.<br />

– Man kan vid ett sådant tillfälle aktivera Build under menyn Project. Editorn kommer<br />

då att sätta status Compiled på projektet, men den så kallade tidsstämpeln<br />

kommer ej att röras då det ej finns några skillnader i binärkoden.<br />

Exempel 2<br />

– Om man däremot skulle göra en ändring i en POU som verkligen resulterar i en<br />

annan binärkod, och sedan använda sig av funktionen Build, kommer GXIEC att<br />

sätta en ny tidsstämpel, eftersom det finns skillnader i binärkoden.<br />

– Om man sedan utför en ändring så att binärkoden blir som utgångsfunktionen<br />

innan ändringen, måste GXIEC sätta en ny tidsstämpel. Vid ett försök att aktivera<br />

Online Change Mode i detta läge kommer<br />

programmet att tala om att projekten har olika tidsstämpel och att en aktivering<br />

av Online Change Mode ej är möjlig.<br />

Beijer Electronics AB, MA00411B 6-15


Programfunktioner<br />

– För att lösa situationen ovan kan man aktivera funktionen Verify.<br />

– Om det visar sig att PLC-systemet innehåller samma binärkod som den som finns<br />

i datorn kommer Online Change Mode att aktiveras automatiskt.<br />

– Om projekten inte är lika och skillnaderna är större än maximalt antal rader som<br />

kan ändras, eller om olikheterna är utspridda på ett flertal ställen, är det omöjligt<br />

att aktivera online-ändringar. Man måste då ladda ner hela projektet igen. Därefter<br />

kan man på nytt göra onlineändringar.<br />

6.5.2 Online Program Change<br />

Finns under menyn Project.<br />

Alternativet Online Program Change ger utökade möjligheter till online-ändringar<br />

av ett projekt. Vill man t ex ändra på ett flertal ställen i en eller flera POU, alternativt<br />

om man glömt att aktivera Online Change Mode innan en ändring påbörjades, kan<br />

man använda sig av Online Program Change. Ändringar som att lägga till en ny<br />

POU samt aktivera den i Task-poolen är möjliga med denna metod.<br />

Naturligtvis får inte ändringar överstiga maximalt antal programrader för respektive<br />

CPU-typ eller vara utspridda i ett flertal POU som är större än storleken på det block<br />

man har till förfogande för online-ändring.<br />

Metoden bygger på att GXIEC endast kompilerar de tillägg eller ändringar som är<br />

gjorda i projektet. Är dessa godkända av kompilatorn skickas ändringarna ner till<br />

PLC-systemet.<br />

6-16 Beijer Electronics AB, MA00411B


Programfunktioner<br />

Att tänka på<br />

Med hjälp av ovanstående funktion får vi möjlighet att lägga till och ändra mer fritt<br />

i en eller flera POU, men det finns några punkter som måste beaktas på grund av<br />

PLC-systemens uppbyggnad och kompilatorns sätt att arbeta.<br />

– En online-ändring i ett större projekt kan ta ganska lång tid, speciellt om man gör<br />

ändringen i början av programmet. Centralenheten kommer att infoga eller ta<br />

bort de rader som är ändrade och sedan skifta resten av programmet ett eller flera<br />

steg vilket kan ta lång tid. Invänta alltid svar från GXIEC om att ändringen är korrekt<br />

överförd!<br />

– Det kan vara svårt att ändra i två eller flera POU samtidigt, eftersom online-ändring<br />

kan göras på ett flertal ställen i ett projekt och ändringen måste ligga inom<br />

samma block som är begränsat till sin storlek och måste vara sammanhängande<br />

(gäller inte QnA(S)-CPU och MELSEC Q, se sidan 6-14).<br />

– Att göra en online-ändring i ett funktionsblock eller i en funktion kan också skapa<br />

ändringar på många ställen i programmet. Tänk på blockstorleken för det aktuella<br />

PLC-systemet och systemversionen. Det gäller speciellt om blocket är använt på<br />

mer än ett ställe i programmet.<br />

6.5.3 Beräknad tid för online-ändring<br />

Exempel<br />

Ett system av typen QnA kan byta ut 64 programsteg/scanvarv.<br />

Detta betyder att om man ändrar på rad 1 och programmet är 32 000 rader långt så<br />

behöver centralenheten (32 000/64 = 500) 500 scanvarv på sig för att utföra ändringen.<br />

Har programmet en cykeltid på ca 20 ms kommer ändringen att ta 10 sek (20 ms x<br />

500 scan = 10 000 ms).<br />

Observera!<br />

Tänk på att aldrig avbryta en påbörjad online-ändring förrän GXIEC återkommer med<br />

besked. Ändringen kommer att utföras även om man som programmerare tycker att<br />

det tar väldigt lång tid.<br />

Om kommunikationen sker via en operatörsterminal i transparent mode och/eller uppkoppling<br />

via modem med låga hastigheter, kan den interna time out-tiden i E-terminalen<br />

behöva ställas upp, annars kan onlineändringen fallera. I kritiska fall kan funktionen<br />

Pass Through mode aktiveras i E-terminalen, läs mer om detta i manualer och PI-dokument<br />

för E-Designer och E-terminaler.<br />

Beijer Electronics AB, MA00411B 6-17


Programfunktioner<br />

6.6 Simulering av PLC-program<br />

Offline-simulering av PLC-koden kan göras med verktyget GX Simulator (LLT).<br />

När GXIEC inte är i online-mode kan LLT startas från menyn Online/GX Simulator.<br />

Huvudfönstret visar vilket PLC-system som är valt och dess status. Ifrån detta<br />

fönster startas de olika verktygen som hör till LLT.<br />

När LLT startar sker nerladdning av program till simulatorn automatiskt. Därför<br />

måste projektet vara kompilerat innan aktivering av LLT. Nerladdning av PLC-program<br />

sker på samma sätt som när man är uppkopplad mot ett riktigt PLC-system.<br />

6.6.1 Device Memory Monitor<br />

För att monitorera och statusändra variabler i LLT, välj Start/Device Memory Monitor.<br />

Flera fönster kan läggas upp samtidigt, både för bit- och ordvariabler.<br />

6-18 Beijer Electronics AB, MA00411B


Programfunktioner<br />

6.6.2 I/O System Setting<br />

Med funktionen I/O System Settings kan man skapa processvar från det simulerade<br />

PLC-systemet. Det finns två olika sätt att skapa svaren, Device Value input och Timing<br />

Chart input.<br />

Device Value input<br />

Upp till 500 svar från den simulerade processen kan läggas upp i fönstret Device Value<br />

input. Fönstret öppnas via menyn Start/I/O System Settings i Ladder Logic Test<br />

Tool.<br />

Fyll i önskat svar från den simulerade processen, t ex att ingång X1 skall ettställas när<br />

Y10 och T10 varit aktiverade i 2 sekunder (200*10ms). Tala också om att det logiska<br />

villkoret skall vara aktivt genom att markera Status Enable.<br />

Ladda sedan ner inställningarna till LLT och starta om det simulerade PLC-systemet.<br />

Gör lämpliga statusförändringar i programmet och förloppet kan monitoreras i reläschema.<br />

Beijer Electronics AB, MA00411B 6-19


Programfunktioner<br />

Timing Chart input<br />

Funktionen Timing Chart input används också för att simulera statusförändringar<br />

på variabler. Skillnaden mot Device Value input är att man kan aktivera hela sekvenser<br />

av statusförändringar med ett ingångsvillkor. Upp till 40 sekvenser kan skapas.<br />

6-20 Beijer Electronics AB, MA00411B


Programfunktioner<br />

Tryck på knappen Edit/Timing Chart Format för att editera vilka variabler som skall<br />

simuleras och hur statusförändringen skall se ut. Nedanstående fönster visar simuleringen<br />

av tre variabler. När ingångsvillkoret är uppfyllt utförs sekvensen enligt det<br />

uppritade “mönstret”.<br />

Beijer Electronics AB, MA00411B 6-21


Programfunktioner<br />

Timing Chart<br />

Verktyget Timing Chart används för insamling och grafisk visning av variabelvärden<br />

i LLT. Öppna fönstret från Device Memory Monitor. Det går att lägga upp egna variabler<br />

och därefter starta samplingen. Upp till 1 000 sampel kan göras innan de äldsta<br />

värdena skrivs över. Sampelintervall är inställbart mellan 1-20 cykelvarv via menyn<br />

Monitor/Sampling period.<br />

Ställ upplösningen för skalan mellan 1 och 20 gånger, vid Chart Display Range.<br />

6-22 Beijer Electronics AB, MA00411B


Programfunktioner<br />

6.7 Entry Data Monitor (EDM)<br />

Variabler väljs in via en dialogruta, och automatisk sökning på alla objekt i listan.<br />

Ställ markören på en rad, tryck [F2] eller högerklicka och välj Insert Objects. Välj i<br />

listan vad som skall visas, eller skriv in önskad variabel eller hårdvaruadress. Ställ markören<br />

på en cell med angiven I/O-adress. Tryck [F3] och efterföljande I/O-adress<br />

läggs till i cellen under. EDM-listan kan även innehålla objekt som globala variabler<br />

eller hela programdelar.<br />

Aktiva binära värden markeras med färg. Ställ in önskad färg i menyn View/Color/<br />

Monitoring. Även dekader kan monitoreras, t ex K4X20.<br />

I Entry Data Monitor kan valfria I/O-adresser läggas in och status på signalerna kan<br />

avläsas med olika talbaser. Ställ in detta under Tools och Setup-menyn.<br />

Don’t search for variables in GVL möjliggör monitorering av variabler i EDM utan<br />

att programmet är kompilerat.<br />

Inställningen Monitor only visible objects in window snabbar upp monitoreringen<br />

genom att endast de objekt som visas i fönstret monitoreras.<br />

Med funktionen Always on top aktiverad ligger EDM-fönstret alltid överst. Funktionen<br />

aktiveras med menykommandot Tools/Always on top.<br />

Med menyvalet Online/Monitor Header eller snabbval [Shift] + [Alt] + [F8] kan alla<br />

variabler som används i programdelen, vars fönster är i fokus, kopieras in automatiskt<br />

i EDM-listan.<br />

Beijer Electronics AB, MA00411B 6-23


Programfunktioner<br />

EDM är kompatibel med standardprogrammet Windows Excel. Detta innebär att<br />

hela EDM-listan kan sparas som ett Excel-dokument. Funktionen nås under menyn<br />

Tools/Write to file eller Read from file.<br />

Under samma meny Tools kan man också välja att läsa upp alla definierade variabler<br />

från PLC-systemet till EDM-listan eller gemensamt skriva ner dessa värden till PLCsystemet.<br />

Använd Tools/Read from PLC eller Write to PLC.<br />

Kontrollera tvångsställda I/O<br />

Med kolumninställningen Status aktiverad visas alla tvångsaktiverade ingångar med<br />

texten Forced och alla utgångar med texten Set.<br />

Välj in Status-kolumnen med högerklick i någon cell i EDM-listan, välj Setup i<br />

popup-menyn, markera en ledig position i dialogen Setup, högerklicka på denna position,<br />

välj Field List [F2] i popup-menyn, och i listan finns Status. Avsluta med OK<br />

och Close (se bild på föregående sida).<br />

Denna tvångsaktivering sparas i en separat fil för projektet (Device File.mon) och<br />

därigenom är det också möjligt att återställa samtliga tvångsaktiverade ingångar med<br />

ett kommando, Online/PLC Clear/Forced Inputs. Via Context-menyn kan samtliga<br />

tvångsaktiverade I/O kallas fram, Insert Forced Inputs/Insert Set Outputs.<br />

Härifrån kan också filens innehåll raderas med Clear Device File.<br />

6-24 Beijer Electronics AB, MA00411B


6.8 Device Edit<br />

Programfunktioner<br />

Device Edit är ett verktyg för att visa och editera PLC-systemets bit- och ordoperander<br />

både 16 bitar och 32 bitar. Arbetsytan liknar Microsoft Excels arbetsblad både<br />

ifråga om utseende och funktion.<br />

Man kan läsa upp status på register, minnesceller etc och även skriva in nya värden i<br />

cellerna som därefter skickas ner till PLC-systemet i BIN-, OCT-, DEC-, HEX- eller<br />

ASC-format.<br />

Filformatet är Microsoft Excel 97/2000/2002 (BIFF8-format) när man sparar till fil<br />

(*.xls)<br />

Maximal tabellstorlek är 16 383 rader och 255 kolumner som betyder att 4 177 665<br />

värden kan hanteras. Förinställt antal kolumner är 16.<br />

Arbetsbladet<br />

Arbetsbladet öppnas under menyn Debug/Device Edit.<br />

Vänster kolumn innehåller startadresserna till de olika variablerna som horisontellt i<br />

en följd räknas upp från vänster till höger.<br />

Aktuellt displaymode ställs in under popup menyn med höger musknapp.<br />

Beijer Electronics AB, MA00411B 6-25


Programfunktioner<br />

6.9 Korsreferenslista<br />

För att underlätta programmering och idrifttagning av projekt kan man generera en<br />

korsreferenslista. Kryssa i följande under menyn Extras och Options. Då uppdateras<br />

korsreferenslistan automatiskt vid kontroll av projektet. Kryssas all tre rutorna i genereras<br />

korsreferenslistan automatiskt då kompilering eller build görs. Detta tar extra<br />

tid och bör därför väljas bort. Om automatisk generering av korsreferenslistan ej är<br />

vald, skapas listan med Make Crossreference under menyn Project.<br />

6-26 Beijer Electronics AB, MA00411B


Programfunktioner<br />

6.9.1 Browse<br />

Med denna knapp öppnas följande fönster, eller välj med menyn Project/Browse.<br />

Här kan man söka på samtliga definierade variabler och/eller en speciell variabel. För<br />

att söka på en viss absolutadress i en variabellista, skriv in adressen i fältet Variable/<br />

Address. I rutan till höger kan man sedan se i vilka programdelar (POU) variabeln<br />

finns, om man läser och/eller skriver till den.<br />

Man kan hoppa till programkoden genom att trycka på knappen Show in Editor eller<br />

dubbelklicka på träffarna i listan till höger.<br />

Beijer Electronics AB, MA00411B 6-27


Programfunktioner<br />

6.9.2 Tracking<br />

Funktionen Tracking används för att söka efter aktivering av en variabel. Funktionen<br />

är tillgänglig både online och offline i alla editorer. I offline-läge aktiveras funktionen<br />

via menyn Tools/Tracking/Start tracking, eller som ett snabbval med<br />

[Shift] + [F12]. Dialogen för tracking ger möjlighet att söka på Write access eller All<br />

dvs alla förekomster av variebeln.<br />

I online-läge (monitorering) kan tracking även väljas via contextmenyn, högerklicka<br />

då musmarkören är positionerad över den variabel sökning skall ske på.<br />

Exempel med tracking på variabelnamnet Startpositioning_1 under monitorering<br />

6-28 Beijer Electronics AB, MA00411B


Programfunktioner<br />

Alla typer av variabler kan sökas med hjälp av tracking som variabelnamn eller absolutadress.<br />

Tracking funktionen använder korsreferensen (Browse) som måste vara aktiverad i<br />

Extras/Option/Cross Reference enligt nedan:<br />

Beijer Electronics AB, MA00411B 6-29


Programfunktioner<br />

6.10 Visa variabelinformation med Tooltip<br />

Tooltip kan aktiveras och användas i alla editorerna, utom SFC-editorn, både vid<br />

editering och monitorering. Då musmarkören vilar över variabeln visas en ruta med<br />

valbar variabelinformation från GVL-listan samt variabelns status.<br />

Aktivera visning av Tooltip under menyn Extras/Options/Tooltips. Användaren<br />

bestämmer själv vilken information som skall visas och hur den skall presenteras.<br />

Observera!<br />

Om benämningen som utpekas bara visas delvis (t ex Guided Editing Mode) kommer<br />

Tooltip-fuktionen visa hela benämningen.<br />

6-30 Beijer Electronics AB, MA00411B


6.11 Dra och släpp<br />

Programfunktioner<br />

Med dra och släpp kan text och objekt flyttas eller kopieras mellan fönster i GXIEC.<br />

Text kan flyttas eller kopieras inom en programdel eller till en annan programdel.<br />

– Hålls [Ctrl]-knappen nertryckt kopieras objektet till den nya positionen<br />

– Hålls [Shift]-knappen nertryckt flyttas objektet till den nya positionen<br />

Observera!<br />

Dra och släpp kan även användas mellan projekt, det kräver dock två öppna sessioner<br />

av GXIEC.<br />

Följande objekt kan flyttas med drag/släpp-funktionen<br />

Flyttade objekt<br />

POU<br />

DUT<br />

Task<br />

SFC Action<br />

GVL<br />

Lokala variabler (från POU-header)<br />

Globala variabler (från GVL-listan)<br />

Globala variabler (från GVL-listan)<br />

IL-nätverk<br />

LD-nätverk<br />

FBD-nätverk<br />

SFC-element<br />

Vald text<br />

Entry Data Monitor<br />

IL-text<br />

MELSEC IL-text<br />

POU-pool<br />

DUT-pool<br />

Taskpool<br />

SFC-pool<br />

Projekt eller användarbibliotek<br />

POU-header (öppen editor)<br />

GVL (öppen editor)<br />

POU-header (öppen editor)<br />

IL-programdel (öppen editor)<br />

LD-programdel (öppen editor)<br />

FBD-programdel (öppen editor)<br />

SFC-programdel (öppen editor)<br />

Texteditor<br />

EDM-editor (öppen)<br />

IL-editor (öppen)<br />

MELSEC IL-editor (öppen)<br />

Beijer Electronics AB, MA00411B 6-31


Programfunktioner<br />

Följande regler gäller för navigatorobjekt<br />

Flyttat objekt Avlämningsplats Effekt Förutsättningar<br />

POU Projekt Objektet placeras i projektets<br />

POU-pool<br />

POU-pool<br />

(projekt)<br />

POU<br />

(endast PRG)<br />

POU-pool<br />

(användarbibliotek)<br />

Task<br />

Objektet placeras i<br />

användarbibliotekets<br />

POU-pool<br />

Objektet placeras i Tasken.<br />

Programmet läggs<br />

till sist i listan.<br />

DUT Projekt Objektet placeras i projektets<br />

Projektets DUTpool<br />

DUT-pool.<br />

DUT-pool i ett<br />

användarbibliotek<br />

Objektet placeras i<br />

användarbibliotekets<br />

DUT-pool<br />

TASK Projekt Objektet placeras i projektets<br />

Taskpool<br />

Taskpool<br />

SFC Action SFC-programdel Objektet placeras i markerad<br />

SFC Action-pool<br />

SFC<br />

POU.<br />

GVL (a) Projekt GVL-benämningar placeras<br />

i projektets GVL.<br />

Bibliotek GVL-benämningar placeras<br />

i användarbibliotekets<br />

GVL.<br />

GVL (b)<br />

GVL-benämningar läggs<br />

till i GVL-listan.<br />

Användaren måste ha<br />

skrivrättigheter i projektet<br />

och POU-poolen<br />

Användaren måste ha<br />

skrivrättigheter för<br />

användarbiblioteket och<br />

POU-poolen<br />

Task-editorn får ej vara<br />

öppen.<br />

Användaren måste ha<br />

skrivrättigheter för tasken.<br />

Endast kopiering.<br />

Skrivrättigheter<br />

Skrivrättigheter för projektet<br />

och för Taskpoolen<br />

Skrivrättigheter för SFCprogramdelen<br />

och dess<br />

Action-pool.<br />

Skrivrättigheter.<br />

6-32 Beijer Electronics AB, MA00411B


Programfunktioner<br />

Följande regler gäller för benämningar<br />

Flyttat objekt Avlämningsplats Effekt Förutsättningar<br />

EDM EDM Benämningen kommer<br />

läggas till som en ny<br />

post.<br />

Lokala variabler<br />

Globala variabler<br />

POU<br />

POU-body<br />

Header i navigatorn<br />

EDM<br />

POU<br />

POU-body<br />

POU-header<br />

Valfri GVL (och<br />

öppet GVL-fönster)<br />

EDM<br />

Benämningen läggs till i<br />

utpekad header.<br />

Benämningen läggs till i<br />

headern.<br />

Posten läggs till i EDMfönstret<br />

Benämningen läggs till i<br />

utpekad header och<br />

benämningens class<br />

ändras från<br />

VAR_GLOBAL till<br />

VAR_EXTERNAL.<br />

Benämningen läggs till i<br />

utpekad GVL.<br />

Posten läggs till i EDMfönstret<br />

Endast kopiering.<br />

Skrivrättigheter<br />

Endast kopiering.<br />

Skrivrättigheter<br />

Endast kopiering.<br />

Följande regler gäller för bodyobjekt<br />

Flyttat objekt Avlämningsplats Effekt Förutsättningar<br />

IL-nätverk IL-editor Objekten läggs till vid Skrivrättigheter<br />

MELSEC ILnätverk<br />

MELSEC IL-editor<br />

markörens position.<br />

Skrivrättigheter<br />

LD-nätverk LD-editor Skrivrättigheter<br />

FBD-nätverk FBD-editor Skrivrättigheter<br />

LD-editor<br />

Skrivrättigheter<br />

SFC-element SFC-editor Skrivrättigheter<br />

Vald text Texteditor Skrivrättigheter<br />

Beijer Electronics AB, MA00411B 6-33


Programfunktioner<br />

6.12 Options-meny<br />

I Optionsmenyn görs inställningar för hur programmet skall kompileras, det grafiska<br />

utseendet, import/export av användarbibliotek och monitorering med mera. För utförlig<br />

information om Options-menyn hänvisas till kapitel 2.7 i den engelska <strong>referensmanualen</strong><br />

(reference.pdf) som installeras med programmeringsverktyget.<br />

6-34 Beijer Electronics AB, MA00411B


6.13 Onlinehjälp<br />

Programfunktioner<br />

En enkel och snabb hjälp finns redan i själva programmet. Klicka på Help-menyn<br />

och välj funktion. Bland annat finns en mycket användbar sökfunktion.<br />

Dessutom finns funktionsbeskrivningar för många instruktioner (både IEC och<br />

MELSEC) samt vilka I/O-typer som kan användas som in- och utgångar.<br />

Observera!<br />

Med [F1]-tangenten öppnas rätt del av onlinehjälpen, oberoende av vilken meny eller<br />

dialog som är aktiv.<br />

Beijer Electronics AB, MA00411B 6-35


Programfunktioner<br />

6.14 Dokumentation av projekt<br />

Välj vad som skall skrivas ut genom att peka ut t ex en POU i navigatorn eller välj<br />

hela projektet genom att peka längst upp på raden Project....<br />

Definiera därefter hur utskriften skall se ut genom att välja Project/Print Options.<br />

Klicka på Properties för att ställa in hur utskrifterna skall se ut.<br />

I nedanstående fall skrivs följande ut:<br />

– Ett försättsblad, en innehållsförteckning, en korsreferenslista och den globala<br />

variabellistan.<br />

Klicka på de andra flikarna för att t ex välja vilken logo som skall finnas med på utskriften.<br />

Avsluta med OK<br />

6-36 Beijer Electronics AB, MA00411B


Programfunktioner<br />

Observera!<br />

En inställd profil kan sparas genom att ange ett nytt namn vid Current profile och<br />

trycka på Save. Sparade profiler finns lagrade i en fil i Windows-katalogen.<br />

Namnet på filen skiljer mellan programversionerna enligt nedan:<br />

GX IEC Developer 6.00:<br />

GX IEC Developer 5.00:<br />

GX IEC Developer 4.00:<br />

MELSEC MEDOC plus 3.00:<br />

MELSEC MEDOC plus 2.50:<br />

mmp600prof.ini<br />

mmp500prof.ini<br />

prof40.ini<br />

prof30.ini<br />

profile.ini<br />

Beijer Electronics AB, MA00411B 6-37


Programfunktioner<br />

6.15 Export och import av programdelar<br />

I GXIEC finns möjlighet att exportera eller importera antingen hela projekt eller valda<br />

programdelar till/från en ASCII-fil.<br />

Detta underlättar t ex då flera olika programmerares program skall länkas samman<br />

till ett projekt. Gör enligt följande.<br />

6.15.1 Export<br />

Markera i navigatorn vad som skall exporteras. Välj Export... i menyn Object.<br />

File Name<br />

Välj ut rätt sökväg, skriv in ett filnamn och klicka därefter på OK.<br />

6.15.2 Import<br />

Vid import görs följande. Välj Import... i menyn Object.<br />

Objects<br />

Välj vilka delar som skall importeras och klicka på OK. Välj därefter den fil som skall<br />

importeras.<br />

6-38 Beijer Electronics AB, MA00411B


Programfunktioner<br />

6.15.3 Import och export av benämningar<br />

Den globala variabellistan kan exporteras till Excel. Funktionen finns under menyn<br />

Tools/Export to Excel. Vid export sparas alltid hela variabellistan.<br />

Den exporterade filen kan öppnas direkt i Excel 97/2000/2002.<br />

Benämningslistan kan också skapas i Excel och importeras till GXIEC. Vid import<br />

konrolleras innehållet i filen för att se att den innehåller en variabellista och inte t ex<br />

en tasklista. Ingen kontroll sker på adresser eller variabelnamn. Detta måste ske i<br />

efterhand med funktionen [Alt] + [C].<br />

Förutom den globala variabellistan kan även Task-editorn, DUT-editorn och POUheadern<br />

exporteras och importeras.<br />

Beijer Electronics AB, MA00411B 6-39


Programfunktioner<br />

6.16 Filer och backupmöjligheter<br />

6.16.1 Filer under editering<br />

Projektfilen heter likadant i alla projekt, softctrl.pro, och därför kan bara projektnamnet<br />

identifieras med hjälp av namnet på den katalog där filen finns lagrad. GX-<br />

IEC gör automatiskt backup på projektfilen före editering då man öppnar projektet.<br />

Detta innebär att om något går fel under editering så finns det extra filer som säkerhet.<br />

Detta för att kunna återskapa projektet, även om den fil som editerades har blivit<br />

förstörd (kraschad).<br />

Efter uppstart av ett projekt finns i projektkatalogen bl a filerna:<br />

Softctrl.pro - Projektfilen, innehåller alla objekt (ej externa bibliotek, som *.sul filer)<br />

Softctrl.bak - Backup på filen softctrl.pro när projektet öppnas<br />

Softctrl.sav - Ytterligare backup till filen softctrl.pro<br />

Filerna används då GXIEC försöker återskapa projektet vid nästa uppstart. Först genom<br />

funktionen Try to recover då softctrl.pro och softctrl.log används, för att om<br />

möjligt återskapa informationen från den sista kompileringen man gjorde före felet<br />

inträffade.<br />

Om detta inte lyckas kan man välja Use backup, då används softctrl.bak som är en<br />

kopia på PRO-filen när man startade projektet eller sparade. Notera att då softctrl.bak<br />

används kommer först en kopia på softctrl.bak att skapas och den filen har<br />

namnet softctrl.sav. Softctrl.sav kan döpas om till softctrl.pro och användas som en<br />

sista utväg för att försöka öppna projektet då alla andra försök misslyckats.<br />

Andra filtyper som hör till ett projekt är:<br />

*.sul<br />

- fil som skapas för egendefinierade bibliotek<br />

*.sct<br />

- filer för korsreferenslistan<br />

*.scx<br />

- filer för korsreferenslistan<br />

*.edm<br />

- sparad data i fönster Entry Data Monitor, kan editeras i Excel<br />

*.pcd<br />

- backupfil (stor)<br />

*.pce<br />

- backupfil (liten)<br />

*.asc<br />

- exportformat<br />

workspace.sys - sparad fönsterinställning (meny View/Save Workspace)<br />

custom.sys - grafiska makron (meny Tools/Custom)<br />

lruboxes.sys - senast använda programinstruktioner i projektet<br />

mmp600prof.ini - utskriftsprofiler (Windows-katalogen)<br />

mmp600.ini - initieringsinformation för GXIEC (Windows-katalogen)<br />

6-40 Beijer Electronics AB, MA00411B


Programfunktioner<br />

6.16.2 Backup av projekt<br />

Vid backup på projekt är det viktigt att få med all nödvändig projektinformation som<br />

kan vara av betydelse för att kunna återskapa projektet på nytt. Därför är det bättre<br />

att ta kopia på (alt. packa ihop) hela projektkatalogen än att man bara tar backup på<br />

enstaka filer som t ex softctrl.pro.<br />

Backup av GXIEC-projekt kan göras på flera olika sätt. Dels genom att exportera<br />

projekt informationen till ASCII-fil eller att välja backup till Packed project database<br />

(pcd) eller som Packed export format (pce). I detta fall är det mest komplett om man<br />

använder Packed project database, vilket gör det möjligt att återskapa ett projekt<br />

med senaste kompileringen intakt. Då blir det dessutom möjligt att fortsätta göra online<br />

ändringar efter att en sådan backup återställts.<br />

Packed project database (pcd) ger en stor fil, filen är komplett med bibliotek och<br />

kompileringsinformation.<br />

Packed export format (pce) ger en liten fil, ungefär som exportfilen *.asc.<br />

Ta fram menyn Extras/Project Backup och välj Packed project database vilket kommer<br />

skapa en *.pcd-fil.<br />

Ett alternativ till projekt backup är att använda exportformatet som ger en textfil som<br />

kan importeras till andra projekt. Exportfilerna ger filtyp *.asc.<br />

Använd alternativen:<br />

Object/Export (export av markerade objekt i navigatorn, ej bibliotek)<br />

Project/Other/Export(export av hela projektet, ej bibliotek)<br />

Observera!<br />

Glöm inte göra backup på eventuella biblioteksfiler (*.sul) och utskriftsprofiler<br />

(se kapitel 5.8).<br />

Beijer Electronics AB, MA00411B 6-41


Programfunktioner<br />

6.17 Data Unit Type (DUT)<br />

I princip kan man alltid använda strukturerade datatyper (DUT) då det finns programkod<br />

som är återupprepningsbar, t ex identiska motorstarter, beräkningar m m.<br />

Fördelarna blir bl a:<br />

– Betydligt färre variabler i den globala variabellistan.<br />

– Bättre struktur i programmet.<br />

– Möjlighet till längre variabelnamn i bodyn, 32 + 32 tecken (64 totalt).<br />

I en DUT kan man blanda variabler av valfria typer som t ex BOOL och INT.<br />

Tre globala variabler “Linje1” - “Linje3” skapas av DUT-typen “Ekvation”.<br />

I PLC-programmet används sedan benämningarna “Linje1.k”, “Linje2.k” osv.<br />

6-42 Beijer Electronics AB, MA00411B


Programfunktioner<br />

6.17.1 Direktadressering av strukturerade datatyper<br />

Man kan direktadressera strukturerade datatyper i den globala variabellistan. Då en<br />

variabel skapas av en redan definierad strukturerad datatyp öppnar man dialogen<br />

Data unit variable addresses genom att dubbelklicka i något av adressfälten MITaddress<br />

eller IEC-address.<br />

I exemplet här ovan visas dialogen för en DUT med namnet Ekvation<br />

Genom att använda valet Automatic filling kan man få adresseringen att löpande fyllas<br />

på helt automatiskt, med början från den adress man först anger.<br />

Benämningen Linje1 har kopplats till DUT-typen Ekvation och I/O-adresser har därefter<br />

kopplats via menyn Data unit variable addresses<br />

Valet All Types använder samma variabeltyp om det är möjligt för alla element i<br />

strukturen (PLC-beroende). Ex. INT och två BOOL-element kan få adresserna<br />

D2000 och nästa D2001.0, D2001.1 osv.<br />

Beijer Electronics AB, MA00411B 6-43


Programfunktioner<br />

6.17.2 Array of Data Unit Types<br />

En vektorvariabel i GVL-listan eller i headern på en POU kan nu deklareras även<br />

med elementtyp DUT.<br />

Börja med att skapa en struktur av variabler (DUT).<br />

Deklarera sedan en vektor (array) av strukturer i GVL-listan, t ex ARRAY [0 .. 4] OF<br />

TestDUT<br />

6-44 Beijer Electronics AB, MA00411B


Programfunktioner<br />

Hårdvaruadresser deklareras i fältet MIT-addr, i dialogen som öppnas. I dialogen kan<br />

adresserna deklareras på olika sätt. I exemplet nedan deklareras bitadresser och ordadresser<br />

var för sig.<br />

I detta exempel används dataregister för både bit- och ordadresser, genom att kryssa<br />

i rutan Use bit designation. Genom att ange ett värde i Offset kan man separera<br />

grupperna av register eller minnesceller som reserveras av respektive DUT-vektor.<br />

I GVL-listan visas vilken ord-och bitadress vektorn startar på, om en offset angetts<br />

samt om bit designation är aktiverad.<br />

Beijer Electronics AB, MA00411B 6-45


Programfunktioner<br />

6.18 Scantime<br />

Scan kommandot i menyn Debug visar en statisk bild av PLC-systemets programtid.<br />

Programexekveringens cykeltid kan variera beroende på t ex hur många in-/utgångar<br />

som avfrågas under cykeltiden.<br />

MELSEC A MELSEC FX MELSEC Q/QnA<br />

Upplösning:<br />

10 ms<br />

Upplösning:<br />

0,1 ms<br />

Upplösning:<br />

1 ms<br />

Aktuell cykeltid D9018 D8010 SD520 SD521<br />

Minimal cykeltid D9017 D8011 SD524 SD525<br />

Maximal cykeltid D9019 D8012 SD526 SD527<br />

Upplösning:<br />

1 µs<br />

Ex: Om PLC-systemets aktuella scantid är 3,5 ms, maximal scantid är 5,2 ms och<br />

minmal scantid är 2,1 ms skrivs i specialdataregisterna följande:<br />

MELSEC A MELSEC FX MELSEC Q/QnA<br />

D9018 1 D8010 35 SD520 3<br />

D9017 0 D8011 21 SD521 500<br />

D9019 1 D8012 52 SD524 2<br />

SD525 100<br />

SD526 5<br />

SD527 200<br />

6-46 Beijer Electronics AB, MA00411B


Diagnostik och felsökning<br />

7 Diagnostik och felsökning<br />

7.1 Kompileringsfel<br />

Om man gjort ett fel i programmeringen upptäcks detta först vid en kompilering.<br />

Nedan är en bild med exempel på vanliga felmeddelanden.<br />

Genom att markera ett fel i listan och trycka på Show eller snabbval [F4] öppnas<br />

programdelen där felet finns, och programkoden är rödmarkerad, se bild nedan.<br />

Markera kryssrutan Minimize Dialog after show, så minimeras fönstret med fellistan<br />

och det blir lättare att se felmarkeringen i programmet.<br />

Beijer Electronics AB, MA00411B 7-1


Diagnostik och felsökning<br />

Nedan följer några vanliga felmeddelande som kan vara svåra att härleda<br />

Fel<br />

F1028<br />

Access to system addresses is<br />

denied<br />

C2020<br />

Dataflow did not reach the part<br />

or network<br />

F1001<br />

Wrong address or identifier not<br />

declared<br />

C2015<br />

Wrong instance of a functionblock<br />

C2045<br />

Instance does not match<br />

C2013<br />

Illegal mixing of types with<br />

polymorphic generic operators<br />

C9052<br />

Only one OUT instruction is<br />

allowed in a transition for the<br />

current CPU type<br />

C8015<br />

Member “VarNamn” is neither<br />

IN nor IN_OUT<br />

Orsak<br />

En eller flera globala variabler inkräktar på den<br />

definierade systemarean för systemvariabler i PLCparametrarna.<br />

Otillåtet hopp i nätverket mellan ut- och ingång.<br />

Använd istället mellanlagring.<br />

Samma fel då en linje ej är dragen hela vägen.<br />

Instansnamn saknas.<br />

Felvald variabeltyp vid koppling mot ett block (FB<br />

eller FUN).<br />

Ex. SUB_E där olika variabeltyper (INT och DINT) är<br />

ihopkopplade på ingång.<br />

(AnS/AnN) Ett övergångsvillkor i en sekvens genererar<br />

mer än en OUT-instruktion.<br />

Skriv om programmet som MELSEC IL.<br />

Ett funktionsblock har anropats på ett sätt som inte<br />

överensstämmer med IEC-standarden. Kryssa för<br />

Allow VAR_OUTPUT in call of FB (IL and ST) under<br />

menyn Extras/Options/Compiler<br />

7-2 Beijer Electronics AB, MA00411B


Diagnostik och felsökning<br />

7.2 Allmänna fel<br />

Fel<br />

Man kan inte längre editera i programmet.<br />

Orsak<br />

GXIEC är i monitoreringsläge, då tillåts<br />

ingen editering.<br />

Fel (LD)<br />

Kontakten/spolen efter en annan spole<br />

fungerar konstigt eller inte alls.<br />

Orsak<br />

Anslut aldrig något efter en spole. I denna<br />

editor finns ingen anslutning till höger om<br />

en spole. Om flera spolar används i en<br />

krets, placera dessa under varandra.<br />

Fel (exempel)<br />

Rätt (exempel)<br />

Fel (SFC)<br />

Programmet hoppar inte till nästa steg<br />

trots att övergångsvillkoret är sant.<br />

CPU-typ AnN/AnS<br />

Orsak<br />

Om övergångsvillkoret har fler än en OUTinstruktion<br />

inträffar detta fel. Genom att<br />

skriva övergångsvillkoret i ett nätverk samt<br />

i MELSEC IL styr man själv hur koden skall<br />

genereras.<br />

För CPU-typerna AnA(S)/FX/QnA skriv övergångsvillkoret<br />

i ett enda nätverk samt valfri<br />

editor.<br />

Beijer Electronics AB, MA00411B 7-3


Diagnostik och felsökning<br />

7.3 Felsökning i applikationsprogram<br />

7.3.1 Visa programkod<br />

Om ett systemfel inträffar med hänvisning till ett visst steg i programmet kan man<br />

lätt hitta rätt instruktion som genererar felet. Visa aktuellt fel genom valet<br />

Debug/System Errors.<br />

Använd därefter möjligheten att visa kompilerad programkod som MELSEC instruktionslista<br />

med verktyget Show MELSEC Code of Network som visas i separat<br />

fönster. Markera nätverkets kant och välj Tools/Show MELSEC Code of Network.<br />

Show MELSEC Code of Network kan användas i ladder, FBD- och IL-editorerna.<br />

Exemplet visar en division med otillåten data, t ex 0.<br />

7-4 Beijer Electronics AB, MA00411B


Diagnostik och felsökning<br />

7.3.2 Hitta överlappande hårdvaruadresser<br />

Ett vanligt programmeringsfel är att de globala variablernas hårdvaruadresser överlappar<br />

varandra. I GVL-listan hittar man snabbt felaktiga överlappningar med funktionen<br />

Find Overlapping Addresses. Funktionen kontrollerar alla variabletyper.<br />

Funktionen väljs i menyn Tools/Find Overlapping Addresses.<br />

Markera en varning i fönstret och tryck Show. Överlappningar markeras med röd<br />

färg.<br />

Ett ord överlappar ett annat dubbelregister.<br />

Beijer Electronics AB, MA00411B 7-5


Diagnostik och felsökning<br />

7.4 Diagnostik<br />

7.4.1 PLC-diagnostik<br />

För att kontrollera status på felkoder i ett PLC-system finns speciella informationsfönster.<br />

Fönsterna varierar utseende beroende på vald PLC-typ. Diagnostikfönsterna<br />

öppnas via menyn Debug/PLC diagnostic, se nedan<br />

Diagnostikfönstret för MELSEC FX<br />

Observera!<br />

För mer information om PLC Diagnostics, nätverksdiagnostik och System Monitor hänvisas<br />

till den engelska <strong>referensmanualen</strong> (reference.pdf) som installeras tillsammans<br />

med programmeringsverktyget.<br />

7-6 Beijer Electronics AB, MA00411B


Diagnostik och felsökning<br />

Diagnostikfönstret för MELSEC QnA<br />

Diagnostikfönstret för MELSEC Q<br />

Beijer Electronics AB, MA00411B 7-7


Diagnostik och felsökning<br />

7.4.2 Nätverksdiagnostik<br />

För felsökning på MELSECNET/10-nätverk använd menyn Debug/Network diagnostic.<br />

Informationen skiljer sig beroende på vilket PLC-system man valt att titta på och vilken<br />

typ av nätverk som används. Genom att klicka på Other station info kan man<br />

välja att titta på en slav i nätverket istället för den som är fysiskt ansluten till datorn.<br />

Nätverksdiagnostik för MELSECNET/10-modul ansluten på PLC-systemet som är kopplat<br />

mot datorn.<br />

7-8 Beijer Electronics AB, MA00411B


Diagnostik och felsökning<br />

7.4.3 System monitor för MELSEC Q<br />

För MELSEC Q finns en funktion, System monitor, som läser av vilka moduler som<br />

är anslutna på PLC-systemet och presenterar denna information grafiskt. Även felstatus<br />

och detaljerad modulinformation kan presenteras.<br />

PLC-systemet i exemplet har två kommunikationsmoduler och en digital utgångsmodul<br />

ansluten på grundplattan.<br />

Beijer Electronics AB, MA00411B 7-9


Diagnostik och felsökning<br />

I Base Information fönstret visas information om hur många moduler som är installerade<br />

och hur många kortplatser som finns tillgängliga. Knappen Diagnostics öppnar<br />

diagnostikfönster för den modul som är markerad t ex centralenheten eller en<br />

specialmodul.<br />

Bilden visar information om en Ethernetmodul<br />

7-10 Beijer Electronics AB, MA00411B


Diagnostik och felsökning<br />

I fönstret Module’s Detailed information hittar man detaljerad information, såsom<br />

versionsnummer, I/O-adress och felinformation.<br />

Bilden visar detaljerad information om Ethernet-modulen QJ71E71-B2.<br />

Knappen H/W Information presenterar hårdvaruinformation om markerad modul,<br />

t ex konfiguration av buffertminnen i modulen och dess switchinställningar<br />

Hårdvaruinformation om Ethernet-modulen QJ71E71-B2<br />

Beijer Electronics AB, MA00411B 7-11


Diagnostik och felsökning<br />

Från System monitor kan man få upp en lista, Product Information List, med ytterligare<br />

information om de moduler som är installerade i PLC-systemet, t ex serienummer<br />

och versionsnummer.<br />

Observera!<br />

För detaljerad information om System Monitor hänvisas till kapitel 9.1 i den engelska<br />

<strong>referensmanualen</strong> (reference.pdf) som installeras tillsammans med programmeringsverktyget.<br />

7-12 Beijer Electronics AB, MA00411B


Appendix<br />

8 Appendix<br />

8.1 QnA(S) till A(nS)-seriens kommunikationsmoduler<br />

PLC-systemen MELSEC QnA(S) stödjer A(nS)-seriens kommunikations- moduler<br />

både vid seriell kommunikation samt vid Ethernet kommunikation, men med vissa<br />

begränsningar.<br />

Generellt gäller följande<br />

Nya projekt med QnA(S)-CPU:<br />

– Använd QC24/QE71! Dessa är bakåtkompatibla.<br />

Befintlig anläggning och utbyte av A(nS)-CPU till QnA(S):<br />

Här kan man köra med befintliga C24/E71, fast med vissa begränsningar. Bäst är att<br />

uppdatera även kommunikationsmodulerna till QnA.<br />

Begränsningar<br />

1 AJ71UC24 1 A1SJ71UC24 - R2<br />

1 AJ71C24 -S6/S8 1 A1SJ71UC24 - R4<br />

2 AJ71C24(S3) 1 A1SJ71C24 - R2<br />

1 AJ71E71 1 A1SJ71UC24 - R4<br />

1 A1SJ71E71<br />

1. Endast AnA:s device område<br />

2. Endast A3H:s device område. Måste vara daterade från mars-87 (dat. “H” eller<br />

senare på modul)<br />

Gemensamt för alla moduler ovan<br />

– Ingen åtkomst på filregister, parametrar eller program.<br />

– C24-Multidrop ihop med en QC24, endast ASCII kommunikation d.v.s.<br />

A(1S)J71QC24 modulen får inte används med binärtprotokoll.<br />

Beijer Electronics AB, MA00411B 8-1


Appendix<br />

8.2 Konfigurering av PROFIBUS DP<br />

Med GX IEC Developer kan man enkelt konfigurera sina funktionsmoduler. En<br />

funktion som heter Module Configuration finns att välja under Parameters i<br />

navigatorn.<br />

Module Configuration öppnar en ny dialogruta där alla konfigurerade moduler<br />

finns att välja. Informationen kopieras från inställningarna i I/O Assignment under<br />

PLC-parametrar. I kolumnen Module name anges vilken typ av funktionsmodul<br />

som sitter ansluten. I kolumnen till höger anges sökvägen till GX Configurator DPprojektet.<br />

Klicka på knappen längst till höger för att söka efter rätt projekt.<br />

När korrekta sökvägar angetts markerar man den modul som skall konfigureras och<br />

klickar på Configure module.<br />

Obs!<br />

Första gången funktionen används frågar programmer efter sökvägen till GX Configurator<br />

DP.<br />

Beskrivning på hur GX Configurator DP används finns i programmets manual.<br />

8-2 Beijer Electronics AB, MA00411B


Appendix<br />

8.3 FX2N-serien<br />

Full support:<br />

– Stöd för alla minnesceller, M0-M3071<br />

– Stöd för pulsvillkor som LDP, LDF, ANP, ANF, ORP och ORF (enbart<br />

MELSEC IL)<br />

– Stöd för samtliga indexregister V,V1-7 och Z, Z1-7<br />

Observera!<br />

Kommunikationen är begränsad till 9 600 baud<br />

Beijer Electronics AB, MA00411B 8-3


Appendix<br />

8-4 Beijer Electronics AB, MA00411B


Sakregister<br />

A<br />

Action<br />

Address Batch Replace<br />

Adresser<br />

överlappande<br />

Ankarpunkter<br />

Använda systemvariabler<br />

Användarbibliotek<br />

Hämta in<br />

Kopiera in FUN/FB/PRG<br />

Skapa<br />

Stänga<br />

Ändra<br />

Öppna<br />

Arbetsarean<br />

ARRAY<br />

ASCII-fil<br />

Autoconnect<br />

Autoextern<br />

Autorouting<br />

B<br />

Backup<br />

Packed export format<br />

Packed project database<br />

Bitadressering<br />

MELSEC Q<br />

MELSEC QnA<br />

Body<br />

BOOL<br />

Boolean<br />

Build<br />

Byta PLC-typ<br />

C<br />

Class<br />

Comment<br />

Contextmenyn<br />

Cykeltid<br />

D<br />

Data Unit Type<br />

Dekadadressering<br />

Device Edit<br />

Device Memory Monitor<br />

Device Value input<br />

Diagnostik<br />

Nätverksdiagnostik<br />

PLC-diagnostik<br />

DINT<br />

Dokumentation<br />

Double Integer<br />

DUT<br />

DWORD<br />

E<br />

Editor<br />

Grafisk<br />

Text<br />

Egenskaper<br />

EN/ENO<br />

Entry Data Monitor<br />

Always on top<br />

Monitor Header<br />

Ersätt<br />

Ethernet<br />

Drivrutiner<br />

Event<br />

Exekveringsordning<br />

EXIT<br />

Export<br />

Benämningar<br />

DUT<br />

POU-header<br />

Task<br />

Extended Information<br />

Beijer Electronics AB, MA00411B<br />

I


F<br />

FBD<br />

Programexempel<br />

Felmeddelande<br />

Felsökning<br />

Filer<br />

Flyttal<br />

Frånslagsfördröjning<br />

Funktion<br />

Result Type<br />

Skapa<br />

ST<br />

Utgång<br />

Funktionsblock<br />

Instans<br />

Skapa<br />

ST<br />

FX2N-serien<br />

Färgkodning<br />

G<br />

Global Variabellista<br />

Grafisk editor<br />

Grafiska<br />

Grid<br />

Gränssnitt<br />

Guided Editing<br />

GVL<br />

H<br />

Header<br />

Heltalsvariabel<br />

Hårdvara<br />

Hårdvaruadress<br />

överlappande<br />

Händelse<br />

I<br />

I/O System Setting<br />

Identifier<br />

IEC Funktionsblocksdiagram<br />

<br />

IEC Instruktionslista<br />

IEC Reläschema<br />

IEC Sekvensdiagram<br />

IEC Strukturerad text<br />

IEC-addr<br />

IL<br />

Programexempel<br />

Import<br />

Benämningar<br />

DUT<br />

POU-header<br />

Task<br />

In Cycle Monitor<br />

Initial<br />

Installation<br />

Instans<br />

<br />

Instruktioner<br />

INT<br />

Integer<br />

Interconnect<br />

K<br />

Kommentar<br />

Kommunikationsmoduler<br />

AnS<br />

QnA(S)<br />

Kompatibilitet<br />

Kodkompatibilitet<br />

Projektkompatibilitet<br />

Kompilera<br />

Build<br />

Rebuild all<br />

Kompileringsfel<br />

Kontroll<br />

Konvertera<br />

Projekt<br />

Korsreferenslista<br />

II<br />

Beijer Electronics AB, MA00411B


L<br />

Label<br />

LD<br />

Programexempel<br />

Libraries<br />

Lokala variabler<br />

Lösenord<br />

M<br />

Macrokod<br />

MBOC<br />

MELSEC IL<br />

Programexempel<br />

MELSEC Instruktionslista<br />

MELSEC NETWORK<br />

MELSEC_FIRST<br />

MELSEC_IL<br />

MIT-Addr<br />

Monitorering<br />

Poll rate<br />

Starta<br />

Stoppa<br />

N<br />

Navigator<br />

Nedladdning<br />

Nätverk<br />

<br />

O<br />

Omvandla variabler<br />

Online hjälp<br />

Onlineändring<br />

Beräknad tid<br />

Online Change Mode<br />

Online Program Change<br />

<br />

OUT_SV<br />

P<br />

Pekare<br />

PLC-parametrar<br />

PLC-typ<br />

Byta<br />

Poll rate<br />

POU<br />

POU_Pool<br />

Programdel<br />

Programexempel<br />

FBD<br />

IL<br />

LD<br />

MELSEC IL<br />

SFC<br />

ST<br />

Programkod<br />

Programstorlek<br />

Programsymboler<br />

Projektkatalogen<br />

Projektnavigator<br />

Call Tree<br />

Project<br />

Used by<br />

Properties<br />

Pulstimer<br />

R<br />

Radkommentar<br />

<br />

REAL<br />

Rebuild all<br />

Recalculate Line<br />

Remark<br />

Replace<br />

Result Type<br />

Rutnät<br />

Räknare<br />

Beijer Electronics AB, MA00411B<br />

III


S<br />

Scantime<br />

Select Mode<br />

SFC<br />

Inställningar<br />

Kommentar<br />

Options<br />

OUT_mode<br />

Programexempel<br />

Reset<br />

Sekvenssteg<br />

SFC_CTRL<br />

SFC_INI<br />

SFC_ON<br />

SFC_PAUSE<br />

SFC_PAUSED<br />

SFC_START<br />

SFC_STOP<br />

SFC_STOPPED<br />

TRAN<br />

Övergångsvillkor<br />

Show MELSEC Code of Network<br />

Simulering<br />

Skapa<br />

Användarbibliotek<br />

Programdel<br />

Projekt<br />

Task<br />

Skifta adresser<br />

ST<br />

Programexempel<br />

Status<br />

Subrutin<br />

SUL-fil<br />

System monitor<br />

Systemkrav<br />

Sök<br />

T<br />

Task<br />

Comment<br />

Egenskaper<br />

Priority<br />

Timer/Output Control<br />

Task_Pool<br />

Texteditor<br />

Tidskretsar<br />

Tidsvärden<br />

Tillslagsfördröjning<br />

TIME<br />

Timer/Output Control<br />

Timing Chart<br />

Timing Chart input<br />

TRAN<br />

Transfer Setup<br />

Ports<br />

Project<br />

Transition Condition<br />

Tvångsställning<br />

Type<br />

U<br />

Unreferenced POU<br />

Uppladdning<br />

Upprepningssats<br />

Urvalssats<br />

V<br />

Variabelklass<br />

VAR<br />

VAR_CONSTANT<br />

VAR_EXTERNAL<br />

VAR_GLOBAL<br />

VAR_GLOBAL_CONSTANT<br />

VAR_IN_OUT<br />

VAR_INPUT<br />

VAR_OUTPUT<br />

IV<br />

Beijer Electronics AB, MA00411B


Variabeltyp<br />

ARRAY<br />

BOOL<br />

DINT<br />

DWORD<br />

INT<br />

REAL<br />

TIME<br />

WORD<br />

Verifiering<br />

Utökad<br />

Versionsinformation<br />

GX IEC Developer 4.0<br />

GX IEC Developer 5.0<br />

GX IEC Developer 6.0<br />

MELSEC MEDOC plus 2.50<br />

W<br />

WORD<br />

Ö<br />

Överföring<br />

Parametrar<br />

Program<br />

Övergångsvillkor<br />

Överlappande adresser<br />

Övervakningsinstruktion<br />

Beijer Electronics AB, MA00411B<br />

V

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!