You are on page 1of 33

TI NGHIN CU KHOA HC SINH VIN

Tn ti:
LP TRNH IU KHIN C CU CHP HNH PIEZO S DNG CM BIN O
CHUYN V KIU TIP XC
Programming to control piezo actuator and contact displacement sensor

Mc lc

Mc lc ................................................................................................. 2
TM TT TI .................................................................................... 3
I.

Tng quan v piezo .............................................................................. 5

II.

Piezo Actuator................................................................................. 9

III.

Giao tip vi cm bin...................................................................... 13

IV.

Lp trnh giao din ......................................................................... 16

V.

M hnh th nghim......................................................................... 30

VI.

Kt qu th nghim ......................................................................... 32

Ti liu tham kho: ................................................................................ 33

TM TT TI
Hin nay, c cu chp hnh piezo c dng kh ph bin trong cc lnh vc : y hc, gia cng
chnh xc, lp rp chnh xc, MEM-NEMC nhiu hng cung cp loi thit b ny nh
Piezomechanik [1], Thorlab [2], Norliac [3],
Tuy nhin, vic s dng cc c cu chp hnh nh trn c mt s vn kh khn nh sau:
(1) Loi c cu chp hnh ny ch mi ph bin vi nhng chng loi iu khin
khng hi tip (openloop control)(Hnh 1) [2]. Hin nay ta vic iu khin c cu chp hnh
piezo ch yu thng qua lnh iu chnh in p, ngi s dng rt cn c tn hiu phn hi
(feedback) cho php iu khin actuator t chnh xc. Cc chng loi iu khin c hi
tip (feedback control) (Hnh 2) cha c nhiu, gii hn v hnh trnh v lc y, ng thi
c gi thnh t hn rt nhiu ln so vi cc chng loi khng hi tip [3].

Hnh 1: C cu chp hnh Piezo khng hi tip

Hnh 2: C cu chp hnh Piezo c hi tip


(2) Cc hng ch to ch cung cp thit b phn cng v phn mm dng chng trnh
thc thi (file .EXE) n gin m khng a ra chng trnh c th vin hm iu khin. iu
ny gy kh khn trong vic s dng.
Nu sn c cc loi cm bin chnh xc th vic lp trnh iu khin c hi tip cho c cu chp
hnh s dng cm bin sn c bt k loi no min chnh xc t mc yu cu l rt cn
thit v cho php s dng c cu chp hnh tt hn.
3

Ti Trung tm o to Bo dng cng nghip hin ang c cm bin o chuyn v (Hnh 3) vi


chnh xc cao ( phn gii 0,2 m), ng thi y cng c c cu chp hnh piezo (Hnh 4,
5). Trong iu kin trn, vic lp trnh iu khin c hi tip cho c cu chp hnh piezo l kh
thi v rt cn thit cho vic s dng hiu qu c cu chp hnh ny.

Hnh 3: Cm bin o chuyn v

Hnh 4: C cu chp hnh Piezo

Hnh 5: Driver cho c cu chp hnh Piezo


Kt qu ca vic lp trnh trn c th ng dng trong c cu to chuyn ng thng phn gii
di m (Hnh 6) [4].

Hnh 6: C cu to chuyn ng thng phn gii di m.


I.

Tng quan v piezo

1. Lch s pht trin:


S pht trin ca vt liu p in, thnh phn, ng dng c pht hin bi nhng nghin
cu trong lnh vc lin quan n vt liu cch in. Nhng c tnh vt l quan trng ca nhng
vt liu ny c bit n mt thi gian di trc .
Nm 1758, Carl Wilcke pht hin ra rng cht in mi phn cc c; pht hin ca ng y
n sm, tuy nhin n nhanh chng b lng qun sau . Mt dng ban u ca t in l Leyden
jar c pht minh bi Musschen-brock vo khong nm 1750. Vo nm 1837, Faraday chng
minh kh nng ca cht in mi ln hin tng tnh in.
nh hng ca hin tng p in ln cc tinh th t nhin c pht hin vo nm 1880 bi
anh em Jaques v Pierre Curie. H chng minh rng mt s tinh th nht nh c th tch in
bng nhng cch khc nhau khi chu mt lc tc dng v ngc li.
Tuy nhin ng dng ca hin tng trn vn cn kh khn. N ch bt u pht trin nhanh
khi m t c nhng thnh tu nht nh trong ngnh cng nghip gm s. Vo nhng nm
1930, s pht trin ca t gm da trn Bari Titanat (BaTiO3) dn n nhng nn tng quyt
nh s pht trin ng dng tnh p in.
2. Hiu ng p in:
Gm p in thuc vo nhm vt liu st in. Vt liu st in l nhng tinh th phn cc
m khng cn t vo in trng. c tnh ny n nh di tc dng ca nhit, o ngc
chiu phn cc di tc dng ca mt trng in t, c m t bng mt chu trnh tr nh
hnh. Tnh o ngc s phn cc v s tch bit gia nh hng c v in l im quyt nh
ng dng rng ri ca gm p in.
Bin dng tng ln khi ngoi lc tc ng ln khi vt liu p in sinh ra chuyn v nhng
nt mng dng v m to ra momen lng cc. y c gi l hin tng p in thun.

