Professional Documents
Culture Documents
Innovation Days - TIA Portal Workshop
Innovation Days - TIA Portal Workshop
konfigurasjon og utstyr. Eksemplene representerer ikke kundespesifikke løsninger, de har kun til hensikt å gjøre
tilgjengelig typiske applikasjoner. Du er selv ansvarlig for riktig bruk av de relevante produktene. Eksemplene fritar
deg ikke fra ansvaret for sikker og profesjonell bruk, installasjon, betjening og service av utstyr. Ved å bruke disse
eksemplene, godkjenner du at Siemens ikke kan stilles til ansvar for eventuelle skader/krav som følge av bruk av
disse eksemplene i virkelige applikasjoner.
Beskrivelse av oppgave:
Prosjekt skal bestå av 1 stk S7 1500 PLS, og 1 stk HMI comfort panel. Det skal etableres kommunikasjon
mellom PLS og HMI. Det skal opprettes 5 stk PLS tags:
Tag Beskrivelse
1
1. Skriv et enkelt program i ”Main” som starter og stopper en motor ,tag ”Motor”, på bakgrunn av
å benytte tag ”Start” og tag ”Stopp”.
2. Programmet skal testes.
3. Deretter skal programmet utvides slik at motor også kan startes og stopp fra HMI Panel.
4. Legg inn aktuelt comfort panel i prosjektet, opprett kommunikasjon mellom panel og PLS.
5. Prosjekter 2 knapper på panelet, Start og Stopp. Legg også inn en variabel for status på motor.
Tilordne start og stopp knapp til Start_HMI og Stopp_HMI ( dette gjøres i events). Tilordne
variabel til tag ”Motor”.
6. Programmet testes på nytt.
Detaljer:
Prosjekt opprettes, legg til uspesifisert CPU
2
Start scand og vent til TIA finner PLC på nettverket.
Trykk ”Detect”
3
Skrive program i ”Main”.
4
Legg til HMI Panel i prosjektet
5
Legg inn start og stopp knapp i HMI bilde, prosjekter set/reset bit
6
Oppgave nr 2 – Safety Integrated
Beskrivelse av oppgave:
Litt grunnleggende forståelse først.
Hardware:
Selve nødstopp (E3) knapp er koblet til Safety digital inngang på F-PM-E kortet, adresse I 10.0
Utgang til motor går fra standard digitalt utgangskort. Digitalt utgangskort får sin mate spenning fra F-
PM-E kort. I vår oppgave skal vi benytte F-PM-E kortet til å slå av spenning til digitalt utgangskort ved
nødstopp.
7
Prinsipp med F-PM
Terminering F-PM-E
8
Ved oppretting av safety prosjekt i TIA Portal, vil det automatisk bli generert:
Safety Administrasjon:
Main Safety:
Når man programmerer safety er det viktig at man tar hensyn til status på den hardware som benyttes
for funksjon. I dette eksemplet gjelder dette status på Safety DI kort, og status på F-PM-E kort.
Alle Safety kort oppretter en egen datablokk i TIA portalen. Fra denne blokken kan man lese data vedr
aktuelt I/O. Man har også mulighet til å skrive til denne datablokken.
QBAD (utgang) – Samle bit for status på kort ( bit er satt hvis feilstatus er til stede)
ACK_REI ( inngang) – kvittering til kort etter at kortet har vært aktiv, for eksempel nødstopp.
Detaljbeskrivelse av oppgave:
Oppgaven består i at man skal lage en nødstopp for motor M1. Følgende funksjonalitet skal inkluderes:
9
Komme i gang:
For å spare tid så er det i dette prosjektet opptrettet hardware konfigurasjon. Dette innbefatter også at
datablokker for failsafe I/O kort allerede finnes i prosjektet. Videre er hardware ferdig prosjektert.
Det er en del tags tilgjengelig i prosjektet, men i vår oppgave skal vi kun benytte følgende tags:
Skriv en FB (Motor_M1) som innehar funksjonalitet som beskrevet over. Benytt standard funksjoner
som: ESTOP og FDBACK. Benytt hjelpefunksjon (marker funksjon og trykk F1) for å forstå hvordan disse
funksjonene prosjekteres.
10
Detaljer/Tips:
11
Prosjektering av ESTOP
Stopp av motor ved ved trykk på nødstopp, nøkkelvender er med i logikk. Nettverk 3, logikk for start av
motor.
12
Start av motor
13
Resett av failsafe kort
14
Oppgave nr 3 – SIWAREX WP231 integrasjon i TIA
Beskrivelse av oppgave:
Litt grunnleggende forståelse først.
Oppgaven vil være å lage et prosjekt i TIA portalen. Prosjektet er å få visning av vekt på HMI panelet
samt tarere veiecellen.
Hardware:
Det skal i oppgaven benyttes S7-1200, SIWAREX WP231, Veiecelle WL230 samt HMI panel type.
Detaljbeskrivelse av oppgave:
1. Åpne TIA portalen.
2. Download prosjektet SIWAREX
3. Gå inn i MAIN
4. Hent inn funksjonsblokk for WP231 fra globalt bibliotek. Denne skal parameteres
5. Prosjekter opp FP231 (bruk hjelpemeny).
6. Studer watchtabell for relevante data
15
7. Kalibrering og skalering
- ”WP231PR_DB”.s_IO_DATA.PROCESS_VAL_1
// CMD kode:
- ”WP231PR_DB”.s_CMD1.i_CMD_CODE
- “WP231PR_DB”.s_CMD1.bo_CMD_TRIGGER
//Kalibrering:
- “WP231PR_DB”.DR10.NO_POINTS_OF_SUPPORT
- “WP231PR_DB”.DR10.NO_OF_LOAD_CELLS
- “WP231PR_DB”.DR10.GAIN_LOAD_CELL
- “WP231PR_DB”.DR10.NOM_LOAD_ONE_LOAD_CELL
Do a commissioning/adjustment of the load cell. The easy way will be to use the automatic calibration.
Please turn service mode ON (CMD_Code: 1 and CMD_Trigger: TRUE). You need the characteristics of
the load cell (e.g. 2.005 mV/V). You can see this value on the type plate of the load cell. You need the
nominal load (in your case 500kg, I think). Now enter all the values in DR10 (with a watch table) and
send this DR10 from CPU to WP231 (CMD_Code: 4010 ans CMD_Trigger: TRUE). Now you have to
execute command 82 (automatic calibration) (CMD_Code: 82 and CMD_Trigger: TRUE). Now turn
service mode OFF (CMD_Code: 2 and CMD_Trigger: TRUE).
16
17
Oppgave nr 4 - Modbus
Beskrivelse av oppgave:
Prosjektet skal bestå av 2 stk S7-1500 PLS hvor den ene PLSen settes opp som en Modbus server, og den
andre som en Modbus klient. Klienten skal lese og skrive til serveren. Endring og visning av data skal
gjøres via et HMI comfort panel.
1. Sett opp PLS#1 til å være en Modbus Server. Bruk array av words som input til MB_HOLD_REG
inngangen.
2. Sett opp PLS#2 til å være Modbus Klient. Bruk array av words som input til MB_DATA_PTR
Inn/utgangen.
3. Sett klienten opp til å ha en connection til serveren (CONNECT inngangen på blokken av typen
TCON_IP_V4).
18
4. Lag logikk for å kunne veksle mellom lese (mode 0) og skrive (mode 1). Se hjelp fil for ytterligere
beskrivelse av relasjonen mellom mode og modus funksjonskode.
5. Sett klienten til å lese/skrive aktuelt område fra klienten. For eksempel adresse 40001, lengde 8
6. Legg klient og server data, samt mulighet for å veksle mellom lese/skrive opp i et HMI panel for
test av modus kommunikasjonen mellom Server og Klienten
Detaljer Server:
Legg til blokken ”MB_SERVER” og tilordne inn og utgangsvariabler fra en global datablokk.
19
CONNECT/TCON_IP_V4
Datatypen TCON_IP_V4 må manuelt skrives inn i kolonnen for ”Data type”
Interface ID: unik adresse for HW kommunikasjon skal foregå over (Ethernet porten). Denne finner man
under properties på hardwaren.
ID: Unik ID for kommunikasjonslinen
ConnectionType: 11 for Modbus TCP
RemoteAddress: Kan låses til en spesifikk IP, for å akseptere alle innkommende forespørsler settes
denne til 0
LocalPort: 502, default for Modbus
20
MB_HOLD_REG
Opprettes som et array av Word. dataBuffer[0] vil da få Modbus adresse 40001, dataBuffer[1] -> 40002
osv.
Detaljer Klient:
Legg til blokken ”MB_CLIENT” og tilordne inn og utgangsvariabler fra en global datablokk.
21
CONNECT/TCON_IP_V4
Datatypen TCON_IP_V4 må manuelt skrives inn i kolonnen for ”Data type”
Interface ID: unik adresse for HW kommunikasjon skal foregå over (Ethernet porten). Denne finner man
under properties på hardwaren.
ID: Unik ID for kommunikasjonslinen
ConnectionType: 11 for Modbus TCP
ActiveEstablished: 1 for klient
RemoteAddress: IP adresse til klienten
RemotePort: 502, default for Modbus
22
MB_DATA_PTR
Opprettes som et array av Word, for lagring av data lest/data som skal skrives.
23
Detaljer HMI:
Opprett HMI tags og connections til begge PLSene.
- Les de første adressene i dataBuffer[] fra både Server og Klient
- Legg inn et IO felt for ”modbusData”.modeHMI slik at man fra brukerprogrammet kan veksle mellom
lese (mode = 0) og skrive (mode = 1).
24
- Legg opp status word og error bit fra både klient og server blokken for feilsøking.
25
Oppgave nr 5 – G120 Drives
Utstyr:
1500-PLS, Comfortpanel-HMI, G120 Drives.
HW i denne Workshopen .
26
Slik ser det ut i TIA:
27
Vi starter med å konfigurere PLS’en
Slik ser resultatet vi er ute ut i Device view.
28
Detaljbilde av uspesifisert CPU 1500
29
Da skal PLS være ferdig konfigurert.
30
Detaljer:
31
Gå nå til Device view og velg Drive_1 legg til Power modul slik som anvvist.
32
Da er powermodulen på plass. Powermodulen er den delen av omformeren som stømmen kommer inn i
fra nettet og ut til motoren. CU – kontroll uniten sturer powermodulen.
Se påfølgende sider.
33
Legg ip adressen inn her. (192.168.0.4)
Nyttig info
Oversikt over parametere i G120 driven.
Etter autotuning kan det være nødvendig å øke verdien i parameter P1745 fra ca 5,9% til 10%.
34
Factory reset av G120 drive: Husk å gå online på driven først. (Hvis nødvendig)
35
PLS programmering
Kjøring av G120 Drive via teknologiblokker i PLS.
Det første vi gjør er å hente fram det ønskede teknologiobjektet:
Her skal vi kjøre hastighetsregulering og bruker da en TO_speedaxsis
Resultat
Da er speedaxsis_1 valgt og denne skal knyttes til alle MC teknologiobjektene vi skal bruke.
36
Vi bruker nå teknologiobjektene i TIA og legger inn følgende objekter:
Du bør bruke eksakt disse Tag navnene for denne oppgaven så blir det lettere å evt feilsøke:
Her finner du etterhvert Tag’ene. (men du har ikke laget disse ennå disse blir laget når du programerer)
37
Og her ser du lettere hva det står. Som sagt bruk denne listen for å navnsette de kommende
teknologiobjektene.
Velg PLC
Beveg deg så over til høyre side. Velg først MC_Power. Deretter de andre
38
’Først ut av teknologi objektene er MC_POWER.
MC_POWER ser en objektet som strømsetter G120 driven.
For å få denne til å fungere trenger du kun å gjøre 2 ting.
1. SpeedAxis_1(som vi tidligere har konfigurert) knyttes til inngang kalt Axis
2. Power_Enable er et egendefinert navn som benytter første ledige internminne (%M0.0). Dette
blir nå en boolsk variabel eller ”Tag” som vi senere skal benytte i HMI for å skru på og av
MC_POWER fra HMI’en
39
Utfør det samme for disse:
40
41
Tag-tabellen din bør nå inneholde dette.
42
Nå skal HMI Konfigureres og programeres:
Først litt oversikt! Slik skal sluttresultatetseut.
43
Et triks som knytter HMI sammen med PLS:
Splitt skjermen
og
Dra en variabel fra PLS (OB1) over til en skjerm (Skreen1). Bruk nøyaktid den foreslåtte variablen.
44
Her er oversiktbilde av prosessen:
45
Tilbake til HMI-programering.
Dra diagnose inn i Screen1. Diagnose er kjekt å ha!
Nå skal du konfigurere en knappene og knytte disse opp i mot variablene for å kontrollere de 5
teknologiobjektene du har programmert i PLS’en
46
Gå til properties:
47
Oversiktsbilde med valgboksen nede.
NB! ”Power on” knappen har funksjonen ”Invert bit” (fordi den skal bli stående på når du trykker på den
og bli ståense av neste gang du trykker) og ikke ” SetBitWhileKeyPressed”.
48
Oversikt over Tags brukt i denne Workshopen. HMI og pls tags finner du her:
49
PLS TAG:
Detaljert HMI tags his printen blir for dårlig. Altså identisk med PLS tags!:
Nå skal Drive, PLS og HMI være konfigurert og programmert i forhold til logikk Snart klar til å kjøre
motor!
50
Tuning av DRIVE’EN i forhold til motoren!
Det som nå gjenstår er å fortelle driven et par ting om motoren, dette gjøres også via TIA.
Les av motordata på skiltplata til motoren. (50Hz, Trekant, 230v, 0,73A, 1350rpm)
51
Kjør autotuning av Driven enten i roterende eller statisk. (Ha gjerne for vane å kjør denne statisk)
Siste justering etter Autotuning på dette demoracket er å endre parameter P1745 fra 5-6% til 10%.. (Kan
være nødvendig pga mulig feilkobling)
52
Oppgave nr 6 - TIA diverse funksjoner
Beskrivelse av oppgave:
Litt grunnleggende forståelse først.
Variant peker
Dette er en funksjon kan benyttes i mange sammenhenger. Med denne funksjonen er man i stand til å
skrive programmer, ute å vite hvilke data ( datatyper ) som skal behandles når man skriver programmet.
Variant kan benyttes til å sjekke data, hente data og plassere data. Det fine med denne peker er at man
ikke trenger å ta hensyn til lengde på datatypen, peker vet dette.
53
Sclice
Sclice er en nyttig funksjon hvis man ønsker å se detaljer i en tag. Eksempelvis hvis man har en 16 bits
tag ( word), denne har et navn, og man ønsker å se hvilke status bit 5 har. Eller man ønsker å se status
på byte 0 i denne tag.
Trace
Trace er en funksjon hvor man har mulighet for å trace variable ( tags) og få disse inn i et kurvesystem.
Man har forskjellige muligheter for å starte (trigge) trace, og man kan ha inntil 16 kurver i samme trace.
Det er også mulighet for pre trigg, dette vil si at man i kurven også kan se variable ( tags) før selve start –
triggepunkt.
Detaljbeskrivelse av oppgave:
Oppgaven består i at man skal utvide et eksisterende program slik at dette kan håndtere flere datatyper.
Variant peker er allerede tatt i bruk, og man skal benytte samme metode. Når program er ferdig testes
dette ved hjelp av ”watch” tabell. Deretter skal det settes opp en trace hvor man i kurveform skal se de
variable ( tags) man har benyttet i programmet. Til slutt lager vi et eksempel på Slice
Komme i gang:
For å spare tid så er det i dette prosjektet opptrettet hardware konfigurasjon. Det er også lagt inn
datatyper, datablokker og en FB 1. Start med å studere datatypene under PLC data types. Studer også
datablokkene DB_Datatype_1 og DB_Datatype_2
Det er skrevet en FB 1 som jobber med Datatype_1, og hvis vi ser i ”Main”, og i watchtabell så vil vi se at
Int i aktuell datatype ( DB_Datatype_1 …. 0 og 1) teller fra 0 til 100 med syklustakt.
54
Etter at man har fått en forståelse av prosjektet, gjøres følgende:
Utvid FB 1. Start etter den siste END_IF. Benytt variant, sjekk at Datatype det pekes på er Datatype_2
(se på kode lenger opp i programmet)
OBS.. IKKE KOPIER KODE FRA PROGRAM OVER.. LET ETTER AKTUELLE FUNKSJONER I
INSTRUKSJONSLISTE!!
Hvis variant, peker på Datatype_2, hent inn data og lagre dem i TEMP: Data_2
Ta deretter int i datatypen ( Type_2_2) og dekrementer denne med 1. Int skal altså telle fra 100 til 0, og
deretter starte på 100 igjen.
Bruk så variant, og legg tilbake TEMP, til Datablokk. ( se på kode lenger opp i program, men ikke kopier,
skriv selv)
Kall opp FB 1 i main, med parametre ( variant) til DB_Datatype_2) Kall blokken to ganger. Se hva som er
gjort i MAIN fra før.
Test at aktuelle int i datatype_2 blir dekrementert med 1 fra 100 til 0, bruk watchtabell…
55
Detaljer/Tips:
DB med datatype 2. Det er Type_2_2 (int) som skal dekrementeres 100 -> 0
Datatype _2
56
Start på utvidelse av FB 1
Trace
Konfigurering av trace, her alle signaler som skal traces
57
Defenisjon av sampling, antall 500, pretrigger 200. Defenisjon av trig ( start trace), positiv flanke.
Klikk på Diagram, da vil man se kurve. Tekst Waiting for trigger vil også fremkomme.
Sett trig i watch tabell, og observer opptak, studer kurve før og etter trig. Benytt knapper, zoom, cursor
etc
58
Slice
Tags for test av slice.
59