Disassemblering av program till PLC

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
bearing
Inlägg: 11669
Blev medlem: 2 mars 2006, 01:01:45
Ort: Ängelholm

Re: Disassemblering av program till PLC

Inlägg 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 :vissla:
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.
Användarvisningsbild
exile
EF Sponsor
Inlägg: 496
Blev medlem: 21 oktober 2005, 23:32:07

Re: Disassemblering av program till PLC

Inlägg 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 :D
Användarvisningsbild
exile
EF Sponsor
Inlägg: 496
Blev medlem: 21 oktober 2005, 23:32:07

Re: Disassemblering av program till PLC

Inlägg av exile »

Att adress 1 verka vara ett temp register verkar högst troligt med nuvarande information...
bearing
Inlägg: 11669
Blev medlem: 2 mars 2006, 01:01:45
Ort: Ängelholm

Re: Disassemblering av program till PLC

Inlägg 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;
Användarvisningsbild
exile
EF Sponsor
Inlägg: 496
Blev medlem: 21 oktober 2005, 23:32:07

Re: Disassemblering av program till PLC

Inlägg 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
bearing
Inlägg: 11669
Blev medlem: 2 mars 2006, 01:01:45
Ort: Ängelholm

Re: Disassemblering av program till PLC

Inlägg 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?
Senast redigerad av bearing 27 november 2015, 21:47:46, redigerad totalt 1 gång.
Användarvisningsbild
exile
EF Sponsor
Inlägg: 496
Blev medlem: 21 oktober 2005, 23:32:07

Re: Disassemblering av program till PLC

Inlägg 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 :)
Användarvisningsbild
säter
Inlägg: 35156
Blev medlem: 22 februari 2009, 21:16:35
Ort: Säter

Re: Disassemblering av program till PLC

Inlägg 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.
Användarvisningsbild
säter
Inlägg: 35156
Blev medlem: 22 februari 2009, 21:16:35
Ort: Säter

Re: Disassemblering av program till PLC

Inlägg 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?
Användarvisningsbild
exile
EF Sponsor
Inlägg: 496
Blev medlem: 21 oktober 2005, 23:32:07

Re: Disassemblering av program till PLC

Inlägg 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.
Användarvisningsbild
exile
EF Sponsor
Inlägg: 496
Blev medlem: 21 oktober 2005, 23:32:07

Re: Disassemblering av program till PLC

Inlägg 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...
Användarvisningsbild
säter
Inlägg: 35156
Blev medlem: 22 februari 2009, 21:16:35
Ort: Säter

Re: Disassemblering av program till PLC

Inlägg 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.
Användarvisningsbild
säter
Inlägg: 35156
Blev medlem: 22 februari 2009, 21:16:35
Ort: Säter

Re: Disassemblering av program till PLC

Inlägg av säter »

exile skrev:Det är troligt vis en 8bitars bus till displayen...
001.JPG
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Användarvisningsbild
säter
Inlägg: 35156
Blev medlem: 22 februari 2009, 21:16:35
Ort: Säter

Re: Disassemblering av program till PLC

Inlägg 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
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Användarvisningsbild
säter
Inlägg: 35156
Blev medlem: 22 februari 2009, 21:16:35
Ort: Säter

Re: Disassemblering av program till PLC

Inlägg 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?
Skriv svar