Sida 7 av 13
Re: Disassemblering av program till PLC
Postat: 24 november 2015, 07:03:07
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.
Re: Disassemblering av program till PLC
Postat: 24 november 2015, 10:24:55
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.
Re: Disassemblering av program till PLC
Postat: 24 november 2015, 11:42:16
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?
Re: Disassemblering av program till PLC
Postat: 24 november 2015, 12:03:22
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?
Re: Disassemblering av program till PLC
Postat: 24 november 2015, 12:19:29
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
Re: Disassemblering av program till PLC
Postat: 24 november 2015, 12:33:02
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.
Re: Disassemblering av program till PLC
Postat: 24 november 2015, 14:37:36
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
Re: Disassemblering av program till PLC
Postat: 24 november 2015, 15:02:50
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?
Re: Disassemblering av program till PLC
Postat: 24 november 2015, 15:24:31
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)
Re: Disassemblering av program till PLC
Postat: 24 november 2015, 15:46:18
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?
Re: Disassemblering av program till PLC
Postat: 24 november 2015, 15:49:58
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. )
Re: Disassemblering av program till PLC
Postat: 24 november 2015, 16:50:01
av BEEP
_
Re: Disassemblering av program till PLC
Postat: 24 november 2015, 17:13:32
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
Re: Disassemblering av program till PLC
Postat: 24 november 2015, 17:22:49
av BEEP
Ja det är från början och mönstret fortsätter till mitten.
Re: Disassemblering av program till PLC
Postat: 24 november 2015, 17:45:16
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