Disassemblering av program till PLC

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
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 »

Det är inte ovanligt. Ingångarna är read only, utgångar är write only. Minne är read/write.
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 har titta lite mer på koden och det verkar som den gör en "debounce" på alla ingångar oavsett ingången används eller inte.
Samma kod verkar användas 128gånger om med olika adresser:

Kod: Markera allt

3     LD    256		
4     STO   1		temp = IO_256R
5     XNOR  1152	if temp == R_1152
6     OEN   0		
7     LD    1			
8     STO   1024		R_1024 = temp
9     XNOR  0		end
10    OEN   0
11    LD    1		
12    STO   1152	R_1152 = temp
så de använder istort sätt hela första romet + liten del av det andra romet för "debounce", delvis 1280rader, det åtgår även en hel del ram närmare 256bitar eller ca 1/4del av ramet.

Jag har gjort en "ny" fil där jag tror att I/O är satta, dock finns det några frågetecken.
IO.txt
bland annat ingångarna på N4 9-16 verkar läsas in på slutet samt utan att "debounce" plus några andra frågetecken.

Jag tycker adresserna stämmer hyfsat bra om man jämför vilka som används i ramet.
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
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 »

säter skrev:
exile skrev:Om jag antar att jag har gissat rätt I/O så bör det bli följande.
N1 har 256-287
N2 har 288-319
N3 har 320-351
N4 har 352-383

T1 har 256-287
T2 har 288-319
T3 har 320-351
Är de här adresserna uttryckta i decimalform?
Hur kan in- och utgångar ha samma adresser?
Som har sagts ovan så är ingångarna read-only och utgångarna writen-only, vilket gör att man kan ha samma adresser. (och det kan spara logic kretsar oxå)
I det hör fallet har jag valt att ange adresserna i dec-form, givet vis kunde jag ha angett dem i hex-form men jag tror inte att get något mer?

Edit:
Ja just det det skulle vara intressant att veta vad adresserna 3-7 är för något? kan det vara kopplade till räknare? fler temp register?
Senast redigerad av exile 30 november 2015, 14:55:56, redigerad totalt 1 gång.
bearing
Inlägg: 11669
Blev medlem: 2 mars 2006, 01:01:45
Ort: Ängelholm

Re: Disassemblering av program till PLC

Inlägg av bearing »

Hm, ja det verkar ju rimligt faktiskt, att det är debounce. Och att resten av programmet är själva delayen i debounce-rutinen.

Blev fel fil bifogad ovan?
Användarvisningsbild
säter
Inlägg: 35156
Blev medlem: 22 februari 2009, 21:16:35
Ort: Säter

Re: Disassemblering av program till PLC

Inlägg av säter »

exile skrev:Jag har titta lite mer på koden och det verkar som den gör en "debounce" på alla ingångar oavsett ingången används eller inte.
Ursäkta, men jag kan ingen digitalteknik, så ni får ha tålamod med lite korkade frågor.

Vad innebär "debounce"?
Eller finns det något Svenskt ord?
Användarvisningsbild
säter
Inlägg: 35156
Blev medlem: 22 februari 2009, 21:16:35
Ort: Säter

Re: Disassemblering av program till PLC

Inlägg av säter »

exile skrev:Ja just det det skulle vara intressant att veta vad adresserna 3-7 är för något? kan det vara kopplade till räknare? fler temp register?
Om du med räknare menar någon form "timer", så borde det väl finnas några sådana?
Eller tror ni att alla fördröjningar är mjukvarulösningar, programmerade i koden?
bearing
Inlägg: 11669
Blev medlem: 2 mars 2006, 01:01:45
Ort: Ängelholm

Re: Disassemblering av program till PLC

Inlägg av bearing »

Debounce är avstudsning på svenska.

