Trevåningshiss - PLC programmering

Permalänk
Medlem

Trevåningshiss - PLC programmering

Jag håller på och lär mig grunderna i PLC-programmering med LearnWARE. Just nu har jag fastnat på en hissövning, som jag hoppas någon kan hjälpa mig med.

I/O

X0: Knapp våning 1
X1: Knapp våning 2
X2: Knapp våning 3
X3: Sensor våning 1
X4: Sensor våning 2
X5: Sensor våning 3

Y3: Hiss uppåt
Y4: Hiss nedåt

;Våning 1 LD X0 SET M0 ; ;våning 3 LD X2 SET M1 ; ;våning 2 nedifrån LD X1 AND X3 SET M2 ; ;våning 2 uppifrån LD X1 AND X5 SET M3 ; ;Minnen LD M0 OUT Y4 LD M1 OUT Y3 LD M2 OUT Y3 LD M3 OUT Y4 ; ;Stopp när hissen når våning LD X4 RST M2 RST M3 LD X3 RST M0 LD X5 RST M1 END

Jag tror att koden är ganska lätt att läsa. Uppgiften är alltså helt enkelt att kunna flytta hissen mellan dom 3 våningarna.

Efter en del testande har jag kommit fram till (tror jag) att det är dom 4 minnesblocken som ställer till det. Beroende på vilken ordning blocken kommer i, kan jag få hissen att antingen inte funka alls, eller bara funka delvis (två våningar). Jag förstår inte alls varför ordningen för minnesblocken gör någon skillnad.

Kan någon förklara hur det ska gå till, och varför ordningen på minnena spelar roll?

Edit: Jag löste det genom att ändra dom 4 minnesblockena till 2 med OR villkor (iochmed att det bara är två utgångar). Jag antar att problemet låg i att jag hade olika block styra samma utgång? Har fortfarande problem att förstå varför det inte funkar med koden ovan, men har löst uppgiften nu iallafall.

Permalänk
Medlem

har grejerna i skolan kan se om jag kan få fram dom i mon så får du lösningen

Permalänk
Medlem

Utan att ha tittat mer på koden så, men ditt problem är att du använder samma utgång mer än en gång.
Så din slutsats om den delen av felet är helt rätt. Om man skriver till samma utgång mer än en gång så tar PLCn värdet på den sista förekomsten.

Visa signatur

Min signatur - inte din!

Permalänk
Skrivet av Liftaren:

Om man skriver till samma utgång mer än en gång så tar PLCn värdet på den sista förekomsten.

Kan också tillägga att eventuell kod för säkerhetskretsar/funktioner oftast läggs längst ner i programmet pga detta.

Visa signatur

i5 2500K @ 4,5Ghz / Gigabyte GA-P67A-UD7 / Kingston Hyper-x 4x2 GB DDR3 cl8 @ 1600Mhz / PowerColor Radeon HD 5970 / Sys disk: Intel X25-M SSD 80GB / Lagring: 9,5TB / Silverstone FT02B / Chieftec Nitro Series 1200W 80+ Bronze / Win7 64Bit Ultimate EN

Permalänk

Något värt att tänka på när det gäller PLC är att det är den mest basiska programmering du kan tänka dig, med undantag för att manuellt sitta och trycka ihop sladdar.
Ingen port på en PLC kan hantera mer än en impuls åt gången och om du då försöker lägga minnesblock jämte varandra, så kommer två impulser till dessa block. PLC'n tolkar det då som två kommandon efter varandra och löser dem i den ordning de kommer, men det är ju mindre än en sekund mellan impulserna, så signalen för första hinner inte riktigt ut.

Se det som en lampa. Du har två knappar till lampan och lampan kan tändas och släckas från båda knapparna. Trycker du in båda knapparna samtidigt och lampan är tänd, så kommer den släckas och tändas igen innan du hinner se något.

Visa signatur

