Permalänk

PLC-programmerings problem!

Hallå alla dataprogrammerare!

Har suttit hela dagen och försökt få till motorstart på jobbet.

Det är fem motorer/pumpar som skall startas. Hur många som ska startas styrs från ett HMI, där man har möjlighet att välja med/bort pump för pump. Man har alltså ett driftval för varje pump.

Funktionen skall fungera som så att första pumpen som startas av de medvalda direkt startas, resterande pumpar skall startas med en viss intervall.

Tex ska man kunna starta pump 1,2,4 först och sedan genom att välja till pump 3 & 5 och ge ny startpuls starta dessa också, och de skall pump 3 direkt starta och pump 5 skall startas en viss förutbestämd tid.

Hoppas ni fattar hur jag vill att det ska fungera.

Har suttit och försökt få ihop det med fbd/ladder osv men nätverkern blir så oehört komplexa efter pump 2 så man reder knappt ut det. Så antar lösning ligger i lite struktureras text, är dock inte jätte
duktig på det tyvärr. Har provat diverse saker med ST med, men får inte till det riktigt till det. Skall väl tilläggas att ST-editorn har fullt C++ stöd. Så alla instruktioner som funkar i C skall gå att implementera även här.

Nåja detta är låångskott, men kanske finns det en annan duktigt programmerare här

Best regards!

Visa signatur

[ Asus Maximus Formula III| Intel Core i5 750 | 8GB Corsair DDR3 | Intel X25-M G2 160GB | Western Digital Caviar 500GB | Gerforce GTX275 | Corsair 750W | Windows 7 Ultimate 64-bit ]

Permalänk
Medlem

Är det typ så här du menar?

Visa signatur

citera!

Permalänk
Medlem

Hade min far suttit på Swec hade du haft en lösning redan =/

Visa signatur

ᕦ(ツ)ᕤ

Permalänk
Skrivet av Dosshell:

Ja det något åt det hållet men jag vill även om man har startat pump 1 & 2 och sedan ska starta tex 3,4 & 5 så ska skall även pump 3 vid det tillfället direktstarta!
Jag har sj gjort en programbit som fungerar förutom just att inte får till detta med att första pumpen i kön ska direktstartas även om några andra redan är i drift.