Hnh 7. nh hng ca lc ln vt liu c tnh p in


5

t mt in p xoay chiu vo s to ra s thay i kch thc ca vt liu (v d: gim


hay tng ng knh). Nu khi vt liu b kp cht, tc l s bin dng b ngn cn, th s sinh
ra mt lc. Hin tng ny c gi l p in ngc.

Hnh 8. Bin dng ca vt liu gm p in khi t vo hai u mt in p

Hnh 9. Mt trng in ngc chiu nu n vt c sc khng t. S gia tng trng mi


sc phn cc li, nhng theo hng ngc li.
3. Tng tc c in:
Sau y chng ta s thit lp mi quan h quan trng gia cht in mi, in c v p in,
bao gm nh ngha cc thng s.
Phng trnh in c c bn
Cc phng trnh lin h di y ch p dng i vi trng hp tn hiu nh.
Ch trong trng hp ny s phn cc c th c m t bng cc phng trnh tuyn tnh
gia bin dng (S) hoc ng sut (T) vi in trng E hoc chuyn v D. Mi quan h tuyn
tnh ny c suy ra bng cch s dng cc hng s in mi, p in v tnh n hi. Bi v cc
hng s ny ph thuc vo tnh d hng ca vt liu p in, do nhng i lng vt l ny
ch c th c nh ngha bng cc ten-x phn nh tnh nh hng ca trng in, bin dng
c hc
dng n gin, mi lin h c bn gia tnh cht in v n hi c m t bng hai
phng trnh sau:

D d .T T .E
S s E .T d .E
Trong :
D: chuyn v
6

T: ng sut
E: in trng
S: bin dng
d: hng s p in
T hng s in mi (khi T hng s)
sE hng s n hi (khi E hng s)
Nhng hng s p in lin h vi in trng E, ng sut T v bin dng S yu cu ch
s nh hng. Tng t nh s m t nh hng tinh th cho gm p in, vector phn cc
thng c t song song vi trc z hoc trc th 3 ca h ta ct theo quy tc bn tay
phi.
Nhng thng s nh hng c thm cc ch s 4, 5 v 6 tng ng vi hng ca trc
x, y v z. ng sut ct theo trc x, y v z v bin dng trt tng ng c thm cc ch s 4, 5
v 6.

Hnh 10. H trc vung gc m t vt liu p in


4. Piezoelectric Actuators
Nh ni trn, vt liu p in c th c dng bin i nng lng in thnh nng
lng c hc v ngc li. Cc c cu chp hnh s dng hin tng ny tr nn ph bin
trong sut 20 nm qua v gp phn thay i th gii ca s nh v chnh xc.
C cu chp hnh p in (Piezoelectric Actuator, PEA) c cc u im vt tri so vi cc
phng php khc:

Nhng chuyn ng micromet, nanomet nhng tn s cao c th t c vi PEA bi


v chuyn ng ca PEA c to ra bi hiu ng tinh th rn.

PEA c th c thit k chu c ti ln (vi tn) hoc c th ch to to ra cc


chuyn ng tn s cao vi chc kHz.

PEA cn t nng lng hot ng.

PEA khng cn bo tr.

Vi tin cy cao, bin dng 1/1000 (0.1%) c th t c, v d: mt c cu chp hnh


PEA c chiu di 100mm c th to ra chuyn v 100 micromet.
C cu chp hnh gm nhiu lp xp chng theo chiu dc
7

i vi cc c cu chp hnh p in theo chiu dc, in trng trong lp gm c t


song song vi phng phn cc. iu ny to ra chuyn v theo hng ca s phn cc. Tng
lp ring l to ra chuyn v tng i nh. c th to ra c nhng chuyn v p ng c
cc yu cu k thut th cc c cu loi xp chng nhiu lp c to ra (tng lp ring l c
gn ni tip li vi nhau v c cung cp ngun in song song (xem hnh 11)).

Hnh 11. Ghp ni tip cc lp piezo.


