• No results found

Na de opbouw van de stappenmotorbesturing en zijn montage onder een frontplaat van 42 TE

staat niets meer de ingebruikneming van de step-down-converter tot en met het PC-termi-nal-programma in de weg. En als alles niet meteen naar wens functioneert, levert het hoofdstuk foutzoeken uitkomst.

Karl-Heinz Domnick

80C166-stappenmotorbesturing

deel 2: Inschakelen en van wal steken

MICROPROCESSOR

Voordat de IC’s geplaatst worden en voor de assemblage met het 80C166-board wordt eerst de step-down-con-verter in bedrijf genomen. Met een voedingsspanning van ongeveer 10 V moet de omzetter een uitgangsspan-ning tussen 4,6 V en 5,4 V leveren, welke met potmeter P5 op 5,0 V tot 5,1 V is in te stellen. Bij verhoging van de voedingsspanning tot 40 V moet de 5V stabiel blijven. Beide groene LED’s geven de bedrijfstoestand aan (LED D11 en LED D12), ze lichten op bij ingeschakelde spanning. Nadat de step-down-converter foutloos werkt, wordt de print op het 80C166-board met de SMC-software gestoken. (SMC staat voor Stepper Motor Control en deze kreet zullen we voortaan hante-ren in plaats van het vorige maand gebruikte SMOST. Dat past ook beter bij de overige Engelstalige comman-do’s op o.a. de frontplaat.) IC13 en IC14 (74xx123) moeten voor de indicatie van de kloksignalen en voor een eventueel standby-bedrijf ingebouwd zijn.

Er kan ook nog een PC op de seriële interface worden aangesloten en een terminal-programma in ASCII-mode worden gestart (9600 baud, 8 bit, 1 stopbit, geen pariteit). Na het inscha-kelen van de voedingsspanning ver-schijnen bij goed functioneren van het

100% stroom ingesteld.

➧ Te lage voedingsspanning voor de stappenmotor.

De stappenmotor draait even en blijft dan staan.

➧ Bovenste frequentie te hoog geko-zen. Acceleratie te hoog gekogeko-zen.

De motor draait slechts in één rich-ting.

➧ Richtingssignaal ontbreekt; onder-breking met het 80C166-board (connectorpen verbogen).

De stappenmotor vindt zijn nulpunt niet.

➧ Verkeerde draairichting van de stappenmotor.

➧ Nulpuntschakelaar respectievelijk

sensor heeft verkeerde polariteit (opent in plaats van sluit).

➧ Optocoupler ontbreekt (IC16).

Geen communicatie met de PC.

➧ Verkeerde COM-poort op de PC geselecteerd.

➧ Seriële lijnen RxD en TxD naar de PC verwisseld.

➧ Jumpers voor de signalen CTS en RTS ontbreken of zijn verkeerd geplaatst.

55

Elektuur 11/99

990044 - 16 31,5

64,0 71,0 168,0

186,5

23,5 28,5 33,5 51,5 64,5 69,5 87,5 112,5

53,5 68,8 84,0 99,3 114,5 129,8 145,0 160,3 175,5 196,0

40,046,066,092,5114,0

= 3

= 9

Figuur 1. Tekening met maatgeving van de frontplaat.

SMC

Stepper Motor Control

NULL SEARCH TICK FREQUENCY UNDER FREQUENCY OVER FREQUENCY BOOST ACTUAL POSITION END POSITION DURATION MODE POSITION MODE HALT (ALL MOTORS)

0, M

1, M, 00050-05000 2, M, 00050-05000 3, M, 00050-20000 4, M, 00005-01000 5, M, 00000-50000 6, M, 00000-50000 7, M

8, M 9

Direction Tick Motor 2

On

Control Reset

Direction Tick

On Motor 1 Direction

Tick Motor 3

Direction Tick Motor 4

9

0 1 2 3 4 5 6 7 8

H 1 G H 2 G H 3 G H 4 G

990044 - F

1

De boel werkt gewoon niet…

Verdere fouten kunnen alleen nog aan de opbouw van de SMC-print of aan een defect onderdeel liggen. Een nauwkeuriger onderzoek is aan te bevelen.

