Disassemblering av program till PLC

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
swesysmgr
Inlägg: 14873
Blev medlem: 28 mars 2009, 06:56:43
Ort: Göteborg

Re: Disassemblering av program till PLC

Inlägg av swesysmgr »

säter skrev:
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?
Det fanns en karta över IO-kortens olika tillstånd i en tidigare tråd där man kunde se om status var "Ready", "Pallet index" osv.

Då vet man ungefär vad ICU-kortet gör och samtidigt syns ROM-adress, opkod, checksumma (check-leds?) m.m. på lysdioderna, tittar man då på motsvarande adressrad i den disassemblerade listningen borde det gå att avgöra om ordningen på hexfilerna blivit rätt eller inte.
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 »

bearing skrev:Är dom programmerade direkt i assembler eller i något högnivåspråk, typ ladder?
http://www.sattcontrol.se/sida/sida2.php?select=meny2

De system jag syftar på var programmerade i instruktionslista, liknar assembler.
Användarvisningsbild
säter
Inlägg: 35154
Blev medlem: 22 februari 2009, 21:16:35
Ort: Säter

Re: Disassemblering av program till PLC

Inlägg av säter »

swesysmgr skrev:Då vet man ungefär vad ICU-kortet gör och samtidigt syns ROM-adress, opkod, checksumma (check-leds?) m.m. på lysdioderna, tittar man då på motsvarande adressrad i den disassemblerade listningen borde det gå att avgöra om ordningen på hexfilerna blivit rätt eller inte.
Menar du att man skulle handsteppa fram PLC'n?
Annars lär man väl inte se något användbart på lysdioderna?
Användarvisningsbild
swesysmgr
Inlägg: 14873
Blev medlem: 28 mars 2009, 06:56:43
Ort: Göteborg

Re: Disassemblering av program till PLC

Inlägg av swesysmgr »

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.

Jag tänkte om det finns tillstånd där PLC:n står och väntar på någon yttre signal och att man då håller den och avläser vad adressen m.m. visar. Den borde även ha någon form av redo/vänte tillstånd förutom reset där den väntar på nästa kommando.

Brukar man kunna se något på leddarna när den kör eller har (nöd)stoppat i vanliga fall?
Användarvisningsbild
säter
Inlägg: 35154
Blev medlem: 22 februari 2009, 21:16:35
Ort: Säter

Re: Disassemblering av program till PLC

Inlägg av säter »

Brukar man kunna se något på leddarna när den kör eller har (nöd)stoppat i vanliga fall?
Inget jag har lagt märke till i alla fall.
Jag har aldrig märkt att PLC'n har hängt sig någon gång faktiskt.

Jag hittade en gammal bild på I/O Select kortet.
Detta sitter monterat bakom ICU-kortet.

Är det bara kontakten på gaveln som har kontakt med ICU-kortet?
2012_12220316.JPG
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Användarvisningsbild
säter
Inlägg: 35154
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:
kodar-holger skrev:Om man kollar en binärdump ser man också en del text i promarna
Har du möjlighet att ladda upp denna binärdump, så att man kan läsa texten?
Detta är jag fortfarande nyfiken på.
Hur gör man för att ta en binärdump?

Jag är nyfiken på vilken text Holger har hittat i koden.
Den enda läsbara enhet som finns till PLC'n, är en dubbel 7-segmentare.
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 »

Jag är lite tveksam att dem inte skulle ha använt JMP, funktionen finns där och är "gratis" och du saknar även 2 rom vilket tyder på att antalet rom går ställa in? hur i så fall? via DIP swichar?
Även om program räknaren skulle sakna "adress in" så skulle JMP kunna användas som reset av räknaren.

Så om man inte kan ställa in antal rom med hjälp av byling eller liknande bör sista instruktionerna vara jmp eller RTN.

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

Re: Disassemblering av program till PLC

Inlägg av säter »

