Disassemblering av program till PLC
Re: Disassemblering av program till PLC
Säter, är ditt system uppbyggt som Figur 2 i databladet?
Eller hur skiljer det sig?
Vilka bitar från minnet går till utgångar respektive ingångar?
Eller hur skiljer det sig?
Vilka bitar från minnet går till utgångar respektive ingångar?
Re: Disassemblering av program till PLC
Om det finns pull-up skulle kunna fungera.
Att av koda assembler är nog ett ganska tids dödande jobb.
Men utan att veta vad adresserna pekar på så famlar man nog i blindo.
om jag får gissa så tror jag adresserna är uppdelade på följande.
1024 till 2047 är RAM, verkar använda 1024 till 1989 delvis 966 bitar.
256 till 1023 till I/O, som det ser ut så används 256 till 383 delvis 128 I/O (alla kanske inte används i maskinen men finns i programmet)
0-255 diverse saker på "kortet" eller vad man ska kalla det för fasta värden som noll, räknare mm
här verkar följande användas:
0 verka bara läsas? fast värde? används ofta
1 Används flitigt, men till vad, läs & skriver till
3 inte så ofta läs & skriv
4 sällan läs
5 sällan läs
6 sällan läs
7 läs
att skapa ett flödes schema på det här blir en utmaning
Att av koda assembler är nog ett ganska tids dödande jobb.
Men utan att veta vad adresserna pekar på så famlar man nog i blindo.
om jag får gissa så tror jag adresserna är uppdelade på följande.
1024 till 2047 är RAM, verkar använda 1024 till 1989 delvis 966 bitar.
256 till 1023 till I/O, som det ser ut så används 256 till 383 delvis 128 I/O (alla kanske inte används i maskinen men finns i programmet)
0-255 diverse saker på "kortet" eller vad man ska kalla det för fasta värden som noll, räknare mm
här verkar följande användas:
0 verka bara läsas? fast värde? används ofta
1 Används flitigt, men till vad, läs & skriver till
3 inte så ofta läs & skriv
4 sällan läs
5 sällan läs
6 sällan läs
7 läs
att skapa ett flödes schema på det här blir en utmaning

Re: Disassemblering av program till PLC
exile, kanske har missat något i tråden, men, har du gjort någon egen disassemblering? som du baserar ovanstående på?
Eller bara genom att titta i hex-filen?
Säter, hur är minnena kopplade?
Från den "naiva" listan:
LD 16#0#, skulle jag vilja säga är LD 1, d.v.s "10 01", som är vanligt förekommande. Men det beror ju på hur minnena är kopplade / adresserna ligger.
EDIT: Sen var det ju paritet också. 1:an är bara pariteten? D.v.s det är LD 0?
EDIT2: Jag verkar ha missförstått utdatan från naiva listan. 16## betyder så klart bara att det handlar om hex. Dvs listan och hexfilen överensstämmer om sista biten är paritet.
Eller bara genom att titta i hex-filen?
Säter, hur är minnena kopplade?
Från den "naiva" listan:
Den ser inte ut att överensstämma med BEEP's bild här ovan.16#7# LD 16#0#
16#8# STO 16#200#
16#9# XNOR 16#400#
16#A# OEN 16#400#
16#B# LD 16#0#
16#C# STO 16#640#
16#D# LD 16#480#
16#E# STO 16#0#
16#F# XNOR 16#240#
16#10# OEN 16#400#
LD 16#0#, skulle jag vilja säga är LD 1, d.v.s "10 01", som är vanligt förekommande. Men det beror ju på hur minnena är kopplade / adresserna ligger.
EDIT: Sen var det ju paritet också. 1:an är bara pariteten? D.v.s det är LD 0?
EDIT2: Jag verkar ha missförstått utdatan från naiva listan. 16## betyder så klart bara att det handlar om hex. Dvs listan och hexfilen överensstämmer om sista biten är paritet.
Re: Disassemblering av program till PLC
Själv klart genom att kolla i hex filerna
Nej, jag testade att skriva ett pyhton skript för fösta gången och vad är mer passande att göra en de-assembler för mc14500
Adresserna valde jag att köra i dec-form, jag passa på att även göra lite statistik över vad som används syn längst ner i filen .
Om jag inte gjort något helt galet så bör det stämma.

