Disassemblering av program till PLC

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

Re: Disassemblering av program till PLC

Inlägg av bearing »

Det jag skrev handlar mest om att följa filformatet.
https://www.eetools.com/downloads/about ... x-file.pdf

Varje rad borde börja :20 eftersom att varje rad/"record" numera är 2x16 bytes, d.vs 0x20 bytes.
Användarvisningsbild
säter
Inlägg: 32685
Blev medlem: 22 februari 2009, 21:16:35
Ort: Säter

Re: Disassemblering av program till PLC

Inlägg av säter »

bearing skrev:Jag tror att adressen ska öka genom hela filen, d.v.s inte börja på noll mellan olika eeprom
Så borde det väl bli?
bearing skrev:Sen borde väl varje rad numera ha storleken 20? och adressen öka med 20 för varje rad?
Jag har ingen erfarenhet av sådant här, men jag tycker att Holgers "naiva lista" var det mest begripliga.
Alltså en rad per adress.
Användarvisningsbild
säter
Inlägg: 32685
Blev medlem: 22 februari 2009, 21:16:35
Ort: Säter

Re: Disassemblering av program till PLC

Inlägg av säter »

sodjan skrev:Kanske... Eller så är kodningen inte som Holger antog.
D.v.s att det är fel 4 bitar som är avkodade som instruktioner.
Man tycker ju att, om Holger skulle ha fel, så borde det av slumpen bli JMP någon gång.
Det ju är en hel del instruktioner.
Användarvisningsbild
swesysmgr
Inlägg: 14253
Blev medlem: 28 mars 2009, 06:56:43
Ort: Göteborg

Re: Disassemblering av program till PLC

Inlägg av swesysmgr »

Skriv ner några giltiga kombinationer av adresser, opkod och signaler från lysdioderna och jämför med de disassemblerade värdena? Det finns ingen mer utförlig dokumentation av "PLC-delen" i manualen t.ex. en lista över de olika sekvenserna den kan köra som för IO-kortet?
Användarvisningsbild
säter
Inlägg: 32685
Blev medlem: 22 februari 2009, 21:16:35
Ort: Säter

Re: Disassemblering av program till PLC

Inlägg av säter »

Det finns ingen mer utförlig dokumentation av "PLC-delen" i manualen t.ex. en lista över de olika sekvenserna den kan köra som för IO-kortet?
Det finns en del.
Vad syftar du på för lista gällande IO-kortet?
Användarvisningsbild
säter
Inlägg: 32685
Blev medlem: 22 februari 2009, 21:16:35
Ort: Säter

Re: Disassemblering av program till PLC

Inlägg av säter »

bearing skrev:
säter skrev:Enligt Holgers "naiva lista", så finns det inga JMP med.
Innebär det att man inte använder sig av hopp i koden?
Intressant. Då kanske koden inte är så svår att tyda senare. Programmet kanske bara är en lång lista av "if <denna ingång är satt>, then <sätt denna utgång>". Och att programmet sedan börjar om när programräknaren slår runt.
Följande instruktioner saknas i Holgers lista:
NOPO, STOC, JMP, RTN, samt SKZ.
Finns det någon rimlig förklaring till att man skulle klara sig utan dessa?
Användarvisningsbild
Jan Almqvist
Inlägg: 1598
Blev medlem: 1 oktober 2013, 20:48:26
Ort: Orust

Re: Disassemblering av program till PLC

Inlägg av Jan Almqvist »

Absolut. I en del äldre PLC:er, t.ex. Satt Elektronlund (?), fanns det inte några hoppinstruktioner. Alla rader i PLC-programmet fram tills END-instruktionen exekverades.
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 »

bearing skrev:Jag tror att adressen ska öka genom hela filen, d.v.s inte börja på noll mellan olika eeprom. Sen borde väl varje rad numera ha storleken 20? och adressen öka med 20 för varje rad?
Så här?
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
bearing
Inlägg: 11337
Blev medlem: 2 mars 2006, 01:01:45
Ort: Ängelholm

