Profibus/dp PPO5 modul för en frekvensomriktare
BaseFcPPO5Module objektet hanterar datautbyte mellan en frekvensomriktare och Proview
via Profibus/dp med hjälp av standardprotokollet PPO5 (Parameter/Process data object).
PPO5 protokollet är det PPO alternativ (av 1-5) som innehåller mest alternativ för IO utbyte
och funktioner mellan ett styrsystem och en omriktare.
Modulobjektet BaseFcPPO5Module (placerad nodehierarkin) ingår i frekvensomriktarobjekt
BaseFcPPO5 (placerad planthierarkin) samt ett slavobjekt Pb_DP_Slave.
Aggregat BaseFcPPO5MotorAggr (Fan & Pump också) använder denna modul för att kommunicera
med en omriktare.
Modulobjektet

Gult område visar de viktigaste IO kanalerna och blått är själva objektmodulen.
Proview tolkar/hanterar PPO standardorden (16 bitar) SW och CW som namnats I_SW och O_CW
i bild ovan enligt följande:
Kontrollord CW:
BIT: PPO NAMN: PROVIEW TOLKNING AV FUNKTIONEN:
0 OFF1 Start (run) om bit är 1, stoppar med ramp om bit är 0.
1 OFF2 Nödstopp om bit är 0, stoppar med frirullning, dvs ingen ramp.
2 OFF3 Nödstopp om bit är 0, stoppar med nödstoppsramp inställd i omriktare.
3 ENABLE Driftfrigivning om bit är 1.
4 RAMP ZERO Rampgeneratorns utsignal tvingas till noll om bit är 0.
5 RAMP HOLD Rampgeneratorns utsignal fryses om bit är 0.
6 RAMP IN-ZERO Rampgeneratorns insignal tvingas till noll om bit är 0.
7 RESET Återställning trippad omriktare om bit är 1 (flanktriggad).
8 ? Se PPO protokollet.
9 ? Se PPO protokollet.
10 REMOTE CMD Begäran om bit är 1 att styrning ska ske via fältbussen (Proview/PLC).
11 ? Se PPO protokollet.
12-15 RESERVED Reserverad för framtid funktion, Se PPO protokollet.
Statusord SW:
BIT: PPO NAMN: PROVIEW TOLKNING AV FUNKTIONEN:
0 READY ON Redo (switch on) om bit är 1.
1 READY RUN Driftklar om bit är 1.
2 READY REF Startad (run) följer styrreferensen om bit är 1.
3 TRIPPED Omriktare trippad (återställning krävs) om bit är 1, drift stoppad.
4 OFF2 Nödstopp med frirullning aktiverad om bit är 1.
5 OFF3 Nödstopp med stoppramp aktiverad om bit är 1.
6 INHIBITED Driftförreglad bit är 1.
7 ALARM Varningslarm om bit är 1 (stoppar ej drift)
8 AT_SETPOINT Driftvarvtal uppnått om bit är 1, dvs bör/ärvärde är lika.
10 REMOTE Om bit är 0 är omriktaren i lokal mod, dvs styrning via Proview/PLC ej tillåten.
11 ? Se PPO protokollet.
12 ? Se PPO protokollet.
13-14 RESERVED Reserverad för framtid funktion, Se PPO protokollet.
15 ? Se PPO protokollet.
OBS! Om omriktaren styrs med annan bit tolkning kommer kanske inte styrningen att fungera som tänkt,
dvs kontrollera omriktarens PPO hantering för dessa viktiga styr och statusord att de överensstämmer
med Proview tolkning.
Konfigurering
För frekvensomriktarens Profibus/dp kommunikation behöver man skapa objekt i nodehierarkin under ett
Pb_Profiboard. Först skapar man ett Pb_DP_Slave objekt och detta gör att man kan konfigurera profibus
och skapa ett tillhörande IO objektmodul BaseFcPPO5Module via en konfigurator "ConfigureSlave" metod.
För att förtydliga hur man konfigurerar används en ABB omriktare som ett exempel och två bilder (skärm
dumpar) nedan:
-1 Skapa ett slavobjektet Pb_DP_Slave genom att "klicka in det" under ett Pb_Profiboard objekt.
-2 Ange GSDfile för en ABB omriktare ($pwr_exe/abb_acs_pb_slave.gsd) i attribut GSDfile i Pb_DP_Slave
objektet.
-3 Välj ut "Module Class" BaseFcPPO5Module via Profibus konfigurator "ConfigureSlave" metoden. Denna
procedur skapar objektet BaseFcPPO5Module automatiskt med namnet M1 när man trycker på Ok knappen.
-4 Via "ConfigureSlave" metoden i Proview ska man kontrollera och ställa in följande för en
ABB omriktare ACS800:
- PrmUserData Operation mode till till Vendor specific.
- Protokoll till PPO5.
- Pb_DP_Slave objektets attribut ByteOrdering ska vara Big Endian.
- Cut-Off time bör vara 1 (hanterar vad som händer i omriktaren vid profibusfel).
-5 Koppla en PLC tråd till attribut ThreadObject i objektet Pb_DP_Slave
(även BaseFcPPO5Module ska ha en tråd).
-6 Slaven/nodens adress ställs in i objekt Pb_DP_Slave attribut SlaveAddress direkt eller via
"ConfigureSlave" metoden.
-7 WdFact1 och WdFact2 definierar tiden i watchdog hanteringen för en profibusslav, dvs tiden
innan omriktaren ska lösa ut (trippa) om den är konfigurerad att göra det i omriktaren.
Tiden beräknas så här:
t[ms] = 10 * WdFact1 * WdFact2
Exempel, WdFact1 på 10 och WdFact2 på 5 blir watchdogtid på 0,5 sekunder.
Tidsfaktorerna ställs in i objekt Pb_DP_Slave.
-8 Koppla därefter modulen till frekvensomriktarobjekt BaseFcPPO5 i planthierarkin med hjälp av
IoConnect funktionen. Detta gör att allt signalutbyte som behövs nu är knutet.
Bild inställningar via "ConfigureSlave" metoden

