1
Xây dng chương trình điu khin h thng
cân trong dây chuyn Saphir bng mng Petri
Sinh viên: Trương Quc Dũng, H Văn Qung Phú - CBHD: TS Trn Đình Khôi Quc – D án đào
to kĩ sư cht lượng cao PFIEV
Tóm tt: H thng mâm cân trên dây chuyn Saphir được điu khin bng h điu hành thi gian
thc vi s h tr ca phn mm Tornado 2.2. Đề tài tp trung nghiên cu vào cơ chế điu khin, phi
hp tác v ca VxWorks và ng dng ca nó trên h thng Saphir. Để to điu kin cho người s dng
có th làm ch được h thng, có th giám sát và điu khin được d dàng hơn, nhng người thiết kế
dây chuyn Saphir đã đưa vào đó cơ chế điu khin bng mng Petri trên nn VxWorks. Đây là mt
công c đồ hình lý thuyết cho phép phân tích, giám sát h thng rt hiu qu. Da trên nn mng Petri
sn có đó, đề tài s tiến hành xây dng chương trình điu khin h thng cân trong dây chuyn Saphir
bng mng Petri.
Abstract: The tray- balance system of Saphir Demo is controled by the real-time operating system
VxWorks, using Tornado 2.2. This theme focus on researching about the mechanism of controling
system and how to co-ordinate the intertask by VxWorks. Then, research about VxWorks in Saphir
Demo. Because VxWorks is fairly complex, so, the designer of Saphir Demo applied PetriNets on
Saphir, to help user can be the master of Saphir system. PetriNets is a graph theoretic tool, that is very
useful for modeling and analyzing system. Based on the ready foundation of PetriNets in Saphir, this
theme will construct a program to control the tray-balance system of Saphir Demo by PetriNets.
I. M đầu
Nếu như trước đây, các h thng thường được thiết kế theo kiu tun t, ni tiếp thì các h
thng sn xut hin đại ngày nay đòi hi tính đồng thi, tương tác ln nhau, nghĩa là nhiu tác
v, nhiu h thng cùng điu khin, cùng chia s tài nguyên… Điu này đặt ra các yêu cu v
phân tích h thng c v định tính ln định lượng. Do đó, đòi hi phi có mt mô hình hoàn
thin và mnh m để h tr cho vic nghiên cu và phân tích h thng.
Phương pháp mng Petri (PetriNets) là mt công c cho phép phân tích trc tiếp và giám sát
có hiu qu mt h thng sn xut thông qua các đồ hình điu khin. Lý thuyết v mng Petri
được C.A.Petri xây dng vào đầu thp niên 60. Mng Petri không nhng giúp cho vic phân
tích h thng được thun li mà còn to điu kin trao đổi d dàng hơn gia người thiết kế
người s dng.
H thng mâm – cân trong dây chuyn Saphir ti Chương trình Đào to K sư cht lượng cao
Đà Nng hin đang được điu khin bng h điu hành thi gian thc VxWorks rt phc tp.
Do s lượng các tín hiu điu khin, các điu kin ràng buc trong điu khin rt ln nên vic
giám sát quá trình điu khin cũng như vic g ri chương trình gp nhiu khó khăn. Trên cơ
s nghiên cu h điu hành đa nhim thi gian thc VxWorks, nhim v đề tài đặt ra là xây
dng chương trình điu khin và giám sát h mâm – quay ca SAPHIR bng mng Petri.
II. Tng quan v đề tài
SAPHIR là mô hình ca mt dây chuyn phân loi và lp ráp t động trong mt nhà máy sn
xut, được lp đặt ti phòng thí nghim CRePA ca PFIEV. SAPHIR có 3 phn: mâm quay-
2
cân, băng chuyn, cánh tay rôbôt. H thng cân (nh minh ha), được điu khin bng
VxWorks, thc hin phân loi và cp chi tiết vào băng chuyn. Băng chuyn (điu khin bng
PLC TSX Premium) s vn chuyn các chi tiết đến cánh tay rôbôt. Ging như mâm – cân,
cánh tay rôbôt cũng được điu khin bng VxWorks, nó s thc hin vic lp ráp các chi tiết
thành sn phm hoàn chnh.
Trong dây chuyn SAPHIR s dng 8 đầu vào s, 5 đầu ra s
1 đầu vào analog. Toàn b các tín hiu điu khin, cũng như giá
tr đin áp qui đổi ca khi lượng đều được đưa vào PC thông
qua card giao tiếp ax5020p, gn trc tiếp trên mainboard ca PC
điu khin. Để đảm bo cân khi lượng chi tiết được chi tiết
được chính xác; trước mi ln cân cn có 1s để cân xác lp trng
thái ban đầu; khi có chi tiết được cân, cn 0.5s để cân n định
giá tr cân được. Như vy toàn b quá trình cân mt 1.5s.
Chương trình điu khin s ly giá tr này và tiến hành phân loi.
T nhng quan sát nêu trên, vi mc tiêu đặt ra nghiên cu h thng điu khin và xây dng
chương trình điu khin có kh năng giám sát s hot động ca h thng, đề tài đặt ra các
nhim v cn gii quyết: Nghiên cu v h điu hành thi gian thc VxWorks và ng dng
ca nó trong h thng cân ca dây chuyn Saphir; xây dng mng Petri để giám sát điu khin
h thng cân trên nn VxWorks sn có
III. Ni dung chính ca đề tài
1.Cơ chế điu khin ca VxWorks và ng dng ca nó trên h thng cân SAPHIR
VxWorks là mt h điu hành thi gian thc vi cu trúc tng quát gm hai cp độ: h thng
ch và h thng đích. Cp độ đầu tiên, cp độ ch, cung cp cho chúng ta các công c để xây
dng nên các trình ng dng (bao gm các d án, các trình son tho, các máy con gi lp, các
b g ri, phân tích mã lnh và mô phng). Cp độ th hai cung cp mt cu trúc cơ s, làm
nn cho các h thng khai thác VxWorks cũng như các tác v thi gian thc phát trin bi
người s dng. Vic giao tiếp gia máy con và máy ch được thc hin thông qua mt trm
đích nm trên máy ch gi là Target-Server.
Như đã nói trên, VxWorks là mt h điu hành đa nhim thi gian thc. Mt trong nhng
yêu cu quan trng ca h thng thi gian thc là thi gian đáp ng, làm sao để h thng có
Trình duyt
Shell
Windview
G ri
Máy con
mô phng
Target-Server
Trình son tho
c project
Trình ng
dng
VxWorks
Máy con
Máy ch
3
th phn ng kp thi vi nhng thay đổi bên ngoài tác động đến h thng. Đối vi các h
thng điu khin thông thường, điu này được gii quyết bng cách s dng ngt. Tuy nhiên,
ta thy rng vic x lý các chương trình ngt không phi đơn gin. Hơn na, s ngt dành cho
mt h thng thông thường bao gi cũng b hn chế.
magasinDemo_GestionPlateau (70)
semB_Demarrer_Plateau
semB_Piece_a_Pousser_V1
magasinDemo_GestionVerin1 (100)
semB_Piece_a_Pousser_V1
semB_Piece_a_Peser
semB_Poste_Peser_Libre
magasinDemo_GestionBalance (80)
semB_Piece_a_Peser
semB_Demarrer_Plateau
semB_Petite_Piece_a_Pousser_V2
semB_Grande_Piece_a_Pousser_V2
semB_Piece_a_Pousser_V2
magasinDemo_GestionVerin2 (90)
semB_Piece_a_Pousser_V2
semB_Petite_Piece_a_Pousser_V2
semB_Grande_Piece_a_Pousser_V2
semB_Poste_Peser_Libre
Tên ca tác v (cp ưu tiên)
Ly c semTake ( )
Tr c semGive ( )
Th hin mi liên h gia vic ly
c và tr c ca cùng mt c.
Đường mũi tên này s bt đầu t
hàm semGive và kết thúc ti hàm
semTake ca c đó
Chú thích
Để gii quyết vn đề này, VxWorks đã đưa ra các cơ chế sau:
_Các tác v trong VxWorks hoàn toàn độc lp vi nhau. Mi tác v được đặt mt cp độ ưu
tiên khác nhau. Các tác v s chiếm quyn ưu tiên thc hin trên CPU da trên cp ưu tiên, tác
v nào có quyn ưu tiên cao hơn s được thc hin trước. Ch khi nào tác v có cp ưu tiên
4
cao thc hin xong thì các tác v thp hơn mi được thc hin. Các tác v có cùng cp ưu tiên
s được lp kế hoch thc hin mt cách luân phiên.
_Để đảm bo phn ng kp thi vi các tác động bên ngoài, VxWorks cung cp mt h thng
các c. Các tác v có quyn ưu tiên thp hơn có th giành được quyn thc hin nếu nó ly
được c tương ng.
_Ngoài cp ưu tiên và c, các tác v trong VxWorks còn có th được phi hp vi nhau
thông qua hàng đợi tin nhn, hoc qua signal. Đây là hai phương pháp ít ph biến hơn để phi
hp tác v.
Các tác v trong dây chuyn Saphir được phi hp theo nhiu kĩ thut khác nhau, trong đó
vic s dng c để phi hp là ch yếu. S phi hp các tác v điu khin trong h thng cân
ca Saphir có th được minh ha trong hình v trên.
2.Xây dng chương trình điu khin bng mng Petri
Có th nhn thy rng, vic xây dng được mt
chương trình điu khin bng VxWorks không
phi là đơn gin. Như trong h thng mâm cân
ca dây chuyn Saphir, đối tượng điu khin
đây là mâm quay, hai pittông và cân, chương
trình điu khin và cơ chế phi hp các tác v
trong dây chuyn rt phc tp. Do đó, s rt khó
khăn cho người s dng khi mun thay đổi hoc
điu khin h thng theo mt qui lut khác. Để
gii quyết vn
đề này, người
thiết kế đã chn
gii pháp ng
dng mng
Petri để điu
khin dây chuyn.
Mng Petri là mt công c đồ hình lý thuyết, mt mng Petri
bao gm các v trí, các chuyn tiếp, các cung ni và các
token. Hình bên th hin mt mng Petri đơn gin.
Các token s được chuyn t v trí này sang v trí khác thông
qua quá trình thông ca các chuyn tiếp. Các chuyn tiếp
thường được liên kết vi mt điu kin bên ngoài, các v trí
thì được liên kết vi mt hot động c th ca h. V trí nào
cha token thì hot động liên kết vi v trí đó mi được thc
hin. Và token ch có th chuyn t v trí này sang v trí khác
khi điu kin liên kết vi chuyn tiếp gia chúng được tha
mãn. Vi ví d như hình bên, v trí P1 đang có token, nên ti
đây action1 được thc hin. Khi điu kin condition1 đúng thì
chuyn tiếp T1 thông, token được chuyn t v trí P1 sang v
trí P2, và lúc này action2 được thc hin.
V trí token
Chuyn tiếp
action 1
P1
P2
P3
action 2
action 3
condition1
condition2
T1
T2
T3
Điu kin
liên kết
chuyn tiếp
Hot động
liên kết v
trí
5
Trong dây chuyn Saphir, mng Petri được mô t bng file *.XML, file XML này phi được
viết theo đúng cú pháp do người thiết kế đặt ra. Mi v trí, hay chuyn tiếp phi được khai báo
trong mt cp th lnh. Ví d: để khai báo v trí, toàn b các thuc tính ca v trí phi được đặt
trong cp <place>, </place>. Để VxWorks có th hiu được mng Petri này, người thiết kế
phi viết chương trình đọc file XML, x lý các yêu cu và các điu kin liên kết. Bên cnh đó,
người thiết kế cũng phi xây dng thêm các tác v điu khin (trong mã ngun ca chương
trình, tác v này bt đầu bng chui ‘RdP’) và to thêm các c để thc hin phi hp vi mô
hình mng Petri do người dùng thiết kế. Người dùng ch được phép s dng các yêu cu và
các điu kin đã được định sn.
Trên cơ s nhng điu đã nghiên cu được, đề tài đã xây dng được mng Petri (hình bên)
điu khin h thng cân vi qui lut tương t như qui lut điu khin chế độ t động. Khi đã
th hin được mng Petri này bng XML; file XML s được ti xung máy con bng mt phn
mm truyn file theo phương thc FTP ( đây s dng phn mm FileZilla). Khi điu khin
bng mng Petri, SAPHIR s yêu cu người dùng nhp vào tên file XML cn thc thi. Toàn
b file XML đó s được đọc, các yêu cu và các điu kin s được chuyn thành các c tương
ng. Ví d: yêu cu Req_PositionerPiece (thc hin định v chi tiết) s được chuyn thành c
semB_ Req_ PositionerPiece. Chương trình điu khin thc hin vic định v chi tiết s ly c
này để thc thi.
IV. Đánh giá kết qu
Chúng tôi đã thc hin tìm hiu cơ chế điu khin ca VxWorks, nm được mt s kĩ thut cơ
bn để tiến hành xây dng mt ng dng c th điu khin da trên nn VxWorks, mà c th
là thc hin điu khin card FASTLAB (xut xung độc lp, xut, nhn d liu analog).
Đồng thi, da trên nn có sn ca mng Petri, chúng tôi đã tiến hành xây dng cu trúc mng
Petri để điu khin cho toàn b h thng mâm –cân ca dây chuyn Saphir.
T1
P1
P2
T3
P3
P4
Req_PositionerPiece
T2
Req_SortirVerin1
CR_SortirVerin1
Req_RentrerVerin1
CR_RentrerVerin1
Req_IdentifierPieces
CR_PositionerPiece
T3
P3 Req_TarageBalance
CR_TarageBalance
CR_IdentifierPieces;
VEi<600
CR_IdentifierPieces;
VEi>=600
Req_SortirVerin2
CR_SortirVerin2
Req_RentrerVerin2
CR_RentrerVerin2;
i = i +1
i < 2
i >= 2
T1
P1
P2
T3
P3
T2
Req_SortirVerin1
CR_SortirVerin1
Req_RentrerVerin1
CR_RentrerVerin1;
i = i -1
i != 0
Req_ArreterPlateau
CR_DemarrerPlateau
Req_DemarrerPlateau
Req_ArreterPlateau
i = 0
P4
P5
P6
P7
T4
T6
T5
T7
Mt s vi d v mng Petri
trên mô hình Saphir