C cu xp chng theo chiu dc t c hiu nng cao trong vic bin in nng thnh c
nng. Chng c th t c bin dng 0.1 n 0.15%. ng sut t c ln ti 30N/mm2
do c th t c ti ti 10000N.
Chuyn v ca Piezo Actuators loi nhiu lp xp chng
Chuyn v ca gm p in ph thuc vo in trng E, loi vt liu p in v chiu di
ca PEA. Tnh cht ca vt liu c th c c trng bng h s bin dng dj. Nhng h s ny
m t mi quan h gia in trng t vo PEA v bin dng c hc sinh ra.
Chuyn v DL ca c cu mt lp lc khng ti c tnh bng cng thc sau:
DL = S*Lo ~~ E*dij*Lo
Trong
S l bin dng (DL/L)
Lo chiu di ban u (m)
E l cng in trng (V/m)
dj ph thuc c tnh vt liu

Hnh 12.
Hin tng tr (PEA vng m)
Hin tng tr c th c loi b bng PEA vng kn. Tng t nh cc thit b in t,
PEA vng m cng gp phi hin tng tr.
Hin tng trt (PEA vng m)

Hnh 13. Hin tng trt sau khi chuyn v 60 m theo thi gian.
Hin tng ha gi (Aging)
Hin tng ha gi l kt qu ca qu trnh kh phn cc. Ha gi l vn i vi cc ng
dng v cm bin hay my pht in ca vt liu p in (hin tng p in thun), nhng i
vi ng dng v c cu chp hnh th hin tng ny c b qua, bi v qu trnh kh phn cc
din ra mi khi m mt in trng cao hn t vo vt liu.
II.

Piezo Actuator

1. B iu khin ca Piezo Actuator

Hnh 14. B Driver MDT694A ca Piezo Actuator


9

1.1.Mt trc:

Hnh 15. Mt trc ca MDT694A


M t:
(1) INT Knob: nm xoay iu chnh in p ng ra t 0 n 75, 100 hoc 150 VDC.
N cng c dng offset cho ng vo (6): n c cng vi EXT INPUT BNC.
(2) POWER Button: dng m, tt MDT694A.
(3) Voltage Limit Indicator: nhng n LED ny s cho ngi dng bit c in p
gii hn.
(4) 3 Digit LED Display: hin th in p ra.
(5) High Voltage Output: kt ni ti piezo. in p ra bng tng ca in p offset (do
INT Knob), in p t ngoi a vo(qua EXT INPUT) v in p iu khin (qua
cng serial).
(6) EXT INPUT BNC: y l ng vo dng tc ng t bn ngoi ln p ng ra. in
p c a vo c th l 0 n 10V vi h s l 7.5, 10 hoc 15V/V ty thuc vo ci
t in p ng ra.
1.2.Mt sau:

Hnh 16. Mt sau MDT694A


M t:
(1) RS232 Connector: c dng giao tip vi my tnh qua chun giao tip RS232.
10

(2) Output Limit Switch: c dng ci t in p ra gii hn v iu chnh h s


ng vo EXT INPUT BNC. in p ra c th gii hn 75, 100 hoc 150V. Ch :
khng c thay i khi controller ang m.
(3) Line Voltage Selector Switch: iu chnh in p cung cp cho controller. Mc nh
t nh sn xut l 115V do ph hp li in 220 240VAC ta phi chnh
bng cng tc ny.
(4) Fuse Holder
(5) AC input receptacle: dng cm dy dn in cung cp cho controller. Dy dn
pahir theo chun IEC v phi c cc ni t.
1.3.Giao tip gia my tnh v MDT694A
MDT694A c thit k c th giao tip trc tip vi my tnh qua cng RS232. in p
ng ra ca MDT694A c iu khin trc tip bng phn mm trn my tnh. iu ny gip
loi b i s yu cu ca cc thit b b sung nh my to giao ng, card c u ra analog.
Nhng chc nng n gin nh to ra sng sin, in p ramp, xung c to bi my tnh.
Cng RS232 ca MDT694A c th t c baud rate ln ti 115200kbs. C th iu chnh
baud rate thng qua chuyn mch hai hng chn (dipswitch), vi baud rate mc nh t nh sn
xut l 115200kbs. Ngi s dng c th giao tip vi MDT694A bng cch dng cc lnh do
nh sn xut cung cp v cc chng trnh m phng nh HyperTerminal (ca National
Instruments LabView), hoc dng chng trnh do nh sn xut cung cp.
Ci t baud rate

Hnh 17. Dip Switch v ci t baud rate


Trnh t tin hnh:
(1) Tt controller v ngt khi ngun in.
(2) Ch khong 5 pht cho cc thit b trong controller x ht in
11

(3) Vn vt m v controller ra. Dip switch nm di ca mt sau.


(4) Dng bng trn ci t baud rate theo mong mun.
(5) Lp v thit b li nh ban u.
Tm tt cc lnh c nh sn xut cung cp
Lnh

XV

u vo

in p

M t

Ci t in p ng ra chnh l tham s u vo ca lnh

