Disassemblering av program till PLC

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
säter
Inlägg: 35155
Blev medlem: 22 februari 2009, 21:16:35
Ort: Säter

Disassemblering av program till PLC

Inlägg av säter »

Jag har nu fått mina Eprom utlästa till PLC'n på min Niigata fräsmaskin.
Det skulle vara intressant om det gick att tyda detta program, och upprätta någon form flödesschema.

Jag startar denna nya tråd istället för att fortsätta i den befintliga.
Jag hoppas att det blir lite mindre rörigt på så sätt.

Diskussionerna om detta börjar här i den gamla tråden.
http://elektronikforumet.com/forum/view ... 19#p814519

Processorn är en Motorola MC14500B.
Manual finns här:
https://www.brouhaha.com/~eric/retrocom ... 0brev3.pdf

Epromen är 8st Fuitsu MB-8518, dessa är kompatibla med Intel 2708.
8st filer är utlästa i formatet IntelHex.

Här är de utlästa Hex-filerna.
De är namngivna i enlighet med det som står skrivet på Epromen.
NIIGATA.rar
NIGATA.zip
Fråga gärna efter mer information så kompletterar jag detta inlägg.
272.JPG
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Senast redigerad av säter 22 november 2015, 19:52:39, redigerad totalt 2 gånger.
bearing
Inlägg: 11669
Blev medlem: 2 mars 2006, 01:01:45
Ort: Ängelholm

Re: Disassemblering av program till PLC

Inlägg av bearing »

En 1-bit mikroprocessor?
:D
Känns spontant inte som att det kommer handla om traditionell assembler. Men det här är första gången jag sett detta.

Är det en processor, eller är det en processor per eeprom, som körs synkront, och skapar någon sorts databuss tillsammans?
Användarvisningsbild
säter
Inlägg: 35155
Blev medlem: 22 februari 2009, 21:16:35
Ort: Säter

Re: Disassemblering av program till PLC

Inlägg av säter »

Det är en processor.
16 instruktioner.
Användarvisningsbild
Jan Almqvist
Inlägg: 1651
Blev medlem: 1 oktober 2013, 20:48:26
Ort: Orust

Re: Disassemblering av program till PLC

Inlägg av Jan Almqvist »

14500 är inte som en "vanlig" mikroprocessor så det är lite mer pyssel än vanligt att disassemblera.

De 4 bitar som går från något eller några av promen till pinne 4,5,6,7 på 14500 är själva instruktionen.

Det bör finnas finns en extern programräknare och lite logik för hopp mm.

Gissar på 12 bitars address + 4 bitar instruktion och att instruktionen ligger på de låga bitarna i "de låga" prommen.

8 bitar i de "höga" prommen + 4 bitar i de "låga" utgör isf. hoppadress.

Edit: Vid logiska operationer används adressen för att läsa och skriva variabler.
Senast redigerad av Jan Almqvist 21 november 2015, 11:05:16, redigerad totalt 1 gång.
kodar-holger
EF Sponsor
Inlägg: 963
Blev medlem: 26 maj 2014, 12:54:35
Ort: Karlskoga

Re: Disassemblering av program till PLC

Inlägg av kodar-holger »

Intressant projekt. Bläddrade igenom den andra tråden. Har du eller någon annan ritat ett "riktigt" schema på det du kommit fram till så här långt? Du har ju utrett en hel del om hur adressräknar och paritetsgenerator är kopplade men jag hittade mest ledningsdragning.

En förteckning över vilka externa anslutningar som finns till kortet vore nog bra också. Och naturligtvis själva rom-dumparna men dom kanske inte är problemfritt att ladda upp här...

Med ett någorlunda schema borde man snart kunna komma fram till det som Jan Almqvist skrev, exakt hur varje bit från romarna används. Lite nyckeln för att kunna göra en disassemblering.
H.O
Inlägg: 5891
Blev medlem: 19 mars 2007, 10:11:27
Ort: Ronneby

Re: Disassemblering av program till PLC

Inlägg av H.O »

Disassemblera programmet är ju en sak, att sedan få ut nått vettigt ur listningen är ju en annan. Jag har ingen aning om hur komplicerat just det här systemet är det kanske är görbart utan allt för stor tidsåtgång. Men det är knappast så att du laddar EPROM-dumparna i IDA Pro eller MC14500B disassembler och ut kommer ett färdigt ladder-diagram över koden.

Undrar om tiden är bättre spenderad genom att helt enkelt sätta sig in hur hela maskinen fungerar och sedan göra ett nytt program, från scratch, för en modern PLC. Jag är helt på det klara att DET vore lättare om man visste exakt hur det gamla programmet fungerade men ändå....

Sen kan det ju såklart vara en lärorik övning och ett kul(?) tidsfördriv att verkligen gräva ner sig i det gamla.
Användarvisningsbild
säter
Inlägg: 35155
Blev medlem: 22 februari 2009, 21:16:35
Ort: Säter

Re: Disassemblering av program till PLC

Inlägg av säter »

kodar-holger skrev:naturligtvis själva rom-dumparna men dom kanske inte är problemfritt att ladda upp här...
Jag har nu bifogat Hex-filerna i första inlägget.
Bläddrade igenom den andra tråden. Har du eller någon annan ritat ett "riktigt" schema på det du kommit fram till så här långt? Du har ju utrett en hel del om hur adressräknar och paritetsgenerator är kopplade men jag hittade mest ledningsdragning.
Något riktigt schema har jag inte gjort. Enbart ledningsdragning.
Där är ungefär 50% av jobbet gjort.
Användarvisningsbild
säter
Inlägg: 35155
Blev medlem: 22 februari 2009, 21:16:35
Ort: Säter

