Commodore News Page Richard Lagendijk English Nederlands Deutsch Polski CommodoreInfoPage - YouTube mos6502 - Twitter RSS

Commodore C64 - Pallet magazijn

Introductie

A pallet warehouse controlled with a Commodore C64. Dit artikel gaat over het besturen van een pallet magazijn door een Commodore C64. Het pallet magazijn is een onderdeel van het educatieve TibbLto project. Het pallet magazijn heeft 3 stappen motoren om de pallets in de X, Y and Z richtingen te bewegen. De Commodore C64 bestuurt het pallet magazijn via de user-poort. Het programma is geschreven in BASIC en machinetaal. Het geheel wordt bestuurd met 5 ingangen.
[556]

Pallet magazijn bestuurt door een Commodore C64

Op deze Youtube video's kan je het pallet magazijn in werking zien. Het pallet magazijn wordt hier bestuurt door een Commodore C64. Er is hier gekozen voor een C64, maar ook een VIC-20, C64, C128, Plus/4 of een Amiga is mogelijk.


Link
[557]

Schema

Schematic of the palletwarehouse. Het pallet magazijn is een "kant en klaar" product. Er zijn twee aansluitingen een voor de voeding spanning (230 VAC) en een voor de data (25 D-SUB). Inwendig bevindt zich een printplaat met daarop de elektronica voor het besturen van de stappen motoren. Op het plaatje hiernaast is het schema te zien. Klik op het plaatje voor een grotere versie van het schema.

De globale werking van het schema is als volgt.
Het onderste gedeelte is de voeding die twee spanningen levert, circa 15 VDC voor de stappen motoren en 5 VDC voor de IC's.
IC4, 5 en 6 zorgen voor het aansturen van de stappen motoren. Pin 3 is voor het linksom of rechtsom draaien van de motoren. Als er een puls op pin 15 worden gezet zal de motor 1 stap verdraaien.
De richting van de motoren wordt "onthouden" door IC2. De uitgangen van dit IC worden ingesteld door de gewenste richting via de data-ingangen 2, 4 en 6 aan te bieden en op te slaan door een klok puls op data-ingang 9 te zetten.
Welke motor gaat draaien wordt bepaald door de data-ingangen 2, 4, en 6 in combinatie met pulsen op data-ingang 8.
De "drivers" van het IC3 worden gebruikt als interface tussen de 5 VDC IC's en de 15VDC IC's.

De vraag is nu waarom is het schema zo ingewikkeld. Je kan ook de ingangen van IC4, 5 en 6 via de "drivers" van IC3 direct aan de user-poort aansluiten. De besturing is dan zelfs nog flexibeler. De reden die ik kan bedenken is dat er in het originele ontwerp ook 3 nul-positie schakelaars waren bedacht. Dan heb je inclusief de 5 bestaande ingangen slechts 8 ingangen. En dit is ook het maximum aantal IO op vele computers.

Opmerking: De IC's 4, 5 en 6 zijn voorzien van een koel lichaam om warmte af te voeren.
[558]

Het programma

Commodore C64 BASIC and Machine-Code program for the Pallet warehouse. Voor de besturing van het pallet magazijn is voor de Commodore C64 software benodigd. Het programma is grotendeels geschreven in BASIC, en een klein deel in machinetaal.

Klik op het plaatje om het gehele programma te bekijken.

De positie van de stappen motoren is onbekend als het systeem wordt ingeschakeld. Het eerste gedeelte van het programma kan gebruikt worden om de stappen motoren te “kalibreren”. Eerst wordt de motor Z naar de “zero” positie gestuurd. Wanneer de motor stopt (mechanisch) druk je op een toets van het toetsenbord. De motoren X en Y worden op dezelfde wijze gekalibreerd.

Alle pallet posities (1-20) zijn opgeslagen in het programma, met het aantal pulsen die nodig zijn voor de X en Y stappen motoren om die positie te bereiken vanaf de “zero” positie.

Om een motor te bewegen moet je de motor richting selecteren en de motor “inschakelen”. Het aantal pulsen wat nodig is wordt door het BASIC programma berekend en in het geheugen gepoked. Het machinetaal programma wordt aan geroepen en het aantal pulsen wordt naar de user-poort gestuurd.

Uitgangen:
Adres = 56577
Bit 0 = Motor - X
Bit 1 = Motor - Y
Bit 2 = Motor - Z
Bit 6 = Motor richting (in combinatie met Bit 0, 1 en 2)
Bit 7 = Motor stappen (in combinatie met Bit 0, 1 en 2)

Het BASIC en MC programma in d64 formaat.
[559]
Bijgewerkt: 2019-05-12 13:23:22
Error: Embedded data could not be displayed.