Lnh

XR?

u vo

M t

c v tr v in p ng ra

Lnh

XL

u vo

in p hoc ?

M t

Ci t in p ra ti thiu. Nu tham s l ? s tr v gi tr hin thi ca in


p ti thiu.

Lnh

XH

u vo

in p hoc ?

M t

Ci t in p ra ti a. Nu tham s l ? s tr v gi tr hin thi ca in p


ti a.

Lnh

u vo

Khng c

M t

Tr v model sn phm, phn mm firmware,

Lnh

u vo

Khng c

M t

Tr v in p ti a c ci t (75V tr v 0, 100V tr v 1, 150V tr v 2)

12

III.

Giao tip vi cm bin

1. Module giao tip RS-232C DL-RS1A

Hnh 18. Module DL RS1A


Module ny dng kt ni cm bin vi cc thit b nh PC hoc PLC thng qua chun
giao tip RS 232.
Cc chn ca module DL RS1A

Hnh 19. Kt ni module DL RS1A vi thit b khc


Chn s

K hiu

SG

RD (input)

Ni vo chn SD ca thit b ngoi vi thng qua cp giao tip.

SD (output)

Ni vo chn RD ca thit b ngoi vi thng qua cp giao tip.

SG

Cc chn SG (chn 1, 4 v 5) c ni ngn mch bn trong.

SG

Cc chn SG (chn 1, 4 v 5) c ni ngn mch bn trong.

M t
Ni vo dy dn bc kim ca cp giao tip.
Cc chn SG (chn 1, 4 v 5) c ni ngn mch bn trong.

DRQ (input) Khi c ngn mch gia chn DRQ v SG, d liu trong b khuch i cu
sensor c truyn ra thit b ngoi vi k c khi khng c yu cu ly d
13

liu t thit b ngoi vi.


Cch ni dy

Hnh 20. Cch ni dy cp giao tip


Ch :

Chiu di cp khng c vt qu 15m.

Phi ni chn SG ca thit b ngoi v vo dy bc kim.

m bo rng dy bc kim khng chm cc dy tn hiu khc hoc l cc chn khc ca


module.

Cc thng s giao tip ca module DL RS1A


c tnh

Gi tr

Phng php giao tip

Full duplex

Phng php ng b

Bt ng b

M truyn

M ASCII

Tc truyn

2400, 4800, 9600, 19200, 38400 bit/s (mc nh nh sn xut:


9600 bit/s)

Data bit

7 hoc 8 (mc nh: 7 bits)

Parity bit

None, even, odd (mc nh: none)

Stop bit

1 bit

Kt thc chui truyn nhn

Nhn: t ng pht hin CR hoc CR + LF


Truyn: chui gi i c km theo CR + LF

2. Cc lnh c bn
Chng ta c th gi nhng lnh do nh sn xut cung cp da trn m ASCII t thit b ngoi
vi ti module DL RS1A.
14

2.1.Lnh c d liu t b khuch i ca cm bin


2.1.1. Yu cu:

(1) M ca lnh.
(2) Xc nh ID ca cm bin mun c.
(3) Xc nh m ca d liu mun c hoc ghi vo b khuch i ca cm bin.
(4) Cc k t iu khin kt thc chui.
V d:
c Detection mode (m d liu l 101) t mt cm bin c ID l 06 ta vit lnh nh
sau:

2.1.2. p ng:
Khi module DL RS1A nhn thnh cng lnh t thit b ngoi vi, n s t ng tr v mt
chui d liu da trn lnh nhn c.
Cu trc:

(1) Cng vi m c gi i t thit b ngoi vi.


(2) Cng s ID c gi.
(3) Cng m d liu c gi i.
(4) Cha d liu m DL RS1A nhn c t b khuch i ca cm bin. Phn ny cha
ti a 10 bytes d liu.
(5) Cha CR + LF l k t bo hiu kt thc chui thng tin.
V d:
Khi m yu cu d liu l SR,06,101CRLF c gi n cm bin th, gi s, d liu c
c l Peak hold c m l 2, khi chui nhn c s l:

15

2.1.3. D liu tr v nu xy ra li:


Nu DL RS1A nhn c yu cu b li th n s t ng tr v mt chui thng bo li c
m ASCII.
Cu trc:

(1) M bo hiu chui ny l chui thng bo li.


(2) Lnh gi t thit b ngoi vi.
(3) M xc nh li g xy ra.
(4) CR + LF bo hiu kt thc chui truyn.
2.2.Lnh ghi
Lnh gi i:

Nhn v:

Li:

IV.

Lp trnh giao din