Men hur jag ska lösa det vet jag ej =(
Binärkoda pumparna? så att jag vet vilken som har vilket värde eller?

Visa signatur

[ Asus Maximus Formula III| Intel Core i5 750 | 8GB Corsair DDR3 | Intel X25-M G2 160GB | Western Digital Caviar 500GB | Gerforce GTX275 | Corsair 750W | Windows 7 Ultimate 64-bit ]

Permalänk
Medlem
Skrivet av creative_86:

Ja det något åt det hållet men jag vill även om man har startat pump 1 & 2 och sedan ska starta tex 3,4 & 5 så ska skall även pump 3 vid det tillfället direktstarta!
Jag har sj gjort en programbit som fungerar förutom just att inte får till detta med att första pumpen i kön ska direktstartas även om några andra redan är i drift.

Men hur jag ska lösa det vet jag ej =(
Binärkoda pumparna? så att jag vet vilken som har vilket värde eller?

Vilka ingångar kommer du att ha?

Du har 5 pumpar, Q1-Q5
Är det en och samma ingång som ska styra pumparna förutom den som ska gå igång med tid?

Visa signatur

83 35 47 30 4 5 57 63 60 5 96 22 100 43 4 92 100 23 42 46 44 47 18 96 64 5 61 85 90 45 51 85 4 60 79 62 23 50 44 75 100 20 9 92 49 9 83 88 40 7 45 67 56 82 32 85 60 85 44 69 81 9 98 1 34 51 84 100 22 86 41 44 61 25 60 36 64 49 20 1 24 71 4 65 27 60 72 73 82 76 86 8 40 68 35 59 2 66 85

Permalänk
Medlem
Skrivet av creative_86:

Ja det något åt det hållet men jag vill även om man har startat pump 1 & 2 och sedan ska starta tex 3,4 & 5 så ska skall även pump 3 vid det tillfället direktstarta!

Så om alla pumpar är avstängda och jag väljer att starta 1,2 & 3, så kommer endast 1 att starta direkt?
Vill du ha separata köer för varje start-tillfälle eller vill du endast ha en kö för alla start-tillfällen?

Visa signatur

citera!

Permalänk
Skrivet av Dosshell:

Så om alla pumpar är avstängda och jag väljer att starta 1,2 & 3, så kommer endast 1 att starta direkt?
Vill du ha separata köer för varje start-tillfälle eller vill du endast ha en kö för alla start-tillfällen?

Ja, problemet är ju när andra starten kommer. Då vill jag att första pumpen som startas ska direktstartas. Oavsett vilken pump som är första pumpen vid andra starten. Det här jag får problem. Har du någon idé?

Hur många kösystem det blir spelar ingen roll bara det blir någorlunda begripligt för de som ev. ska felsöka i det.

Visa signatur

[ Asus Maximus Formula III| Intel Core i5 750 | 8GB Corsair DDR3 | Intel X25-M G2 160GB | Western Digital Caviar 500GB | Gerforce GTX275 | Corsair 750W | Windows 7 Ultimate 64-bit ]

Permalänk
Medlem

Ingen ide att vi är flera att lösa problemet, vill du ha en lösning som passar till PLC så säg till.

Visa signatur

83 35 47 30 4 5 57 63 60 5 96 22 100 43 4 92 100 23 42 46 44 47 18 96 64 5 61 85 90 45 51 85 4 60 79 62 23 50 44 75 100 20 9 92 49 9 83 88 40 7 45 67 56 82 32 85 60 85 44 69 81 9 98 1 34 51 84 100 22 86 41 44 61 25 60 36 64 49 20 1 24 71 4 65 27 60 72 73 82 76 86 8 40 68 35 59 2 66 85

Permalänk
Skrivet av Nirnaeth:

Vilka ingångar kommer du att ha?

Du har 5 pumpar, Q1-Q5
Är det en och samma ingång som ska styra pumparna förutom den som ska gå igång med tid?

Följande signaler finns att tillgå.

En återkoppling från varje kontaktor, ger alla variabler ett namn.

ixAterkoppPump1
ixAterkoppPump2
ixAterkoppPump3
ixAterkoppPump4
ixAterkoppPump5

Dessa fem ingångar är svar från kontaktorerna att de är dragna.

Sedan finns en startknapp och en stoppknapp. Sen finns ett par andra villkor som kan slå ut driften stoppknapppen, nödstopp etc.

ixTkStartPumpar --- Startknapp, ska starta medvalda pumpar.
ixTkPumpFran --- Stoppknapp, stoppa alla pumpar och spärra så att det inte är möjligt att starta så länge knappen är nedtryckt.

Sedan har vi fem driftval från HMI. Dessa minnesceller är går höga när respektive pump blir invald.

gmxDriftvalPump1
gmxDriftvalPump2
gmxDriftvalPump3
gmxDriftvalPump4
gmxDriftvalPump5

De är dessa variabler vi har att leka med. Sätt igång och brainstorma nu

Edit:

Såklart är det också en utgång per pump som då drar kontaktorn.

qxStartPump1
qxStartPump2
qxStartPump3
qxStartPump4
qxStartPump5

Visa signatur

[ Asus Maximus Formula III| Intel Core i5 750 | 8GB Corsair DDR3 | Intel X25-M G2 160GB | Western Digital Caviar 500GB | Gerforce GTX275 | Corsair 750W | Windows 7 Ultimate 64-bit ]

Permalänk
Medlem
Skrivet av creative_86:

Hur många kösystem det blir spelar ingen roll bara det blir någorlunda begripligt för de som ev. ska felsöka i det.

Det jag menar är att om de övriga motorerna vid en andra start skall starta efter alla motorer från föregående start har startat?

Visa signatur

citera!

Permalänk
Skrivet av Dosshell:

Det jag menar är att om de övriga motorerna vid en andra start skall starta efter alla motorer från föregående start har startat?

Ja de skall starta efter de andra är färdiga isf. Om man nu då skulle vilja göra en ny start innan den första startsekvensen är klar.

Visa signatur

[ Asus Maximus Formula III| Intel Core i5 750 | 8GB Corsair DDR3 | Intel X25-M G2 160GB | Western Digital Caviar 500GB | Gerforce GTX275 | Corsair 750W | Windows 7 Ultimate 64-bit ]

Permalänk
Medlem

Hmmm, typ så här alltså?

Visa signatur

citera!

Permalänk
Skrivet av Dosshell:

yeah, det ser nog rätt ut men hur översätta det till plc-kod?

Visa signatur

[ Asus Maximus Formula III| Intel Core i5 750 | 8GB Corsair DDR3 | Intel X25-M G2 160GB | Western Digital Caviar 500GB | Gerforce GTX275 | Corsair 750W | Windows 7 Ultimate 64-bit ]