du saknar även 2 rom vilket tyder på att antalet rom går ställa in? hur i så fall? via DIP swichar?
Inget som jag har sett.
Däremot finns DIP-swichar för att ställa startadress, men dessa står på noll.
och sista instruktion verkar vara "IEN 0" delvis 0b 1010 0 000 0000 0000 och jag "tycker" att det borde vara "JMP 0"
Spolar det inte bara igenom de tomma minnesplatserna, och räknaren slutligen "slår om", då börjar man på adress noll igen?
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 »

Visst kan det vara så, men jag skulle inte ha data pinnarna i "flytande" (när den kommer till den plats där det inte finns ett rom.) och med tanke att de kör med paritets kontroll så känns det fel. (varför ha ett säkerhets tänk och sedan skita i att data pinnarna är flytande? tycker att det verka lite fel)
Användarvisningsbild
säter
Inlägg: 35154
Blev medlem: 22 februari 2009, 21:16:35
Ort: Säter

Re: Disassemblering av program till PLC

Inlägg av säter »

jag skulle inte ha data pinnarna i "flytande" (när den kommer till den plats där det inte finns ett rom.)
Alla datautgångar från Epromen, även på de tomma socklarna, är anslutna till 5V via en resistorpack.
Så de borde väl vara "fastknutna" så att säga?
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 »

Pullup innebär att avsaknad av EPROM är samma sak som raderat EPROM ( data = 0xff )

Betyder troligen NOP eller motsvarande. ( NPW i en del andra system. )
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.
bearing
Inlägg: 11668
Blev medlem: 2 mars 2006, 01:01:45
Ort: Ängelholm

Re: Disassemblering av program till PLC

Inlägg av bearing »

BEEP, det där är ju tydliga mönster. Är det där direkt i början av minnet?

I de svarta siffrorna finns ju också mönster:
Kolumn 6 och 12 räknar från 0x80 till 0x8F
Kolumn 8 och 18 räknar från 0 till 0x0F
Kolumn 5 och 17 har kombinationer av 0x8C 0x84 0x84 0x8C, samt 0x84 0x8C 0x8C 0x84, som även verkar ha ett större mönster.
Kolumn 11 har kombinationer av 0x7C och 0x74 i liknande mönster
Kolumn 7 har kombinationer av 0x11 och 0x19 i liknande mönster
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 »

Ja det är från början och mönstret fortsätter till mitten.
bearing
Inlägg: 11668
Blev medlem: 2 mars 2006, 01:01:45
Ort: Ängelholm

Re: Disassemblering av program till PLC

Inlägg av bearing »

Instruktionerna upprepas alltså var 10:e cykel, med mönstret:
B 1 8 1 8 7 B 1 8 7

I klartext följden:

Kod: Markera allt

B - OUE  - Output enable. Data -> OEN Register
1 - LD   - Load result register. Data -> RR
8 - ST   - Store. RR -> Data Pin, Write -> _||_
1 - LD   - Load result register. Data -> RR
8 - ST   - Store. RR -> Data Pin, Write -> _||_
7 - XNOR - Exclusive NOR. If RR = Data, RR -> 1
B - OUE  - Output enable. Data -> OEN Register
1 - LD   - Load result register. Data -> RR
8 - ST   - Store. RR -> Data Pin, Write -> _||_
7 - XNOR - Exclusive NOR. If RR = Data, RR -> 1
Tror att sekvensen ska förskjutas så att den avslutas med Output enable:

Kod: Markera allt

1 - LD   - Load result register. Data -> RR
8 - ST   - Store. RR -> Data Pin, Write -> _||_
7 - XNOR - Exclusive NOR. If RR = Data, RR -> 1
B - OUE  - Output enable. Data -> OEN Register
1 - LD   - Load result register. Data -> RR
8 - ST   - Store. RR -> Data Pin, Write -> _||_
1 - LD   - Load result register. Data -> RR
8 - ST   - Store. RR -> Data Pin, Write -> _||_
7 - XNOR - Exclusive NOR. If RR = Data, RR -> 1
B - OUE  - Output enable. Data -> OEN Register
Skriv svar