Phn mm c dng lp trnh giao din iu khin vng kn c cu chp hnh Piezo l
Visual C++ 2010.
Vi VC++2010 chng ta c ba cch to ra mt giao din chng trnh:
Dng Windows API. y l giao din c bn m h iu hnh Windows cung cp
giao tip gia h iu hnh v ng dng ang chy di s qun l ca n.
16

Dng Microsoft Foundation Classes, hay MFC. y l mt tp hp cc lp (class) ca


C++ ng gi Windows API.
Dng Windows Forms. y l c ch pht trin ng dng da trn dng biu mu
(Form).
Ba cch ny to thnh mt chui theo mc gim dn ca cng vic lp trnh. Vi
Windows API, chng ta phi vit tt c code t u n cui tt c cc yu t to nn giao din
chng trnh c to ra bng vic vit code. Vi MFC, c s gip trong qu trnh to ra giao
din, chng ta c th to ra cc iu khin (nt nhn, text box) bng cch ko th v chng ta
ch vit code p ng tng tc gia ngi dng v cc iu khin; tuy nhin, chng ta vn phi
b ra nhiu cng sc to nn mt giao din hon chnh. Vi Windows Forms, chng ta c th
d dng v nhanh chng to ra mt ng dng bi v lng code cn vit gim i ng k so vi
hai cch u tin. Code cho Windows Form cng c tt c cc u im ca CLR.
S dng MFC phi vit code nhiu hn Windows Forms, nhng chng ta c th kim sot
cch m giao din c to ra v kt thc vic lp trnh vi mt chng trnh tt hn. Bi v s
dng Windows API to ra giao din l phng php th cng nht trong vic pht trin mt
ng dng, do chng ta s khng i vo chi tit cch lp trnh ny.
Th vin Microsoft Foundation Class (MFC) l mt tp hp nhng lp C++. MFC c
dng vi h iu hnh Windows.e
1. Th vin Microsoft Foundation Class
1.1.Gii thiu:
Th vin Microsoft Foundation Class (MFC) cung cp mt tp hp cc hm, hng s, kiu
d liu v cc lp n gin qu trnh to ra mt ng dng chy trn h iu hnh Windows.
hin thc chc nng ca n, MFC c t chc theo kiu cy phn cp m lp c bn nht l
CObject. Tt c cc lp trong b MFC u c dn xut t lp ny.
1.2.To chng trnh bng MFC

Chn menu File -> New -> Project

Hnh 21.

Trong hp thoi New Project, chn loi project l MFC Application

17

t tn cho project trong Name:, mc nh tn ca project cng l tn ca solution,


nhng ta c th t tn khc cho solution.

Nhn nt Browse chn ni m ta s lu solution.

Hnh 22.

Nhn OK, hp thoi MFC Application Wizard xut hin, sau chn Next chuyn ti
trang tip theo ca Wizard

Hnh 23.
Trong hp thoi ny c cc la chn cho ng dng ca chng ta:
-

Single document: chng trnh ch c mt b d liu c m ti mi thi im.

Multiple documents: chng trnh c th m c nhiu b d liu cng mt thi im.

Dialog based: chng trnh c to ra c dng nh mt hp thoi

Multiple top level documents: cc d liu ca chng trnh c hin th trong ca s


con ca mn hnh thay v ca s con ca ng dng khi ng dng c nhiu b d liu
c m cng lc.

Hp thoi ny mc nh chn loi ng dng Multiple documents, vit chng trnh ca


mnh, em chn loi ng dng Dialog based, v cc thng s khc mc nh. Sau chn
Next.
18

Trong trang tip theo ca Wizard,

Thay i cc thuc tnh ca chng trnh: c nt thu nh, phng to

Mc nh tn ca giao din chng trnh l tn ca project, chng ta c th thay i hoc


gi nguyn.

Nhn nt Finish kt thc qu trnh khi to mt chng trnh mi.

Hnh 24.
1.3.Th vin MSCOMM32.OCX
Th vin MSCOMM32.OCX cho php chng ta thm khng ch nhng chc nng c bn
ca vic truyn thng ni tip vo chng trnh ca mnh m cn c th thm cc chc nng cao
hn nh cc cng c giao tip li s kin (event driven).
i vi cc phin bn VC++ t VC++6.0 tr v trc th Microsoft cn dng th vin ny,
nhng i vi VC++2005 (v7.0) tr v sau th th vin ny khng cn c Microsoft a vo.
V vy s dng th vin ny chng ta cn phi thc hin:

i vi h iu hnh 32 bit:
Copy file MSCOMM32.OCX b vo th mc sau C:\Windows\System32
Vo biu tng Start ca Windows g cmd, sau click chut phi chn Run as
administrator
Trong ca s Command Promt: g dng lnh regsvr32 MSCOMM32.OCX, nhn
Enter ri ch cho Windows ng k th vin.

