Sida 11 av 13
Re: Disassemblering av program till PLC
Postat: 27 november 2015, 20:59:27
av bearing
exile skrev:bearing skrev:Vad betyder IEN 1024?
D.v.s vad har argumentet för funktion?
Kan det också vara en bugg?
Kan vara men det kan även vara en form av reset av "mjukvaran" delvis vet man vad alla ingångar är om ien är "av" på så set kan man sätta minnet i ett känt läge. (om man har gjort mjukvara räknare mm) men det är lite av spekulation
Det skulle även stämma bra om man kolla på den första raderna av koden,
Delvis att 256 är ingången READY på N1 kortet som med en annan variabel påverkar 1024 (som antags vara en "reset" signal)
Eller så är jag ute och cyklar

Om man kollar på koden ovanför instruktionen är det oklart ifall RR är 0 eller 1 när IEN 1024 körs. D.v.s det är inte säkert att ingången stängs av, den kan även slås på. Störst sannolikhet är nog att den slås på, eftersom att det sker många OR där innan.
exile skrev:men på några ställen läs "ramet" utan att någonsin skrivas till vilket är märkligare
exempel:
1668,1866,1867 (eller är det några bugar?)
Läsningen av 1668 verkar påverka I/O 333, d.v.s utgång 13 i T3, som är oansluten.
1866 och 1867 ligger i stora "OR-block", och verkar bara påverka skrivning till 1, men där verkar det sluta. D.v.s skrivning ut i "void", om jag förstår rätt att 1 är tempregister.
Re: Disassemblering av program till PLC
Postat: 27 november 2015, 21:04:28
av exile
Om jag inte har missat något så byr sig ien 1024 inte om RR i huvud taget, utan tar värdet i från adressen 1024.
För att ien ska kunna använda RR måste (vad jag har fattat) adressen vara 0 delvis ien 0.
Jag kan ha snurrat till det och det skulle inte vara första gången

Re: Disassemblering av program till PLC
Postat: 27 november 2015, 21:15:31
av exile
Att adress 1 verka vara ett temp register verkar högst troligt med nuvarande information...
Re: Disassemblering av program till PLC
Postat: 27 november 2015, 21:35:36
av bearing
Angående IEN har du nog rätt, efter dubbelkoll i handboken. Jag baserade det jag skrev på källkoden till tyska simulatorn. Då är det alltså en bugg i simulatorn. Där används inte argumentet, utan ien laddas alltid med RR (ergebnis).
Kod: Markera allt
10: begin (* ien *)
ien := ergebnis;
end;
11: begin (* oen *)
oen := ergebnis;
Re: Disassemblering av program till PLC
Postat: 27 november 2015, 21:39:37
av exile
bearing skrev:Läsningen av 1668 verkar påverka I/O 333, d.v.s utgång 13 i T3, som är oansluten.
1866 och 1867 ligger i stora "OR-block", och verkar bara påverka skrivning till 1, men där verkar det sluta. D.v.s skrivning ut i "void", om jag förstår rätt att 1 är tempregister.
Den stora "OR" verka påverka DGN 8 ?
Kod: Markera allt
.
.
1598 LD 1923 <- Från Den stora "OR"
1599 AND 1024
1600 STO 1 <- 1 = 1923 and 1024
1601 LD 1931
1602 ANDC 1024 <- RR = 1931 and /1024
1603 OR 1 <- RR = (1923 and 1024) or (1931 and /1024)
1604 STO 1931
1605 STO 314 <- 314 = RR (314 = DGN 8?)
.
. Den stor "OR" :P
3673 OR 1866 <- Ram biten som aldrig sätts? (om det är ram)
3674 OR 1867 <- Ram biten som aldrig sätts? (om det är ram)
3675 OR 1876
3676 OR 1877
3677 OR 1896
3678 OR 1897
3679 STO 1923 <- sparar resultatet i 1923
.
.
Lite skumt är det
Re: Disassemblering av program till PLC
Postat: 27 november 2015, 21:43:41
av bearing
Ah, jag hade missat "OR 1", kikade för snabbt. Ja då verkar det ju som att det kan vara en bugg där. Men eftersom att sannolikheten att någon annan variabel i OR-blocket är sann, kanske buggen mycket sällan eller aldrig uppträder.
Vad är DGN?
Kan DGN 08, vara för M-kod M08 "Flood Coolant ON"?
Har säter märkt någon bugg med kylvätskan?
Re: Disassemblering av program till PLC
Postat: 27 november 2015, 21:44:59
av exile
bearing skrev:Angående IEN har du nog rätt, efter dubbelkoll i handboken. Jag baserade det jag skrev på källkoden till tyska simulatorn. Då är det alltså en bugg i simulatorn. Där används inte argumentet, utan ien laddas alltid med RR (ergebnis).
Kod: Markera allt
10: begin (* ien *)
ien := ergebnis;
end;
11: begin (* oen *)
oen := ergebnis;
Det för klara saken

