programspråken referensmanualen programverktyget
Förord - Beijer Electronics
Förord - Beijer Electronics
- 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