i vi h iu hnh 64 bit:
Copy file MSCOMM32.OCX b vo th mc sau C:\Windows\SysWOW64
Vo biu tng Start ca Windows g cmd, nhn Enter chy Command Promt.
Trong ca s Command Promt: g dng lnh cd C:\Windows\SysWOW64
chuyn th mc lm vic v th mc C:\Windows\SysWOW64

19

G dng lnh regsvr32 MSCOMM32.OCX, nhn Enter ri ch cho Windows


ng k th vin.
Thm th vin MSCOMM32.OCX vo chng trnh
Bc 1: thm control Communication vo chng trnh.
Right-click ln giao din ca chng trnh -> chn Insert ActiveX ControlTrong hp thoi
Insert ActiveX Control, chn Microsoft Communications Control, version 6.0 -> nhn OK
thm control vo chng trnh.

Hnh 25. Bc 1
Bc 2: thm lp qun l i tng Communication va thm vo.
Right click ln project trong Solution Explorer -> chn Add -> ClassHp thoi Add Class
xut hin, trong hp thoi ny chn MFC Class From ActiveX Control, sau click Add.
Trong hp thoi Add Class From ActiveX Control Wizard, trong Available ActiveX controls
chn Microsoft Communications Control, version 6.0<1.0> -> nhn nt > -> chn Finish
kt thc qu trnh thm lp.
Bc 3: thm bin cho communication control.
Right click communication control ->Add VariableTrong hp thoi Add Member Variable
Wizard t tn cho bin, thay i tm vc ca bin.

20

Hnh 26. Bc 2

Hnh 27. Bc 3
1.4.Property Sheets
Property Sheets l mt hp thoi dng tab bao gm nhiu Property Page dng thay i
thuc tnh ca cc i tng. Ngi s dng c th chuyn i gia cc Property Page bng cch
click chut ln page tng ng.
Cc thnh phn trong Property Sheet

21

Hnh 28. Mt Property Sheet gm 2 Property Pages


Property sheet gm c 3 thnh phn chnh: mt hp thoi (chnh l sheet), mt hay nhiu
property page m mi thi im ch c mt page c hin th v tab u mi page ngi
dng c th chuyn i qua li gia cc pages.
Cch to mt Modal Property Sheet:
Quy trnh chung to mt modal property sheet bao gm cc bc sau:
Bc 1: thm property page.
Trong Resource View, m rng th mc <Project Name>.rc. Sau click chut phi ln th
mc Dialog chn Add ResourceTrong hp thoi add Resource click node Dialog. Ty vo
kch thc ca page ta c th chn IDD_PROPPAGE_LARGE, IDD_PROPPAGE_MEDIUM,
IDD_PROPPAGE_SMALL.

Hnh 29. Thm property page


Khi thm mt page mi ta phi tin hnh chnh sa cc thuc tnh ca page trong Dialog
Properties:

t Caption ca page thnh tn m mnh mun xut hin trn tab tng ng trong sheet.

t Style thnh Child.

t Border thnh Thin.

Chn check box Titlebar


22

B chn check box Diabled.

Bc 2: to lp dn xut t lp CPropertyPage. Mi lp c to ra s tng ng vi mt page


m to ra bc 1.
Right-Click ln Property Page cn thm lp -> chn Add Class
Hp thoi MFC Add Class Wizard xut hin. Trong text box Class Name t tn cho lp v
trong Combo Box Base Class chn lp dn xut l CPropertyPage. Lp mi c to ra s c
lu trong file <tn lp>.h v <tn lp>.cpp.

Hnh 30. Thm lp cho Property Page


Bc 3: to ra bin gia d liu cho mi property page. Qu trnh thm bin cho page tng
t nh i vi hp thoi bi v property page l mt hp thoi c chc nng chuyn bit hn so
vi hp thoi thng thng.
Bc 4: khi dng mt i tng ca lp CPropertySheet ti ni m chng ta mun property
sheet xut hin. C th nu mun property sheet xut hin khi nhn button COM PORT
SETTING th ta s b on code vo phn than th tc x l tc v nhn button COM PORT
SETTING.
Nu to ra modal property sheet bng hm DoModal th framework s t ng cung cp 3 nt
nhn mc nh: OK, Cancel, v Apply. Chng ta khng cn dn xut mt lp t lp ngun
CPropertySheet nu khng mun thm cc control b sung nh ca s xem trc.
Bc 5: thm page vo property sheet, cn thc hin:

Khi to i tng cho mi lp c dn xut t lp CPropertyPage m chng ta to


ra trc kia.

Gi hm CPropertySheet::AddPage cho mi page.

c bit, i tng ca lp CPropertySheet khi c to ra n cng ng thi to ra i