Re: Disassemblering av program till PLC

Inlägg av säter »

Jan Almqvist skrev:Gissar på 12 bitars address
Adress verkar vara 11 bitar + 1 bit paritet.
Jan Almqvist skrev:4 bitar instruktion och att instruktionen ligger på de låga bitarna i "de låga" prommen.
Jag har fått det till att de 4 instruktionsbitarna ligger på de höga bitarna(5U-8U) i "de höga"(U) Epromen.
Till höger på ritningen har jag gjort en liten tabell.
Data-Lysdiod.PDF
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Användarvisningsbild
säter
Inlägg: 35155
Blev medlem: 22 februari 2009, 21:16:35
Ort: Säter

Re: Disassemblering av program till PLC

Inlägg av säter »

H.O skrev:Men det är knappast så att du laddar EPROM-dumparna i IDA Pro eller MC14500B disassembler och ut kommer ett färdigt ladder-diagram över koden.
Det hade jag inte räknat med heller.
Det hade varit kul om det gick att nysta lite i koden, för att se vad som måste kompletteras på elritningen.
Med lite tur kanske man inte behöver kartlägga all hårdvara?
H.O skrev:Undrar om tiden är bättre spenderad genom att helt enkelt sätta sig in hur hela maskinen fungerar och sedan göra ett nytt program, från scratch, för en modern PLC.
Det är inte aktuellt i nuläget att byta PLC.
Jag är mest intresserad om man kan förstå något av programmet.
Användarvisningsbild
lillahuset
Gått bort
Inlägg: 13969
Blev medlem: 3 juli 2008, 08:13:14
Ort: Norrköping

Re: Disassemblering av program till PLC

Inlägg av lillahuset »

Oftast är det ganska enkelt att förstå hårdvaran till skillnad från att förstå mjukvaran. Mjukvaran blir ännu svårare att förstå om man inte vet hur hårdvaran ser ut. Din bild på hårdvaran fick åtminstone mig att känna att den var "trivial".
bearing
Inlägg: 11669
Blev medlem: 2 mars 2006, 01:01:45
Ort: Ängelholm

Re: Disassemblering av program till PLC

Inlägg av bearing »

säter skrev:Det är en processor.
16 instruktioner.
Borde inte vara så svårt att avkoda själva instruktionerna i så fall. Skulle nog kunna gå med ett excel-ark till och med, även om ett C-/python-/liknande-program nog är att föredra. Men mycket av programmet ligger väl i vad som är stoppat i resten av minnesbitarna, som inte går via processorn, om jag förstått rätt.

Skulle behöva skrivas en emulator/simulator för att få bättre möjlighet att förstå hur programmet med minnen fungerar.
bearing
Inlägg: 11669
Blev medlem: 2 mars 2006, 01:01:45
Ort: Ängelholm

Re: Disassemblering av program till PLC

Inlägg av bearing »

Kanske går att bygga upp hela systemet i VHDL/Verilog/liknande. Och sedan simulera/emulera.
Användarvisningsbild
säter
Inlägg: 35155
Blev medlem: 22 februari 2009, 21:16:35
Ort: Säter

Re: Disassemblering av program till PLC

Inlägg av säter »

Instruktionerna borde inte vara något stort problem.
Det borde man kunna bena ut för hand i värsta fall.

Python-program? Det var något liknande som H.O länkade till?
Själv vet jag inte hur Python fungerar.

Borde inte alla minnesbitarna gå genom processorn?
Eller har jag fattat helt fel?

En simulator hade ju varit fint.
Vad VHDL/Verilog är för något, det vet jag inte.

Jag funderar, Epromen är ju kopplade 1+1 så att det uppträder som ett 16 bitars.
Det innebär att man måste även slå ihop filerna 1+1? Eller?
För det finns ju intruktionsbitar endast i de övre Epromen.
bearing
Inlägg: 11669
Blev medlem: 2 mars 2006, 01:01:45
Ort: Ängelholm

Re: Disassemblering av program till PLC

Inlägg av bearing »

Jag hade inte klickat på någon av länkarna i tråden. Ser nu att vid H-O's länkar finns färdig disassembler, och VHDL-kod (eller liknande) (för FPGA) att utgå ifrån.

Så mina idéer kan du glömma=)

Har bara testat Quartus en gång, så vet inte vad som går att göra där. Men det kanske går att ordna så att individuella ROM kan laddas med varsin intel HEX.

Annars ser jag det som ett relativt litet problem att "slå ihop" filer. Kanske t.om. finns färdiga hex-editorer, eller liknande, som klarar sådant.
Användarvisningsbild
säter
Inlägg: 35155
Blev medlem: 22 februari 2009, 21:16:35
Ort: Säter

Re: Disassemblering av program till PLC

Inlägg av säter »

Den där disassemblern som H.O länkade, den verkar vilja ha formatet Motorola S Record.
Det borde vill finnas någon konverter mellan Intel Hex och Motorola S Record?

De här hexformaten, är det något som enbart är till för göra det hela mera lättläst?
Det man bränner till Epromen måste ju rimligtvis vara "ren" binärkod?
Utan adresser och liknande.
Skriv svar