Bilden, gult område visar vilka inställningar och val som beskrivs
ovan när man konfigurerar slaven via "ConfigureSlave" metoden.
Bild inställningar i objektet

Bilden, gult område visar vilka inställningar i objektet som
beskrivs ovan och som man kan ställa in direkt i objektet utan att
använda "ConfigureSlave" metoden.
Blått område visar objekten som behövs för att skapa BaseFcPPO5Module
via "ConfigureSlave" metoden.
Inställningar PPO5
PPO5 protokollets PZD data (prozessdaten) PZD3 och PZD4 ska också konfigureras i omriktaren för ström
och moment, dvs:
-PZD3 Ställs in för current/ström i omriktaren
-PZD4 Ställs in för Toque/moment i omriktaren
Anpassning/skalning mellan Proview och omriktarens IO signaler måste också göras i kanalobjekten
ChanAi och ChanAo för frekvensomriktaren, dvs signaler i BaseFcPPO5Module som bör gås igenom är:
-O_REF Referens (börvärde i varvtal är att föredra)
-I_ACT Ärvärde (varvtalsvärde är att föredra)
-I_PZD3 Ström
-I_PZD4 Moment
Se exempel nedan på hur en ABB omriktare och Proview kan ställas in.
OBS! Att INTE alla data som specificeras i PPO5 protokollet finns tillgänglig i planthierarki
objektet BaseFcPPO5.
Exempel inställningar i en omriktare
Nedan inställningar visar vilka parametrar som behöver gås igenom för att få ett fungerande
signalutbytet mellan Proview BaseFcPPO5Module och en ABB ACS800 frekvensomriktare. Vissa
inställningar har bara med själva omriktaren att göra och är med som ytterligare hjälp för
intressanta parametrar att beakta.
INSTÄLLNINGAR I ACS800 OMRIKTAREN (text på engelska):
Parameter Value Description
group
10.01 COMM.CW Ext1 start/stop/direction
10.03 ? Rotation of the motor
11.02 EXT1 Reference select
11.03 COMM.REF Source for external reference 1
11.04 ? Minimum value for external reference 1
11.05 ? Maximum value for external reference 1
16.04 COMM.CW Source for the fault reset signal "tripped"
21.03 RAMP Motor stop function
22.01 ACC/DEC 1 Acceleration and deceleration times
22.02 ? Acc time 1
22.03 ? Dec time 1
51.01 Profibus/dp Modultype
51.02 ? Node adress (via dipswitchar, om switchar är 0 ställs den in här.)
51.06 104 PZD3 IN, Current/Ström
51.08 105 PZD4 IN, Torque/Moment
98.02 FIELDBUS Serial communication
98.07 ABB Drives Communication profile
16.01 Ja Run enable parameter/driftfrigivning
20.01 ? Limits min speed
20.02 ? Limits max speed
Exempel parameter PZD4 IN:
Parameter PZD4 IN ställs in i parametergrupp 51.08 och ska ställas in till 105,
som betyder värde "01.05" som är motorns ärmoment. Dennas signal läses sen av
i Proview, ingångskanal I_PZD4.
Överföringshastigheten (Baude raten) grupp 52.03 och PPO typen grupp 52.04 ställs in
automatiskt när kommunikation etableras.
Via "ConfigureSlave" metoden i Proview ska man ställa in följande för en ABB omriktare ACS800:
- PrmUserData Operation mode till till Vendor specific (info från GSD fil)
- Protokoll till PPO5 (info från GSD fil)
- Pb_DP_Slave objektets attribut ByteOrdering till Big Endian (default är Little Endian)
Proview kanalobjekt ChanAi och ChanAo attribut som styr skalning/anpassning mot
omriktarens analoga signaler som behöver ändras visas här:
I_ACT (varvtal/ärvärde)
Omriktarens Max/Min varvtal parameter 20.01 och 20.02 bestämmer vad I_ACT ska
skalas till. Exempel +/- 1500r/m är inställt i omriktaren vilket ger:
- RawValRangeLow -20000
- RawValRangeHigh +20000
- ActValValRangeLow -1500
- ActValRangeHigh +1500
Omriktarens varvtalsområde råvärde i omriktaren är alltid +/- 20000.
I_PZD3 (ström)
Omriktarens strömområde är 0-1000A.
- RawValRangeLow -10000
- RawValRangeHigh +10000 (betyder 1000A)
- ActValValRangeLow -1000
- ActValRangeHigh +1000
Omriktarens strömområde råvärde i omriktaren är alltid +/- 10000 vilket är 1000.0 Amper
(Råvärde RawValRange på 1382 betyder 138,2A).
I_PZD4 (moment)
Omriktarens momentområde är i procent (råvärde RawValRange på +/- 32768)
- RawValRangeLow -32768
- RawValRangeHigh +32767 (betyder 327.67%)
- ActValValRangeLow -327.68
- ActValRangeHigh +327.67
Omriktarens momentområde i manualen är otydlig men dessa inställningar fungerar!!!
O_REF (Referens/börvärde)
Omriktarens referensområde i varvtal parameter 11.04 och 11.05 bestämmer vad O_REF ska
skalas till. Exempel +/- 1500r/m referensområde önskas vilket ger:
- RawValRangeLow -20000
- RawValRangeHigh +20000
- ActValValRangeLow -1500
- ActValRangeHigh +1500
Omriktarens varvtalsområdes råvärde i omriktaren är alltid +/- 20000.
Övriga attribut i kanalobjekten som skalar signaler kan lämnas som de är, dvs:
- SensorSigValRangeLow
- SensorSigValRangeHigh
- ChannelSigValRangeLow
- ChannelSigValRangeHigh
Att ändra/förstå dessa attribut är inte lätt och exemplet nedan visar när O_REF attributet
skalas om så en begränsning av max +/- 400r/m kan "nå" omriktaren, dvs om Ao RefSpeed.ActualValue
värde överskrider 400 blir omriktarens referens i alla fall bara 400:
- ActValValRangeLow -400 (begränsningen i r/m)
- ActValRangeHigh +400 (begränsningen i r/m)
- SensorSigValRangeLow -20 (1/5 av ChannelSigValRangeLow, dvs procent av 2000r/m)
- SensorSigValRangeHigh +20 (1/5 av ChannelSigValRangeHigh,dvs procent av 2000r/m)
- ChannelSigValRangeLow -100 (procent)
- ChannelSigValRangeHigh +100 (procent)
- RawValRangeLow -20000 (ska alltid vara -20000)
- RawValRangeHigh +20000 (ska alltid vara +20000)
Omriktarens min/max parametrar/styrreferens 11.04 och 11.05 är inställda på +/- 2000r/m
i detta exempel och ChannelSigValRange och SensorSigValRange attributen ovan är i
procent för enkelhetens skull.
OBS! Att ställa in Proview på detta sätt är inte att rekomendera, det är bättre att
omriktarens inställningar får råda.
Om startorder OFF1 bit 0 i kontrollordet CW går från hög till låg och hög igen måste
motorn rampa ner till noll innan motorn startar/börjar rampa upp igen!
Se även
Template Object |
Super.Specification |
Profibus module PPO5 protocol |
Super.Process |
1 |
Io.I_ID.Description |
Parameter identification |
Io.I_ID.ConversionOn |
1 |
Io.I_ID.Representation |
2 |
Io.I_IND.Description |
Array index |
Io.I_IND.ConversionOn |
1 |
Io.I_IND.Representation |
2 |
Io.I_VALUE.Description |
Parameter value |
Io.I_VALUE.ConversionOn |
1 |
Io.I_VALUE.Representation |
1 |
Io.I_SW.Description |
Status Word |
Io.I_SW.ConversionOn |
1 |
Io.I_SW.Representation |
3 |
Io.I_ACT.Description |
Actual Value |
Io.I_ACT.Identity |
1103 |
Io.I_ACT.ConversionOn |
1 |
Io.I_ACT.ScanInterval |
1 |
Io.I_ACT.RawValRangeLow |
-3.276800e+04 |
Io.I_ACT.RawValRangeHigh |
3.276700e+04 |
Io.I_ACT.ChannelSigValRangeLow |
-3.276800e+04 |
Io.I_ACT.ChannelSigValRangeHigh |
3.276700e+04 |
Io.I_ACT.SigValueUnit |
V |
Io.I_ACT.SensorPolyType |
1 |
Io.I_ACT.SensorSigValRangeLow |
-3.276800e+04 |
Io.I_ACT.SensorSigValRangeHigh |
3.276700e+04 |
Io.I_ACT.ActValRangeLow |
-1.000000e+02 |
Io.I_ACT.ActValRangeHigh |
1.000000e+02 |
Io.I_ACT.Representation |
2 |
Io.I_PZD3.Description |
Process Data 1, Current |
Io.I_PZD3.Identity |
5106 |
Io.I_PZD3.ConversionOn |
1 |
Io.I_PZD3.ScanInterval |
1 |
Io.I_PZD3.RawValRangeLow |
-3.276800e+04 |
Io.I_PZD3.RawValRangeHigh |
3.276700e+04 |
Io.I_PZD3.ChannelSigValRangeLow |
-3.276800e+04 |
Io.I_PZD3.ChannelSigValRangeHigh |
3.276700e+04 |
Io.I_PZD3.SigValueUnit |
V |
Io.I_PZD3.SensorPolyType |
1 |
Io.I_PZD3.SensorSigValRangeLow |
-3.276800e+04 |
Io.I_PZD3.SensorSigValRangeHigh |
3.276700e+04 |
Io.I_PZD3.ActValRangeLow |
-1.000000e+02 |
Io.I_PZD3.ActValRangeHigh |
1.000000e+02 |
Io.I_PZD3.Representation |
2 |
Io.I_PZD4.Description |
Process Data 2, Torque |
Io.I_PZD4.Identity |
5108 |
Io.I_PZD4.ConversionOn |
1 |
Io.I_PZD4.ScanInterval |
1 |
Io.I_PZD4.RawValRangeLow |
-3.276800e+04 |
Io.I_PZD4.RawValRangeHigh |
3.276700e+04 |
Io.I_PZD4.ChannelSigValRangeLow |
-3.276800e+04 |
Io.I_PZD4.ChannelSigValRangeHigh |
3.276700e+04 |
Io.I_PZD4.SigValueUnit |
V |
Io.I_PZD4.SensorPolyType |
1 |
Io.I_PZD4.SensorSigValRangeLow |
-3.276800e+04 |
Io.I_PZD4.SensorSigValRangeHigh |
3.276700e+04 |
Io.I_PZD4.ActValRangeLow |
-1.000000e+02 |
Io.I_PZD4.ActValRangeHigh |
1.000000e+02 |
Io.I_PZD4.Representation |
2 |
Io.I_PZD5.Description |
Process Data 3 |
Io.I_PZD5.Identity |
5110 |
Io.I_PZD5.ConversionOn |
1 |
Io.I_PZD5.Representation |
3 |
Io.I_PZD6.Description |
Process Data 4 |
Io.I_PZD6.Identity |
5112 |
Io.I_PZD6.ConversionOn |
1 |
Io.I_PZD6.Representation |
3 |
Io.I_PZD7.Description |
Process Data 5 |
Io.I_PZD7.Identity |
5114 |
Io.I_PZD7.ConversionOn |
1 |
Io.I_PZD7.Representation |
3 |
Io.I_PZD8.Description |
Process Data 6 |
Io.I_PZD8.Identity |
5116 |
Io.I_PZD8.ConversionOn |
1 |
Io.I_PZD8.Representation |
3 |
Io.I_PZD9.Description |
Process Data 7 |
Io.I_PZD9.Identity |
5118 |
Io.I_PZD9.ConversionOn |
1 |
Io.I_PZD9.Representation |
3 |
Io.I_PZD10.Description |
Process Data 8 |
Io.I_PZD10.Identity |
5120 |
Io.I_PZD10.ConversionOn |
1 |
Io.I_PZD10.Representation |
3 |
Io.O_ID.Description |
Parameter identification |
Io.O_ID.Representation |
3 |
Io.O_IND.Description |
Array index |
Io.O_IND.Representation |
3 |
Io.O_VALUE.Description |
Parameter value |
Io.O_VALUE.Representation |
1 |
Io.O_CW.Description |
Control Word |
Io.O_CW.Identity |
9004 |
Io.O_CW.Representation |
3 |
Io.O_REF.Description |
Reference Value |
Io.O_REF.Identity |
9004 |
Io.O_REF.OutPolyType |
1 |
Io.O_REF.ActValRangeLow |
-1.000000e+02 |
Io.O_REF.ActValRangeHigh |
1.000000e+02 |
Io.O_REF.SensorSigValRangeLow |
-3.276800e+04 |
Io.O_REF.SensorSigValRangeHigh |
3.276700e+04 |
Io.O_REF.SigValueUnit |
V |
Io.O_REF.ChannelSigValRangeLow |
-3.276800e+04 |
Io.O_REF.ChannelSigValRangeHigh |
3.276700e+04 |
Io.O_REF.RawValRangeLow |
-3.276800e+04 |
Io.O_REF.RawValRangeHigh |
3.276700e+04 |
Io.O_REF.Representation |
2 |
Io.O_PZD3.Description |
Process Data 3 |
Io.O_PZD3.Identity |
5105 |
Io.O_PZD3.OutPolyType |
1 |
Io.O_PZD3.ActValRangeLow |
-1.000000e+02 |
Io.O_PZD3.ActValRangeHigh |
1.000000e+02 |
Io.O_PZD3.SensorSigValRangeLow |
-3.276800e+04 |
Io.O_PZD3.SensorSigValRangeHigh |
3.276700e+04 |
Io.O_PZD3.ChannelSigValRangeLow |
-3.276800e+04 |
Io.O_PZD3.ChannelSigValRangeHigh |
3.276700e+04 |
Io.O_PZD3.RawValRangeLow |
-3.276800e+04 |
Io.O_PZD3.RawValRangeHigh |
3.276700e+04 |
Io.O_PZD3.Representation |
2 |
Io.O_PZD4.Description |
Process Data 4 |
Io.O_PZD4.Identity |
5107 |
Io.O_PZD4.OutPolyType |
1 |
Io.O_PZD4.ActValRangeLow |
-1.000000e+02 |
Io.O_PZD4.ActValRangeHigh |
1.000000e+02 |
Io.O_PZD4.SensorSigValRangeLow |
-3.276800e+04 |
Io.O_PZD4.SensorSigValRangeHigh |
3.276700e+04 |
Io.O_PZD4.SigValueUnit |
V |
Io.O_PZD4.ChannelSigValRangeLow |
-3.276800e+04 |
Io.O_PZD4.ChannelSigValRangeHigh |
3.276700e+04 |
Io.O_PZD4.RawValRangeLow |
-3.276800e+04 |
Io.O_PZD4.RawValRangeHigh |
3.276700e+04 |
Io.O_PZD4.Representation |
2 |
Io.O_PZD5.Description |
Process Data 5 |
Io.O_PZD5.Identity |
5109 |
Io.O_PZD5.OutPolyType |
1 |
Io.O_PZD5.ActValRangeLow |
-1.000000e+02 |
Io.O_PZD5.ActValRangeHigh |
1.000000e+02 |
Io.O_PZD5.SensorSigValRangeLow |
-3.276800e+04 |
Io.O_PZD5.SensorSigValRangeHigh |
3.276700e+04 |
Io.O_PZD5.ChannelSigValRangeLow |
-3.276800e+04 |
Io.O_PZD5.ChannelSigValRangeHigh |
3.276700e+04 |
Io.O_PZD5.RawValRangeLow |
-3.276800e+04 |
Io.O_PZD5.RawValRangeHigh |
3.276700e+04 |
Io.O_PZD5.Representation |
2 |
Io.O_PZD6.Description |
Process Data 6 |
Io.O_PZD6.Identity |
5111 |
Io.O_PZD6.Representation |
2 |
Io.O_PZD7.Description |
Process Data 7 |
Io.O_PZD7.Identity |
5113 |
Io.O_PZD7.Representation |
2 |
Io.O_PZD8.Description |
Process Data 8 |
Io.O_PZD8.Identity |
5115 |
Io.O_PZD8.Representation |
2 |
Io.O_PZD9.Description |
Process Data 9 |
Io.O_PZD9.Identity |
5117 |
Io.O_PZD9.Representation |
2 |
Io.O_PZD10.Description |
Process Data 10 |
Io.O_PZD10.Identity |
5119 |
Io.O_PZD10.Representation |
2 |