Stationär: Processor: Intel i5 3.2GHz, RAM: 4Gb, Grafikkort: ATI Radeon HD 5850, OS: Windows 7 Proffessional x64
Laptop: ASUS K53E, Processor: Intel i5 2450M, RAM: 4Gb, Grafik: Integrerad Intel GMA HD, OS: Win7 Home Premium x64 och Xubuntu 10

Permalänk
Medlem
Skrivet av Beace:

Jag håller på och lär mig grunderna i PLC-programmering med LearnWARE. Just nu har jag fastnat på en hissövning, som jag hoppas någon kan hjälpa mig med.

I/O

X0: Knapp våning 1
X1: Knapp våning 2
X2: Knapp våning 3
X3: Sensor våning 1
X4: Sensor våning 2
X5: Sensor våning 3

Y3: Hiss uppåt
Y4: Hiss nedåt

;Våning 1 LD X0 SET M0 ; ;våning 3 LD X2 SET M1 ; ;våning 2 nedifrån LD X1 AND X3 SET M2 ; ;våning 2 uppifrån LD X1 AND X5 SET M3 ; ;Minnen LD M0 OUT Y4 LD M1 OUT Y3 LD M2 OUT Y3 LD M3 OUT Y4 ; ;Stopp när hissen når våning LD X4 RST M2 RST M3 LD X3 RST M0 LD X5 RST M1 END

Edit: Jag löste det genom att ändra dom 4 minnesblockena till 2 med OR villkor (iochmed att det bara är två utgångar). Jag antar att problemet låg i att jag hade olika block styra samma utgång? Har fortfarande problem att förstå varför det inte funkar med koden ovan, men har löst uppgiften nu iallafall.

Du har använt 2st out för Y3 och Y4, det kommer inte att fungera, vill man ha en utgång på flera ställen i ett program måste SET användas.