Re: Disassemblering av program till PLC
Postat: 28 november 2015, 00:33:06
av säter
bearing skrev:Vad är DGN?
Med största sannolikhet den dubbla 7-segmentaren.
Här spolas ett antal siffror förbi när man kör en funktion.
Jag ska kolla om det finns dokumentation på vad DGN-siffrorna betyder.
Re: Disassemblering av program till PLC
Postat: 28 november 2015, 01:02:50
av säter
exile skrev:Om jag antar att jag har gissat rätt I/O så bör det bli följande.
N1 har 256-287
N2 har 288-319
N3 har 320-351
N4 har 352-383
Hur lyckades du gissa dig fram till detta?
Re: Disassemblering av program till PLC
Postat: 28 november 2015, 13:42:31
av exile
säter skrev:exile skrev:Om jag antar att jag har gissat rätt I/O så bör det bli följande.
N1 har 256-287
N2 har 288-319
N3 har 320-351
N4 har 352-383
Hur lyckades du gissa dig fram till detta?
Det första jag gissade var vart ram minnet satt på för adress, och den tror jag är rätt.
Det medför att antal adresser minskar ganska snabbt och ännu mindre som används.
delvis 0,1,3-7,256-383 det gör att enda stället där 32x4 input kan få plats är 256-383.
Man kan även få en aning om hur de är planerade genom att kolla på t1-t3 korten (efter som de hade en ganska bra matchning)
Så bör även N1-N4 komma i ordning vilket verkar logisk.
Dessutom är antal adresser mellan 256-383 just 128st ( delvis 32x4st) så man kan inte stuva om dem så mycket som helst,
man ska även komma ihåg att den här typen av avkodning är ganska resurssnålt och hyfsat enkel att arbeta i mot som utvecklare.
Re: Disassemblering av program till PLC
Postat: 28 november 2015, 13:53:02
av exile
bearing skrev:Ah, jag hade missat "OR 1", kikade för snabbt. Ja då verkar det ju som att det kan vara en bugg där. Men eftersom att sannolikheten att någon annan variabel i OR-blocket är sann, kanske buggen mycket sällan eller aldrig uppträder.
Vad är DGN?
Kan DGN 08, vara för M-kod M08 "Flood Coolant ON"?
Har säter märkt någon bugg med kylvätskan?
Om DGN är displayen skulle buggen vara att displayen kan visa fel, en troligt vis mindre allvarlig bugg delvis inte på verkar maskinen när den kör utan endast när man felsöker den?
Jag tror DGN xx representera ett fix värde, exempel:
DGN 01 på
DGN 02 på
DGN 04 på
DGN 08 av
Ger på displayen x7
Det är troligt vis en 8bitars bus till displayen...
Re: Disassemblering av program till PLC
Postat: 28 november 2015, 20:30:03
av säter
en troligt vis mindre allvarlig bugg delvis inte på verkar maskinen när den kör utan endast när man felsöker den?
Det här med DGN är lite mysko.
I dokumentationen finns listat ett antal DGN-koder från 01 till 95.
Dessa är alla olika former av felkoder.
T.ex. att till och från på två mikrobrytare är påverkade samtidigt.
Vid normal körning bläddrar nummer förbi på 7-segmentaren, t.ex. ett antal nummer vid verktysväxling.
Jag skulle kunna kolla dessa om det är till hjälp.
Re: Disassemblering av program till PLC
Postat: 28 november 2015, 20:35:39
av säter
exile skrev:Det är troligt vis en 8bitars bus till displayen...
001.JPG
Re: Disassemblering av program till PLC
Postat: 29 november 2015, 15:02:20
av säter
säter skrev:I dokumentationen finns listat ett antal DGN-koder från 01 till 95.
Dessa är alla olika former av felkoder.
T.ex. att till och från på två mikrobrytare är påverkade samtidigt.
Här har ni lite läsning.
NIIGATA-ALARM.txt
Re: Disassemblering av program till PLC
Postat: 30 november 2015, 13:06:01
av säter
exile skrev:Om jag antar att jag har gissat rätt I/O så bör det bli följande.
N1 har 256-287
N2 har 288-319
N3 har 320-351
N4 har 352-383
T1 har 256-287
T2 har 288-319
T3 har 320-351
Är de här adresserna uttryckta i decimalform?
Hur kan in- och utgångar ha samma adresser?