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
Kod:
;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.