Edit, såg att du lagt till givarna för respektive våning och därför är det inte fel att använda som jag påstod (läste slarvigt att det var 2 knappar som behövde tryckas.
;våning 2 nedifrån
LD X1
AND X3
SET M2

Skrivet av Liftaren:

Utan att ha tittat mer på koden så, men ditt problem är att du använder samma utgång mer än en gång.
Så din slutsats om den delen av felet är helt rätt. Om man skriver till samma utgång mer än en gång så tar PLCn värdet på den sista förekomsten.

Det går fint om man använder SET och RST men flera OUT fungerar inte som sagt.

Skrivet av Astmakatten:

Kan också tillägga att eventuell kod för säkerhetskretsar/funktioner oftast läggs längst ner i programmet pga detta.

Säkerhetsbaserad kod i en PLC anropas oftast via OB1 (eller något annat initieringsblock) 2 gånger per cykelvarv.
En PLC måste utföra förändringar innan man sätter någon annan utgång, ett nödstopp tex sätts innan du drar en utgång till en motor.
Eftersom säkerhetskod utförs dubbelt upp mot vanlig kod utförs den alltid innan all annan hårdvara.

Skrivet av morphman86:

Något värt att tänka på när det gäller PLC är att det är den mest basiska programmering du kan tänka dig, med undantag för att manuellt sitta och trycka ihop sladdar.
Ingen port på en PLC kan hantera mer än en impuls åt gången och om du då försöker lägga minnesblock jämte varandra, så kommer två impulser till dessa block. PLC'n tolkar det då som två kommandon efter varandra och löser dem i den ordning de kommer, men det är ju mindre än en sekund mellan impulserna, så signalen för första hinner inte riktigt ut.

Se det som en lampa. Du har två knappar till lampan och lampan kan tändas och släckas från båda knapparna. Trycker du in båda knapparna samtidigt och lampan är tänd, så kommer den släckas och tändas igen innan du hinner se något.

PLC-programmering är realtidsprogrammering när det är som bäst
Att kalla den för basisk är en liten gåta men du får gärna utveckla det lite ^^
En ingång på en PLC klarar av att hantera signaler på runt 50ms och om man inte använder någon av höghastighetsingångarna, då kommer man upp i snabbhet
Det finns naturligtvis snabbare signalhantering idag på en PLC, Beckhoff med Ethercat klarar 1000 I/O på 30 µs men jag tror inte att skolan rör sig i den världen.
Funktionen med lampan du beskriver har inte med hårdvara att göra, man skriver kod för den funktion man vill ha, och oavsett om man trycker 1 eller 2 knappar, enklast är ju att blockera den andra knappen om den ena trycks in, endast en knapp kan skicka signaler åt gången och du måste släppa knappen för att kunna skicka signaler igen.

Mitt yrke?
PLC-programmerare

/Nirnaeth

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:

PLC-programmering är realtidsprogrammering när det är som bäst
Att kalla den för basisk är en liten gåta men du får gärna utveckla det lite ^^
En ingång på en PLC klarar av att hantera signaler på runt 50ms och om man inte använder någon av höghastighetsingångarna, då kommer man upp i snabbhet
Det finns naturligtvis snabbare signalhantering idag på en PLC, Beckhoff med Ethercat klarar 1000 I/O på 30 µs men jag tror inte att skolan rör sig i den världen.
Funktionen med lampan du beskriver har inte med hårdvara att göra, man skriver kod för den funktion man vill ha, och oavsett om man trycker 1 eller 2 knappar, enklast är ju att blockera den andra knappen om den ena trycks in, endast en knapp kan skicka signaler åt gången och du måste släppa knappen för att kunna skicka signaler igen.

Mitt yrke?
PLC-programmerare och styrsystemstekniker

/Nirnaeth

Självklart kan enheten klara snabbare inputs, men faktum står fortfarande kvar. Om ett maskineri som en hissmotor tar emot två signaler på 50ms, så kommer inte människan som står och tittar på märka av den första impulsen.

Lampan var en liknelse för att beskriva att en elektrisk krets kan arbeta kraftigt mycket snabbare än ett öga hinner se.

Med basisk menar jag att det är ganska långt ifrån vad de flesta programmerare ser framför sig, med alla dessa fina processorer som kan hantera högre funktioner. I PLC är det i stort sett "Om 1 kommer in, skall X1 ge signal till Y1". Det finns lite mer avancerade saker att göra med detta, till exempel OR, XOR eller XNOR, men själva programmeringsspråket ligger långt under BASIC i nivå. Missuppfatta mig inte nu, jag säger inte att det är lätt, eller att det är simpelt, bara att det är ett grundläggande programmeringsspråk som arbetar direkt med impulser och signaler, till skillnad från t.ex. datorprogrammering, där detta tas hand om automatiskt i en processor och användaren har ett lite mera människoliknande språk att röra sig med.

Visa signatur

Stationär: Processor: Intel i5 3.2GHz, RAM: 4Gb, Grafikkort: ATI Radeon HD 5850, OS: Windows 7 Proffessional x64
Laptop: ASUS K53E, Processor: Intel i5 2450M, RAM: 4Gb, Grafik: Integrerad Intel GMA HD, OS: Win7 Home Premium x64 och Xubuntu 10

Permalänk
Medlem
Skrivet av morphman86:

Självklart kan enheten klara snabbare inputs, men faktum står fortfarande kvar. Om ett maskineri som en hissmotor tar emot två signaler på 50ms, så kommer inte människan som står och tittar på märka av den första impulsen.

Lampan var en liknelse för att beskriva att en elektrisk krets kan arbeta kraftigt mycket snabbare än ett öga hinner se.

Med basisk menar jag att det är ganska långt ifrån vad de flesta programmerare ser framför sig, med alla dessa fina processorer som kan hantera högre funktioner. I PLC är det i stort sett "Om 1 kommer in, skall X1 ge signal till Y1". Det finns lite mer avancerade saker att göra med detta, till exempel OR, XOR eller XNOR, men själva programmeringsspråket ligger långt under BASIC i nivå. Missuppfatta mig inte nu, jag säger inte att det är lätt, eller att det är simpelt, bara att det är ett grundläggande programmeringsspråk som arbetar direkt med impulser och signaler, till skillnad från t.ex. datorprogrammering, där detta tas hand om automatiskt i en processor och användaren har ett lite mera människoliknande språk att röra sig med.

Så beräkningsfuktionerna som finns, pekare och allt annat som idag kan programmeras i en PLC räknas inte?
Hur tror du att en PLC hanterar en scanner som skickar 250 tecken och där du ska ta ut 10 som är relevanta till uppgiften?
Skicka en layout till en etikettskrivare och hantera HOST-data för transport och hastighetsövervakning kring helautomatiska transportsystem?

I stort sett klarar du att göra samma sak med en PLC som med en PC men på lite olika sätt. (grafikdelen inte inräknad)
Siemens programmerar i en variant av assembler STL , beckhoff kör sin programmering i en variant av C osv osv

All datahantering med yttre enheter sker ju via TCP/IP protokollet.
Nämn gärna en funktion som du vill få gjord i en PLC så kan jag berätta om det går att utföra, det kan ju finnas funktioner i en PC som inte går att utföra i en PLC men hittills har jag inte träffat på något sådan... fast lev gärna i en värld där det är hårdvara vi ska styra i slutändan (räkna pi i en PLC går fint men den är inte bra på det om vi säger så ^^)

/Nirnaeth

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

I skolan när vi proggade PLC snackade vi skillnad mellan PLC (Programmable Logic Computer) och PPPLC (Programmable PreProcessed Logic Computer) och det du snackar om verkar som det senare.
Definitionen vi fick var att en ren PLC har endast logiska funktioner, I/O-data, medan en PPPLC kan hantera högre funktioner, som uträkningar.

Visa signatur

Stationär: Processor: Intel i5 3.2GHz, RAM: 4Gb, Grafikkort: ATI Radeon HD 5850, OS: Windows 7 Proffessional x64
Laptop: ASUS K53E, Processor: Intel i5 2450M, RAM: 4Gb, Grafik: Integrerad Intel GMA HD, OS: Win7 Home Premium x64 och Xubuntu 10

Permalänk
Medlem
Skrivet av Nirnaeth:

Så beräkningsfuktionerna som finns, pekare och allt annat som idag kan programmeras i en PLC räknas inte?
Hur tror du att en PLC hanterar en scanner som skickar 250 tecken och där du ska ta ut 10 som är relevanta till uppgiften?
Skicka en layout till en etikettskrivare och hantera HOST-data för transport och hastighetsövervakning kring helautomatiska transportsystem?

I stort sett klarar du att göra samma sak med en PLC som med en PC men på lite olika sätt. (grafikdelen inte inräknad)
Siemens programmerar i en variant av assembler STL , beckhoff kör sin programmering i en variant av C osv osv

All datahantering med yttre enheter sker ju via TCP/IP protokollet.
Nämn gärna en funktion som du vill få gjord i en PLC så kan jag berätta om det går att utföra, det kan ju finnas funktioner i en PC som inte går att utföra i en PLC men hittills har jag inte träffat på något sådan... fast lev gärna i en värld där det är hårdvara vi ska styra i slutändan (räkna pi i en PLC går fint men den är inte bra på det om vi säger så ^^)

/Nirnaeth

Men PLC är ett väldigt lågnivåspråk om jag förstått det rätt i alla fall. Och på det sättet har han ju rätt. Sen är det säkert som du säger, det mesta går att koda med det

Visa signatur

5700x3D | RTX 3080 | 2 TB M.2 | 32 GB RAM

Permalänk
Medlem
Skrivet av morphman86:

I skolan när vi proggade PLC snackade vi skillnad mellan PLC (Programmable Logic Computer) och PPPLC (Programmable PreProcessed Logic Computer) och det du snackar om verkar som det senare.
Definitionen vi fick var att en ren PLC har endast logiska funktioner, I/O-data, medan en PPPLC kan hantera högre funktioner, som uträkningar.

Den beskrivningen stämde bra en gång i tiden, dock inte idag.

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:

Den beskrivningen stämde bra en gång i tiden, dock inte idag.

Har grundkonceptet omdefinerats? Om det är fallet, skulle jag hellre kallat det PLP (Programmable Logic Processor) än att ta ett befintligt namn som redan är känt.

Visa signatur

Stationär: Processor: Intel i5 3.2GHz, RAM: 4Gb, Grafikkort: ATI Radeon HD 5850, OS: Windows 7 Proffessional x64
Laptop: ASUS K53E, Processor: Intel i5 2450M, RAM: 4Gb, Grafik: Integrerad Intel GMA HD, OS: Win7 Home Premium x64 och Xubuntu 10

Permalänk
Medlem

Jag gjorde en liknande uppgift men en hiss och 3 våningar, men i ett annat program dock Det som var knepigt var att få till var olika prioriteringar. Te.x hissen var på väg till våning 3 men någon på våning 2 trycker på knappen, då stannade hissen på våning två före den åkte vidare till våning 3 Tyckte detta prodjekt var skitkul och lärorikt Så fråga inte för mycket

Visa signatur

CPU : AMD Phenom | X6 1055T GPU : NVIDIA Gtx 560ti Nätaggregat: Corsair TX850 Chassi: Fractal Design R4 Minne: Corsair 8GB Moderkort: Gigabyte GA-990FXA-UD3 Kylare: Zalman CNPS9900A Tangentbord : Key Tronic Mus : Razer DeathAdder 3500dpi

Permalänk
Skrivet av FX9:

Men PLC är ett väldigt lågnivåspråk om jag förstått det rätt i alla fall. Och på det sättet har han ju rätt. Sen är det säkert som du säger, det mesta går att koda med det

Men det är ändå inte helt rätt då de flesta om inte alla PLC har möjlighet att skriva program i strukturerad text (ST) som är ett hög-nivå språk med som kan liknas vid Pascal.

Permalänk
Medlem
Skrivet av Piigelajn:

Men det är ändå inte helt rätt då de flesta om inte alla PLC har möjlighet att skriva program i strukturerad text (ST) som är ett hög-nivå språk med som kan liknas vid Pascal.

Aha, ja det ställer saken i ett annat ljus

Visa signatur

5700x3D | RTX 3080 | 2 TB M.2 | 32 GB RAM

Permalänk
Medlem
Skrivet av Kripp666:

Jag gjorde en liknande uppgift men en hiss och 3 våningar, men i ett annat program dock Det som var knepigt var att få till var olika prioriteringar. Te.x hissen var på väg till våning 3 men någon på våning 2 trycker på knappen, då stannade hissen på våning två före den åkte vidare till våning 3 Tyckte detta prodjekt var skitkul och lärorikt Så fråga inte för mycket

Ja, en klassisk realtidsprogrammeringsuppgift. Själv gjorde jag den i Java.

Det närmsta jag kommer PLC var nog digitaltekniken när jag fick koppla en jäkla massa sladdar mellan logiska kretsar för att skapa trafikljus vid en korsning.

Permalänk
Medlem
Skrivet av Nirnaeth:

...

Det går fint om man använder SET och RST men flera OUT fungerar inte som sagt.
...

PLC-programmering är realtidsprogrammering när det är som bäst
Att kalla den för basisk är en liten gåta men du får gärna utveckla det lite ^^
En ingång på en PLC klarar av att hantera signaler på runt 50ms och om man inte använder någon av höghastighetsingångarna, då kommer man upp i snabbhet
Det finns naturligtvis snabbare signalhantering idag på en PLC, Beckhoff med Ethercat klarar 1000 I/O på 30 µs men jag tror inte att skolan rör sig i den världen.
Funktionen med lampan du beskriver har inte med hårdvara att göra, man skriver kod för den funktion man vill ha, och oavsett om man trycker 1 eller 2 knappar, enklast är ju att blockera den andra knappen om den ena trycks in, endast en knapp kan skicka signaler åt gången och du måste släppa knappen för att kunna skicka signaler igen.

Mitt yrke?
PLC-programmerare

/Nirnaeth

Sanning med modifikation att SET och RESET hanteras rätt, det beror helt på hur ingångsvillkoren till de ser ut.

Du missuppfattar resonemanget med samtidiga signaler. Eftersom PLCn arbetar cykliskt, så måste man tänka på vad som händer i vilken ordning.
Betänk skillnaden mellan:

A I 6.5
= M 6.5

A I 6.5
AN M 6.5
= Q 21.1

och

A I 6.5
AN M 6.5
= Q 21.1

A I 6.5
= M 6.5

Mitt yrke?
PLC-programmerare från PLC700 till 800xA

Visa signatur

Min signatur - inte din!

Permalänk
Ljusskygg

Jag förstår inte en mening om vad ni säger XD

Visa signatur
Permalänk
Medlem

Går det åt skogen, o du inte får hjälp så du förstår så kan jag höra med min bror om han kan förklara, då han jobbar med att bygga hissar mm

Visa signatur

Ledare & Webbansvarig inom www.balderdash-gaming.com

Permalänk
Medlem
Skrivet av Liftaren:

Sanning med modifikation att SET och RESET hanteras rätt, det beror helt på hur ingångsvillkoren till de ser ut.

Du missuppfattar resonemanget med samtidiga signaler. Eftersom PLCn arbetar cykliskt, så måste man tänka på vad som händer i vilken ordning.
Betänk skillnaden mellan:

A I 6.5
= M 6.5

A I 6.5
AN M 6.5
= Q 21.1

och

A I 6.5
AN M 6.5
= Q 21.1

A I 6.5
= M 6.5

Mitt yrke?
PLC-programmerare från PLC700 till 800xA

Eh, du saknar ju set och reset i ditt exempel.

Min poäng var att man kan ha med en utgång flera gånger om man använder SET eller RST

A M 0.1
SET Q 0.1

A M 0.2
SET Q 0.1

A M 0.3
SET Q 0.1

A M 0.4
RST Q 0.1

Här gäller det dock att blockera så att villkoren för funktionerna inte sätts samtidigt.

Du kan inte använda = eller OUT på fler än ett ställe då kommer programmet att ta det sista värdet i sin cykel.

/Nirnaeth

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 Nirnaeth:

Eh, du saknar ju set och reset i ditt exempel.

...

/Nirnaeth

Första stycket handlade om SET/RESET.

Programkoden gällde hanteringen av samtidiga signaler...

Visa signatur

Min signatur - inte din!

Permalänk
Medlem
Skrivet av Liftaren:

Första stycket handlade om SET/RESET.

Programkoden gällde hanteringen av samtidiga signaler...

TS första kod fungerade inte för att han hade flera OUT till samma adress, detta gör att PLC'n tar den sista signalen cykliskt, jag påpekade att detta går att göra om man använder SET

Sen skev du ett exempel där OUT används och inte SET/RESET

Vart tyckte du att mitt resonemang kring utgångar gick fel?

Många lär sig att en utgång endast får användas en gång i ett program vilket är helt felaktigt.
Eftersom RLO hanteras vid exekvering så är det ofta bekvämt att säga att man bara kan använda en utgång, ingång eller minnesbit som OUT.
Så länge SET och RESET inte ligger höga samtidigt så kommer du kunna ha med dina utgångar i ett oändligt antal funktioner och slipper skriva till bitar, ord eller dubbelord för att minnas var din hiss ska åka te.x

/Nirnaeth

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 Nirnaeth:

TS första kod fungerade inte för att han hade flera OUT till samma adress, detta gör att PLC'n tar den sista signalen cykliskt, jag påpekade att detta går att göra om man använder SET

Sen skev du ett exempel där OUT används och inte SET/RESET

Vart tyckte du att mitt resonemang kring utgångar gick fel?

Många lär sig att en utgång endast får användas en gång i ett program vilket är helt felaktigt.
Eftersom RLO hanteras vid exekvering så är det ofta bekvämt att säga att man bara kan använda en utgång, ingång eller minnesbit som OUT.
Så länge SET och RESET inte ligger höga samtidigt så kommer du kunna ha med dina utgångar i ett oändligt antal funktioner och slipper skriva till bitar, ord eller dubbelord för att minnas var din hiss ska åka te.x

/Nirnaeth

Du missförstår.

1. Ja, man kan använda samma utgång flera gånger om man använder SET och RESET. Vi är helt överens.

2. Kodexemplet handlar fortfarande om samtidiga INSIGNALER. Där har det betydelse hur du hanterar de och har inget som helst med SET/RESET att göra.

Visa signatur

Min signatur - inte din!

Permalänk
Medlem
Skrivet av Liftaren:

Du missförstår.

1. Ja, man kan använda samma utgång flera gånger om man använder SET och RESET. Vi är helt överens.

2. Kodexemplet handlar fortfarande om samtidiga INSIGNALER. Där har det betydelse hur du hanterar de och har inget som helst med SET/RESET att göra.

Eftersom det enda jag gjorde på ditt inlägg var att förklara att SET/RESET kan användas till samma utgång flera gånger då du skrev att man inte kunde använda en utgång mer än en gång så är det väl rätt självklart att det var det du hänvisade till första gången?

Du citerade ju mig på den punkten och något annat har väl vi inte diskuterat?

Känns som om du missförstår mig, jag har väl inte sagt att att samtliga insignaler INTE har med saken att göra?

Vet inte vad i min text du försökte poängtera att jag behövde rättning?

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 Nirnaeth:

...
En ingång på en PLC klarar av att hantera signaler på runt 50ms och om man inte använder någon av höghastighetsingångarna, då kommer man upp i snabbhet
...

Mitt yrke?
PLC-programmerare

/Nirnaeth

Skrivet av Nirnaeth:

Eftersom det enda jag gjorde på ditt inlägg var att förklara att SET/RESET kan användas till samma utgång flera gånger då du skrev att man inte kunde använda en utgång mer än en gång så är det väl rätt självklart att det var det du hänvisade till första gången?

Du citerade ju mig på den punkten och något annat har väl vi inte diskuterat?

Känns som om du missförstår mig, jag har väl inte sagt att att samtliga insignaler INTE har med saken att göra?

Vet inte vad i min text du försökte poängtera att jag behövde rättning?

Du har någon sorts blockering någonstans, det verkar ju tydligt. Men en sista gång försöker jag innan jag lägger undan dig.

Så som ursprungskoden TS postade så hade han aldrig fått det att fungera. Beroende på att han adresserar samma utgång flera gånger. Det var problemet. Han fick svar på det. Jag har aldrig opponerat mig mot att metoden med SET/RESET fungerar. Jag kan ha åsikter om det rent strukturellt, men det är inget fel med ditt resonemang.

Sedan börjar du prata om ingångsfördröjningar och annat. Då poängterar jag att det har inte det minsta med avläsningshastigheten att göra hur signaler som kommer samtidigt hanteras.

Känner du till att PLCn arbetar cykliskt? Förstår du grundläggande boolesk algebra? Förstår du mitt programexempel?

Visa signatur

Min signatur - inte din!

Permalänk
Medlem
Skrivet av Liftaren:

Du har någon sorts blockering någonstans, det verkar ju tydligt. Men en sista gång försöker jag innan jag lägger undan dig.

Så som ursprungskoden TS postade så hade han aldrig fått det att fungera. Beroende på att han adresserar samma utgång flera gånger. Det var problemet. Han fick svar på det. Jag har aldrig opponerat mig mot att metoden med SET/RESET fungerar. Jag kan ha åsikter om det rent strukturellt, men det är inget fel med ditt resonemang.

Sedan börjar du prata om ingångsfördröjningar och annat. Då poängterar jag att det har inte det minsta med avläsningshastigheten att göra hur signaler som kommer samtidigt hanteras.

Känner du till att PLCn arbetar cykliskt? Förstår du grundläggande boolesk algebra? Förstår du mitt programexempel?

Blockering? Nej då.
Jag förstår både skillnaden i ditt exempel och boolesk algebra men eftersom den inte beskrev det jag talade om så förstod jag inte varför du ville påpekade det för mig.

PLC'n arbetar cykliskt ja, jag beskrev det när jag förklarade hur säkerhetskod fungerar i en PLC tidigare här i tråden.
Fast det är kanske nu man ska börja prata interrupt och förklara att en PLC inte alltid jobbar cykliskt utan kan jobba händelsestyrt men det är kanske överkurs.

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:

Fast det är kanske nu man ska börja prata interrupt och förklara att en PLC inte alltid jobbar cykliskt utan kan jobba händelsestyrt men det är kanske överkurs.

Klart den kan, om man ställer in den på att göra det, men då måste man ju ställa in den på att göra det.
Att säga att en PLC KAN göra vissa saker, som attack mot att någon påpekar varför någon annans kod verkar ge oväntade resultat, utan att ta hänsyn till att denna måste vara rätt programmerad/inställd för att kunna göra dessa saker, är ungefär som att säga att en dator KAN ta över världen som svar på varför någons AI inte funkar.

Visa signatur

Stationär: Processor: Intel i5 3.2GHz, RAM: 4Gb, Grafikkort: ATI Radeon HD 5850, OS: Windows 7 Proffessional x64
Laptop: ASUS K53E, Processor: Intel i5 2450M, RAM: 4Gb, Grafik: Integrerad Intel GMA HD, OS: Win7 Home Premium x64 och Xubuntu 10

Permalänk
Medlem
Skrivet av morphman86:

Klart den kan, om man ställer in den på att göra det, men då måste man ju ställa in den på att göra det.
Att säga att en PLC KAN göra vissa saker, som attack mot att någon påpekar varför någon annans kod verkar ge oväntade resultat, utan att ta hänsyn till att denna måste vara rätt programmerad/inställd för att kunna göra dessa saker, är ungefär som att säga att en dator KAN ta över världen som svar på varför någons AI inte funkar.

De plc:er jag jobbar med behöver inte ställas in för att arbeta interrupt, detta är en naturlig del numera, du behöver inte heller skriva speciell kod för detta, vanlig STL fungerar fint.
Ett OB hänvisar till den del av programmet som du vill ska vara händelsestyrd precis som vilken annan funktion som helst tex felrapporteringen från profibusnoder.

Skickades från m.sweclockers.com

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
Avstängd

Grabbar fortsätt diskutera vem som är bäst på detta SKIT-SPRÅK (PLC) i PM istället, och hjälp grabben med hans uppgift!

Visa signatur

iPeek #1: AMD 1100T @ 4.8GHz 16GB @H2O
iPeek #1: AMD 1100T @ 4.8GHz 16GB @H2O
iPeek #1: INTEL CELERON @ 2.80GHz 1GB
iPeek #2: INTEL ATOM x8 @ 2.80GHz 4GB
Skollaptop: Macbook AIR 13" 2011, 128GB, 4GB

Permalänk
Medlem
Skrivet av _vanilla:

Grabbar fortsätt diskutera vem som är bäst på detta SKIT-SPRÅK (PLC) i PM istället, och hjälp grabben med hans uppgift!

Hehe, killen har fått svar på sin fråga för länge sedan ^^

Skickades från m.sweclockers.com

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