4.1.7.1. Lưu đồ thuật toỏn
Hỡnh 4.7 Lưu đồ thuật toỏn chương trỡnh con cất xe trước
G é S Time >= 5s S Time >= 5s é S Chạm CTHT Palet_sau é S Time >= 5s é é S Time >= 10s Ngừng động cơ Dọc Động cơ Palet tr•ớc hoạt động
Ngừng éC Palet sau Ngừng éC Xích ra sau Động cơ Dọc hoạt động éC Palet sau hoạt động
éC Dọc hoạt động
Ngừng động cơ Palet tr•ớc Ngừng động cơ Dọc éC Xích ra sau hoạt động
4.1.8. Chương trỡnh con cất xe sau
4.1.8.1. Lưu đồ thuật toỏn
Hỡnh 4.8 Lưu đồ thuật toỏn chương trỡnh con cất xe sau
4.2. GIAO DIỆN WINCC CHO BÃI ĐỖ XE CAO TẦNG
4.2.1. Giao diện khỏch hàng
Hỡnh 4.9 Giao diện nhập Pass của khỏch hàng
4.2.2. Giao diện giỏm sỏt hệ thống
4.2.3. Giao diện xe trong cỏc khoang
Hỡnh 4.11 Giao diện giỏm sỏt vị trớ xe trong khoang
4.2.4. Giao diện Pallet lấy cất xe
CHƯƠNG 5. ĐỀ XUẤT TẬP HƯỚNG DẪN THỰC HÀNH
5.1. HỆ THỐNG GIAO TIẾP GIỮA KHÁCH HÀNG VÀ BÃI ĐỖ XE
Sau khi đưa xe vào khoang trước, hệ thống lập trỡnh PLC sẽ tự động đưa xe vào vị trớ đỗ, người lỏi xe khụng cần thao tỏc bất kỳ động tỏc nào ngoài việc nhập mó pass hay bấm nỳt xỏc định vị trớ khoang lấy cất xe.
Khi cú sự cố quỏ tải thỡ đốn sẽ bỏo, yờu cầu khỏch khụng được cất loại xe này. 5.2. NGUYấN TẮC HOẠT ĐỘNG CỦA BÃI ĐỖ XE
5.2.1. Chế độ 1 khoang
+ Mỗi khoang được mặc định một mó số (tương tự như dựng thẻ điện tử). Mó số trong thẻ điện tử sẽ được đăng ký thành viờn.
+ Nếu muốn cất xe: Khỏch hàng sau khi đưa xe vào khoang trước, sẽ nhập mó Pass của khoang được chọn rồi nhấn Cất xe, hệ thống sẽ đưa xe lờn đỳng vị trớ khoang cú mó Pass đú.
+ Nếu muốn lấy xe: Khỏch hàng sẽ nhấp đỳng mó Pass lỳc cất xe, hệ thống sẽ tự động lấy xe tại khoang đú và trả xe cho khỏch.
Chỳ ý: Nếu trong khoang khụng cú xe, mà khỏch hàng cứ nhấn nỳt Lấy xe thỡ
hệ thống sẽ tự động cảnh bỏo tại màn hỡnh điều khiển.
5.2.2. Chế độ nhiều khoang
+ Mỗi khoang cú thể nhập bất kỳ mó Pass nào (tương tự như dựng thẻ điện tử). Mỗi thẻ điện tử cú một mó Pass riờng nờn khụng bao giờ cú trường hợp nhập mó trựng nhau được.
+ Nếu muốn cất xe: Khỏch hàng sau khi đưa xe vào khoang trước, sẽ nhập mó Pass rồi nhấn Cất xe (cần nhớ mó Pass đó nhập vào), hệ thống sẽ tự động kiểm tra cỏc khoang lần lượt từ dưới lờn trờn, khoang nào trống thỡ sẽ cất xe tại khoang đú. Nếu đó hết, sẽ bỏo hệ thống full xe tại màn hỡnh điều khiển.
+ Nếu muốn lấy xe: Khỏch hàng sẽ nhấp đỳng mó Pass lỳc cất xe, hệ thống sẽ tự động lấy xe tại khoang ứng với mó Pass đú và trả xe cho khỏch.
Chỳ ý: Nếu chưa cất xe mà khỏch hàng cứ nhấn nỳt Lấy xe thỡ hệ thống sẽ tự
5.3. HƯỚNG DẪN SỬ DỤNG VÀ ỨNG DỤNG Mễ HèNH
5.3.1. Hướng dẫn dowload chương trỡnh xuống S7-1200
Tải từ màn hỡnh soạn thảo chương trỡnh bằng cỏch kớch vào biểu tượng download trờn thanh cụng cụ của màn hỡnh.
Chọn cấu hỡnh Type of the PG/PC interface và PG/PC interface sau đú nhấn chọn load.
5.3.2. Kết nối S7-1200 với Wincc qua KEPServerEX 5 Configuration
Bước 1: Giao tiếp giữa Wincc V7.0 với KEPServerEX 5 Configuration
Khởi động KEPServerEX 5 Configuration chọn new file, click chuột trỏi chon nỳt Yes,Update
Nhấn next, chọn Device driver
Nhấn next, chọn địa chỉ mỏy
Click vào ụ click to add device rồi đặt tờn, chọn next
Chọn PLC S7-1200
Nhập địa chỉ PLC
Bước 2: Giao tiếp giữa KEPServerEX 5 Configuration với PLC S7-1200 Sau khi tạo cỏc tag tương ứng với địa chỉ vào ra của PLC và Wincc V7.0 trờn phần mềm KEPServerEX 5 Configuration. Click vào Quick Client
Chạy chương trỡnh trờn PLC và Wincc, KEPServerEX 5 Configuration sẽ tự động kết nối cỏc tag địa chỉ vào ra
5.3.3. Bảng điều khiển
+ Start/Stop: Cho phộp hệ thống bắt đầu hoạt động
+ Dừng khẩn cấp: Chỉ sử dụng cho qua trỡnh thang nõng hạ hoạt động
+ Bỏo quỏ tải: Mụ phỏng trạng thỏi xe vào cú trọng lượng lớn, khụng thớch hợp cất xe tại hệ thống.
+ Đốn Start/Stop: Bỏo trạng thỏi hệ thống hoạt động
+ Đốn Dừng khẩn cấp: Bỏo dừng hệ thống khẩn cấp khi cú sự cố + Đốn Bỏo quỏ tải: Bỏo xe quỏ trọng lượng cho phộp
Bảng 5.1 Quy định vị trớ khoang trong hệ thống ở mỗi tầng
3 1 5
4 2 6
+ Cất xe trước: Yờu cầu hệ thống cất xe tại vị trớ số 4, 2, 6 + Cất xe sau: Yờu cầu hệ thống cất xe tại vị trớ số 3, 1, 5 + Lấy xe trước: Yờu cầu hệ thống lấy xe tại vị trớ số 4, 2, 6 + Lấy xe sau: Yờu cầu hệ thống cất xe tại vị trớ số 3, 1, 5 + Tầng 1: Yờu cầu hệ thống cất lấy xe ở tầng 1
+ Tầng 2: Yờu cầu hệ thống cất lấy xe ở tầng 2 + Tầng 3: Yờu cầu hệ thống cất lấy xe ở tầng 3 + Bờn trỏi: Yờu cầu hệ thống lấy cất xe ở vị trớ số 3,4 + Bờn phải: Yờu cầu hệ thống lấy cất xe ở vị trớ số 5,6
K2 K6 K8 K1K5K7
éC PALET éC NGANG DC dọc
5.4. ỨNG DỤNG CÁC BÀI THỰC HÀNH TRấN Mễ HèNH
5.4.1. Cỏc bài tập cơ bản
Bài tập 01: Viết chương trỡnh điều khiển động cơ quay thuận nghịch (nhấn N1 động
cơ DC dọc quay thuận, nhấn N2 động cơ DC dọc quay nghịch, nhấn N3 động cơ dừng. Chu trỡnh tương tự cho động cơ DC Pallet và ĐC Ngang).
12V DC
Yờu cầu:
+ Túm tắt ngừ vào ra.
+ Vẽ sơ đồ đấu dõy phần cứng. + Viết chương trỡnh trờn S7-1200.
Bài tập 02: Viết chương trỡnh đếm số lượng xe đi vào bói. Mỗi khi cú xe đi vào, bộ
đếm tăng 1 giỏ trị, khi cú xe đi ra thỡ bộ đếm sẽ giảm xuống. Khi số lượng xe đó đầy, đốn cảnh bỏo ở lối vào sẽ sỏng.
Yờu cầu:
+ Túm tắt ngừ vào ra.
+ Viết chương trỡnh trờn S7-1200.
Bài tập 03: Viết chương trỡnh điều khiển hoạt động của Pallet lấy xe trước. Nhấn
I0.0 động cơ Pallet dịch chuyển ra phớa trước, chạm cụng tắc hành trỡnh trước I0.2 dừng. Nhấn I0.1 động cơ Dọc đưa Pallet lờn 3s thỡ dừng, đồng thời động cơ Pallet dịch chuyển ra lại phớa sau, nhấn I0.3 dừng động cơ Pallet.
Yờu cầu:
+ Túm tắt ngừ vào ra.
+ Vẽ sơ đồ đấu dõy phần cứng. + Viết chương trỡnh trờn S7-1200.
Bài tập 04: Viết chương trỡnh điều khiển hoạt động của Pallet lấy xe sau. Nhấn I0.0
động cơ Pallet dịch chuyển ra phớa sau, chạm cụng tắc hành trỡnh sau I0.2 dừng. Nhấn I0.1 động cơ Dọc đưa Pallet lờn 3s thỡ dừng, đồng thời động cơ Pallet dịch chuyển ra lại phớa trước, nhấn I0.3 dừng động cơ Pallet.
Yờu cầu:
+ Túm tắt ngừ vào ra.
+ Vẽ sơ đồ đấu dõy phần cứng. + Viết chương trỡnh trờn S7-1200.
Bài tập 05: Viết chương trỡnh điều khiển hoạt động của Pallet cất xe trước. Nhấn
I0.0 động cơ Dọc đưa Pallet lờn 3s thỡ dừng, đồng thời động cơ Pallet dịch chuyển ra phớa trước, chạm cụng tắc hành trỡnh trước I0.2 thỡ dừng. Nhấn I0.1 động cơ Dọc đưa Pallet xuống 3s thỡ dừng, đồng thời động cơ Pallet dịch chuyển ra phớa sau, nhấn I0.3 dừng động cơ Pallet.
Yờu cầu:
+ Túm tắt ngừ vào ra.
+ Vẽ sơ đồ đấu dõy phần cứng. + Viết chương trỡnh trờn S7-1200.
Bài tập 06: Viết chương trỡnh điều khiển hoạt động của Pallet cất xe sau. Nhấn I0.0
động cơ Dọc đưa Pallet lờn 3s thỡ dừng, đồng thời động cơ Pallet dịch chuyển ra phớa sau, chạm cụng tắc hành trỡnh sau I0.2 thỡ dừng. Nhấn I0.1 động cơ Dọc đưa
Pallet xuống 3s thỡ dừng, đồng thời động cơ Pallet dịch chuyển ra phớa trước, nhấn I0.3 dừng động cơ Pallet.
Yờu cầu:
+ Túm tắt ngừ vào ra.
+ Vẽ sơ đồ đấu dõy phần cứng. + Viết chương trỡnh trờn S7-1200.
Bài tập 07: Viết chương trỡnh điều khiển tỡm vị trớ khoang.
Nhấn I0.0 kớch hoạt lấy xe trước ( M0.0 lờn mức 1 ), nhấn I0.1 kớch hoạt cất xe trước ( M0.1 lờn mức 1 ), nhấn I0.2 kớch hoạt lấy xe sau ( M0.2 lờn mức 1 ), nhấn I0.3 kớch hoạt cất xe sau ( M0.3 lờn mức 1 ).
Nhấn I0.5 kớch hoạt tầng 1 ( M0.5 lờn mức 1 ), nhấn I0.6 kớch hoạt tầng 2 ( M0.6 lờn mức 1 ), nhấn I0.7 kớch hoạt tầng 3 ( M0.7 lờn mức 1 ).
Nhấn I1.0 kớch hoạt bờn trỏi ( M1.0 lờn mức 1 ), nhấn I1.1 kớch hoạt bờn phải ( M1.1 lờn mức 1 ).
Nhúm tiếp điểm M0.0, M0.1, M0.2, M0.3: Kớch hoạt từng chương trỡnh con cất lấy xe tương ứng.
Nhúm tiếp điểm M0.5, M0.6, M0.7: Chọn tầng cất lấy xe.
Nhúm tiếp điểm M1.0, M1.1: Chọn phớa trỏi hay phải để cất lấy xe.
Yờu cầu:
+ Túm tắt ngừ vào ra.
+ Vẽ sơ đồ đấu dõy phần cứng. + Viết chương trỡnh trờn S7-1200.
5.4.2. Bài tập nõng cao
Bài tập 01: Tạo giao diện giỏm sỏt và điều khiển trờn Wincc. Sử dụng phần mềm
Wincc để tạo giao diện điều khiển.
Yờu cầu:
+ Túm tắt ngừ vào ra.
+ Tạo giao diện điều khiển và viết chương trỡnh điều khiển bằng ngụn ngữ C hay VB trờn Wincc.
Bài tập 02: Viết chương trỡnh điều khiển và giỏm sỏt toàn bộ hệ thống. Kết cỏc bài
tập cơ bản trờn thành một bài hoàn chỉnh điều khiển toàn bộ hệ thống. Giỏm sỏt điều khiển sử dụng bài tập 01 phần bài tập nõng cao.
Yờu cầu:
+ Túm tắt ngừ vào ra.
+ Vẽ sơ đồ đấu dõy phần cứng. + Viết chương trỡnh trờn S7-1200.
+ Tạo giao diện điều khiển và viết chương trỡnh điều khiển bằng ngụn ngữ C hay VB trờn Wincc.
PHỤ LỤC
Phụ lục 1: Tập lệnh cơ bản sử dụng lập trỡnh Wincc
C Editor:
SetTagBit("tờn đối tượng",giỏ trị); // đưa giỏ trị vào đối tượng GetTagBit("tờn đối tượng"); // lấy giỏ trị của đối tượng SetLeft("tờn projects.pdl"," tờn đối tượng ",giỏ trị); // tọa độ X của đối tượng SetTop("tờn projects.pdl "," tờn đối tượng ", giỏ trị); // tọa độ Y của đối tượng a=GetLeft("tờn projects.pdl "," tờn đối tượng "); // lấy tọa độ X của đối tượng b=GetTop("tờn projects.pdl "," tờn đối tượng "); // lấy tọa độ Y của đối tượng SetRotationAngle("tờn projects.pdl "," tờn đối tượng ",p); // quay một đối tượng b=GetRotationAngle("tờn projects.pdl "," tờn đối tượng ")
SetHeight("tờn projects.pdl "," tờn đối tượng ",giatri); // tăng giảm chiều cao b=GetHeight("tờn projects.pdl "," tờn đối tượng ") ;
SetWidth("tờn projects.pdl "," tờn đối tượng ",giatri); // tăng giảm chiều rộng b=GetWidth ("tờn projects.pdl "," tờn đối tượng ") ;
VBS Editor:
+ Đọc/Ghi giỏ trị Tag:
Dim objTag ‘định nghĩa một biến
Set objTag = HMIRuntime.Tags(“Tag1”) ‘gỏn biến này tới tag
objTag.Read ‘đọc giỏ trị của tag
objTag.Value = objTag.Value + 1 ‘tăng giỏ trị này lờn 1 đơn vị
objTag.Write ‘ghi giỏ trị này ra tag
+ Chuyển màu nền của hỡnh chữ nhật cú tờn Rectangle1 thành màu đỏ:
Dim objRectangle ‘định nghĩa một biến
Set objRectangle = Screenltems(“Rectangle1”) ‘gỏn biến này thành đối tượng “Rectangle1” trong picture
objRectangle.BackColor = RGB(255,0,0) ‘thay đổi màu nền của đối tượng thành màu đỏ
Sub Tag_setting(Byval specified_amount_Tag, Byref Control_Tag)
Dim start_time ‘định nghĩa biến
Start_time = Now() ‘gỏn thời gian hiện tại Control_Tag.value = 1 ‘set bit của Tag
Control_Tag.write ‘ghi giỏ trị ra Tag
specified_amount_Tag.read(1) ‘đọc giỏ trị của Tag chứa khoảng thời gian While ((Hour(Now())*3600 + Minute(Now))*60 + Second(Now()))- (Hour(Start_time)*3600 + Minute(Start_time)*60 + Second(Start_time))) <= (specified_amount_Tag.Value) ‘so sỏnh hiệu số giõy với khoảng thời gian ‘nếu hiệu số giõy của thời gian hiện tại và bắt đầu > specified_amount thỡ gỏn 0 cho Tag
Control_Tag.value = 0 Control_Tag.write End Sub
+ Chế độ chạy tự động của cỏc Valve khi Tag Auto_manual lờn 1 Dim auto ‘khai bỏo cỏc biến chứa trạng thỏi
Dim Valve_A Dim Valve_B Dim Valve_C Dim Mixer Dim Time_VA Dim Time_VB Dim Time_VC Dim Time_M
Set auto = HMIRuntime.Tags(“Auto_manual”) Set Valve_A = HMIRuntime.Tags(“Valve_A”) Set Valve_B = HMIRuntime.Tags(“Valve_B”) Set Valve_C = HMIRuntime.Tags(“Valve_C”) Set Mixer = HMIRuntime.Tags(“Mixer”)
Set Time_VA = HMIRuntime.Tags(“Time_Valve_A”) Set Time_VB = HMIRuntime.Tags(“Time_Valve_B”) Set Time_VC = HMIRuntime.Tags(“Time_Valve_C”) Set Time_M = HMIRuntime.Tags(“Time_Mixer”) auto.Read
If auto.Value Then ‘nếu Tag auto chuyển từ 0 -> 1 thỡ chạy tự động Tag_setting Time_VA, Valve_A ‘mở Valve A trong thời gian Time_VA Tag_setting Time_VB, Valve_B ‘mở Valve B trong thời gian Time_VB Tag_setting Time_VC, Valve_C ‘mở Valve C trong thời gian Time_VC Tag_setting Time_M, Mixer ‘mở Valve Mixer trong thời gian Time_M Else
Valve_A.Value 0, 1 ‘nếu Tag auto chuyển từ 1 ->0 thỡ ngừng chạy tự động Valve_B.Value 0, 1
Valve_C.Value 0, 1 Mixer.Value 0, 1 End if
End Function
+ Tag Auto_Manual là 1 thỡ tag Lock_Button là 0 và ngược lại
Dim auto ‘khai bỏo biến
Dim lock
Set auto = HMIRuntime.Tags(“Auto_manual”) ‘kết nối với Tags Set lock = HMIRuntime.Tags(“Lock_button”)
Auto.Read(1) ‘đọc giỏ trị của tag
Auto_manual
‘nếu tag Auto_manual là 1 thỡ tag Lock_button là 0 If auto.Value Then
Lock.Write 0, 1 Else
Lock.Write 1, 1 End If
End Funtion
Phụ lục 2: Lập trỡnh chương trỡnh trờn Wincc
Chương trỡnh chế độ 1: Tương tự chế độ nhiều khoang
Chương trỡnh chế độ nhiều khoang:
if ( ( GetTagBit("layxe")==1 ) && ( GetTagBit("chedo_nhieukhoang")==1 ) ) {
if ( (GetTagFloat("oluu_1")!=0) && (GetTagBit("kiemtra") == 0 ) ) {
if ( GetTagFloat("oluu_1") == GetTagFloat("matma") ) { SetTagBit("layxetruoc",1) ; // Return-Type: BOOL
SetTagBit("tang2",1); SetTagBit("bentrai",1); SetTagBit("kiemtra",1);
SetTagBit("khoang_12",0) ; // da tien hanh lay xe SetTagBit("layxe_khoang12",1) ;
SetTagBit("catxe_khoang12",0) ;
SetTagBit("layxe_khoang12_anhien",1) ; } }
if ( (GetTagFloat("oluu_2")!=0 ) && (GetTagBit("kiemtra") == 0 ) ) {
if ( GetTagFloat("oluu_2") == GetTagFloat("matma") ) { SetTagBit("layxetruoc",1) ; // Return-Type: BOOL
SetTagBit("tang2",1); SetTagBit("benphai",1); SetTagBit("kiemtra",1);
SetTagBit("khoang_32",0) ; // da tien hanh lay xe SetTagBit("layxe_khoang32",1) ;
SetTagBit("catxe_khoang32",0) ;
SetTagBit("layxe_khoang32_anhien",1) ; } }
if ( (GetTagFloat("oluu_3")!=0 ) && (GetTagBit("kiemtra") == 0 ) ) {
if ( GetTagFloat("oluu_3") == GetTagFloat("matma") ) { SetTagBit("layxesau",1); // Return-Type: BOOL
SetTagBit("tang2",1); SetTagBit("bentrai",1); SetTagBit("kiemtra",1);
SetTagBit("khoang_42",0) ; // da tien hanh lay xe SetTagBit("layxe_khoang42",1) ;
SetTagBit("catxe_khoang42",0) ;
SetTagBit("layxe_khoang42_anhien",1) ; } }
if ( (GetTagFloat("oluu_4")==0 ) && (GetTagBit("kiemtra") == 0 ) ) {
if ( GetTagFloat("oluu_4") == GetTagFloat("matma") ) { SetTagBit("layxesau",1); // Return-Type: BOOL
SetTagBit("tang2",1); SetTagBit("benphai",1); SetTagBit("kiemtra",1);
SetTagBit("khoang_62",0) ; // da tien hanh lay xe SetTagBit("layxe_khoang62",1) ;
SetTagBit("catxe_khoang62",0) ;
SetTagBit("layxe_khoang62_anhien",1) ; } }
if ( (GetTagFloat("oluu_5")==0 ) && (GetTagBit("kiemtra") == 0 ) ) {
if ( GetTagFloat("oluu_5") == GetTagFloat("matma") ) { SetTagBit("layxetruoc",1) ;// Return-Type: BOOL
SetTagBit("tang3",1); SetTagBit("bentrai",1); SetTagBit("kiemtra",1);
SetTagBit("khoang_13",0) ; // da tien hanh lay xe SetTagBit("layxe_khoang13",1) ;
SetTagBit("catxe_khoang13",0) ;
SetTagBit("layxe_khoang13_anhien",1) ; } }
if ( (GetTagFloat("oluu_6")==0 ) && (GetTagBit("kiemtra") == 0 ) ) {
if ( GetTagFloat("oluu_6") == GetTagFloat("matma") ) { SetTagBit("layxetruoc",1) ;// Return-Type: BOOL
SetTagBit("tang3",1); SetTagBit("kiemtra",1);
SetTagBit("khoang_23",0) ; // da tien hanh lay xe SetTagBit("layxe_khoang23",1) ;
SetTagBit("catxe_khoang23",0) ;
SetTagBit("layxe_khoang23_anhien",1) ; } }
if ( (GetTagFloat("oluu_7")==0 ) && (GetTagBit("kiemtra") == 0 ) ) {
if ( GetTagFloat("oluu_7") == GetTagFloat("matma") ) { SetTagBit("layxetruoc",1) ;// Return-Type: BOOL
SetTagBit("tang3",1); SetTagBit("benphai",1); SetTagBit("kiemtra",1);
SetTagBit("layxe_khoang33",1) ; SetTagBit("catxe_khoang33",0) ;
SetTagBit("layxe_khoang33_anhien",1) ; } }
if ( (GetTagFloat("oluu_8")==0 ) && (GetTagBit("kiemtra") == 0 ) ) {
if ( GetTagFloat("oluu_8") == GetTagFloat("matma") ) { SetTagBit("layxesau",1); // Return-Type: BOOL
SetTagBit("tang3",1); SetTagBit("bentrai",1); SetTagBit("kiemtra",1);
SetTagBit("khoang_43",0) ; // da tien hanh lay xe SetTagBit("layxe_khoang43",1) ;
SetTagBit("catxe_khoang43",0) ;
SetTagBit("layxe_khoang43_anhien",1) ; } }
if ( (GetTagFloat("oluu_9")==0 ) && (GetTagBit("kiemtra") == 0 ) ) {
if ( GetTagFloat("oluu_9") == GetTagFloat("matma") ) { SetTagBit("layxesau",1); // Return-Type: BOOL
SetTagBit("tang3",1); SetTagBit("kiemtra",1);
SetTagBit("khoang_53",0) ; // da tien hanh lay xe SetTagBit("layxe_khoang53",1) ;
SetTagBit("catxe_khoang53",0) ;
SetTagBit("layxe_khoang53_anhien",1) ; } }
if ( (GetTagFloat("oluu_10")==0 ) && (GetTagBit("kiemtra") == 0 ) ) {
if ( GetTagFloat("oluu_10") == GetTagFloat("matma") ) { SetTagBit("layxesau",1); // Return-Type: BOOL
SetTagBit("tang3",1); SetTagBit("benphai",1); SetTagBit("kiemtra",1);
SetTagBit("khoang_63",0) ; // da tien hanh lay xe SetTagBit("layxe_khoang63",1) ;
SetTagBit("catxe_khoang63",0) ;
SetTagBit("layxe_khoang63_anhien",1) ; } }
if ( (GetTagFloat("oluu_11")==0 ) && (GetTagBit("kiemtra") == 0 ) ) {
if ( GetTagFloat("oluu_11") == GetTagFloat("matma") ) { SetTagBit("layxetruoc",1) ;// Return-Type: BOOL
SetTagBit("tang4",1); SetTagBit("bentrai",1); SetTagBit("kiemtra",1);
SetTagBit("khoang_14",0) ; // da tien hanh lay xe SetTagBit("layxe_khoang14",1) ;
SetTagBit("catxe_khoang14",0) ;
SetTagBit("layxe_khoang14_anhien",1) ; } }
if ( (GetTagFloat("oluu_12")==0 ) && (GetTagBit("kiemtra") == 0 ) ) {
if ( GetTagFloat("oluu_12") == GetTagFloat("matma") ) { SetTagBit("layxetruoc",1) ;// Return-Type: BOOL
SetTagBit("tang4",1); SetTagBit("kiemtra",1);
SetTagBit("layxe_khoang24",1) ; SetTagBit("catxe_khoang24",0) ;
SetTagBit("layxe_khoang24_anhien",1) ; } }
if ( (GetTagFloat("oluu_13")==0 ) && (GetTagBit("kiemtra") == 0 ) ) {
if ( GetTagFloat("oluu_13") == GetTagFloat("matma") ) { SetTagBit("layxetruoc",1) ;// Return-Type: BOOL
SetTagBit("tang4",1); SetTagBit("benphai",1); SetTagBit("kiemtra",1);
SetTagBit("khoang_34",0) ; // da tien hanh lay xe SetTagBit("layxe_khoang34",1) ;
SetTagBit("catxe_khoang34",0) ;
SetTagBit("layxe_khoang34_anhien",1) ; } }
if ( (GetTagFloat("oluu_14")==0 ) && (GetTagBit("kiemtra") == 0 ) ) {
if ( GetTagFloat("oluu_14") == GetTagFloat("matma") ) { SetTagBit("layxesau",1); // Return-Type: BOOL
SetTagBit("tang4",1); SetTagBit("bentrai",1); SetTagBit("kiemtra",1);
SetTagBit("khoang_44",0) ; // da tien hanh lay xe SetTagBit("layxe_khoang44",1) ;
SetTagBit("catxe_khoang44",0) ;
SetTagBit("layxe_khoang44_anhien",1) ;} }
{
if ( GetTagFloat("oluu_15") == GetTagFloat("matma") ) { SetTagBit("layxesau",1); // Return-Type: BOOL
SetTagBit("tang4",1); SetTagBit("kiemtra",1);
SetTagBit("khoang_54",0) ; // da tien hanh lay xe SetTagBit("layxe_khoang54",1) ;
SetTagBit("catxe_khoang54",0) ;
SetTagBit("layxe_khoang54_anhien",1) ;} }
if ( (GetTagFloat("oluu_16")==0 ) && (GetTagBit("kiemtra") == 0 ) ) { if ( GetTagFloat("oluu_16") == GetTagFloat("matma") )
{ SetTagBit("layxesau",1); // Return-Type: BOOL SetTagBit("tang4",1);
SetTagBit("benphai",1); SetTagBit("kiemtra",1);
SetTagBit("khoang_64",0) ; // da tien hanh lay xe SetTagBit("layxe_khoang64",1) ;
SetTagBit("catxe_khoang64",0) ;
SetTagBit("layxe_khoang64_anhien",1) ; } }
Else
{ // ma pass nhap vao khong dung } }
if ( ( GetTagBit("catxe")==1 ) && ( GetTagBit("chedo_nhieukhoang")==1 ) ) { if ( (GetTagFloat("oluu_1")==0) && (GetTagBit("kiemtra") == 0 ) )
{ SetTagFloat("oluu_1", GetTagFloat("matma") ) ; SetTagBit("catxetruoc",1); // Return-Type: BOOL SetTagBit("tang2",1);
SetTagBit("kiemtra",1);
SetTagBit("khoang_12",1) ; // da tien hanh cat xe SetTagBit("catxe_khoang12",1) ;
SetTagBit("layxe_khoang12",0) ;
SetTagBit("catxe_khoang12_anhien",1) ; SetTagBit("xevao", 1) ; }
if ( (GetTagFloat("oluu_2")==0 ) && (GetTagBit("kiemtra") == 0 ) ) { SetTagFloat("oluu_2", GetTagFloat("matma") ) ;
SetTagBit("catxetruoc",1); //Return-Type: BOOL SetTagBit("tang2",1);
SetTagBit("benphai",1); SetTagBit("kiemtra",1);
SetTagBit("khoang_32",1) ; // da tien hanh cat xe SetTagBit("catxe_khoang32",1) ;
SetTagBit("layxe_khoang32",0) ;
SetTagBit("catxe_khoang32_anhien",1) ; SetTagBit("xevao", 1) ; }
if ( (GetTagFloat("oluu_3")==0 ) && (GetTagBit("kiemtra") == 0 ) ) { SetTagFloat("oluu_3", GetTagFloat("matma") ) ;
SetTagBit("catxesau",1); //Return-Type: BOOL