D

E B E S T U R I N G

Met de 10 aanwezige toetsen is een eenvoudige besturing van de stappen-motoren evenals de invoer van para-meters mogelijk. Complexe verlopen kunnen met de toetsen niet worden gerealiseerd; daarvoor is een aanvul-lende computer noodzakelijk.

Normaal bedrijf

SMC maakt onderscheid tussen nor-maal bedrijf en programmeer-mode.

Bij het indrukken van de toetsen 1…4 links of 1…4 rechts draait de stappen-motor met de ingestelde klokfrequen-tie in de gekozen richting tot de toets wordt losgelaten.

Figuur 3. Normaal bedrijf met ingedrukt-eToggle-knop.

Toggle 1...4 Toggle Repeat inverse

H 1...4 G

Repeat

990044 - 3 - 12

Figuur 2. Normaal bedrijf zonder indruk-ken van de Toggle-knop.

H 1...4 G Fine Drive

990044 - 3 - 11

Bij het indrukken van de toetsen 1…4 links draait de stappenmotor het laatste aantal stappen in omgekeerde richting (= commando X – repeat inverse). Bij indrukken van de toetsen 1…4 rechts draait de stappenmotor het laatste aan-tal stappen in de laatstgebruikte rich-ting (= commando W - repeat).

De werking van normaal bedrijf met omkeertoets en normaal bedrijf zonder omkeertoets kan met de dipswitch 2 worden verwisseld.

Met toetsen 1…4 links wordt een stappenmotor gestopt (= commando H -Halt). Met toetsen 1…4 rechts wordt een stappenmotor gestart (= com-mando G - Go). Voorwaarde tot starten van de stappenmotor is dat de waar-den van de actuele positie en de eind-stand verschillend zijn.

Figuur 5. Program-meermode in- en uit-schakelen.

Programming mode Toggle/0 Cntrl/9

990044 - 3 - 14

Figuur 4. Normaalbe-drijf met Cntrl.-knop ingedrukt.

Halt Go

Cntrl 1...4 Cntrl

H 1...4 G

990044 - 3 - 13

Programmeermode

Om naar de programmeermode te gaan, moet men de Toggle- en Cntrl-toets samen ingedrukt houden; de gele LED gaat dan knipperen.

Voor het uitschakelen of afbreken van de programmeermode dient u deze toetsvolgorde te herhalen; de gele LED gaat dan uit.

Na volledige of foutieve invoer wordt de programmeermodus automatisch beëindigd. Bij cijferinvoer gebruikt u de Toggle-toets voor het cijfer 0 en de Cntrl-toets voor het cijfer 9. In de pro-grammeermode hebben de toetsen verschillende functies. Bij de invoer van waarden moeten voorafgaande nullen ook worden ingevoerd, zodat altijd hetzelfde aantal cijfers wordt bereikt.

D

E O P Z E T V A N D E S O F T W A R E

Alle klokpulsen en richtingssignalen worden op het 80C166-board door de software gegenereerd. Iedere klokpuls wordt met 32 bits geregistreerd en kan als Actual position opgevraagd of ver-anderd worden. Nadat het nulpunt gevonden is, wordt deze waarde op nul gezet. Na het commando Go bere-kent de controller uit de parameters Under Frequency (Laagste frequentie), Over Frequency (Hoogste frequentie) en Boost (acceleratie) een hellingstabel.

Uitgaande van die waarden worden klokpulsen gegenereerd tot aan de topsnelheidsfase. Als de mode Duration (continu draaien) ingeschakeld is, gaat de pulsafgifte door met de waarde Over Frequency. Bij een Halt wordt de hellingstabel in omgekeerde volgorde met dalende helling tot aan stilstand afgewerkt.

Is de positioneringsmode ingeschakeld dan wordt in de tabel bovendien met

Toggle/0 Cntrl/9 0...9 H G

...

0 9

Functie Toets Motor Waarde = # volgorde Serieel

Tick frequency 1 M 1 - 4 00.050 - 05.000 T 50 - 5.000

