Documente Academic
Documente Profesional
Documente Cultură
Coninut
1.
Funcii primitive.............................................................................................. 1
1.1.
Constante predefinite pentru modulul de ieire.......................................2
2. Forme convenabile de apelare a funciilor primitive...................................9
A3 / 1
Anexa 3
Funcii primitive
GetOutput(port, const field)
Funcia returneaz valoarea parametrului specificat prin cmpul field, pentru portul
de ieire specificat prin port.
Porturile de ieire posibile sunt OUT_A, OUT_B, OUT_C. Adresele acestora sunt
date n tabelul 3.1.
n tabelul 3.2 sunt date constantele predefinite pntru cmpuri i domeniile de valori
posibile.
Exemplu:
// Citete valoarea furnizat de counterul asociat encoderului, de la portul A.
x = GetOutput(OUT_A, TachoCount)
n tabelul 3.2 sunt date constantele predefinite pntru cmpuri i domeniile de valori
posibile.
Exemplu:
// Stabilete poziia dorit la 720 de grade pentru (motoarele conectate la) porturile A i B:
SetOutput(OUT_AB, TachoLimit, 720);
Aproape toate funciile NXC API ce fac referire la porturile de ieire primesc
ca prim argument o ieire sau un set de ieiri ce reprezint portul sau porturile de
ieire corespunztoare. Adresele acestora sunt specificate n tabelul 3.1.
A3 / 2
Valoare
(adresa relativ)
OUT_A
0x00
OUT_B
0x01
OUT_C
0x02
OUT_AB
0x03
OUT_AC
0x04
OUT_BC
0x05
OUT_ABC
0x06
Tipul
Acces
Domeniu
ubyte
Citire/
Scriere
0... 255
Semnificaie
A3 / 3
Anexa 3
OutputMode
ubyte
Citire/
Scriere
0... 255
Power
sbyte
Citire/
Scriere
[-100,
100]
A3 / 4
sbyte
Citire
[-100,
100]
TachoCount
slong
Citire
signed
long
TachoLimit
ulong
Citire/
Scriere
unsigned
long
A3 / 5
Anexa 3
motorul.
Se foloseste
UF_UPDATE_TACHO_LIMIT i
UpdateFlags pentru a comite
modificarea fcut pentru
TachoLimit.
TurnRatio
sbyte
Citire/
Scriere
[-100,
100]
RegMode
ubyte
Citire/
Scriere
0...255
A3 / 6
ubyte
Citire
0, 1
RegPValue
ubyte
Citire/
Scriere
0...255
RegIValue
ubyte
Citire/
Scriere
0...255
RegDValue
ubyte
Citire/
Scriere
0...255
A3 / 7
Anexa 3
Valorile valide ale campului UpdateFlags sunt descrise in tabelul 3.3.
Tabel 3.3 Constantele UpdateFlags
Constantele UpdateFlags
Efect
UF_UPDATE_MODE
UF_UPDATE_SPEED
UF_UPDATE_TACHO_LIMIT
Opereaza schimbarile
cmpului TachoLimit.
UF_UPDATE_RESET_COUNT
UF_UPDATE_PID_VALUES
Se
foloseste
UF_UPDATE_MODE,
UF_UPDATE_SPEED,
UF_UPDATE_TACHO_LIMIT, si UF_UPDATE_PID_VALUES mpreun cu alte
cmpuri pentru a opera schimbri n starea ieirilor.
Valorile valide ale constantelor OutputMode sunt descrise in tabelul 3.4.
Tabel 3.4 Constantele OutputMode
Constante OutputMode
Valoare
Efect
OUT_MODE_COAST
0x00
OUT_MODE_BRAKE
0x02
OUT_MODE_REGULATED
0x04
A3 / 8
Valoare
Efect
OUT_REGMODE_IDLE
0x00
Dezactiveaz regulatoarele
OUT_REGMODE_SPEED
0x01
OUT_REGMODE_SYNC
0x02
Constantele de resetare
Valoare
RESET_NONE
0x00
RESET_COUNT
0x08
RESET_ROTATION_COUNT
0x40
RESET_ALL
0x68
A3 / 9
Anexa 3
Off(port)
Funcie pentru oprirea motorului (motoarelor) conectat la portul specificat, prin
frn electric. Adresele porturilor de ieire pot fi definite ca variabile sau
constante. Porturile de ieire posibile sunt date n tabelul 3.1.
Exemplu:
Off(OUT_A); // oprete motorul conectat la portul A
OffEx(port, const reset)
Versiunea Ex a funciei Off().
Valorile valide pentru resetare sunt prezentate n tabelul 3.6.
Coast(port)
Funcie pentru oprirea motorului conectat la portul specificat, prin ntreruperea
alimentrii. Adresele porturilor de ieire pot fi definite ca variabile sau constante.
Porturile de ieire posibile sunt date n tabelul 3.1.
Exemplu:
Coast(OUT_A);
OnRev(port, pwr)
Funcia permite pornirea i rotirea napoi cu o putere pwr (exprimat n procente
din puterea maxim), a motorului conectat la portul specificat. Adresele porturilor
de ieire pot fi definite ca variabile sau constante. Porturile de ieire posibile sunt
date n tabelul 3.1.
Exemplu:
OnRev(OUT_A, 75);
OnRevEx(port, pwr, const reset)
Versiunea Ex a funciei OnRev().
Exemplu:
OnRevEx(OUT_A, 75, RESET_NONE);
A3 / 11
Anexa 3
OnFwdReg(port, pwr, regmode)
Funcia permite pornirea i rotirea nainte cu reglaj de vitez notat pwr,
(exprimat n procente din viteza maxim), a motorului conectat la portul specificat.
Adresele porturilor de ieire pot fi definite ca variabile sau constante. Porturile de
ieire posibile sunt date n tabelul 3.1. Modurile de setri specifice reglajului de
vitez sunt n tabelul 3.5.
Exemplu:
OnFwdReg(OUT_A, 75, OUT_REGMODE_SPEED); // reglaj de viteza de
// 75% din viteza maxima
OnFwdRegEx(port, pwr, regmode, const reset)
Versiunea Ex a funciei OnFwdReg().
Exemplu:
OnFwdRegEx(OUT_A, 75, OUT_REGMODE_SPEED, RESET_NONE);
Anexa 3
MotorTachoCount(output)
Returneaz valoarea contorului de poziie al motorului conectat la portul specificat.
Porturile de ieire posibile sunt OUT_A, OUT_B, OUT_C.
Exemplu:
x = MotorTachoCount(OUT_A)
MotorOverload(port)
Returneaz, ca valoare boolean, starea de suprancrcare a motorului. Porturile
de ieire posibile sunt OUT_A, OUT_B, OUT_C. Adresele acestora sunt date n
tabelul 3.1.
Exemplu:
x = MotorOverload(OUT_A)
MotorRotationCount(port) Value
Returneaz valoarea contorului de poziie asociat portului specificat. Porturile de
ieire posibile sunt OUT_A, OUT_B, OUT_C. Adresele acestora sunt date n
tabelul 3.1.
Exemplu:
x = MotorRotationCount(OUT_A)
A3 / 15