Nej, jag testade att skriva ett pyhton skript för fösta gången och vad är mer passande att göra en de-assembler för mc14500

Adresserna valde jag att köra i dec-form, jag passa på att även göra lite statistik över vad som används syn längst ner i filen .
Om jag inte gjort något helt galet så bör det stämma.
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Re: Disassemblering av program till PLC
Det skulle ju betyda att alla B är D, d.v.s att alla OUE är RET. Första halvan av koden är i så fall 1/5 RET, med bara 4 st JMP i hela programmet. Det utesluter ju visserligen inte att det skulle stämma.exile skrev:och sista instruktion verkar vara "IEN 0" delvis 0b 1010 0 000 0000 0000 och jag "tycker" att det borde vara "JMP 0"
delvis 0b 1100 0 000 0000 0000 (format iiii paaa aaaa aaaa) för detverkar vara mest logisk (enligt mig om man nu inte kan välja antal rom med bygel eller liknade).
Så är du säker på att U5->0O, U6->1O osv... så att de inte är inverterade några eller att P sitter längst upp?
typ piii iaaa aaaa aaaa eller något liknade
Re: Disassemblering av program till PLC
Menar du utgångar och ingångar från själva ICU-kortet till I/OSelect-kortet?bearing skrev:Vilka bitar från minnet går till utgångar respektive ingångar?
Re: Disassemblering av program till PLC
Säter har säker gjort rätt, det var bara jag som tyckte att det såg lite lustigt ut, men med pull-up motståndet så verkar det vettigare.bearing skrev:Det skulle ju betyda att alla B är D, d.v.s att alla OUE är RET. Första halvan av koden är i så fall 1/5 RET, med bara 4 st JMP i hela programmet. Det utesluter ju visserligen inte att det skulle stämma.exile skrev:och sista instruktion verkar vara "IEN 0" delvis 0b 1010 0 000 0000 0000 och jag "tycker" att det borde vara "JMP 0"
delvis 0b 1100 0 000 0000 0000 (format iiii paaa aaaa aaaa) för detverkar vara mest logisk (enligt mig om man nu inte kan välja antal rom med bygel eller liknade).
Så är du säker på att U5->0O, U6->1O osv... så att de inte är inverterade några eller att P sitter längst upp?
typ piii iaaa aaaa aaaa eller något liknade
-
- EF Sponsor
- Inlägg: 962
- Blev medlem: 26 maj 2014, 12:54:35
- Ort: Karlskoga
Re: Disassemblering av program till PLC
Oj. Här händer det saker. Vi är många som vill kommentera men få som egentligen vet något.
Jag vill inte sitta framför datorn ikväll så jag har inte läst alla nya inlägg. Det man verkligen behöver göra och det snart är att identifiera saker vad gäller programräknaren och avkodning av de bitar som INTE går till ICUn (MC14500). Hoppas någon har en stund att sätta sig med säters ritningar och rita ett schema. Jag har inte gjort något sånt i min dator någonsin. Sist jag konstruerade en elektrisk krets dög papper och penna...
Det här vore nog bra att få utrett.
- Är alla räknarna verkligen kaskadkopplade? Blir ju 16 bit adress. Tre borde räcka för 12 bitar.
- Är JMP, RTN och FLG0 på ICUn kopplade till något? Troligen inte.
- Vart är FLGF kopplad?
- Klockas räknarna (PC) av X1 eller något annat?
När jag bläddrat i min listning ser jag att jag satt checksummebiten på fel bit så allt till höger om den avkodade instruktionen är fel. Men jag måste verifiera bitanvändningen med ritningarna innan jag kan säga vad som är rätt och fel egentligen.
Jag noterade också frånvaron av JMP, RTN och SKZ men efter att ha bläddrat lite i handboken förstår jag att det kan vara så och att programmet körs helt i loop. Dipswitchar nämndes för startadress vilket har en del konsekvenser.
Inledningen på programmet enligt min listning verkar dock vettig.
ORC 0 garanterar att RR innehåller en etta. Oavsett hur IEN är satt.
Sen kör man OEN och IEN som enablar input och output.
Därefter följer en massa sekvenser LD......STO som man förstår om man läser handboken.
Jag råkade nämna text när man tittade på det binärt. Ingen högre poesi får man väl säga. Förmodligen en ren slump när jag tittade i ett enskilt prom och såg teckensekvenser typ ABCDEF. Jag dumpade ut innehållet nedan. Oskrivbara tecken ersatta med punk.
Handboken verkar vara en riktig lektion i att tänka annorlunda. Rekommenderas.
Och ja sodjan. Skriv gärna något i COBOL.
Forat är alldeles för insnöat på C/C++.
Jag vill inte sitta framför datorn ikväll så jag har inte läst alla nya inlägg. Det man verkligen behöver göra och det snart är att identifiera saker vad gäller programräknaren och avkodning av de bitar som INTE går till ICUn (MC14500). Hoppas någon har en stund att sätta sig med säters ritningar och rita ett schema. Jag har inte gjort något sånt i min dator någonsin. Sist jag konstruerade en elektrisk krets dög papper och penna...
Det här vore nog bra att få utrett.
- Är alla räknarna verkligen kaskadkopplade? Blir ju 16 bit adress. Tre borde räcka för 12 bitar.
- Är JMP, RTN och FLG0 på ICUn kopplade till något? Troligen inte.
- Vart är FLGF kopplad?
- Klockas räknarna (PC) av X1 eller något annat?
När jag bläddrat i min listning ser jag att jag satt checksummebiten på fel bit så allt till höger om den avkodade instruktionen är fel. Men jag måste verifiera bitanvändningen med ritningarna innan jag kan säga vad som är rätt och fel egentligen.
Jag noterade också frånvaron av JMP, RTN och SKZ men efter att ha bläddrat lite i handboken förstår jag att det kan vara så och att programmet körs helt i loop. Dipswitchar nämndes för startadress vilket har en del konsekvenser.
Inledningen på programmet enligt min listning verkar dock vettig.
ORC 0 garanterar att RR innehåller en etta. Oavsett hur IEN är satt.
Sen kör man OEN och IEN som enablar input och output.
Därefter följer en massa sekvenser LD......STO som man förstår om man läser handboken.
Jag råkade nämna text när man tittade på det binärt. Ingen högre poesi får man väl säga. Förmodligen en ren slump när jag tittade i ett enskilt prom och såg teckensekvenser typ ABCDEF. Jag dumpade ut innehållet nedan. Oskrivbara tecken ersatta med punk.
Handboken verkar vara en riktig lektion i att tänka annorlunda. Rekommenderas.
Och ja sodjan. Skriv gärna något i COBOL.