Under frequency 2 M 1 - 4 00.050 - 05.000 U 50 - 5.000

Over frequency 3 M 1 - 4 00.050 - 20.000 O 50 - 20.000

Boost 4 M 1 - 4 00.005 - 01.000 B 5 - 1.000

Actual position 5 M 1 - 4 00.000 - 50.000 A -2.147.483.648 - +2.147.483.648

End position 6 M 1 - 4 00.000 - 50.000 E -2.147.483.648 - +2.147.483.648

Duration mode 7 M 1 - 4 - D 1 - 4

Position mode 8 M 1 - 4 - P 1 - 4

Halt (alle motoren) 9 - - H 9

Null search 0 M 1 - 4 - N 1 – 4

Tabel 1. In de programmeermode hebben de knop-pen verschillende functies. Bij de invoer van waar-den moeten voorafgaande nullen ook ingevoerd worden zodat steeds hetzelfde aantal cijfers wordt bereikt.

Tabel 1. Programmeer-mode.

LET OP!

punten NIET invoeren!

het verschil tussen Actual Position (actu-ele positie) en End Position (eindstand) rekening gehouden en tevens het aan-tal stappen voor de topsnelheidsfase bepaald. Zijn er voor beide hellingen meer stappen nodig dan voor het ver-schil tussen Actual Position en End Posi-tion noodzakelijk zouden zijn, dan kan de topsnelheidsfase niet worden bereikt.

Wanneer na de start alle noodzake-lijke klokpulsen en stappen berekend zijn, mogen alle parameters worden veranderd (behalve de modes con-tinu draaien en positioneren). Een draaiende stappenmotor kan alleen met het commando Halt voortijdig worden gestopt. Na een Go mag onmiddellijk het commando Null Search (nulpunt zoeken) worden gege-ven; na het bereiken van de eind-stand zoekt de stappenmotor dan onmiddellijk zijn nulpunt op. Inte-ressant is nog de parameter Int. posi-tion (tussenstand). Steeds als de Actual Position gelijk aan deze waarde is, geeft het programma een bericht (z1…z4) over de seriële interface.

Deze parameter kan op elk moment en willekeurig vaak veranderd wor-den. Een bericht wordt ook verzon-den als eindstand (e1…e4) of nulpunt (n1…n4) bereikt zijn, bij het verlaten van het nulpunt (v1…v4) of bij een

geactiveerde sensoringang (s1…s8).

Het commando Null Search (nulpunt zoeken) leidt slechts dan tot zoeken als er een nulpuntsensor aanwezig is en de parameter With zeropoint search (terugkeren naar nulpunt) geactiveerd is. Bij No home sensor (geen nulpuntsen-sor) wordt alleen de actuele positie op nul gezet en een bericht (n1…n4) afge-geven.

P C -

C O M M U N I C A T I E De communicatie tussen de PC en de SMC verloopt via de seriële interface met 9600 baud / 8 bit / 1 stopbit / geen pariteit. Met een PC-terminal-pro-gramma (ASCII-overdracht) is bestu-ren en pollen van de SMC mogelijk.

Voor complexe stappenmotor-sequen-ties is echter een programma noodza-kelijk, dat commando’s geeft en berich-ten evalueert.

SMC ontvangt alle commando’s als let-ters of als heel woord zonder cijfers en speciale tekens. Er wordt geen onder-scheid gemaakt tussen hoofdletters en kleine letters:

M1 / m2 / M3 / m4 / Motor 2 Meerdere commando’s in een regel zijn toegestaan; ze moeten door komma of dubbele punt gescheiden zijn:

m1, t500 / M1, T500 /

M1:T500:M2:T800 / Motor 1,Tick-frequency 500

Na een puntkomma mag tot het einde van de regel commentaar worden toe-gevoegd:

M1, T500; Clock frequency 500 Hz for motor 1 <return>

Statusberichten worden in hoofdlet-ters, positieberichten in kleine letters verzonden. Informatie en commentaar beginnen met een puntkomma. Iedere regel eindigt met een return en line feed.

Alle commando’s en berichten kunt u vinden in tabel 2.