Re: Disassemblering av program till PLC

Inlägg av bearing »

Tror att det där är precis vad säter söker. Bra jobbat!
bearing
Inlägg: 11337
Blev medlem: 2 mars 2006, 01:01:45
Ort: Ängelholm

Re: Disassemblering av program till PLC

Inlägg av bearing »

STOC är store complement, kan jag förstå inte används i varje program.
NOPO kan jag förstå inte används, eftersom NOPF används.

Jag blir förvånad att SKZ saknas, d.v.s skip if RR = 0
Utan JMP,RTN och SKZ, går det inte att ha några "if-satser" / villkor, samt inte några subrutiner, i programmet. Det betyder att processorn/programmet bara skapar en sekvens kommandon till yttre logik. Då måste i så fall all villkorlig logik sitta utanför processorn. Eller så saknas villkor. Själva MC14500 borde vara enkel att ersätta i så fall, vilket betyder att för att förstå kretskortet handlar det enbart om hur resten av hårdvaran ser ut, och vad som ligger i övriga minnesbitar.

Någon typ av villkor tycker i alla fall jag borde finnas, men det är bara en känsla. Kan vara att villkor och programhopp sköts på något annat sätt än via processorn, d.v.s ändrar programräknaren direkt. Då blir det mer komplicerat att följa programflödet.

Någon annan kanske har bättre teorier.
Användarvisningsbild
säter
Inlägg: 32685
Blev medlem: 22 februari 2009, 21:16:35
Ort: Säter

Re: Disassemblering av program till PLC

Inlägg av säter »

Det betyder att processorn/programmet bara skapar en sekvens kommandon till yttre logik. Då måste i så fall all villkorlig logik sitta utanför processorn. Eller så saknas villkor.
Jag tror inte på någon av dessa gissningar.
Skulle all villkorlig logik sitta utanför processorn, då hade man lika gärna kunnat bygga ren grindlogik.

AND, ANDC, OR, ORC, och XNOR, borde man inte kunna skapa villkoren med dessa?

En annan sak jag funderat över är timers.
Kan dessa vara adresserbara hårdvarutimers utanför processorkortet?
Användarvisningsbild
Jan Almqvist
Inlägg: 1598
Blev medlem: 1 oktober 2013, 20:48:26
Ort: Orust

Re: Disassemblering av program till PLC

Inlägg av Jan Almqvist »

Man kommer långt med "AND, ANDC, OR, ORC" samt load och store. Äldre PLC:er har få instruktioner. Motsvarighet till "if <condition> then <statement>" saknas ofta.
Användarvisningsbild
sodjan
EF Sponsor
Inlägg: 43205
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping
Kontakt:

Re: Disassemblering av program till PLC

Inlägg av sodjan »

> d.v.s ändrar programräknaren direkt.

De externa räknarkretsarna borde ha något kopplat till "set" (eller
vad ingången kan kallas). Alltså kretsarna som driver A0-A9 på
prommarna. D.v.s för att ändra räknaren on-the-fly. Om den
signalen kommer från JMP pinnen på processorn så bör det
vara via JMP instruktioner i koden...
Användarvisningsbild
säter
Inlägg: 32685
Blev medlem: 22 februari 2009, 21:16:35
Ort: Säter

Re: Disassemblering av program till PLC

Inlägg av säter »

sodjan skrev:> LOAD ?

Laddar data på A-D till räknaren (och alltså till Qa - Qd).
SET, det borde vara den som heter LOAD?
Jag ska kolla dessa LOAD-ledningar.
bearing
Inlägg: 11337
Blev medlem: 2 mars 2006, 01:01:45
Ort: Ängelholm

Re: Disassemblering av program till PLC

Inlägg av bearing »

Jan Almqvist skrev:Man kommer långt med "AND, ANDC, OR, ORC" samt load och store. Äldre PLC:er har få instruktioner. Motsvarighet till "if <condition> then <statement>" saknas ofta.
Är dom programmerade direkt i assembler eller i något högnivåspråk, typ ladder?
Skriv svar