Kod: Markera allt
16#0# `.................x...........t.......x...........t.......x.....
16#20# ..............x...........t.......x...................x.........
16#40# ..........x...........t.......x...........t.......x.............
16#60# ......x...................x...........t.......x.................
16#80# ..x...........t.......x...........t.......x...................x.
16#A0# ..........t.......x...................x...................x.....
16#C0# ......t.......x...................x...........t.......x.........
16#E0# ..t.......x...................x...................x...........t.
16#100# ......x...........t.......x...................x...........t.....
16#120# ..x...................x...................x...........t.......x.
16#140# ....... ..t...... x........!.........!x........"........."x.....
16#160# ...#..t......#x........$.........$x........%..t......%x........&
16#180# ..t......&x........'.........'x........(.........(x........)..t.
16#1A0# .....)x........*..t......*x........+.........+x........,..t.....
16#1C0# .,x........-.........-x...................x......../..t....../x.
16#1E0# .......0.........0x........1..t......1x........2..t......2x.....
16#200# ...3.........3x........4..t......4x........5.........5x........6
16#220# .........6x........7..t......7x........8..t......8x........9....
16#240# .....9x........:.........:x........;..t......;x........<........
16#260# .<x........=..t......=x........>..t......>x........?.........?x.
16#280# .......@..t......@x........A.........Ax........B.........Bx.....
16#2A0# ...C..t......Cx........D.........Dx........E..t......Ex........F
16#2C0# ..t......Fx........G.........Gx........H.........Hx........I..t.
16#2E0# .....Ix........J..t......Jx........K.........Kx........L..t.....
16#300# .Lx........M.........Mx........N.........Nx........O..t......Ox.
16#320# .......P.........Px........Q..t......Qx........R..t......Rx.....
16#340# ...S.........Sx........T..t......Tx........U.........Ux........V
16#360# .........Vx........W..t......Wx........X..t......Xx........Y....
16#380# .....Yx........Z.........Zx........[..t......[x........\........
16#3A0# .\x........]..t......]x........^..t......^x........_........._x.
16#3C0# .......`.........`x........a..t......ax........b..t......bx.....
16#3E0# ...c.........cx........d..t......dx........e.........ex........f
16#400# .........fx........g..t......gx........h..t......hx........i....
16#420# .....ix........j.........jx........k..t......kx........l........
16#440# .lx........m..t......mx........n..t......nx........o.........ox.
16#460# .......p..t......px........q.........qx........r.........rx.....
16#480# ...s..t......sx........t.........tx........u..t......ux........v
16#4A0# ..t......vx........w.........wx........x.........xx........y..t.
16#4C0# .....yx........z..t......zx...................x...........t.....
16#4E0# ..x...................x...................x...........t.......x.
16#500# ..........`.......L.=.....D.=.....D.=.....D.=.....D.=.....D.=...
16#520# ..D.=.....L.=.....L.....L.....D.=.....L.=.....L.=.....D.=.....L.
16#540# =.....D.=.....D.=.....L.=.....L.L.....D.L.....D.L.....D.D.....L.
16#560# ....L....#L%D$.#.%D"D$L#.%.&D'.&.'L&.'.(L).(.)D(.).*D+.*.+L*.+..
16#580# L/.../D../.0L1.0.1D0.1.2D3.2.3L2.3.6L7.6.7D6.7.8D9.8.9L8.9.:L;.:
16#5A0# .;D:.;.>D?.>.?L>.?.qDr=..q.rDq=..r.K^L..&LUK8.<..K.L^L..&L]L8.<.
16#5C0# .L.M^L..&LUM8.<..M.N^L..&LUN8.<..N.O^L..&L]O8.<..O.P^L..&LUP8.<.
16#5E0# .P.Q^L..&L]Q8.<..Q..F.F.<w_.<x../...(.W.?.O.<x....7.W.<x..(._.7.
16#600# O.....?.W.<x..(._.7.O.....?.W.7....&(.W.G.7.....7._.7....'..\Y\!
16#620# ...M...N...O..<.....D.X....7..<.....D.X....8..<.....D.X....9..<.
16#640# ....D.X....:..<.....D.X....;..<.....D.X....<..<.....D.X....=..<.
16#660# ....D.X....>..^.V.^.VwV:V.U_W.W._._.W.V`....(.].M.<.....=.U.<...
16#680# ..M.....].....W.D!E.=....B..O.L.T.DZE.<...%.<....@..=.U.L.E.<...
16#6A0# .0...E.HDGLFLEDDLCDB<A4@....DZ].D\5.X....HDGLFLEDDLC<BDAL@..&.DZ
16#6C0# ].D\=.X....HDGLFLEDDLC<BDA4@....^.m.D\5.X....HDGLFLEDDLC<B<AL@..
16#6E0# &*D\=.X....HDGLFLEDDLC<B<A4@..&.D\=.X....HDGLFLEDD4CDBDAL@....D\
16#700# 5.X....HDGLFLEDD4CDBDA4@....^.V.D\6.X....HDGLFLE<DLCDB<A4@....D\
16#720# 6.X....HDGLFLE<DLC<BDAL@....D\>.X....HDGLFLE<DLC<B<AL@....D\6.X.
16#740# ...HDGLFLE<D4CDBDA4@..-0NoD\6.X....HDGLFLE<DLCDBDAL@..$-D\>.X...
16#760# .HDGLFLE<DLCDBDA4@...-D\>.X....HDGLF4EDD4CDBDAL@...ANMVND\6.X...
16#780# .HDGLF4EDD4CDBDA4@...ANMVND\6.X....HDG4F4EDDLCDBDAL@....e9m;D\6.
16#7A0# X....HDG4FLE<DLCDBDAL@....D\6.X....HDG4FLEDDLCDBDAL@..%>D\>.X...
16#7C0# .HDG4FLEDDLCDBDA4@..-?D\6.X...-.?.T[\\<.5...$.?.V.<.5....._..L.A
16#7E0# =*<$=&^.6.N9FLN....#>.V.N.D$<....'6.N.V.F.E&<....$6.^.E&<....!5(
16#800# ^.N.=....!=)V.F.=....$^.=.....V.F.<....$=&6A=*V!F.N.FLN"=..!.%6!
16#820# V"F#=.."./6"^#N$=..#.'>#V$F&=..$.(6....)>.X.6$^&N'=..&.&>&V'N(=.
16#840# .'..6'V(F)=..(.$6(^)F*=..).'>)^*N+E&<..*.#E.>*V+F,D$<..+.&6+^,D$
16#860# <..,.&5.m%...&U'8.FL=*.-.(D$^.V.^*V+5.U.6-....U.=#N0X......450=&
16#880# ..."D$X....&U'8.FL=*./..V!V"^#V$^&V'^,5.].>/...0U.=%N.X..0...%=/
16#8A0# ]#\$...(])8..1..^#^)5.U.>1....5'^2N3X.<..2....^&V+5.U.>1....=&V3
16#8C0# F2X.<..3..."5....4N5X.U.N.F.=..4...'5....5F4X.U.<..5.$6.5.....=.
16#8E0# =)X.=%5'....5(^7F8X.<..7...$>.5.....=.5(X.=%5'....=)^8F7X.<..8..
16#900# ..^)^*V+^,.9(....#]%\$8.V:...!V(8.F;5..:..6:^;...!V(8..;.:.+.`.K
16#920# ...auL8....b.M8....c.N8....duO8....e.P8....yuQ8.<f.A.L=.NAO.].U.
16#940# 5+.F.%.JVK.L.AfN6.]....$N0]%8.N.N9..%*>JX.NK<..JFR5+.#.AfN6.U...
16#960# .$N0]%8.N.N9..%*6KX.FJ<..KFR5+.$..V.<HVN6M.N.+DHVM>L.M..V.NANN].
16#980# U.>L....5+^QFRX.<..Q....E.M....AE.X.6MLg....=*^RFQX.<..R..(.V`Fa
16#9A0# D-<..`..6`^aD-<..a..5.U..b..5.]..c.-^bNcNe.d...c^aFdFb.e....<.<.
16#9C0# \.<..i..=..o.pNq....=2X...._Ni^.X.N.NoNt<..p.qFp....53X...._6iX.
16#9E0# VoV.Vt<..q...2Vr>pFs.r.3^s6qNr.s..=.V.VtD\M0=..t.p4....uFvX.<..u
16#A00# ...q4....vFuX.<..v..-.TIL[D\NtF4No<..z."\$5.5.....F.X.>z..."\$=.
16#A20# 5.....N.X.>z...r^s].=1=...6.N.....>.N.....VoF.V.......&p]2...qU3
16#A40# 8.....^.N.N.6t..(.V.F.>.>.....6.^.>...&.^.<..P.....H..V.M.M.NoN.
16#A60# <.F.........V.6.....^.6....i>p...iN.6qX..y.r^sNt>.NxFy.G(.VwNrFs
16#A80# Nx<..w..6wVxNrFs.x.I..TI....V.8.L[D\<.......TI....^.8.L[D\<.....
16#AA0# 6...(.^.N.6.....>.V.6...(.^.N.>.....>.V.>.....TI....V.8.L[D\<...
16#AC0# .((.<_U_H.<.._$HM.E.M.E.E.M.N.N.F.N.N.F.F.N.N.N.N.F.N.M_<....A.H
16#AE0# .6..M.\\<...(.^.N.L >.....>.V.L >...(.V.F.6.....6.^.6....5<-=>..
16#B00# .,..59=;F.^.F.=....-..^.6.=.6.....>.=7....N.X.<.....>.56....N.X.
16#B20# <....6]759=;4 >.^.N.>.....5:....=8X.>.V.N.>.....>.V.F.>.....59=;
16#B40# ^.N.>.....56....=7X.>.V.N.>...(.^.F.6.....>.^.6....8U:>.V.N.>...
16#B60# ..4 V.>....6=8U9...75:];8.....5.....6.6.X.....F.X.<.......5.....
16#B80# 6.X.....^.F.X.<.......O.\5U.^.<...... D<....<<X.e9<.....^.5.....
16#BA0# >.X.....U.F.=8X.566.....>.....4 X.....V.5.....6.X.....U.N.59X...
16#BC0# ......... L=....4=X.m;<.....^.5.....6.X.....U.F.5:X.=76.....V.5.
16#BE0# ....6.X.....U.F.=;X.............6.5.U.<<4=59=;....U.G.56X.......
16#C00# 6.5.].<<4=59=;....U.N.=7X.......T ......V....._.8.7....C."\$...D
16#C20# ..5.UqDt...sU.W.=>G.X....)..5.UrDtF.59=;...._.5?O.X....*$Z<..F.a
16#C40# .J.K..^.E1..'...F.../.8...6t5...'.8...6t5.../.8...6.M0../.8...6.
16#C60# E...'.8...<.4...'.8...4&<'../.8...<.4/..'.8...42<3../.8...<041.
16#C80# / 8...L#D$L%.!'!8...4.<.."'"8...4.<..$'$8...48<9.%/%8...<:4;.&/&
16#CA0# 8...<647.'''8...4><?.('(8...<(4).)/)8...4*<+.*/*8.....\.8.D5.,/,
16#CC0# 8.....\.8.D-.-'-8.....\.8.N...'.8.....\.8.L>.///8.....].8.L4.2/2
16#CE0# 8.....].8.M0.3'38.....U.V.8.E*.4/48...<.4..9'98...>2D'.:':8...63
16#D00# L&.;/;8...65D..=/=8...>4L/.>/>8...>dD-.?'?8...6e<-.@/@8...>uL2.A
16#D20# 'A8...>vD3.B'B8...N.L1.C/C8...6.D0.D'D8...6.D..E/E8...6.D..F/F8.
16#D40# ....\.8.>..G'G8...FzL..H'H8...6.L..I/I8...FLL*.L/L8...>LD+.M'M8.
16#D60# ..6.L8.N'N8...>.D9.O/O8...>.D:.P'P8...>.L;.Q/Q8...>.O..R/R8...>.
16#D80# 4 .S'S8...7.L>.T/T8...?.D?.U'U8...6.L#D$.V'V8...60L%D$.W/W8...>7
16#DA0# D(.X/X8...>8L).Y'Y8...6.D6.Z'Z8...?.L7.[/[8...D.L.L..f'f8...F2N3
16#DC0# .g/g8...FdNe.h/h8...FuFv.i'i8...N.F..j'j8...F.F..k/k8...F.F..l'l
16#DE0# 8...F7F8.m/m8...FQFR.n/n8...O.G..o..W._._._.W._!W%_'W)_-W/_3_9W;
16#E00# W=_?_AWCWE_GWI_K_MWOWQ_S_UWW_YW[Wg_iWkWm_o....W.W._.W._.W _!W&_'
16#E20# W*W4_:W;W>_?_DWE_HWI_NWOWR_SWX_Y_fWg_lWm....W.W._.W.W _!_(W)W*W2
16#E40# _3W4W=W>_?WF_G_HWI_PWQWR_S_ZW[_fWgWn_o..."W,_-W@_AWJ_KWT_UWh_i..
16#E60# ..W._.W.W _!_"_.W/W2_3W4_BWC_DWEWF_G_HWIWJ_K_VWWWX_Y_ZW[_jWk_lWm
16#E80# Wn_o...$W%W&_'_(W)W*W,_-_.W/W2_3W4WL_M_NWO_PWQWR_SWT_U_VWWWX_Y_Z
16#EA0# W[...9_:W;W=W>_?W@_A_BWC_DWEWF_G_HWIWJ_KWL_M_NWO_PWQWR_SWT_U_VWW
16#EC0# WX_Y_ZW[...fWgWh_i_jWk_lWmWn_o....W.G.E.L.5.<....J7.W.G.<....\7.
16#EE0# _.G.<...(.W.7.?.G.LJ....7._.7.?....h.R...itS8....j.T8....ktU8...
16#F00# .ltV8....m.W8....n.X8.9o...`.K...auL8....b.M8....c.N8....duO8...
16#F20# .e.P8....yuQ8.<f..`.............................................
16#F40# ................................................................
16#F60# ................................................................
16#F80# ................................................................
16#FA0# ................................................................
16#FC0# ................................................................
16#FE0# ................................................................
Re: Disassemblering av program till PLC
Det krävs väl 13 bitar för att klara alla 5 minnesplatser?- Är alla räknarna verkligen kaskadkopplade? Blir ju 16 bit adress. Tre borde räcka för 12 bitar.
Så på den "sista" räknaren används bara 1 bit.
Detta är inte färdigritat.- Är JMP, RTN och FLG0 på ICUn kopplade till något? Troligen inte.
Min ritdator har just gått sönder, men jag ska försöka kolla upp det via fotografierna.
Räknarna klockas av X1.- Klockas räknarna (PC) av X1 eller något annat?
Alla står på noll, så i mitt fall borde det inte spela så stor roll.Dipswitchar nämndes för startadress vilket har en del konsekvenser.
Re: Disassemblering av program till PLC
_
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Re: Disassemblering av program till PLC
Finns det möjlighet att generera en lista liknande Holgers "naiva lista".
Med enbart adress+instruktion+binärkod och utan checksumma?
Jag var lite nyfiken på att kolla det här med paritetsbiten.
Med enbart adress+instruktion+binärkod och utan checksumma?
Jag var lite nyfiken på att kolla det här med paritetsbiten.
Re: Disassemblering av program till PLC
Kan det vara så att den första delen av koden är en lista med adresser till logikblock?
Re: Disassemblering av program till PLC
Motorola MC14500B Handbook
http://www.brouhaha.com/~eric/retrocomp ... ndbook.pdf
http://www.brouhaha.com/~eric/retrocomp ... ndbook.pdf
-
- EF Sponsor
- Inlägg: 962
- Blev medlem: 26 maj 2014, 12:54:35
- Ort: Karlskoga
Re: Disassemblering av program till PLC
Fixat och kollat.
Mina antaganden om bitar var rätt när jag flyttat checkbiten. Det verkar vara jämn paritet. D.v.s. med checkbit inräknad är det ett jämnt antal ettor.
Instruktioner som pekar mot adress 0 verkar betyda RR i alla exempel så jag la in det.
Dessutom på Säters önskemål bitarna till höger om varje avkodad instruktion.
Så nu vet vi detta:
Om vi räknar prom-parens bitar som 0-15 vilket är ganska normalt i branchen där bit 0-7 ligger i 0l, 1l ... och 8-15 i 0h, 1h... så:
Bit 0-10 är IO-adresser. Följer man ledningsdragningen är bitordningen också normal. D.v.s. bit 0 i 0l går till adressledning 0.
Bit 11 är checksummebit
bit 12-15 instruktioner i "rätt" ordning. D.v.s. bit 12 går till I0 på ICUn 13 till I1 o.s.v. Det borde betyda att avkodade instruktioner i min lista är rätt.
Till nästa lista skall jag försöka få bort dom där minst sagt irriterande talbas-indikeringarna överallt.
Mina antaganden om bitar var rätt när jag flyttat checkbiten. Det verkar vara jämn paritet. D.v.s. med checkbit inräknad är det ett jämnt antal ettor.
Instruktioner som pekar mot adress 0 verkar betyda RR i alla exempel så jag la in det.
Dessutom på Säters önskemål bitarna till höger om varje avkodad instruktion.
Så nu vet vi detta:
Om vi räknar prom-parens bitar som 0-15 vilket är ganska normalt i branchen där bit 0-7 ligger i 0l, 1l ... och 8-15 i 0h, 1h... så:
Bit 0-10 är IO-adresser. Följer man ledningsdragningen är bitordningen också normal. D.v.s. bit 0 i 0l går till adressledning 0.
Bit 11 är checksummebit
bit 12-15 instruktioner i "rätt" ordning. D.v.s. bit 12 går till I0 på ICUn 13 till I1 o.s.v. Det borde betyda att avkodade instruktioner i min lista är rätt.
Till nästa lista skall jag försöka få bort dom där minst sagt irriterande talbas-indikeringarna överallt.
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Re: Disassemblering av program till PLC
I manualen finns det beskrivet hur man singelsteppar PLC'n.swesysmgr skrev:Handsteppa vet jag inte om det går, då är det kanske enklare att koppla in en logikanalysator eller logger på leddarnas ben och spara ner vad som händer till datorn.
På min maskin är det tyvärr bara en lödö där det är märkt "S-STEP".
Det hade ju varit en "snajdig" metod att singelsteppa och läsa av lysdioderna.