Enkel avstudsning läser en ingång från t.ex. en mikrobrytare två gånger, med en fördröjning på kanske 20ms. Endast om värdet är samma båda gångerna, anser programmet att brytaren har ändrat läge. Ifall värdena är olika "studsar" brytaren fortfarande.
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:Blev fel fil bifogad ovan?
Hmm hur menar du? (är tabarna fel? det kan bero på att de är editerad i Programmer's Notepad)
säter skrev:Vad innebär "debounce"?
Det är ett sätt att få bort störningar eller kontaktstuds,
I ditt fall så måste programmet ha snurrat runt minst två gånger och samma värde på ingången innan man spara ändringen av signalen i ramet, på så sätt kan en liten "glitch" undvikas.
säter skrev:Om du med räknare menar någon form "timer", så borde det väl finnas några sådana?
Eller tror ni att alla fördröjningar är mjukvarulösningar, programmerade i koden?
Jag skulle tro att det finns en hårdvara räknare men inte säker på det, givet skulle det kunna lösas med mjukvara.
Anledningen till funderar är vad 4020 chipen används till, samt det skulle under lätta veta vad adr 3-7 är när man disassemblerar.

Edit: för långsam igen :D
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 »

I en mer traditionell PLC behövs väl normalt inte någon "debounce" på grund av ett RC-filter på själva ingången eller?
Användarvisningsbild
säter
Inlägg: 35156
Blev medlem: 22 februari 2009, 21:16:35
Ort: Säter

Re: Disassemblering av program till PLC

Inlägg av säter »

exile skrev:Anledningen till funderar är vad 4020 chipen används till
Skulle dessa kunna agera timer?

Kod: Markera allt

A8  TC4020BP    14-stage Ripple-Carry Binary Counter (sockelmonterad 4020)
bearing
Inlägg: 11669
Blev medlem: 2 mars 2006, 01:01:45
Ort: Ängelholm

Re: Disassemblering av program till PLC

Inlägg av bearing »

exile skrev:
bearing skrev:Blev fel fil bifogad ovan?
Hmm hur menar du? (är tabarna fel? det kan bero på att de är editerad i Programmer's Notepad)
Ursäkta, jag såg inte att du lagt in RAM-adresserna för ingångarna i filen, utan trodde att du bara råkat inkludera säters gamla fil. Jag väntade mig först att den bifogade filen skulle vara en disassemblering med kommentarer likt ditt citat.

Men ja, tabbarna blev fel. Vilken tabbstorlek använder du?
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 »

Det är väl upp till tillverkaren hur denne vill lösa det, Jag kan tänka att det finns enhel del som löser det med mjukvara samt vissa uC har det inbyggt och då är det i princip gratis.

Nu har jag dock dålig kontroll vad för hårdvara olik plc kör med så det är en liten gissning :) .

Edit:
Tab storleken 4, vad är standard?
Användarvisningsbild
säter
Inlägg: 35156
Blev medlem: 22 februari 2009, 21:16:35
Ort: Säter

Re: Disassemblering av program till PLC

Inlägg av säter »

exile skrev:dock finns det några frågetecken.
bland annat ingångarna på N4 9-16 verkar läsas in på slutet samt utan att "debounce"
De ingångarna är ju oanvända, så det borde väl inte vara så konstigt?
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 »

säter skrev:
exile skrev:Anledningen till funderar är vad 4020 chipen används till
Skulle dessa kunna agera timer?

Kod: Markera allt

A8  TC4020BP    14-stage Ripple-Carry Binary Counter (sockelmonterad 4020)
Mycket väl men det är bara spekulation från min sida.
säter skrev:De ingångarna är ju oanvända, så det borde väl inte vara så konstigt?
Fast de används i programmet längre ner, det är de som är märkligt samt att de inte är "debounce".
Nu har jag dock inte analysera programmet så noga utan bara på ytan för att få en "bild" över programet.
bearing
Inlägg: 11669
Blev medlem: 2 mars 2006, 01:01:45
Ort: Ängelholm

Re: Disassemblering av program till PLC

Inlägg av bearing »

Tabbstorlek 4 är väl ganska vanlig. Dock använder jag själv 2 (i notepad++), och vanliga notepad har 8. Men jag ställde in 4 nu för att kunna läsa filen.

Säter, har du sett att exile lagt några frågetecken kring ingången TL40 (4N, 27) Vad är TL40?

Angående ingångarna 4N 9-16, skulle de kunna vara någon sorts debug-hjälpmedel, eller temporär grej som programmeraren glömt bort att ta bort. Bara en gissning. Håller med om att det ser konstigt ut, eftersom att de ska vara oanslutna.
Skriv svar