henri62
1-st law of Henri: De wet van behoud van ellende. 2-nd law of Henri: Ellende komt nooit alleen.
De ROM/firmware runtime die op mijn ouder board zit is een 27C256, 32KiB dus.
Die bij jou is een AM29F040, 512KiB flash dus het image wat ik heb werkt dan waarschijnlijk niet of ze gebruiken gewoon een groot deel niet. Kan ook zomaar, want later zijn gewone eproms uit de gratie geraakt en kleine flashes waren er bijna niet.
CPU is dezelfde: TMPZ84C011BF-6
Voor iemand die ooit dat image nodig heeft, bij deze attached.
Stap 2 is nu een testprogramma maken. De eraser staat al klaar om een aantal eproms te kunnen wissen/programmeren want het zal wel niet in 1 keer goed zijn.
henri62
1-st law of Henri: De wet van behoud van ellende. 2-nd law of Henri: Ellende komt nooit alleen.
Ik heb afgelopen week een testprogrammatje gemaakt wat de X0 -> Y0, X1 -> Y1 pin status copieerd.
Helaas is het board wat ik hier heb ook echt stuk, de ALARM led blijft continue branden. Dus daar heb ik nog werk aan om te kijken of ik dat ding kan repareren. Wordt nog een uitdaging.
De opcodes zijn eigenlijk super simpel:
Opcode (hex) -> instructie
22 00 -> ST X0 (lees input X0)
84 00 -> OT Y0 (write naar Y0)
22 01 -> ST X1
84 01 -> OT Y1
...
...
22 0F -> ST X15
84 0F -> OT Y15
Dat kun je vrij makkelijk gewoon inkloppen op een programmer:
22 00 84 00 22 01 84 01 ......
In totaal dan 4 bytes/pin + END code = 66 bytes
-edit-
De END code hoort er dus niet in.
In totaal dan 4 bytes/pin = 64 bytes
De rest moeten allemaal FF zijn (=NOP instructie).
[Bericht gewijzigd door henri62 op (12%)]
henri62
1-st law of Henri: De wet van behoud van ellende. 2-nd law of Henri: Ellende komt nooit alleen.
Ik bedenk me nu dat het hele ding BCD code gebaseerd is dus het zou kunnen dat X0A als input niet gaat werken en dat het X10 moet zijn.
Ik zal in de programmeersoftware eens X10 -> Y10 als enige rung in een programma stoppen en kijken hoe de opcode dan uitvalt.
Kom er op terug.
-edit-
Helaas toch niet 220A is inderdaad X10 dan eens kijken of die 1F FF aan het einde de boel verziekt. Moet ik de eprom erasen en opnieuw programmeren.
Helaas heb ik slechts maar 1 2764.
Op vrijdag 9 januari 2026 19:02:57 schreef henri62:
Ik bedenk me nu dat het hele ding BCD code gebaseerd is dus het zou kunnen dat X0A als input niet gaat werken en dat het X10 moet zijn.Ik zal in de programmeersoftware eens X10 -> Y10 als enige rung in een programma stoppen en kijken hoe de opcode dan uitvalt.
Kom er op terug.
-edit-
Helaas toch niet 220A is inderdaad X10 dan eens kijken of die 1F FF aan het einde de boel verziekt. Moet ik de eprom erasen en opnieuw programmeren.
Helaas het ik slechts maar 1 2764.
Mocht je dr nodig hebben laat maar weten , misschien heb ik ook nog 2864's
nonius
set SCE to AUX.
[Henri62] Helaas het ik slechts maar 1 2764.
Ik heb er hier ook nog wel een paar liggen. Indien nodig, aarzel niet te vragen! Uiteraard zonder (verzend-)kosten!
henri62
1-st law of Henri: De wet van behoud van ellende. 2-nd law of Henri: Ellende komt nooit alleen.
Zeer goed nieuws en een beetje slecht nieuws:
Ik herinnerde me gisteren dat ik nog een eprom had liggen met een ander software versie van het bord wat ik hier ter reparatie heb.
En waarempel die doet het! Geeft geen alarm en de outputs zit ik bewegen.
Dus de CPU draait, doet wat die moet doen etc. Dus mijn board is wat dat betreft goed.
Nu het issue: Waarom werkt mijn testprogrammatje niet in zijn geheel niet?
Ik moet dus gaan kijken waarom de boel niet draait, eens de originele eprom code doorspitten of daar bijzondere dingen in zitten.
Kan bijvoorbeeld een issue zijn zoals: Einde programma opcode zijn, een checksum van de gehele rom, een watchdog instructie die misschien ergens tussen gepropt is.
Dat vergt dus de nodige program/erase cycles van wat eproms.
Als het I/O test progje werkt kan ik de inputs en outputs checken of die het echt allemaal doen. En ook kan de TS (Maurice77) dat ook bij hem proberen om zijn machine uiteindelijk weer aan de praat te krijgen.
Op het board zit allemaal redelijk standaard spul, geen enkele chip waar iets bijzonders mee is, dus technisch gezien is het altijd te repareren.
Zelfs de CPU TMPZ84C011BF-6 lijkt nog goed te koop.
henri62
1-st law of Henri: De wet van behoud van ellende. 2-nd law of Henri: Ellende komt nooit alleen.
Net had ik de eprom eruit gehaald van de machine waar die uit kwam: Waarempel zonder eprom blijft de code nog in het SRAM staan (zelf zonder batery bij me) en draaide het oude programma nog.
Het testprogrammatje toch maar in het NPST tool ingeklopt om te kijken wat het verschil is met mijn hand ge-edit code blokje: alleen de END code staat er niet.
Eprom gebakken: Gelukt, het testprogrammatje werkt.
Het zat dus toch in de laatste instructie 0x1FFF die moet er dus niet in.
Nu zie ik ook dat er ergens een input pin om mijn PLC bordje defect is zo effe snel getest, even de pinout uitprinten om te kijken wat nu precies wat is.
henri62
1-st law of Henri: De wet van behoud van ellende. 2-nd law of Henri: Ellende komt nooit alleen.
Die pin die wel een ledje had maar waarbij geen output led aan ging was de IN.H input. En speciale high speed counter input.
Naar blijkt zijn dus alle inputs wel OK en de output leds gaan ook allemaal aan bij de bijbehorende input pin.
Conclusie: Inputs ok.
Die leds hangen aan de primaire kant van de optocouplers voor de output.
Nu nog checken of de opto's en output torren/fets, net wat erop zit, nog heel zijn.
Moet ik verder uitzoeken/testen met wat load er op, kom ik op terug als ik dat voor elkaar heb.
henri62
1-st law of Henri: De wet van behoud van ellende. 2-nd law of Henri: Ellende komt nooit alleen.
Net de uitgangen getest, met een weerstandje + LED werken die zoals het hoort.
Dus nu is het een raadsel waarom dit board ooit vervangen is. Je hebt er van die figuren bij die alles domweg swappen en niet meer kijken wat er nu precies defect is. Heb ik een pokkehekel aan want later kost het enorm veel tijd om uit te vogelen wat er nu echt defect is.
Ik heb ook nog een ADC of DAC bord liggen (AFB6920CE), het zou ook kunnen dat de interface (buffers/decoding) naar de slave borden stuk is. Dat is een stuk beroerder om uit te proberen, dan moet ik weer een testprogramma maken om dat voor elkaar te krijgen. Dat ADC board zou ook stuk zijn.
Bij deze de hex file attached die de X0->Y0 tm X15->Y15 "doorlust" mocht iemand er nog behoefte aan hebben.
henri62
1-st law of Henri: De wet van behoud van ellende. 2-nd law of Henri: Ellende komt nooit alleen.
Ondertussen heb ik in mijn scan archief ik denk het enige document in de hele wereld gevonden van het AFB6920CE board.
Het is een variant op de AFB8460 ipv 24V is het een 12V board. Het is een spec van de AFB6460 waarin alles wat met 24V te maken heeft is doorgestreept en vervangen is voor 12V en de bijbehorende toleranties. Met wat Japanse kriebels hier en daar.
Ik hoop de de TS, Maurice77, nog een keer reageert op deze trail om te weten of hij nog iets met dat ding van hem wil gaan doen.
Hoi Henry,
Ik heb het plan wat gewijzigd. In plaats van een poging de originele PLC weer tot leven te wekken, wil ik de plc vervangen door een modernere Koyo DL06 met een Weintek MT8070iH scherm wat ik nog over heb uit een ander project. In mijn vrije uurtjes probeer ik via AI de code te optimaliseren. Heeft ook geen haast.
henri62
1-st law of Henri: De wet van behoud van ellende. 2-nd law of Henri: Ellende komt nooit alleen.
Hou er wel rekening mee dat die M1T allemaal zogeheten NPN inputs heeft. Dus alle input sensoren/schakelaars (of net wat op je machine zit) schakelen actief tegen GND.
Dus dat kan nog wat verrassingen opleveren in de vorm dat je hier en daar moet gaan beunen om de signalen om te draaien kwa level of vervangen etc.
Deed dat errorledje in die M1T het nu nog? Want ik ben benieuwd of nu het CPU bord gewoon defect was of iets anders. Enne: Niets weggooien voordat je hele oplossing werkt!
En als je van dat M1T bordje af wil, die kun tzt je bij mij kwijt 
henri62
1-st law of Henri: De wet van behoud van ellende. 2-nd law of Henri: Ellende komt nooit alleen.
Ik kan ook eventueel de eprom van dat board uitlezen en daar een programma listing van maken.
Dan weten we meteen of het programma corrupt is geraakt of niet (wat ik denk).
Dat kan je misschien helpen om je programma opnieuw te maken?
Zeg het maar of je dat wilt (evt board opsturen).