tng ca lp CPropertyPage. Tuy nhin, chn ta c th hin thc mt lp dn xut t
CPropertySheet, sau tch hp cc i tng ca lp CPropertyPage vo i tng
CPropertySheet v gi hm AddPage cho mi page trong constructor ca lp dn xut t lp
CPropertySheet. Hm AddPAge thm i tng CPropertyPage vo danh sch cc page ca
property sheet nhng n thc s khng to ca s no cho vic hin th page. V vy, khng cn
23

thit phi ch cho n khi thit lp property sheet mi gi hm AddPage m chng ta c th gi


hm ny t constructor ca property sheet.
Mc nh, nu property sheet c nhiu tab m n khng th hin th trn ht mt hang th cc
tab s hin th xp chng trn nhiu hng. loi b mc nh ny, ta gi hm
CPropertySheet::EnableStackedTabs vi tham s u vo l FALSE. Chng ta phi gi hm ny
khi to property sheet.
Bc 6: gi hm CPropertySheet::DoModal hoc hm Create hin th property sheet. Hm
DoModal to ra property sheet di dng hp thoi theo kiu (modal dialog box). Gi hm
Create to ra property sheet di dng hp thoi khng theo kiu (modeless dialog box).
Bc 7: trao i d liu gia property pages v chng trnh s hu property sheet.

Hnh 31. M t bc 4, 5, 6 v 7. Hm OnBnClickedButtonSetting() x l s kin nhn nt


COM PORT SETTING
1.5. ha trong MFC
1.5.1. Gii thiu GDI:
a. Ng cnh thit b (Device Context DC)
Ng cnh thit b l mt cu trc m t cho giao din hin th ca ca s trn mn hnh, bao
gm trnh iu khin thit b ca mn hnh v cc tham s nh phng ch, mu ch do vy
mi ca s s c mt DC tng ng.

24

Hnh 32. Minh ha ng cnh thit b


Trn ca s s c h ta cho vic xc nh v tr d liu khi hin ra, ta ny c xc
lp theo gc gc tri trn ca s v tng t tri sang phi theo chiu x, tng t trn xung theo
chiu y.

Hnh 33. H ta ng cnh thit b DC


Cc loi DC:

Display DC: s dng trong cc thao tc v ln mn hnh/ca s.

Printer DC: s dng kt xut d liu ha ra my in.

Memory DC: tng ng vi thit b logic, thng dng chun b d liu trc khi
hin th ra thit b vt l.

Cc lp lin quan n DC:

CDC: l lp c s dng qun l DC.

CPaintDC:
Dn xut t lp CDC,
Dng vi cc thao tc v trong vng client ca ca s
Ch s dng trong x l thng ip WM_PAINT (hm CWnd::OnPaint)

CClientDC:
Dn xut t lp CDC
Dng vi cc thao tc v trong vng client ca ca s
S dng bt c u, ngoi tr bn trong hm CWnd::OnPaint

CWindowDC:
Dn xut t lp CDC.
Dng vi cc thao tc v trn ca s (k c vng client v non-client).

25

Hnh 34. Cc lp lin quan n DC


c th thc hin cc thao tc v trn h iu hnh Windows, Microsoft cung cp giao din
thit b ha Graphical Device Interface GDI. y l tp hp cc lp, hm, cc thuc tnh,
hng s m t hu ht mi th cn thit thc hin cc thao tc v trong mt ng dng. GDI
khng tng tc trc tip vi phn cng m thng qua cc driver ca thit b .

Hnh 35. Tng tc ca GDI vi thit b v ng dng


thc hin c thao tc v ta cn c 2 yu t c bn: nn tng v cng c. Nn tng
cho php chng ta bit c loi i tng no ang c dng thao tc v cch m ta thao
tc trn i tng . Trn h iu hnh Windows, nn ly c nn tng ta phi to ra mt ng
cnh thit b.
1.5.2. Tin hnh lp trnh giao din hin th cc thng s qu trnh theo thi gian:
Bc 1: m Toolbox, tm n control Custom Control, ko v th vo giao din sau iu
chnh kch thc ca control cho ph hp. Right-click ln custom control v chn Properties.
Trong hp thoi properties thay i:
Thuc tnh Class thnh tn ca lp m mnh dng qun l cc hm qun l thuc tnh
ca th, cung cp cc hm cn thit cho vic hin th d liu ca qu trnh iu khin.
v d ny l hm CGraph. Lp ny s c thm vo project bc sau.
Thuc tnh ID. Thay i thuc tnh ny thnh tn gi nh cho d qun l. Khng cn
thit phi thay i thuc tnh ny.

26

