Disassemblering av program till PLC

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

Re: Disassemblering av program till PLC

Inlägg av bearing »

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

Re: Disassemblering av program till PLC

Inlägg av bearing »

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:
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#
Den ser inte ut att överensstämma med BEEP's bild här ovan.
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.
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 »

Själv klart genom att kolla i hex filerna :vissla:

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

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
test.txt
.

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

Re: Disassemblering av program till PLC

Inlägg av bearing »

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

Re: Disassemblering av program till PLC

Inlägg av säter »

bearing skrev:Vilka bitar från minnet går till utgångar respektive ingångar?
Menar du utgångar och ingångar från själva ICU-kortet till I/OSelect-kortet?
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:
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
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.
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.
kodar-holger
EF Sponsor
Inlägg: 962
Blev medlem: 26 maj 2014, 12:54:35
Ort: Karlskoga

Re: Disassemblering av program till PLC

Inlägg av kodar-holger »

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. :tumupp: Forat är alldeles för insnöat på C/C++.

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

Re: Disassemblering av program till PLC

Inlägg av säter »

- Är alla räknarna verkligen kaskadkopplade? Blir ju 16 bit adress. Tre borde räcka för 12 bitar.
Det krävs väl 13 bitar för att klara alla 5 minnesplatser?
Så på den "sista" räknaren används bara 1 bit.
- Är JMP, RTN och FLG0 på ICUn kopplade till något? Troligen inte.
Detta är inte färdigritat.
Min ritdator har just gått sönder, men jag ska försöka kolla upp det via fotografierna.
- Klockas räknarna (PC) av X1 eller något annat?
Räknarna klockas av X1.
Dipswitchar nämndes för startadress vilket har en del konsekvenser.
Alla står på noll, så i mitt fall borde det inte spela så stor roll.
Användarvisningsbild
BEEP
EF Sponsor
Inlägg: 1593
Blev medlem: 21 januari 2006, 16:57:56
Ort: Mölndal

Re: Disassemblering av program till PLC

Inlägg av BEEP »

_
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Användarvisningsbild
säter
Inlägg: 35150
Blev medlem: 22 februari 2009, 21:16:35
Ort: Säter

Re: Disassemblering av program till PLC

Inlägg av säter »

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.
Användarvisningsbild
BEEP
EF Sponsor
Inlägg: 1593
Blev medlem: 21 januari 2006, 16:57:56
Ort: Mölndal

Re: Disassemblering av program till PLC

Inlägg av BEEP »

Kan det vara så att den första delen av koden är en lista med adresser till logikblock?
Användarvisningsbild
BEEP
EF Sponsor
Inlägg: 1593
Blev medlem: 21 januari 2006, 16:57:56
Ort: Mölndal

Re: Disassemblering av program till PLC

Inlägg av BEEP »

kodar-holger
EF Sponsor
Inlägg: 962
Blev medlem: 26 maj 2014, 12:54:35
Ort: Karlskoga

Re: Disassemblering av program till PLC

Inlägg av kodar-holger »

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

Re: Disassemblering av program till PLC

Inlägg av säter »

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.
I manualen finns det beskrivet hur man singelsteppar PLC'n.
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.
Skriv svar