(990044-3)

57

Elektuur 11/99

Tabel 2. Commando’s en berichten van de terminal.

? Help - Hulp vragen

A *Actual Position ±2.147.483.648 Actuele positie invoeren/opvragen

B *Boost 5 – 1.000 Motor acceleratie invoeren/opvragen (pulsen/ms)

C Copy data - Gegevens van het geheugen naar de EEPROM kopiëren

D Duration mode 0/1 – 4 / 9 Continu draaien inschakelen (positioneer-mode uit) E *End position ±2.147.483.648 Eindstand invoeren/opvragen

e Report 1 – 4 Bericht “Eindstand bereikt”

F Fine drive 0/1 – 4/9 Draai met pulsfrequentie in gekozen richting (langzaam)

G Go 0/1 – 4/9 Motor starten/naar eindstand gaan

H Halt 0/1 – 4/9 Motor stoppen

I Info - Info opvragen (status voorafgegaan door puntkomma)

J With zeropoint search 0/1 – 4/9 Naar nulpuntsensor terugkeren en actuele positie op 0 zetten K Without zeropoint search 0/1 – 4/9 Geen nulpunt sensor, actuele positie direct op 0 zetten L Left rotate 0/1 – 4/9 Draai linksom met pulsfrequentie (langzaam)

M Motor actual* 1 – 4 Motor-nr. voor volgende commando’s invoeren/opvragen N Null search 0/1 – 4/9 Nulpunt zoeken met klokfrequentie

n Report 1 – 4 Bericht “Nulpunt bereikt”

O *Over frequency 50 – 20.000 Hz Hoogste frequentie (snel) invoeren/opvragen P Position Mode 0/1 – 4/9 Positioneer-mode in (continu draaien uit)

q Report 0 – 9 Bevestigen (q0) en foutmeldingen (q1 – q9)

R Right rotate 0/1 – 4/9 Draai rechtsom met pulsfrequentie (langzaam) S Status – /0/1 – 4/9 Status opvragen: M1,T500,U1000,010000,B500,…

s Report 1 – 8 Bericht “Sensor bereikt”

T *Tick frequency 50 – 5.000 Hz Klokfrequentie (langzaam) invoeren/opvragen U * Under frequency 50 – 5.000 Hz Laagste frequentie (start/stop) invoeren/opvragen

V Version - Versienummer van het programma opvragen

v Report 1 – 4 Bericht “verlaat het nulpunt”

W Repeat 0/1 – 4/9 Herhaal laatste aantal stappen in de laatste richting X Repeat inverse 0/1 – 4/9 Herhaal laatste aantal stappen in omgekeerde richting Z *Int. position ±2.147.483.648 Tussenpositie activeren/opvragen

z Report 1 – 4 Bericht “Tussenpositie bereikt”

Toegestane waarden: 0 = actuele motor (met M1 – M4 vooraf geactiveerd)

1 – 4 = opgegeven motor

9 = alle motoren

Tabel 3. Foutmeldingen.

Q0 OK

Q1 Fout commando Q2 Fout motornummer Q3 Foute waarde Q6 RAM checksum error Q7 EEPROM checksum error Q8 EEPROM schrijffout

Een opmerking vooraf: de intelligente acculader is beslist geen project voor de beginnende elektronicus. Nog afge-zien van de complexe elektronica met de nodige afregelpunten gaat het hier ook om een project waarin relatief grote stromen (tot maximaal 8 A) voor-komen. Een kortsluiting kan dus grote schade veroorzaken. Zij die reeds eer-der een stevige versterker of een labo-ratoriumvoeding met succes gebouwd hebben, zullen - indien nauwkeurig

wordt gewerkt - geen problemen ondervinden bij het realiseren van dit project.

B

O U W T I P S

Bij de opbouw wordt uitgegaan van twee enkelzijdige printen (figuur 1 en figuur 2), die als één geheel geleverd worden en dus ook via één nummer te bestellen zijn. De tol voor het enkelzij-dige concept zijn de draadbruggen die gelegd moeten worden. Begin de

Zoals afgelopen