Hnh 36. Bc 1
Bc 2: thm lp CGraph.
(1) Right-click ln project name trong ca s Solution Explorer -> chn Add -> chn
Class
(2) Hp thoi Add Class xut hin, chn MFC Class l loi lp m ta mun thm vo chng
trnh, sau click Add.
(3) Trong hp thoi MFC Add Class Wizard, t tn cho lp trong Class Name l CGraph.
Tong Base Class chn lp c s l CWnd. Chn Finish hon tt qu trnh thm lp
mi vo project.

Hnh 37. Bc 2
Bc 3: Sau khi thm lp CGraph nu ta thc hin Build v chy chng trnh th ca s
chng trnh khng xut hin. Do chng ta phi ng k lp CGraph vi h thng mi c th
dng c lp ny.
27

Trn thanh menu chn Project -> Class Wizard hoc l nhn t hp phm Ctrl + Shift + X.
Hp thoi MFC Class Wizard xut hin:
(1) Chn tab Method
(2) Kim tra project name xem th c ng l project ang thc hin.
(3) Kim tra Class name c ng l lp CGraph hay khng.
(4) Click Add Method

Hnh 38. Bc 3
Sau khi chn Add Method hp thoi Add Method xut hin. Chn kiu tr v ca hm l
BOOL, kiu tham s l void (khng c tham s), tm vc l Protected v t tn hm l
RegisterWndClass. Hm RegisterWndClass s t ng thm vo lp CGraph.
Tin hnh vit code ng k lp CGraph. Thm on code sau vo phn thn ca hm
WNDCLASS windowclass;
HINSTANCE hInst = AfxGetInstanceHandle();
//Check weather the class is registerd already
if (!(::GetClassInfo(hInst, _T("CGraph"), &windowclass)))
{
//If not then we have to register the new class
windowclass.style = CS_DBLCLKS;// | CS_HREDRAW | CS_VREDRAW;
windowclass.lpfnWndProc = ::DefWindowProc;
windowclass.cbClsExtra = windowclass.cbWndExtra = 0;

28

windowclass.hInstance = hInst;
windowclass.hIcon = NULL;
windowclass.hCursor = AfxGetApp()->LoadStandardCursor(IDC_ARROW);
windowclass.hbrBackground = ::GetSysColorBrush(COLOR_WINDOW);
windowclass.lpszMenuName = NULL;
windowclass.lpszClassName = _T("CGraph");
if (!AfxRegisterClass(&windowclass))
{
AfxThrowResourceException();
return FALSE;
}
}
return TRUE;

hon tt qu trnh ng k mt lp mi ta tin hnh gi hm RegisterWndClass() trong


phn thn ca Constructor ca lp CGraph.
Bc 4: khi to mt i tng ca lp CGraph.
(1) Richt-click len custom control c to bc 1, chn Add Variable
(2) Hp thoi Add Member Variable Wizard xut hin
o Trong Access chn protected
o Variable type chn CGraph
o Variable name g tn m_GraphCtrl
o Chn Finish kt thc.

Hnh 39. Bc 4
By gi khi build v chy chng trnh, ta thy hp thoi chng trnh ca chng ta
xut hin.
Bc 5: tin hnh hon thin lp CGraph thc hin cc chc nng m ngi dng mong
mun.
29

V.

M hnh th nghim

1. Thit k g:

Hnh 40. Thit k phn base

Hnh 41. Thit k khi ch V c cu piezo


30

Hnh 42. Thit k khi ch V c nh c cu piezo

Hnh 43. Thit k chi tit c nh cm bin


31

VI.

Kt qu th nghim

Kt qu c ch ra nh trn hnh 43. Nh vo b d liu thu c t cm bin ta c th iu


khin c c cu piezo thng qua lnh chuyn v, tc l nhp vo chuyn v mong mun, thay
v nhp vo in p nh trc kia.

Hnh 43. th gi tr chuyn v mong mun v gi tr thc

32

Ti liu tham kho:


[1] http://www.piezomechanik.com/en/home/introduction/index.html?1=
[2] http://www.noliac.com/Piezo_actuators-7764.aspx
[3] http://www.thorlabs.com/newgrouppage9.cfm?objectgroup_id=1280
[4]Pham Huy Hoang and Vo Doan Tat Thang, Design and Simulation of Micro-Linear
Actuator, in Proceeding of The IEEE Conference on Robotics, Automation and Mechatronics
CIS-RAM, pp. 292-296, Singapore, June 2010.
[5]Ivor Horton, Ivor Hortons BeginningVisual C++ 2010, Wiley Publishing, Inc.
[6]http://home.arcor.de/it-solution/cpp/books/Professional%20MFC/CONTENTS.HTM
[7]http://www.tenouk.com/Sitemap.html
[8]http://www.informit.com/library/content.aspx?b=Visual_C_PlusPlus&seqNum=77
[9]http://www.functionx.com/visualc/controls/index.htm

33

You might also like