125
Phần I: Hệ thống bãi giữ xe ôtô tự động Luận văn tốt nghiệp Thiết Kế Hệ Thống Quản Lí Tự Động Bãi GiXe Trang 1 PHẦN I HỆ THỐNG BÃI GIỮ XE ÔTÔ TỰ ĐỘNG I.TÌM HIỂU VỀ BÃI GIỮ XE Ngày nay ở các trung tâm thành phố lớn với sự phát triển mật độ dân cư và xe cộ ngày càng đông đúc. Đặc biệt là sự gia tăng về số lượng xe ôtô ngày càng nhiều và điều này phần nào cũng phản ánh sự phát triển của một quốc gia. Song song với sự phát triển đó, người ta đặt vấn đề là xây dựng những bãi giữ xe để phục vụ cho người dân trong công việc cũng như trong việc đi lại của họ. Vì thế, ngày nay trên các nước tiên tiến trên thế giới như Nhật Bản, Hàn Quốc,…ở những thành phố chật hẹp, người ta xây dựng hệ thống bãi giữ xe ôtô tự động được trang bị thiết bị nâng để di chuyển ôtô từ mặt đất lên điểm đỗ trên cao(hệ thống nổi hoặc di chuy ển xe xuống điểm đỗ dưới lòng đất (hệ thống ngầm). Đây là những giải pháp giúp tăng hơn 100 lần số lượng xe trên một diện tích truyền thống, cho phép giải quyết trình trạng thiếu mặt bằng xây dựng. Một số mô hình bãi xe thực tế ở một số nước Mô hình xếp chồng (Auto Stacker): Mô hình này sử dụng một hệ thống thủy lực để nâng tối đa 4 ôtô xếp cạnh nhau lên một tầng cao để dành chỗ cho 4 xe khác ở bên dưới. Tuy nhiên, giải pháp này chỉ phù hợp với qui mô nhỏ, hiệu quả kinh tế không cao.

Hệ thống bãi giữ xe ô tôt tự động

Embed Size (px)

Citation preview

Page 1: Hệ thống bãi giữ xe ô tôt tự động

Phần I: Hệ thống bãi giữ xe ôtô tự động Luận văn tốt nghiệp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 1

PHẦN I

HỆ THỐNG BÃI GIỮ XE ÔTÔ TỰ ĐỘNG

I.TÌM HIỂU VỀ BÃI GIỮ XE

Ngày nay ở các trung tâm thành phố lớn với sự phát triển mật độ dân cư và

xe cộ ngày càng đông đúc. Đặc biệt là sự gia tăng về số lượng xe ôtô ngày càng

nhiều và điều này phần nào cũng phản ánh sự phát triển của một quốc gia. Song

song với sự phát triển đó, người ta đặt vấn đề là xây dựng những bãi giữ xe để phục

vụ cho người dân trong công việc cũng như trong việc đi lại của họ. Vì thế, ngày

nay trên các nước tiên tiến trên thế giới như Nhật Bản, Hàn Quốc,…ở những thành

phố chật hẹp, người ta xây dựng hệ thống bãi giữ xe ôtô tự động được trang bị thiết

bị nâng để di chuyển ôtô từ mặt đất lên điểm

đỗ trên cao(hệ thống nổi hoặc di chuyển xe

xuống điểm đỗ dưới lòng đất (hệ thống ngầm).

Đây là những giải pháp giúp tăng hơn 100 lần

số lượng xe trên một diện tích truyền thống,

cho phép giải quyết trình trạng thiếu mặt bằng

xây dựng.

Một số mô hình bãi xe thực tế ở một số nước

Mô hình xếp chồng (Auto Stacker):

Mô hình này sử dụng

một hệ thống thủy lực để nâng

tối đa 4 ôtô xếp cạnh nhau lên

một tầng cao để dành chỗ cho 4

xe khác ở bên dưới. Tuy nhiên,

giải pháp này chỉ phù hợp với qui

mô nhỏ, hiệu quả kinh tế không cao.

Page 2: Hệ thống bãi giữ xe ô tôt tự động

Phần I: Hệ thống bãi giữ xe ôtô tự động Luận văn tốt nghiệp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 2

Mô hình bãi xe nhiều tầng (Driver in Parking):

Mô hình này với các đường dốc để chủ xe tự

lái vào và ra khỏi bãi xe. Mức độ tự động hoá tương

đối không cao. Giải pháp này tuy phổ biến nhưng

chưa phổ biến về mặt không gian, ô nhiễm môi

trường.

Mô hình bãi giữ xe tự động hoá (Above ground Automated Parking):

Mô hình này là một bước cải

tiến so với 2 mô hình trên,sức chứa có

thể tăng gấp nhiều lần so với mô hình bãi

giữ xe nhiều tầng. Bố trí các xe sát nhau

và thu hẹp khoảng cách giữa các tầng,

các khâu nhận bão quản và trả xe hoàn

toàn được tự động hóa.

Mô hình bãi xe tự động hoá dạng ngầm (Underground Automated Parking):

Có cấu trúc tương tự mô hình bãi giữ xe tự

động hoá nhưng đươc thiết kế ở dạng ngầm dưới

đất.

II.HỆ THỐNG QUẢN LÝ BÃI GIỮ XE ÔTÔ TỰ ĐỘNG

Hệ thống quản lý bãi xe tự động được thực hiện một cách tự động nhờ vào

việc lập trình cho PLC và các cảm biến được đặt tại các cửa vào và ra.

Sức chưá của bãi xe cho phép tối đa là

100 xe bao gồm các loại xe 4 chỗ, xe 7 chỗ,

xe 12 chỗ và xe 30 chỗ. Khi có xe vào, cảm

biến phát hiện và PLC điều khiển mở cửa cho

xe vào, phân loại xe, và nhờ việc phân loại xe

mà PLC đếm số xe các loại vào trong ngày.

Khi xe đã vào, cảm biến sẽ phát hiện và PLC điều khiển đóng cửa vào.

Page 3: Hệ thống bãi giữ xe ô tôt tự động

Phần I: Hệ thống bãi giữ xe ôtô tự động Luận văn tốt nghiệp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 3

Và tương tự, khi có xe

ra, cảm biến sẽ phát hiện và

điều khiển mở cửa cho xe ra,

phân loại xe và PLC sẽ đếm số

xe các loại ra trong ngày. Khi

xe đã ra, cảm biến sẽ phát hiện,

PLC điều khiển đóng cửa ra.

Khi bãi xe còn trống xe, thì

một đèn xanh sẽ sáng để báo

hiệu là xe được phép vào. Ngược lại, khi bãi xe

đầy thì đèn đỏ sẽ sáng để báo hiệu là xe không

được phép vào.

1. CÁC KHÂU CƠ BẢN

Mở cửa

Khi có xe vào hoặc ra, thì các cảm biến tại các cửa vào hoặc ra sẽ nhận biết

được tín hiệu và thông báo đến PLC, PLC sẽ tác động điều khiển mở cửa. Khi cửa

mở tối đa, công tắc hành trình sẽ tác động, PLC sẽ điều khiển cửa dừng lại.

Phân loại xe và đếm số xe, tính tiền gửi xe

Khi xe đã vào hoặc ra, cảm biến sẽ phân loại xe 4 chỗ, 7 chỗ, 12 chỗ, 30 chỗ

và thông báo đến PLC, PLC sẽ tác động đến bộ đếm để đếm số xe vào hoặc ra và

tính tiền gửi xe.

Đóng cửa

Khi xe đã vào hoặc đã ra khỏi cửa, cảm biến sẽ nhận biết được tín hiệu và sẽ

thông báo đến PLC, PLC sẽ tác động điều khiển mở cửa. Khi cửa đóng tối đa, công

tắc hành trình sẽ tác động, PLC sẽ điều khiển cửa dừng lại.

2. NGUYÊN TẮC HOẠT ĐỘNG

Hệ thống quản lý bãi giữ xe ôtô hoạt động dựa trên nguyên tắc lập trình PLC

dùng để điều khiển các cửa vào ra, phân loại và đếm số xe thông qua các cảm biến,

Page 4: Hệ thống bãi giữ xe ô tôt tự động

Phần I: Hệ thống bãi giữ xe ôtô tự động Luận văn tốt nghiệp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 4

động cơ, công tắc hành trình,v.v,…truyền động của cửa nhờ vào môt động cơ được

gắn trực tiếp với thanh gạt.

Cửa vào

Khi có xe vào, cảm biến S1 sẽ nhận biết được tín hiệu và chuyển đến PLC,

PLC điều khiển mở cửa.

Khi thanh gạt mở tối đa sẽ chạm vào công tắc hành trình trên CT1 ở cửa vào,

công tắc này tác động đến PLC, PLC sẽ điều khiển dừng mở cửa.

Khi xe đã vào, tuỳ theo từng loại xe mà các cảm biến S2, S3, S4, S5 tác động

đến bộ đếm của PLC để đếm số xe vào trong bãi.

Khi xe đã vào, cảm biến S5 sẽ tác động, đưa tín hiệu về PLC, PLC sẽ điều

khiển đóng cửa lại.

Khi thanh gạt đóng tối đa sẽ chạm vào công tắc hành trình dưới CT2 ở cửa

vào, công tắc này sẽ tác động đến PLC, PLC sẽ điều khiển dừng đóng cửa.

Cửa ra

Khi có xe ra, cảm biến S6 sẽ nhận biết được tín hiệu và chuyển đến PLC,

PLC điều khiển mở cửa.

Khi thanh gạt mở tối đa sẽ chạm vào công tắc hành trình trên CT3 ở cửa ra,

công tắc này tác động đến PLC, PLC sẽ điều khiển dừng mở cửa.

Khi xe đã ra, tuỳ theo từng loại xe mà các cảm biến S7, S8, S9, S10 tác động

đến bộ đếm của PLC để đếm số xe ra khỏi bãi.

Khi xe đã ra, cảm biến S10 sẽ tác động, đưa tín hiệu về PLC, PLC sẽ điều

khiển đóng cửa lại.

Khi thanh gạt đóng tối đa sẽ chạm vào công tắc hành trình dưới CT4 ở cửa ra,

công tắc này sẽ tác động đến PLC, PLC sẽ điều khiển dừng đóng cửa.

Sau khi đã phân loại xe ra, giao tiếp máy tính sẽ tính tiền thời gian mà xe đã

gửi ở trong bãi xe.

3. PHẦN TỬ ĐIỀU KHIỂN, CẢM BIẾN VÀ CHẤP HÀNH CỦA THIẾT BỊ

Thiết bị điều khiển

PLC là thiết bị lập trình điều khiển cho các hoạt động đóng mở cửa, hiển thị

đèn, phân loại xe và đếm số xe.

Page 5: Hệ thống bãi giữ xe ô tôt tự động

Phần I: Hệ thống bãi giữ xe ôtô tự động Luận văn tốt nghiệp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 5

Cấu trúc phần cứng:

Nguồn: AC (220V,110V)

DC (24V,12V)

Bộ vi xử lý: đọc các tín hiệu vào thực hiện các hoạt động điều khiển theo

chương trình đã được lưu trong bộ nhớ và truyền các tín hiệu ra các thiết bị xuất.

Bộ nhớ: Là nơi để lưu dữ liệu và chương trình cho các hoạt động điều khiển

dưới sự kiểm tra của bộ vi xử lý.

ROM : bộ nhớ chỉ đọc

RAM : bộ nhớ truy xuất ngẫu nhiên

EEPROM : có thể xoá bằng điện và có thể lập trình lại được.

Thiết bị lập trình:

+ Lập trình trên máy tính

Thiết bị lập trình

Bộ nhớ Giao diện xuất Giao diện

Bộ vi xử lý

Nguồn

Bus dữ liệu

Bộ nhớ Vi xử lý Bộ nhớ

Bus điều khiển

Thiết bị nhập

Page 6: Hệ thống bãi giữ xe ô tôt tự động

Phần I: Hệ thống bãi giữ xe ôtô tự động Luận văn tốt nghiệp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 6

+ Lập trình riêng

Các thiết bị nhập và xuất :

Cung cấp giao diện giữa hệ thống và thế giới bên ngoài cho phép kết

nối giữa các cảm biến, động cơ và PLC.

Ưu điểm của PLC:

Có kích thước nhỏ gọn, được thiết kế để có thể chịu được rung động,nhiệt,

độ ẩm và tiếng ồn.

Có độ ổn định cao.

Dễ dàng nhanh chóng thay đổi cấu trúc của mạch điều khiển bằng cách lập

trình lại đáp ứng yêu cầu điều khiển mà không cần thay đổi phần cứng.

Có các chức năng kiểm tra lỗi, dự báo lỗi.

Có thể nhân đôi các ứng dụng nhanh và ít tốn kém.

Có thể kết nối mạng vi tính để giám sát hệ thống.

Điều khiển linh hoạt đa dạng.

Các ứng dụng của PLC:

Điều khiển bãi giữ xe ôtô tự động.

Điều khiển các quá trình sản suất.

Giám sát hệ thống,an toàn nhà xưởng.

Hệ thống báo động.

Điều khiển thang máy.

Điều khiển động cơ.

Cảm biến

Cảm biến quang:

Cảm biến quang là cảm biến hoạt động dựa trên nguyên tắc phát và thu tín

hiệu ánh sáng.

Có 2 dạng cảm biến quang:

Cảm biến quang dạng thu và phát rời:

Là cảm biến gồm hai bộ phát và thu được tách rời ra riêng

biệt. Các thiết bị chuyển mạch quang điện vận hành theo kiểu truyền

phát, vật thể cần phát hiện sẽ chắn chùm ánh sáng (thường là bức xạ

hồng ngoại) không cho chúng chiếu tới thiết bị dò.

Page 7: Hệ thống bãi giữ xe ô tôt tự động

Phần I: Hệ thống bãi giữ xe ôtô tự động Luận văn tốt nghiệp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 7

Cảm biến quang dạng thu và phát chung:

Là cảm biến gồm hai phần phát và thu được gộp chung thành

một khối. Các thiết bị chuyển mạch quang điện vận hành theo kiểu

phản xạ, vật thể cần phát hiện sẽ phản chiếu chùm ánh sáng lên thiết

bị dò.

Trong cả hai loại trên, cực phát xạ thông thường là Diode phát quang (LED).

Thiết bị dò bức xạ có thể là Transistor quang, thường là hai Transistor được gọi là

cặp Darlington. Cặp Darlington làm tăng độ nhạy của thiết bị. Tuỳ theo mạch được

sử dung đầu ra có thể được chế tạo để chuyển mạch đến mức thấp khi ánh sáng đến

Transistor.

Các cảm biến được cung cấp dưới dạng các hộp cảm nhận sự có mặt của các

vật thể ở khoảng cách ngắn, thường nhỏ hơn 5mm đối với cảm biến hình chữ U.

Đối với các loại cảm biến nói trên, ánh sáng được chuyển thành sự thay đổi

dòng điện, điện áp hoặc điện trở đó chính làmột đặc trưng mang bản chất điện.

Cảm biến thu phát hồng ngoại:

IC phát BL9148:

Đây là một bộ truyền phát hồng ngoại ứng dụng bởi công nghệ CMOS. 1948

kết hợp với BL9149 tạo ra 10 chức năng , với BL 9150 tạo ra 18 chức năng và 75

lệnh có thể phát xạ: trong đó 63 lệnh là liên tục, có thế có nhiều tổ hợp phím; 12

phím không liên tục, chỉ có thể sử dụng phím đơn. Với cách tổ hợp như vậy có thể

dùng cho nhiều loại thiết bị từ xa.

Đặc tính :

Diode phát quang

Thiết bị dò quang học

Vật thể

Diode phát quang Thiết bị dò quang lọc

Page 8: Hệ thống bãi giữ xe ô tôt tự động

Phần I: Hệ thống bãi giữ xe ôtô tự động Luận văn tốt nghiệp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 8

+ Được sản xuất theo công nghệ CMOS.

+ Tiêu thụ công suất thấp.

+ Vùng điện áp hoạt động : 2.2V ÷ 5V

+ Sử dụng được nhiều phím

+ Ít thành phần ngoài.

Ứng dụng :

Bộ phát hồng ngoại trong các thiết bị điện tử như: TV, Video cassette

Recoder, và cũng có thể sử dụng để cho các ứng dụng công nghiệp khác.

Sơ đồ và chức năng các chân IC :

+ Chân 1(Vss): là chân Mass được nối với cực âm

của nguồn điện.

+ Chân 2 va 3: là hai chân để nối với bộ giao động

bên ngoài.

+ Chân 4-9(K1-K9): là đầu của các tính hiệu bàn

phím kiểu ma trận, các chân K1 đến K6 kết hợp với các

chân 10 đến 12(T1-T3) để tạo thành ma trận phím 18 phím

+ Chân 13 (CODE): là chân mã số dùng để kết hợp với các chân T1-T2 để

tạo ra tổ hợp mã hệ thống giữa phần phát và phần thu.

+ Chân 14 (TEST): là chân dùng để kiểm tra mã của phần phát, bình thường

khi sử dụng có thể bỏ trống.

+ Chân 15 (TXout): là đầu ra của tín hiệu đã được điều chế FM.

+ Chân 16 (Vcc): là chân cấp nguồn dương.

Sơ đồ khối:

Bộ tạo dao động và bộ phân tần: để có

thể phát được đi xa, ta cần có một xung

có tấn số 38 Khz ở nơi nhận nhưng trên

thị trường khó tìm được thạch anh

đúng tần số nên ta chọn tần số của

thạch anh là 455Khz cho bộ tạo cao

động. Sau đó tần số sẽ được đưa qua bộ

phân tần để chia nó ra thành 12 lần.

Page 9: Hệ thống bãi giữ xe ô tôt tự động

Phần I: Hệ thống bãi giữ xe ôtô tự động Luận văn tốt nghiệp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 9

Mạch ứng dụng :

150 pF

DIODE

0

R2

10K

3 VCC

1MF

0

DIODE

0

3 VCC

0 10K

LED

150 pF

U5

BL 9148

1

7

16

1211

15

6

3

45

14

109

13

8

2 VSS

K4

VCC

T3T2

TXOUT

K3

XT

K1K2

TEST

T1K6

CODE

K5

XT

455KHZ

100

HONG NGOAI

Tính toán:

Bộ tạo dao động tần số sóng mang:

+ Chọn tần số dao động: tần số sóng mang mang

mã truyền là tần số thu được do vi mạch mã hóa sau

khi tiến hành chia 12 lần đối với tần số dao động của

bộ cộng hưởng bằng thạch anh được đấu bên ngoài.

Cho nên mức độ ổn định của tần số này phụ thuộc vào

chất lượng và quy cách của thạch anh. Tần số dao

động của mạch phát thường là 400-500KHz. Đối với

mạch phát trên thì ta chọn thạch anh là 455KHz.

+ Tần số dao động của sóng mang được tính theo công thức:

12Cfoscf

Từ đó suy ra: 455 /12 38Cf KHz KHz

+ Do cấu tạo bên trong của IC BL9148 có một cổng đảo dùng để phối hợp với

các linh kiện bên ngoài bằng thạch anh hoặc bằng mạch LC để tạo thành mạch dao

động. Vì mạch LC khá cồng kềnh và độ ổn định không cao so với thạch anh nên ta

chọn bộ dao động thạch anh.

Mạch khuếch đại phát : Do tín hiệu ngõ ra của IC phát có dòng bé: -

0.1mA1.0mA nên ta phải khuếch đại chúng lên. Vì thế, ta dùng transistor để

khuếch đại dòng cấp cho Led hồng ngoại phát đi.

Page 10: Hệ thống bãi giữ xe ô tôt tự động

Phần I: Hệ thống bãi giữ xe ôtô tự động Luận văn tốt nghiệp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 10

+ Khi chưa cấp nguồn thì Q off

không có dòng qua Led hồng ngoại.

+ Khi cấp nguồn cho mạch phát : Q on

Vout = VB Q dẫn bão hòa VCE = VCE bão

hòa = 0.2V

+ Led hồng ngoại có điện áp cho phép trong

khoảng 1.23.3 V, dòng làm việc 30mA1A, RIR =

1030

1.2 3.3IRV V

* *IR E IR EIR IR

MAX MIN

R V R VR RV V

1.2V1

* 3.3EIR

IR

VR VR R

Sau khi tính toán ta chọn R1=10K, RIR= biến trở 10K.

Cài mã cho mạch phát :

+ Vì chọn IC thu là BL9149 nên theo lý thuyết thì IC thu không vó chân C1. Do

đó chân C1 của IC phát luôn ở mức logic “1”. Nhiệm vụ còn lại là xác định tổ hợp

mã cho chân C2 và C3.

+ Đối với mạch ở trên thì cách cài mã như sau:

+ Ta xác định mã muốn cài là: C1 =”1”, C3 = “0”.

+ Từ đó, tại chân C2, ta nối một diode với chân Code, còn chân C3 thì bỏ trống.

+ Như vậy, để IC thu nhận biết đúng thì ta cũng phải cài đúng như vậy.

Bảng mã hệ thống

BL9418 BL9419

C1 C2 C3 C2 C3

1 1 0 1 0

BL9148: “1”_nối diode

“0”_bỏ trống

BL9419: “1”_nối tụ xuống Mass

“0”_nối xuống Mass

Page 11: Hệ thống bãi giữ xe ô tôt tự động

Phần I: Hệ thống bãi giữ xe ôtô tự động Luận văn tốt nghiệp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 11

+ Chọn ngõ ra ở chế độ liên tục là các chân ra từ HP1- HP5 để sử dụng cho

phẩn cảm biến phát hiện vật trong mô hình.

IC thu BL9149 :

BL9149 cũng được chế tạo bởi công nghệ CMOS. Nó có thể điều khiển tối đa 10

thiết bị.

Đặc tính:

+ Tiêu tán công suất thấp.

+ Khả năng chống nhiễu rất cao.

+ Nhận được đồng thời 5 chức năng từ IC phát BL9148.

+ Cung cấp bộ dao động RC.

+ Bộ lọc số và kiểm tra mã ngăn ngừa sự tác động từ những nguồn sáng

khác nhau như đèn PL. do đó không ảnh hưởng đến độ nhạy của mắt thu.

Sơ đồ và chức năng của các chân của IC :

+ Chân 1(Vss): là chân Mass được nối với cực âm của

nguồn điện.

+ Chân 2 (RXin): là đầu vào tín hiệu thu.

+ Các chân 3-7 (HP1-HP5): là đầu ra tín hiệu liên tục.

Chỉ cần thu được tín hiệu tương ứng với đầu ra nào

thì đầu ra đó sẽ luôn duy trì ở mức logic ”1” .

+ Các chân 8-12 (SP1-SP5): là đầu ra tín hiệu không

liên tục.chỉt cần thu được tín hiệu tương ứng với đầu ra nào thì đầu ra đó sẽ

duy trì ở mức logic “1” trong khoảng thời gian là 107ms.

+ Chân 13-14 (CODE3- CODE2): để tạo ra mã tổ hợp các hệ thống giữa phần

phát và phần thu. Mã số của hai chân này phải giống tổ hợp mã hệ thống của

phần phát thì mới thu được tín hiệu.

+ Chân 15 (OSC): dùng để nối với tụ điện và điện trở bên ngoài tạo ra dao dộng

cho mạch.

+ Chân 16 (Vcc): là chân được nối với cực dương của nguồn cung cấp.

Sơ đồ khối:

Page 12: Hệ thống bãi giữ xe ô tôt tự động

Phần I: Hệ thống bãi giữ xe ôtô tự động Luận văn tốt nghiệp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 12

Giải thích sơ đồ khối:

+ Sau khi IC phát BL9148 phát ra

tín hiệu (2 chu kỳ), tín hiệu sẽ được mắt

thu tiếp nhận rồi đưa nó đến chân Rxin.

Chân Rxin có nhiệm vụ sẽ chỉnh lại dạng

sóng của tín hiệu cho chuẩn. Sau đó, tín

hiệu được đưa tới bộ lọc số. Bộ lọc số có

nhiệm vụ lọc lấy các dữ liệu rồi đưa đến

thanh nghi 12 bit. Tiếp đến, dữ liệu thứ hai sẽ nạp vạo thanh nghi.Dữ liệu đầu tiên

sẽ được đưa qua bộ đệm ngõ ra nếu mã của nó khớp với mã của phần phát. Trường

hợp, mã của dữ liệu không khớp với mã cùa phần phát thì quá trình sẽ được lặp lại.

Khi các dữ liệu nhận đã được thông qua, ngõ ra sẽ chuyển từ mức thấp lên mức cao.

Mạch ứng dụng:

10K

102

102

OUT 1

1

0

10K

BL 9149

1

7

16

1211

15

6

3

45

14

109

13

8

2 VSS

HP5

VCC

SP1SP2

OSC

HP4

HP1

HP2HP3

CODE 2

SP3SP4

CODE3

SP5

RXin

5 VCC

0

5 VCC

0

102

0

OUT 1

39K

MAT THU

1 3 2

VIN

GN

D

VOU

T

0

C1815

Tính toán :

Mạch khuếch đại và tách sóng:

Q ở trạng thái bảo hòa VCEBH = 0.1V

Page 13: Hệ thống bãi giữ xe ô tôt tự động

Phần I: Hệ thống bãi giữ xe ôtô tự động Luận văn tốt nghiệp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 13

+ Khi chưa nhận tín hiệu: VIN=0.8V

IBH = 0.02mA

VIN = VRB + VBE

IN BEB

B

V VRI

3

0.8 0.7 50.02 10BR K

Từ đó, dựa vào thực tế ta chọn RB = 4.7K

+ Mặt khác ta có :

VCC =VRC + VCEBH

VRC = VCC -VCEBH

CC CEBHC

CEBH

V VRI

3

5 0.1 510CR K

50 0.02 1CBHMin CBH Min BBH

BBH

I I I mAI

Ta chọn RC = 4.7K

+ Khi nhận tín hiệu VIN = 705 mV

3

0.705 0.7 15 10

IN BEB

B

V VI AR

VC = VCC – VRC =VCC - RC 3 65 5 10 10 100 4.5BI hfe V

+ Để Ic thu hoạt động tốt thì VIN = 2V3V

Với VIN 2V

2C INIC

INIC L

V Z VZ R

334.5 25 10 25 10

2 2C INIC

L INICV ZR Z

30LR K Từ đó ta chọn RL = 10K

+ Tuy nhiên, lý thuyết là như vậy nhưng thực tế thì hai điện trở RB và RC không

cần gắn. Nếu như thế thì khả năng thu của mạch sẽ tăng lên.

+ Tổ hợp mã hệ thống giữa IC phát BL9148 và IC thu BL 9149:

Page 14: Hệ thống bãi giữ xe ô tôt tự động

Phần I: Hệ thống bãi giữ xe ôtô tự động Luận văn tốt nghiệp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 14

Bảng mã hệ thống

BL9148 BL9149

C1 C2 C3 C2 C3

1 1 0 1 0

1 1 1 1 1

+ Vì BL9149 không có chân C1 nên chân C1 của BL9148 mặc nhiên ở mức logic

“1”. Qua bẳng mã hệ thống, ta thấy rằng tổ hợp mã của các chân C2 và C3 của hai

chan Ic phát phải giống nhau, đó là mã hệ thống. Trong các tổ hợp mã không có tổ

hợp C2 = C3= 0.

+ Các chân C2 và C3 sẽ ở mức logic “1” nếu nối một tụ giữa chân Cn ( n = 2, 3)

và Mass. Ngược lại, nếu các chân C2 và C3 sẽ ở mức logic “0” nếu nối xuống Mass.

Ứng dụng:

Cảm biến quang được ứng dụng rất phổ biến ngoài thực tế như trong các hệ

thống đóng mở cử tự động, đếm và phân loại sản phẩm,v.v…

Cảm biến từ (loop detector):

Cảm biến từ là một loại cảm biến dựa trên nguyên tắc truyền

dẫn điện từ. Điều này có ý nghĩa nếu một vật thể được đặt trong một

vùng từ trường thay đổi thì một điện thế được tạo ra trên vật thể đó.

Khi có điện trường được tạo ra xung quanh cuộn dây. Khi có

một vật thể kim loại đi vào vùng từ trường đang thay đổi. Dòng điện

được tạo ra trong vật thể kim loại, tiến trình này được gọi là sự

truyền dẫn, điều này là bởi vì tất cả các kim loại đều dẫn điện.

Khi một dòng diện được truyền trong một vật thể kim loại và

nó cũng tạo ra vùng từ trường của chính nó, những vùng từ trường

này có khả năng truyền dẫn một lượng nhỏ về điện trong chính cuộn

day của cảm biến. Do đó, cảm biến sẽ phát hiện được vật thể.

Ứng dụng:

Cảm biến từ được dùng nhiều trong thực tế như ở các trạm thu

phí xe ôtô tự động, các cổng tự động dành riêng cho xe lớn từ 4 chỗ trở lên hay các

ứng dụng phân loại sản phẩm kim loại hoặc phi kim loại.

Page 15: Hệ thống bãi giữ xe ô tôt tự động

Phần I: Hệ thống bãi giữ xe ôtô tự động Luận văn tốt nghiệp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 15

Thiết bị chấp hành:

Rơle:

Rơle là loại khí cụ điện tự động đóng ngắt mạch điện

điều khiển, tự động đóng ngắt các tiếp điểm khi có nguồn tác

động tức là khi có điện thì các tiếp điểm của Rơle hoạt động,

tiếp điểm thường mở thì đóng lại và tiếp điểm thường đóng thì

mở ra dùng để đảo chiều động cơ.

Nguyên lý hoạt động:

Rơle hoạt động dựa trên nguyên lý điện từ. Khi có dòng điện

chạy qua, cuộn day sẽ sinh ra lực hút điện từ, hút tấm kim loại

mỏng về phía lõi với một lực, nếu lực này thắng lực cản của lò

xo thì các tiếp điểm thường mở của Rơle sẽ đóng lại làm kín

mạch điều khiển. Khi dòng điện trong cuộn day giảm hoặc khi ngắt điện Rơle thì

lực hút lò xo sẽ thắng lực hút điện từ làm cho các tiếp điểm trở về vị trí ban đầu.

Ứng dụng:

Dùng trong các mạch tự động đóng ngắt, trong các mạch đảo chiều quay động cơ.

Động cơ:

Là một thiết bị chấp hành điện, khi có nguồn tác động thì động cơ sẽ hoạt

động và có thể đảo chiều quay của động cơ nhờ vào tác động của Rơle cũng như là

của bộ điều khiển PLC. Động cơ gồm hai phần chính:

Stator: Là phần đứng yên, gồm:

+ Vật liệu dẫn từ

+ Dây dẫn

+ Vỏ máy.

Rotor gồm:

+ Lõi sắt có nhiệm vụ dẫn từ.

+ Dây quấn.

Nguyên lý hoạt động:

Dựa trên hiện tượng cảm ứng điện từ. Khi có dòng điện đi qua cuộn dây của

động cơ, cuộn dây của động cơ sẽ sinh ra từ thông từ thông biến thiên sẽ sinh ra sức

điện động cảm ứng, cảm ứng lên Rotor nên Rotor quay, do đó động cơ hoạt động.

Page 16: Hệ thống bãi giữ xe ô tôt tự động

Phần II: Giới thiệu tổng quát về PLC Luận văn tốt nghiêp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 16

PHẦN II

GIỚI THIỆU TỔNG QUÁT VỀ PLC

I. SƠ LƯỢC VỀ LỊCH SỬ PHÁT TRIỂN

Là thiết bị điều khiển lập trình đầu tiên (PLC là viết tắt của chữ

Programmable Logic Controller ) đã được những nhà thiết kế cho ra đời năm 1968

(công ty General Motor Mỹ). Tuy nhiên, hệ thống này còn khá đơn giản và cồng

kềnh, người sử dụng gặp nhiều khó khăn trong việc vận hành hệ thống. Vì vậy các

nhà thiết kế từng bước cải tiến hệ thống làm cho hệ thống đơn giản, gọn nhẹ, dễ vận

hành, nhưng việc lập trình cho hệ thống còn khó khăn, do lúc này không có các thiết

bị lập trình ngoại vi hổ trợ cho công việc lập trình.

Để đơn giản hóa việc lập trình, hệ thống điều khiển lập trình cầm tay

(Programmable Controller Handle) đầu tiên được ra đời vào năm 1969. Điều này đã

tạo ra được một sự phát triển thực sự cho kỹ thuật điều khiển lập trình. Trong giai

đoạn này các hệ thống điều khiển lập trình (PLC) chỉ đơn giản nhằm thay thế hệ

thống Relay và dây nối trong hệ thống điều khiển cổ điển. Qua quá trình vận hành,

các nhà thiết kế đã từng bước tạo ra được một tiêu chuẩn mới cho hệ thống, tiêu

chuẩn đó là: Dạng lập trình dùng giản đồ hình thang (The Diagram Format). Trong

những năm đầu thập niên 1970, những hệ thống PLC còn có thêm khả năng vận

hành với những thuật toán hỗ trợ (arithmetic), “vận hành với các dữ liệu cập nhật”

(data manipulation). Do sự phát triển của loại màn hình dùng cho máy tính

(Cathode Ray Tube: CRT), nên việc giao tiếp giữa người điều khiển để lập trình cho

hệ thống càng trở nên thuận tiện hơn.

Sự phát triển của hệ thống phần cứng và phần mềm từ năm 1975 cho đến nay

đã làm cho hệ thống PLC phát triển mạnh hơn với các chức năng mở rộng: Hệ

thống ngõ vào/ra có thể tăng lên đến 8000 cổng vào/ra, dung lượng bộ nhớ chương

trình tăng lên hơn 128000 từ bộ nhớ (word of memory). Ngoài ra các nhà thiết kế

còn tạo ra kỹ thuật kết nối với các hệ thống PLC riêng lẽ thành một hệ thống PLC

chung, tăng khả năng của từng hệ thống riêng lẽ. Tốc độ xử lý của hệ thống được

cải thiện, chu kỳ quét (scan) nhanh hơn làm cho hệ thống PLC xử lý tốt với những

chức năng phức tạp, số lượng cổng ra/vào lớn.

Page 17: Hệ thống bãi giữ xe ô tôt tự động

Phần II: Giới thiệu tổng quát về PLC Luận văn tốt nghiêp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 17

Đây là bộ điều khiển logic dựa trên công nghệ vi điều khiển.Một hệ thống

PLC là một mạch tích hợp của nhiều bộ phận bao gồm xử lý số học, điều khiển bộ

nhớ, và các thiết bị nhập_xuất v.v…, chức năng chính mà bất kỳ PLC nào cũng phải

có là thu nhập các tín hiệu đầu vào, căn cứ vào yêu cầu chương trình trong PLC mà

thực hiện so sánh, tính toán và xuất các tín hiệu đóng ngắt đầu ra cho phù hợp.

Chương trình trong PLC là do người sử dụng thực hiện bằng một hệ thống ngôn

ngữ lập trình dựa trên quy trình của một sơ đồ điều khiển bất kỳ, chương trình sau

khi viết xong được dịch ra mã máy và nạp vào bộ nhớ chương trình (EEPROM-

Electrical Erase Programmable Read Only Memory hay còn gọi là ROM điện)của

PLC ( các PLC khác nhau có dạng ngôn ngữ lập trình khác nhau ). PLC cho phép

nối trực tiếp những cơ cấu tác động đóng ngắt có công suất nhỏ ở ngõ ra và những

mạch chuyển đổi ngõ vào, đối với các mạch có công suất lớn khi cần ghép nối với

PLC cần có mạch điện tử trung gian.

Trong tương lai hệ thống PLC không chỉ giao tiếp với các hệ thống khác thông

qua CIM (Computer Integrated Manufacturing) để điều khiển các hệ thống: Robot,

Cad/Cam,… Ngoài ra các nhà thiết kế còn đang xây dựng các loại PLC với các

chức năng điều khiển “thông minh” (intelligence) còn gọi là các siêu PLC (super

PLC) cho tương lai.

II. CÁC ĐẶC ĐIỂM CỦA CPU S7-200

Đặc điểm CPU 221 CPU 222 CPU 224 CPU 226

Kích thước thật (mm) 90x80x62 90x80x62 90x80x62 90x80x62

Bộ nhớ PLC

Bộ nhớ chương trình 2048words

=4096 bytes

2048words

=4096 bytes

4096words

=8192bytes

4096words

=8192bytes

Bộ nhớ dữ liệu 1024words

=2048 bytes

1024words

=2048 bytes

2560words=

5120bytes

2560words

=5120bytes

Trữ chương trình EEPROM EEPROM EEPROM EEPROM

Dữ liệu dự phòng

(pin tụ điện)

Khoảng

50 giờ

Khoảng

50 giờ

Khoảng

190 giờ

Khoảng

190 giờ

Page 18: Hệ thống bãi giữ xe ô tôt tự động

Phần II: Giới thiệu tổng quát về PLC Luận văn tốt nghiêp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 18

Các đầu vào và ra cục bộ( I/O ) trên CPU

In/Out 6/4 8/6 14/10 24/16

Số module mở rộng Không có 2 7 7

Tổng số ngõ vào/ra ( I/O ) cực đại cho phép ( bao gồm cả module mở rộng )

( I/O ) Digital 256 ( 128 In

/ 128 Out )

256 (128 In

/ 128 Out )

256 ( 128 In

/ 128 Out )

256 ( 128In

/ 128 Out )

( I/O ) Analog Không có 16 In /16 Out 32 In/32 Out 32In/32Out

Các lệnh

Tốc độ xử lý nhị phân

tại tần số 33MHz 0,37 µ/lệnh 0,37 µ/lệnh 0,37 µ/lệnh 0,37 µ/lệnh

Dung lượng thanh ghi

(I/O) ảo

128I và128Q 128I và128Q 128I và128Q 128Ivà128

Q

Số lượng Rơle bên

trong

256 256 256 256

Số lượng bộ đếm

(Counter) và định thì

(Timer)

256/256 256/256 256/256 256/256

Word In/Word Out Không có 16/16 32/32 32/32

Sequetial Control

Relays

256 256 256 256

Vòng lặp For/Next Có Có Có Có

Tính toán với số

nguyên(+-*/)

Có Có Có Có

Tính toán với số

thực(+-*/)

Có Có Có Có

Các đặc tính nâng cao

Bộ đếm cao tốc 4H / W

(20KHz)

4H / W

(20KHz)

6H / W

(20KHz)

6H / W

(20KHz)

Điều chỉnh Analog 1 1 2 2

Xung nhịp xuất 2( 20KHz, 2( 20KHz, 2( 20KHz, 2( 20KHz,

Page 19: Hệ thống bãi giữ xe ô tôt tự động

Phần II: Giới thiệu tổng quát về PLC Luận văn tốt nghiêp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 19

cho DC ) cho DC ) cho DC ) cho DC )

Định thời gian ngắt 2 (1÷255

ms)

2 (1÷255

ms)

2 (1÷255

ms)

2(1÷255ms

Ngắt phần cứng đầu

vào

4,có bộ lọc

đầu vào

4,có bộ lọc

đầu vào

4,có bộ lọc

đầu vào

4,có bộ lọc

đầu vào

Đồng hồ thời gian

thực

Có Có Có (bên

trong)

Có (bên

trong)

Mật mã bảo mật Có Có Có Có

Một hệ thống lập trình cơ bản phải gồm có

CPU: là bộ xử lý trung tâm (Center Processing Unit), nó điều khiển mọi

hoạt động của PLC theo chương trình đề ra, thực hiện tính toán so sánh, định thời

gian, đếm các tín hiệu đầu vào tốc độ xung Clock cấp từ mạch thạch anh.

Bộ nhớ nằm bên trong CPU bao gồm bộ nhớ chương trình và bộ nhớ dữ liệu,

mỗi vùng có các chức năng và nhiệm vụ khác nhau.

Hình : sơ đồ khối của hệ thống điều khiển lập trình

Khối điều khiển trung tâm (CPU) gồm ba phần: bộ xử lý, hệ thống bộ nhớ và

hệ thống nguồn cung cấp.

Processor

I N P U T S

CENTRAL

PROCESSING UNIT

O U T P U T S

M

M

Page 20: Hệ thống bãi giữ xe ô tôt tự động

Phần II: Giới thiệu tổng quát về PLC Luận văn tốt nghiêp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 20

Hình : Sơ đồ khối tổng quát của CPU

Bộ nhớ chương trình dùng chứa chương trình điều khiển và xử lý dữ liệu.

Chương trình này được CPU sử dụng mỗi khi PLC hoạt động. Để đảm bảo an toàn

mỗi khi có sự cố mất điện, bộ nhớ chương trình được sử dụng bằng EEPROM

(Electrical Erase Programmable Read Only Memory). Khi nạp chương trình vào

PLC chương trình được trữ trong bộ nhớ này.

Bộ nhớ dữ liệu dùng chứa các thông số của chương trình trong quá trình hoạt

động như trạng thái các biến, giá trị đếm tức thời của Timer và Counter,v.v…Khi

nguồn điện cấp cho PLC bị mất nội dung của bộ nhớ dữ liệu vẫn được duy trì nhờ

một tụ điện.Bộ nhớ dữ liệu được sử dụng bằng Ram (Random Access Memory).

Vùng nhớ Ram chia làm 4 vùng chính:

Vùng chương trình(User Program):là miền bộ nhớ sử dụng để lưu trữ các

lệnh chương trình điều khiển.

Vùng tham số của CPU (CPU configuration): là miền lưu trữ các tham số như

từ khoá, địa chỉ trạm, trạng thái của CPU.

Vùng dữ liệu: dùng để chứa các dữ liệu chương trình bao gồm các kết quả,

các phép tính, các hằng số được định nghĩa trong chương trình,v.v…Các miền nhớ

này có thể truy cập theo bit, byte(8bit), word(2byte), doubleword(2 word). Vùng dữ

liệu lại được chia thành nhiều miền nhớ nhỏ với các công cụ riêng như sau :

V : (Variable Memory):vùng nhớ biến

I : ( Input Image Register):vùng nhớ ảnh ngõ vào

Q : (Output Image Register):vùng nhớ ảnh ngõ ra

M : (Internal Memory Bit):vùng nhớ nội

SM (Special Memory Bit) :vùng nhớ đặc biệt

Memory

Power Supply

Page 21: Hệ thống bãi giữ xe ô tôt tự động

Phần II: Giới thiệu tổng quát về PLC Luận văn tốt nghiêp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 21

Vùng đối tượng : chứa các thông số của Timer, Couter, các bộ đếm cao tốc,

các ngõ ra Analog, các thanh ghi tích luỹ, các hằng số được chứa trong vùng nhớ

này.

Vùng nhớ EEPROM được chia thành 3 vùng, vùng chương trình, vùng tham

số của CPU, vùng dữ liệu.Về bản chất các vùng nhớ của bộ nhớ EEPROM hoàn

toàn giống như vùng nhớ RAM. EEPROM dùng để nạp lại chương trình và một số

nội dung cho vùng nhớ RAM bị mất nguồn nuôi.

III. CẤU TRÚC CHƯƠNG TRÌNH CỦA S7-200

Có thể lập trình cho PLC S7-200 bằng cách sử dụng một trong những phần

mềm sau : STEP7-Micro/DOS

STEP7-Micro/WIN

Những phần mềm này đều có thể cài đặt được trên các máy lập trình họ

PG7xx và các máy tính cá nhân (PC).

Các chương trình cho S7-200 phải có cấu trúc bao gồm chương trình chính

(main program) và sau đó đến các chương trình con và các chương trình xử lý ngắt

được chỉ ra sau đây :

Chương trình chính được kết thúc bằng lệnh kết thúc chương trình (MEND).

Chương trình con là một bộ phận của chương trình. Các chương trình con

phải được viết sau lệnh kết thúc chương trình chính, đó là lệnh MEND.

Các chương trình xử lý ngắt là một bộ phận của chương trình. Nếu cần sử

dụng chương trình xử lý ngắt phải viết sau lệnh kết thúc chương trình chính MEND.

Các chương trình con được nhóm lại thành một nhóm ngay sau chương trình

chính. Sau đó đến ngay các chương trình xử lý ngắt. Bằng cách viết như vậy, cấu

trúc chương trình được rõ ràng và thuận tiện hơn trong việc đọc chương trình sau

này. Có thể tự do trộn lẫn các chương trình con và chương trình xử lý ngắt đằng sau

chương trình chính.

Thực hiện trong một vòng quét:

Main Program . .

Page 22: Hệ thống bãi giữ xe ô tôt tự động

Phần II: Giới thiệu tổng quát về PLC Luận văn tốt nghiêp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 22

. MEND

Thực hiện khi được chương trình chính gọi:

SBR 0 Chương trình con thứ nhất . . . RET . . . SBR n Chương trình con thứ n+1 . . . RET

Thực hiện khi có tín hiệu báo ngắt:

INT 0 Chương trình xử lý ngắt thứ nhất . . . RETI . . .

INT n Chương trình xử lý ngắt thứ n+1 . . . RETI

Page 23: Hệ thống bãi giữ xe ô tôt tự động

Phần II: Giới thiệu tổng quát về PLC Luận văn tốt nghiêp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 23

Hình : Cấu trúc chương trình của S7 –200

Hình: Hình ảnh thực tế của một PLC SIMATIC S7-200 CPU 214

Hình : Hình ảnh của module mở rộng EM223

IV.HOẠT ĐỘNG CỦA MỘT PLC

CPU S7-200 có các chế độ hoạt động thể hiện bằng đèn trên PLC như sau:

SF : đèn màu đỏ báo hệ thống bị hỏng.

RUN : đèn màu xanh chỉ thị PLC đang ở chế độ làm việc và thực hiện chương

trình đã nạp vào bộ nhớ.

Page 24: Hệ thống bãi giữ xe ô tôt tự động

Phần II: Giới thiệu tổng quát về PLC Luận văn tốt nghiêp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 24

STOP : đèn màu vàng chỉ thị PLC đang ở chế độ dừng.

Khi hoạt động ở chế độ RUN, CPU S7-200 được thiết kế để thực hiện một loạt

các thao tác theo chu kỳ và một chu kỳ thực hiện thao tác đó người ta gọi là một

vòng quét ( Scan Cycle). Trong một vòng quét, CPU thực hiện các công việc sau :

Đọc trạng thái các ngõ vào (Reading The Input): bắt đầu mỗi vòng quét, PLC

đọc trạng thái ngõ vào và ghi trong thanh ghi ảnh ngõ vào.

Thực hiện chương trình (Excecuting The Program): trong suốt một vòng quét,

PLC thực hiện từ lệnh đầu tiên của chương trình đến khi gặp lệnh END

(STEP7_Micro/Win 3.2 tự động hiểu chương trình kết thúc khi gặp Network trống

kế tiếp trong chương trình ). Tại thời điểm thực hiện các lệnh liên quan với các ngõ

vào, ra, lệnh không làm việc trực tiếp với các cổng vào ra mà chỉ xử lý thông qua

thanh ghi ảnh của các ngõ vào ra trong vùng nhớ tham số. Riêng đối với các lệnh

I/O Immediate (ngay lập tức) thì hệ thống sẽ cho ngừng mọi công việc khác, ngay

cả chương trình xử lý ngắt để thực hiện ngay lập tức lệnh này (giá trị ngõ vào nạp

ngay vào thanh ghi ảnh hoặc xuất ngay giá trị trong thanh ghi ảnh đến ngõ ra)

không đợi đến thứ tự thực hiện của vòng quét.- Truyền thông nội bộ giữa các PLC

(Processing Any Communication Requests): thực hiện việc trao đổi thông tin giữa

các PLC trong mạng và xử lý các tín hiệu phản hồi.

Tự chuẩn đoán lỗi (Excicuting The CPU Self-Test Diagnostics): CPU tiến

hành kiểm tra bộ nhớ chương trình và trạng thái module mở rộng.

Xuất dữ liệu ra các ngõ ra (Writing To The Outputs): kết thúc mỗi vòng quét

CPU xuất các giá trị trong thanh ghi ảo ngõ ra đến ngõ ra. Khi CPU chuyển trạng

thái RUN đến STOP (bằng nút gạt trên PLC), các giá trị của các thanh ghi ảnh ngõ

ra sẽ được gán bằng các giá trị đã định nghĩa sẵn trong Output Table.

Về cơ bản hoạt động của một PLC cũng khá đơn giản. Đầu tiên, hệ thống các

cổng vào/ra (Input/Output) (còn gọi là các Module xuất/nhập) dùng để đưa các tín

hiệu từ các thiết bị ngoại vi vào CPU (như các Sensor, Contact, tín hiệu từ động cơ

…). Sau khi nhận được tín hiệu ở ngõ vào thì CPU sẽ xử lý và đưa các tín hiệu điều

khiển qua Module xuất ra các thiết bị được điều khiển.

Trong suốt quá trình hoạt động, CPU đọc hoặc quét (scan) dữ liệu hoặc trạng

thái của các thiết bị ngoại vi thông qua ngõ vào, sau đó thực hiện các chương trình

Page 25: Hệ thống bãi giữ xe ô tôt tự động

Phần II: Giới thiệu tổng quát về PLC Luận văn tốt nghiêp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 25

trong bộ nhớ như sau: một bộ đếm chương trình sẽ nhặt lệnh từ bộ nhớ chương trình

đưa ra thanh ghi lệnh để thi hành. Chương trình ở dạng STL (Statement List – Dạng

lệnh liệt kê) hay ở dạng LADDER (dạng hình thang) sẽ được dịch ra ngôn ngữ máy

cất trong bộ nhớ chương trình. Sau khi thực hiện xong chương trình, CPU sẽ gởi

hoặc cập nhật (update) tín hiệu tới các thiết bị, được điều khiển thông qua Module

xuất. Một chu kỳ gồm đọc tín hiệu ở ngõ vào, thực hiện chương trình và gởi cập

nhật tín hiệu ở ngõ ra được gọi là một chu kỳ quét (Scanning).

Dưới đây chỉ là mô tả hoạt động đơn giản của một PLC, với hoạt động này sẽ

giúp cho người thiết kế nắm được nguyên tắc của một PLC. Nhằm cụ thể hóa hoạt

động của một PLC.

V.PHƯƠNG PHÁP LẬP TRÌNH CHO CPU S7-200

S7-200 biểu diễn một mạch logic cứng bằng một dãy các lệnh lập

trình.Chương trình bao gồm một tập dãy các lệnh.S7-200 thực hiện chương trình bắt

đầu từ lệnh lập trình đầu tiên và kết thúc ở lệnh lập trình cuối trong một vòng. Một

vòng như vậy được gọi là vòng quét (scan).

Một vòng quét (scan cycle) được bắt đầu bằng việc đọc trạng thái của đầu vào,

và sau đó thực hiện chương trình.Scan cycle kết thúc bằng việc thay đổi trạng thái

đầu ra. Trước khi bắt đầu một vòng quét tiếp theo S7-200 thực thi các nhiệm vụ bên

trong và nhiệm vụ truyền thông, sơ đồ hoạt động của một PLC là một vòng quét

(scan cycle) như sau :

Một CPU S7-200 với phần mềm Step7-Micro/Win 3.2 cung cấp cho người sử

dụng 3 phương thức lập trình là dạng LAD,STL và FBD với thiết lập SIMATIC và

IEC 1131-3:

Giai đoạn chuyển

dữ liệu ra ngoại vi

Giai đoạn nhập dữ

liệu từ ngoại vi

Giai đoạn truyền thông

nội bộ và tự kiểm tra

Giai đoạn thực

hiện chương trình

Page 26: Hệ thống bãi giữ xe ô tôt tự động

Phần II: Giới thiệu tổng quát về PLC Luận văn tốt nghiêp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 26

Lập trình theo kiểu danh sách lệnh (statement list editor)

Định nghĩa về STL:

Phương pháp liệt kê lệnh (STL) là phương pháp thể hiện chương trình dưới

dạng tập hợp các câu lệnh, mỗi câu lệnh trong chương trình, kể cả những lệnh hình

thức biểu diễn một chức năng của PLC.

Phương thức này biểu diễn chương trình điều khiển bằng các dòng lệnh liên

tiếp mỗi dòng lệnh là nội dung mà các thao tác mà các CPU phải tác động đến các

đối tượng lệnh (toán hạng). Nói chung, STL dành cho những người có kinh nghiệm

lập trình, đây là ngôn ngữ thuần tuý của CPU. Đối tượng lệnh bao gồm hai thành

phần, phần đầu tên và loại đối tượng lệnh, phần sau là tham số xác định cụ thể đối

tượng lệnh (địa chỉ đối tượng).

VD : IB5 (trong đó IB là loại đối tượng và 5 tham số).

Các đặc điểm chính cần biết khi chọn phương pháp lập trình dạng STL :

STL thích hợp cho các lập trình viên có kinh nghiệm.

STL có thể cho phép bạn giải quyết các vấn đề không thể thực hiện dễ dàng

bằng dạng LAD hay FBD.

Chỉ sử dụng được STL với thiết lập SIMATIC.

Trong khi luôn có thể sử dụng dạng STL để hiển thị một chương trình viết

bằng dạng LAD hay FBD,điều ngược lại thì không luôn đúng. Không thể luôn sử

dụng dạng LAD hay FBD để hiển thị một chương trình viết bằng dạng STL.

Lập trình theo biểu đồ hình thang (ladder logic editor)

Định nghĩa về LAD:

LAD là một ngôn ngữ lập trình bằng đồ hoạ. Những thành phần cơ bản dùng

trong LAD tương ứng với các thành phần của bảng điều khiển bằng RƠLE.

Đây là phương thức lập trình bằng hình ảnh được sử dụng thông dụng bởi các

lập trình viên tại các nhà máy,xí nghiệp. Phương pháp này biểu thị chức năng điều

khiển bằng các ký hiệu sơ đồ mạch điện như tiếp điểm, cuộn dây v.v…Khi viết

chương trình dạng LAD ta tiến hành sắp xếp các khối hình thành một hệ thống

Logic (Network Logic) để có thể thực hiện yêu cầu đề ra. Chương trình được xử lý

một Network tại một thời điểm từ trái sang phải và từ trên xuống dưới, khi CPU xử

Page 27: Hệ thống bãi giữ xe ô tôt tự động

Phần II: Giới thiệu tổng quát về PLC Luận văn tốt nghiêp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 27

lý tới cuối chương trình nó lại thực hiện từ đầu chương trình. Các khối lệnh hình

ảnh có thể là các tiếp điểm,cuộn dây hoặc các khối hình hộp :

Các tiếp điểm (Contacks): là biểu tượng mô tả tiếp điểm của Rơle bao gồm

các tiếp điểm thường đóng và các tiếp điểm thường mở.

Các cuộn dây (Coils): là biểu tượng của Rơle được mắc theo chiều dòng điện

cung cấp cho Rơle.

Các khối hình hộp (Boxes): là biểu tượng mô tả các hàm khác nhau, nó làm

việc khi có dòng điện chạy đến hộp. Mỗi khối mô tả một chức năng khác nhau như

so sánh, Timer, Counter, các phép toán v.v…Các chức năng này được thực hiện khi

có dòng điện chạy cuộn dây và các hộp phải được mắc đúng chiều dòng điện.

Mạng LAD: là đường nối các phần tử thành một mạch hoàn thiện, đi từ đường

nguồn bên trái sang đường nguồn bên phải. Đường nguồn bên trái là dây nóng,

đường nguồn bên phải là dây trung hoà hay là đường trở về nguồn cung cấp. Đường

nguồn bên phải thường không được thể hiện khi dùng chương trình tiện dụng

STEP7-Mcro/DOS hoặc STEP7-Mcro/WIN. Dòng điện chạy từ trái qua các tiếp

điểm đóng đến các cuộn dây hoặc các hộp trở về bên phải nguồn.

Các đặc điểm chính cần biết khi chọn phương pháp lập trình dạng LAD :

Dạng LAD dễ dàng cho người bắt đầu sử dụng.

Vấn đề mô tả bằng đồ hoạ dễ dàng và được sử dụng phổ biến hơn.

Dạng LAD có thể sử dụng được cả hai thiết lập SIMATIC và IEC 1131-3.

Luôn sử dụng dạng STL để hiển thị chương trình viết bằng dạng LAD.

Lập trình theo kiểu biểu đồ hình khối (Function Block Diagram) :

Step7_Mcro/Win 3.2 cho phép tạo các lệnh như các hộp Logic giống với các

biểu đồ cổng chung. Trong FBD không có công tắc (contact) và cuộn dây (Coils)

như dạng LAD nhưng có các lệnh tương đương xuất hiện như các hộp lệnh.Logic

của chương trình nhận được từ sự liên kết giữa các hộp lệnh, ví dụ đầu ra từ một

lệnh (như hộp lệnh END) có thể sử dụng làm điều kiện cho một lệnh khác (như

Timer) để tạo sự điều khiển hợp lý. Khái niệm liên kết cho phép giải quyết một

trạng thái rộng của vấn đề logic.

Các đặc điểm chính cần biết khi chọn phương pháp lập trình dạng FBD :

Page 28: Hệ thống bãi giữ xe ô tôt tự động

Phần II: Giới thiệu tổng quát về PLC Luận văn tốt nghiêp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 28

Dạng đồ hoạ logic bằng cổng thích hợp để theo dõi chương trình.

Dạng FBD có thể sử dụng được cả hai thiết lập SIMATIC và IEC 1131-3.

Luôn sử dụng dạng STL để hiển thị chương trình viết bằng dạng FBD.

Phương pháp lập trình theo kiểu danh sách lệnh (STL) sử dụng vùng ngăn xếp

Logic (Stack Logic) của CPU để giải quyết các thao tác Logic. Để tạo ra một

chương trình dạng STL, người lập trình cần phải hiểu rõ phương thức sử dụng bit

ngăn xếp logic của S7-200. Ngăn xếp Logic là một hệ thống gồm 9 bit xếp chồng

lên nhau, các thuật toán liên quan đến ngăn xếp Logic đều chỉ làm việc với bit đầu

tiên hoặc với bit thứ hai của ngăn xếp. Giá trị logic mới đều có thể được gửi (hoặc

được nối thêm) vào ngăn xếp. Khi có yêu cầu phối hợp hai bit đầu tiên của ngăn xếp

thì ngăn xếp sẽ được kéo lên 1 bit, các dạng LAD và FBD tự động chèn các lệnh

vào toán hạng Stack, trong STL phải thực hiện chèn vào vùng Stack bằng các lệnh.

Vùng Stack của CPU S7-200 :

Định nghĩa về ngăn xếp logic (logic stack) :

Bit của Logic Stack :

S0

S1

S2

S3

S4

S5

S6

S7

S8

Page 29: Hệ thống bãi giữ xe ô tôt tự động

Phần II: Giới thiệu tổng quát về PLC Luận văn tốt nghiêp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 29

Stack 0: bit thứ nhất hay ngăn trên cùng của Stack.

Stack 1: ngăn thứ hai của Stack.

Stack 2: ngăn thứ ba của Stack.

Stack 3: ngăn thứ tư của Stack.

Stack 4: ngăn thứ năm của Stack.

Stack 5: ngăn thứ sáu của Stack.

Stack 6: ngăn thứ bảy của Stack.

Stack 7: ngăn thứ tám của Stack.

Stack 8: ngăn thứ chín của Stack.

VI.TẬP LỆNH S7-200

1. Các lệnh vào ra của chương trình

Dạng lệnh Mô tả chức năng lệnh

LAD

Tiếp điểm thường đóng sẽ đóng khi có giá trị logic bit

bằng 0, và sẽ mở khi có giá trị logic bằng 1

Toán hạng: Bit: I, Q, M, SM, T, C, V(n)

LAD

Tiếp điểm thường hở sẽ được đóng nếu giá trị logic bằng

1 và sẽ hở nếu giá trị logic bằng 0

Toán hạng: Bit: I, Q, M, SM, T, C, V(n)

LAD

Tiếp điểm thường hở sẽ đóng tức thời khi giá trị bit bằng

1 và sẽ mở tức thời nếu giá trị logic bằng 0.

Toán hạng: Bit: I, Q, M, SM, CT, V(n)

LAD

Tiếp điểm thường đóng sẽ mở tức thời khi giá trị logic

bằng 1 và ngược lại

Toán hạng: Bit: I, Q, M, SM, CT, V(n)

LAD

Tiếp điểm đảo trạng thái của dòng cung cấp. Nếu dòng

cung cấp có tiếp điểm đảo thì nó ngắt mạch, và ngược lại.

Page 30: Hệ thống bãi giữ xe ô tôt tự động

Phần II: Giới thiệu tổng quát về PLC Luận văn tốt nghiêp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 30

LAD

Lệnh nhận biết trạng thái chuyển từ 0 lên 1 trong một chu

kì quét. Khi chuyển từ 0 lên 1 thì sẽ cho thông mạch.

LAD

Lệnh nhận biết sự chuyển trạng thái từ 1 xuống 0 trong

một chu kì quét. Khi chuyển từ 1 xuống 0 thì thông mạch

LAD

Cuộn dây ở đầu ra sẽ được kích thích khi có dòng điều

khiển đi ra

LAD

Cuộn dây ở đầu ra được kích thích tức thời khi có dòng

điều khiển đi qua

Toán hạng: Bit: I, Q, M, SM, T, C, V(n)

LAD

Dùng để đóng một mảng gồm n tiếp điểm kể từ giá trị ban

đầu bit

Toán hạng: Bit: I, Q, M, SM, T, C, V, IB, QB, MB, SMB,

VB, AC, *VD, *AC, Const

LAD

Dùng để ngắt một mảng gồm n tiếp điểm kể từ giá trị ban

đầu bit

Toán hạng: Bit: I, Q, M, SM, T, C, V, IB, QB, MB, SMB,

VB, AC, *VD, *AC, Const

LAD

Ghi tức thời giá trị logic vào một mảng gồm n bit kể từ

giá trị ban đầu bit

Toán hạng: Bit: I, Q, M, SM, T, C, V(Bit), IB, QB, MB,

SMB, VB, AC, *VD, *AC, Const

LAD

Xóa một mảng tức thời gồm n bit kể từ địa chỉ bit. Nếu bit

chỉ vào Timer hoặc Counter thì lệnh sẽ xóa bit đầu ra của

Timer/Counter

Toán hạng: Bit: I, Q, M, SM, T, C, V(Bit), IB, QB, MB,

SMB, VB, AC, *VD, *AC, Const

Page 31: Hệ thống bãi giữ xe ô tôt tự động

Phần II: Giới thiệu tổng quát về PLC Luận văn tốt nghiêp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 31

LAD

Lệnh này không có hiệu lực trong chương trình. Toán

hạng: N là một số từ 0 đến 255

2. Các lệnh dùng để so sánh hai tiếp điểm

Dạng lệnh Mô tả chức năng lệnh

LAD

Lệnh so sánh bằng sẽ làm cho tiếp điểm đóng khi IN1

bằng IN2 (IN1, IN2 kiểu Byte)

Toán hạng: IN1, IN2: VB, IB, QB, MB, SMB, AC, Const,

*VD, *AC

LAD

Lệnh so sánh bằng sẽ làm cho tiếp điểm đóng khi IN1

bằng IN2 (IN1, IN2 kiểu Word) và ngược lại

Toán hạng: IN1, IN2: VW, IW, MW, SMW, AC, Const,

T, C, AIW, *VD, *AC

LAD

Lệnh so sánh bằng làm cho tiếp điểm đóng khi IN1 bằng

IN2 (IN1, IN2 kiểu Double Word) và ngược lại

Toán hạng: IN1, IN2: VD, ID, MD, SMD, AC, Const,

HC, *VD, *AC

LAD

Lệnh so sánh bằng làm tiếp điểm đóng khi IN1 bằng IN2

(IN1,IN2 kiểu Real số thực) và ngược lại

Toán hạng: IN1, IN2: VD, ID, QD, MD, SMD, AC, HC,

*AC Const, *VD

LAD

Lệnh so sánh lớn hơn hoặc bằng sẽ làm cho tiếp điểm

đóng khi IN1 bằng IN2 (IN1, IN2 kiểu Byte)

Toán hạng: IN1, IN2: VB, IB, QB, MB, SMB, AC, Const,

*VD, *AC

Page 32: Hệ thống bãi giữ xe ô tôt tự động

Phần II: Giới thiệu tổng quát về PLC Luận văn tốt nghiêp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 32

LAD

Lệnh so sánh lớn hơn hoặc bằng sẽ làm cho tiếp điểm

đóng khi IN1 bằng IN2 (IN1, IN2 kiểu Word)

Toán hạng: IN1, IN2: VW, IW, MW, SMW, AC, Const,

T, C, AIW, *VD, *AC

LAD

Lệnh so sánh lớn hơn hoặc bằng sẽ làm cho tiếp điểm

đóng khi IN1 bằng IN2 (IN1,IN2 kiểu Dword)

Toán hạng: IN1, IN2: VD, ID, MD, SMD, AC, Const,

HC, *VD, *AC

LAD

Lệnh so sánh lớn hơn hoặc bằng sẽ làm cho tiếp điểm

đóng khi IN1 bằng IN2 (IN1, IN2 kiểu Real)

Toán hạng: IN1, IN2: VD, ID, QD, MD, SMD, AC, HC,

*AC Constant, *VD

LAD

Lệnh so sánh nhỏ hơn hoặc bằng sẽ làm cho tiếp điểm

đóng khi IN1 bằng IN2 (IN1, IN2 kiểu Byte)

Toán hạng: IN1, IN2: VB, IB, QB, MB, SMB, AC, Const,

*VD, *AC

LAD

Lệnh so sánh nhỏ hơn hoặc bằng sẽ làm cho tiếp điểm

đóng khi IN1 bằng IN2 (IN1, IN2 kiểu Word)

Toán hạng: IN1, IN2: VW, IW, MW, SMW, AC, Const,

T, C, AIW, *VD, *AC

LAD

Lệnh so sánh nhỏ hơn hoặc bằng sẽ làm cho tiếp điểm

đóng khi IN1 bằng IN2 (IN1, IN2 kiểu Dword)

Toán hạng: IN1, IN2: VD, ID, MD, SMD, AC, Const,

HC, *VD, *AC

Page 33: Hệ thống bãi giữ xe ô tôt tự động

Phần II: Giới thiệu tổng quát về PLC Luận văn tốt nghiêp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 33

LAD

Lệnh so sánh nhỏ hơn hoặc bằng sẽ làm cho tiếp điểm

đóng khi IN1 bằng IN2 (IN1, IN2 kiểu Real)

Toán hạng: IN1, IN2: VD, ID, QD, MD, SMD, AC, HC,

*AC Constant, *VD,

3. Các lệnh dịch chuyển nội dung ô nhớ

Dạng lệnh Mô tả chức năng lệnh

LAD

Sao chép nội dung của byte IN sang OUT

Toán hạng: IN: VB, IB, QB, MB, SMB, SB, AC, Cons,

*VD, *AC

OUT: VB, IB, QB, MB, SMB, SB, AC, *VD, *AC

LAD

Sao chép nội dung của Word IN sang OUT

Toán hạng: IN: VW, T, C, IW, QW, MW, SMW, SW

AC, AIW, Const, *VD, *AC

OUT: VW, T, C, IW, QW, MW, SMW, SW, AC, AQW,

*VD, *AC

LAD

Sao chép nội dung của Dword(Double Word) IN sang

OUT

IN: VD, ID, QD, MD, SD, SMD, HC, HC, *VD, *AC,

&VB, &IB, &QB, &MB, &T, &C, &SB, Const

OUT: VD, ID, QD, MD, SD, SMD, AC, *VD, *AC

LAD

Sao chép nội dung của Real (số thực) IN sang OUT

Toán hạng: IN: VD, ID, QD, MD, SD, SMD, AC, Const,

*VD, *AC

OUT: VD, ID, QD, MD, SMD, SD, AC, *VD, *AC

Page 34: Hệ thống bãi giữ xe ô tôt tự động

Phần II: Giới thiệu tổng quát về PLC Luận văn tốt nghiêp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 34

4. Các lệnh số học và tăng giảm

Dạng lệnh Mô tả chức năng lệnh

LAD

Lệnh cộng hai số nguyên 16 bit IN1 và IN2 kết quả là một

số nguyên OUT 16 bit. Trong STL thì kết quả ghi vào

IN1

Toán hạng: IN1, IN2: VW, T, C, IW, QW, MW, SMW,

SW, AC, AIW, Constan, *VD, *AC

OUT: VW, T, C, IW, QW, MW, SMW, SW, AC, *VD,

*AC

LAD

Lệnh cộng hai số nguyên 32 bit IN1 và IN2 kết quả là một

số nguyên OUT 32 bit. Trong STL thì kết quả ghi vào

IN1

Toán hạng: IN1, IN2: VD, ID, QD, MD, SMD, SD, AC,

HC, Constant, *VD, *AC

OUT: VD, ID, QD, MD, SMD, SD, AC, *VD, *AC

LAD

Lệnh cộng hai số thực 32 bit IN1 và IN2 kết quả là một số

thực OUT 32 bit. Trong STL thì kết quả ghi vào IN1

Toán hạng:IN1, IN2: VD, ID, QD, MD, SMD, SD, AC,

Constant, *VD, *AC

OUT: VD, ID, QD, MD, SMD, SD, AC, *VD, *AC

Page 35: Hệ thống bãi giữ xe ô tôt tự động

Phần II: Giới thiệu tổng quát về PLC Luận văn tốt nghiêp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 35

LAD

Lệnh trừ hai số nguyên 16 bit IN1 và IN2 kết quả là một

số nguyên OUT 16 bit. Trong STL thì kết quả ghi vào

IN1

Toán hạng: IN1, IN2: VW, T, C, IW, QW, MW, SMW,

SW, AC,AIW, Const, *VD, *AC

OUT: VW, T, C, IW, QW, MW, SMW, SW, AC, *VD,

*AC

LAD

Lệnh trừ hai số nguyên 32 bit IN1 và IN2 kết quả là một

số nguyên OUT 32 bit. Trong STL thì kết quả ghi vào

IN1

Toán hạng: IN1, IN2: VD, ID, QD, MD, SMD, SD, AC,

HC, Constant, *VD, *AC

OUT: VD, ID, QD, MD, SMD, SD, AC, *VD, *AC

LAD

Lệnh trừ hai số thực 32 bit IN1 và IN2 kết quả là một số

thực OUT 32 bit. Trong STL thì kết quả ghi vào IN1

Toán hạng: IN1, IN2: VD, ID, QD, MD, SMD, SD, AC,

Const, *VD, *AC

OUT: VD, ID, QD, MD, SMD, SD, AC, *VD, *AC

LAD

Lệnh thực hiện phép nhân giữa hai số nguyên 16 Bit IN1

và IN2 và cho kết quả 32 Bit ghi vào từ kép 32 bit OUT,

còn trong STL thì ghi vào IN2

Toán hạng: IN1, IN2: VW, T, C, IW, QW, MW, SMW,

SW, AC, AIW, Const, *VD, *AC

OUT: VD, ID, QD, MD, SMD, SD, AC, *VD, *AC

Page 36: Hệ thống bãi giữ xe ô tôt tự động

Phần II: Giới thiệu tổng quát về PLC Luận văn tốt nghiêp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 36

LAD

Lệnh thực hiện phép nhân giữa hai số thực 32 bit IN1 và

IN2 và cho là số thực 32 Bit ghi vào từ kép OUT, còn

trong STL thì ghi vào IN2

Toán hạng: IN1, IN2: VD,ID, QD, MD,SMD, SD, AC,

Const, *VD, *AC

OUT: VD, ID, QD, MD, SMD, SD, AC, *VD, *AC

LAD

Lệnh thực hiện phép chia giữa hai số nguyên 16 bit IN1

và IN2 và cho kết quả là số thực 32 bit ghi vào từ kép

OUT, còn trong STL thì ghi vào IN2

Toán hạng: IN1, IN2: VW, T, C, IW, QW, MW, SMW,

SW, AC, AIW, Constant, *VD, *AC

OUT: VD, ID, QD, MD, SMD, SD, AC, *VD, *AC

LAD

Lệnh thực hiện phép nhân giữa hai số thực 32 bit IN1 và

IN2 và cho kết quả là số thực ghi vào từ kép 32 bit OUT,

trong STL thì ghi vào IN2

Toán hạng: IN1, IN2: VD, ID, QD, MD, SMD, SD, AC,

Const, *VD, *AC

OUT: VD, ID, QD, MD, SMD, SD, AC, *VD, *AC

5. Giới thiệu về Timer và các lệnh điều khiển Timer

Timer là bộ tạo thời gian trễ giữa tín hiệu vào và tín hiệu ra nên trong điều

khiển thường được gọi là khâu trễ. S7-200 từ CPU 214 trở lên có 128 Timer được

chia làm hai loại khác nhau đó là :

Timer tạo thời gian trễ không có nhớ có nghỉa là khi tín hiệu logic vào IN ở

mức không thì Timer sẽ bị Reset. Timer Txx này có thể Reset bằng hai cách đó là

Page 37: Hệ thống bãi giữ xe ô tôt tự động

Phần II: Giới thiệu tổng quát về PLC Luận văn tốt nghiêp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 37

cho tín hiệu logic vào bằng không hoặc dùng lệnh R Txx (trong STL) để Reset lại

timer Txx. Timer này được dùng để tạo thời gian trễ trong một thời gian liên tục ký

hiệu là TON

Timer tạo thời gian trễ có nhớ có nghĩa là khi tín hiệu logic vào IN ở mức

không thì Timer này không chạy nữa nhưng khi tín hiệu lên mức cao lại thì Timer

lại tiếp tục chạy tiếp. Timer Txx này có thể Reset bằng cách dùng lệnh R Txx

(trong STL) để Reset lại timer Txx. Timer này được dùng để tạo thời gian trễ trong

một thời gian gián đoạn (trong nhiều khoảng thời gian khác nhau) kí hiệu là TONR

Cả hai loại Timer trên đều chạy đến giá trị đặt trước PT thì nó sẽ tự dừng lại

nếu muốn cho nó hoạt động lại thì ta phải Reset Timer lại.

Timer có những tính chất cơ bản sau :

Các bộ Timer điều được điều khiển bởi một cổng vào và một giá trị đếm tức

thời. Giá trị đếm tức thời được lưu trong một thanh ghi 2 Byte ( gọi là Tword) của

Timer xác định khoảng thời gian trễ được kích. Giá trị đếm tức thời của Timer luôn

luôn được so sánh với giá trị PT đặt trước.

Ngoài thanh ghi 2 byte T-word lưu giá trị tức thời còn có một bit kí hiệu T-bit

chỉ thị trạng thgái logci đầu ra giá trị logic này phụ thuộc vào kết quả so sánh giá trị

đếm tức thời với giá trị đặt trước. Khi giá trị đếm tức thời lớn hơn hoặc bằng giá trị

đặt trước thì T-bit sẽ có giá trị logic bằng 1 ngược lại T-bit sẽ có giá trị logic bằng

không.

Time có 3 độ phân giải đó là 1ms 10ms và 100ms và phân bố của các Timer

trong CPU214 như sau :

Lệnh Độ phân giải Giá trị cực đại Tên Timer

TON

1 ms 32767 T32;T96

10 ms 32767 T33T36;T97T100

100 ms 32767 T37T63;T101T127

1 ms 32767 T0;T64

Page 38: Hệ thống bãi giữ xe ô tôt tự động

Phần II: Giới thiệu tổng quát về PLC Luận văn tốt nghiêp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 38

TONR

10 ms 32767 T1T4; T65T68

100 ms 32767 T5T31; T69T95

Các lệnh điều khiển Timer

Dạng lệnh Mô tả chức năng lệnh

LAD

Khai báo Timer số hiệu xxx kiểu TON để tạo thời

gian trễ tính từ khi giá trị đầu vào IN được kích.

Nếu giá trị đếm tức thời lớn hơn hoặc bằng giá trị

đặt trước thì T-bit bằng 1.

Txxx: CPU214: 32-63, 96-127

PT:VW,T,C,IW,QW,MW,SMW,SW,AC,AIW,

Const, *VD, *AC.

LAD

Khai báo Timer số hiệu xxx kiểu TONR để tạo

thời gian trễ tính từ khi giá trị đầu vào IN được

kích. Nếu giá trị đếm tức thời lớn hơn hoặc bằng

giá trị đặt trước thì T-bit bằng 1

Txxx :CPU 214: 0-31, 64-95

PT:VW,T,C,IW, QW,MW,SMW, SW,AC,AIW,

Const, *VD, *AC.

6. Ngắt và xử lý ngắt

Các chế độ ngắt và xử lý ngắt cho phép thực hiện các quá trình tốc độ cao,

phản ứng kịp thời với các sự kiện ở bên tron và bên ngoài.

Nguyên tắc cơ bản của một chế độ ngắt cũng giống như thực hiện lệnh gọi

một chương trình con, sự khác nhau ở đây là chương trình con được gọi chủ động

bằng lệnh CALL, còn chương trình xử lý ngắt được gọi bị động bằng một tín hiệu

báo ngắt. Khi có một tín hiệu báo ngắt, hệ thống sẽ tổ chức gọi và thực hiện chương

Page 39: Hệ thống bãi giữ xe ô tôt tự động

Phần II: Giới thiệu tổng quát về PLC Luận văn tốt nghiêp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 39

trình con tương ứng với tín hiệu ngắt đó, hay nói cách khác là hệ thống sẽ tổ chức

xử lý tín hiệu ngắt đó. Chương trình con này được gọi là chương trình xử lý ngắt.

Do việc gọi chương trình xử lý ngắt bằng một tín hiệu báo ngắt mà thời điểm

xuất hiện tín hiệu báo ngắt hoàn toàn bị động, bởi vậy hệ thống sẽ phải hổ trợ thêm

cho công việc xử lý ngắt như: cất giữ nội dung ngăn xếp, nội dung thanh ghi AC và

các bit nhớ đặc biệt; tổ chức xếp hàng ưu tiên cho các tín hiệu báo ngắt trong trường

hợp chúng chưa kịp được xử lý

Trong CPU 224 có các kiểu tín hiệu báo ngắt sau đây:

Tám ngắt vào ra theo sườn lên hoặc theo sườn xuống của các cổng I0.0 đến I0.3

Hai ngắt thời gian.

Hai ngắt truyền thông nối tiếp (nhận và truyền)

Bảy ngắt bộ đếm tốc độ cao (CV=PV trển HSC0 và thay đổi hướng, xóa ngoài,

và CV=PV trên HSC1 và HSC2).

Hai ngắt đầu ra truyền xung là PT00 và PT01.

Khi có tín hiệu ngắt, giá trị cũ của ngăn xếp được cất đi, đỉnh của ngăn xếp

nhận giá trị logic mới là 1 còn các bit khác của ngăn xếp nhận giá trị logic 0. Bởi

vậy, khi vào đầu một chương trình xử lý ngắt, lệnh có điều kiện sẽ trở thành lệnh

không điều kiện.

Ngoài ra, để có thể tiếp tục thực hiện được chương trình sau ngắt, không

những nội dung của ngăn xếp mà cả nội dung của các thanh ghi AC cùng với các bit

nhớ trạng thái đặc biệt SM của thanh ghi và của các phép tính cũng sẽ được hệ

thống cất giữ trước khi thực hiện chương trình xử lý ngắt và được nạp lại ngay sau

khi kết thúc chương trình xử lý ngắt.

Các kiểu tín hiệu báo ngắt khác nhau của CPU 224 được trình bày trong bảng sau:

Sự kiện Mô tả ngắt CPU 224

0 Ngắt theo sườn lên I0.0 Y

1 Ngắt theo sườn xuống I0.0 Y

2 Ngắt theo sườn lên I0.1 Y

3 Ngắt theo sườn xuống I0.1 Y

4 Ngắt theo sườn lên I0.2 Y

5 Ngắt theo sườn xuống I0.2 Y

Page 40: Hệ thống bãi giữ xe ô tôt tự động

Phần II: Giới thiệu tổng quát về PLC Luận văn tốt nghiêp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 40

6 Ngắt theo sườn lên I0.3 Y

7 Ngắt theo sườn xuống I0.2 Y

8 Ngắt để nhận dữ liệu truyền thông (Port 0) Y

9 Ngắt để báo hoàn tất việc giử dữ liệu truyền thông Y

10 Ngắt theo thời gian 0 Y

11 Ngắt theo thời gian 1 Y

12 Ngắt theo HSC0, khi CV=PV Y

13 Ngắt theo HSC1, khi CV=PV Y

14 Ngắt theo HSC1, khi có tín hiệu báo đổi hướng đếm từ

bên ngoài

Y

15 Ngắt theo HSC1, khi có tín hiệu reset từ bên ngoài Y

16 Ngắt theo HSC2, khi CV=PV Y

17 Ngắt theo HSC2, khi có tín hiệu báo đổi hướng đếm từ

bên ngoài

Y

18 Ngắt theo HSC2, khi có tín hiệu reset từ bên ngoài Y

19 Ngắt theo PLS0, báo hoàn tất việc đếm xung Y

20 Ngắt theo PLS1, báo hoàn tất việc đếm xung Y

21 Ngắt theo Timer T32 (CT=PT) Y

22 Ngắt theo Timer T96 (CT=PT) Y

23 Ngắt khi hoàn tất việc nhận dữ liệu (Port 0) Y

Thứ tự ưu tiên của các kiểu ngắt

Nhóm ngắt truyền thông - Độ ưu tiên cao nhất.

Nhóm ngắt vào/ra (kể cả HSC và các đầu ra truyền xung).

Nhóm các tín hiệu báo ngắt thời gian - Độ ưu tiên thấp nhất.

Tại một thời điểm, nhiều nhất chỉ có một chương trình xử lý ngắt được thực

hiện. Khi đang thực hiện một chương trình xử lý ngắt thì tất cả tín hiệu báo ngắt

khác phải chờ tới khi hoàn tất chương trình xử lý ngắt đang thực hiện.

Khai báo và hủy một chế độ ngắt

Lệnh cho phép ngắt (Enable interrupt)

Page 41: Hệ thống bãi giữ xe ô tôt tự động

Phần II: Giới thiệu tổng quát về PLC Luận văn tốt nghiêp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 41

Lệnh cho phép ngắt là lệnh toàn cục cho phép xử lý các ngắt đã được khai báo.

Lệnh khai báo ngắt (Attach interrupt) và loại bỏ ngắt (Detach interrupt)

Lệnh ATCH gắn một sự kiện ngắt EVNT với 1 thủ tục xử lý ngắt INT, đồng

thời cho phép xử lý ngắt đó. Lệnh DTCH có tác dụng ngược lại.

Các cú pháp sử dụng lệnh ngắt

Dạng lệnh Mô tả chức năng lệnh

LAD

Khai báo sử dụng một chế độ ngắt với kiểu được

xác định bởi toán hạng Event. Chương trình xử lí

ngắt tương ứng được xác định bởi Int. sau khi khai

báo chế độ ngắt cũng được kích theo

INT: CPU 214: 0-127

EVENT: CPU 214: 0-20

LAD

Lệnh này dùng để hủy bỏ một chế độ ngắt mà kiểu

của nó được xác định bởi toán hạng Event

EVENT: CPU 214: 0-20

LAD

Lệnh này dùng để khai báo một chương trình xử lí

ngắt, nhãn xác định bởi n

CPU 214 0-127

LAD

Lệnh khai báo chế độ toàn cục ngắt hoặc kích hoạt

tất cả các chế độ ngắt đã bị hủy bởi lệnh DISI,đặt

sau ATCH

LAD

Lệnh hủy bỏ toàn bộ chế độ ngắt đã khai báo sử

dụng trước đó, lệnh chỉ có tác dụng với các tín

hiệu báo ngắt lên, nhưng các ngắt vẫn nằm trong

hàng chơ

Page 42: Hệ thống bãi giữ xe ô tôt tự động

Phần II: Giới thiệu tổng quát về PLC Luận văn tốt nghiêp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 42

LAD

Lệnh kết thúc chương trình xử lý ngắt không điều

kiện và bao giờ cũng nằm cuối chương trình xử lý

ngắt

7. Các lệnh điều khiển Counter

Counter là bộ đếm hiện chức năng sườn xung trong S7-200 các bộ đếm của

S7-200 được chia làm hai loại bộ đếm tiến (CTU) và bộ đếm tiến và lùi (CTUD)

Bộ đếm tiến CTU đếm số sườn lên của tín hiệu logic đầu vào tức là đếm số

lần thay đổi trạng thái logic từ 0 lên 1 của tín hiệu số sườn xung đếm được ghi vào

thanh ghi 2 byte của bộ đếm gọi là thanh ghi C-WORD

Nội dung của C-Word gọi là giá trị đến tức thời của bộ đếm luôn được so

sánh với giá trị đếm tức thời bằng hoặc lớn hơn giá trị đặt này thì bộ đếm báo ra

ngoài bằng cách đặt giá trị logic 1 vào một bit đặc biệt của nó được gọi là C bit

trường hợp giá trị đặc trước C bit có giá trị logic là 0

Các bộ counter đều có chân nối với tín hiệu điều khiển xóa để thực hiện việc

đặt lại chế độ khởi phát ban đầu (Reset) cho bộ đếm được ký hiệu bằng chữ R trong

LAD hay được quy định trạng thái logic của bit bắt đầu tiên của ngăn xếp trong

STL bộ đếm được reset khi tín hiệu bị xóa này có mức logic 1 hoặc khi lệnh R

(reset) thực hiện với Cbit. Khi bộ đếm được reset cả CWORD và Cbit đều nhận giá

trị 0

Bộ đếm CTUD đếm tiến khi gặp sườn lên của xung vào cổng đếm tiến ký

hiệu là CU trong LAD hoặc bit thứ 3 của ngăn xếp trong STL và đếm lùi khi gặp

sườn lên của xung vào cổng đếm lùi được ký hiệu là CD trong LAD hoặc bit thứ 2

của ngăn xếp trong STL

Khi đầu vào logic của chân xóa ký hiệu bằng R trong LAD hoặc bit thứ nhất

của ngăn xếp trong STL có giá trị logic là 1 hoặc bằng lệnh reset với C bit của bộ

đếm.

CTUD có giá trị đếm tức thời đúng bằng giá trị đang đếm và được lưu trong

thanh ghi 2byte C-Word của bộ đếm. Giá trị đếm tức thời luôn được so sánh với giá

trị đặt trước PV của bộ đếm

Page 43: Hệ thống bãi giữ xe ô tôt tự động

Phần II: Giới thiệu tổng quát về PLC Luận văn tốt nghiêp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 43

Nếu giá trị đếm tức thời lớn hơn bằng giá trị đặt trước thì Cbit có giá trị logic

bằng 1 còn các trường hợp khác giá trị logic bằng 0

Bộ đếm tiến CTU có miền giá trị đến tức thời từ 0 ( 32.767

Bộ đếm tiến lùi CTUD có miền giá trị đến tức thời từ là –32,768 ( 32.768

Lệnh khai báo sử dụng Bộ đếm trong LAD như sau :

LAD STL Toán hạng

CTU Cxx PV

Cxx CPU 214 0 47

80 127

PV: VW, T, C, IW,

QW(Word), MW, SMW, AC,

AIW

CTUD Cxx PV

Cxx CPU 214 48 79

PV: VW, T, C, IW,

QW(Word), MW, SMW, AC,

AIW, Hằng số

8. Các lệnh truyền thông

Sử dụng các lệnh truyền thông để trao đổi dữ liệu giữa PLC và máy tính cũng như

các thiết bị lập trình hay thiết bị hiển thị.

Dạng lệnh Mô tả chức năng

LAD

Truyền một chuổi byte dữ liệu từ bảng table

với chiều dài nằm trong byte đầu của bảng,

ra port

Toán hạng: TBL : IB,MB,VB,SB,QB, *VD

PORT: 0 ,1

CU PV

CTU CXX

CU CD PV

CTUD CXX

Page 44: Hệ thống bãi giữ xe ô tôt tự động

Phần II: Giới thiệu tổng quát về PLC Luận văn tốt nghiêp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 44

LAD

Nhận một chuổi byte dữ liệu từ vào bảng

table ở port

Toán hạng: TBL: IB,MB,VB,SB,QB,*VD

PORT: 0 ,1

9. Lệnh nhảy và lệnh gọi chương trình con

Các lệnh của chương trình, nếu không có những lệnh điều khiển riêng, sẽ

được thực hiện theo thứ tự từ trên xuống dưới trong một vòng quét. Lệnh điều khiển

chương trình cho phép thay đổi thứ tự thực hiện lệnh. Chúng cho phép chuyển thứ

tự thực hiện, đáng lẽ ra là lệnh tiếp theo, tới một lệnh bất cứ nào khác của chương

trình, trong đó nơi điều khiển chuyển đến được đánh dấu trước bằng một nhãn chỉ

đích. Thuộc nhóm lệnh điều khiển chương trình gồm: lệnh nhảy, lệnh gïọi chương

trình con. Nhãn chỉ đích, hay gọi đơn giản là nhãn, phải được đánh dấu trước khi

thực hiện nhảy hay lệnh gọi chương trình con.

Việc đặt nhãn cho lệnh nhảy phải nằm trong chương trình. Nhãn của chương

trình con, hoặc của chương trình xử lý ngắt được khai báo ở đầu chương trình.

Lệnh gọi chương trình con là lệnh chuyển điều khiển đến chương trình con.

Khi chương trình con thực hiện các phép tính của mình thì việc điều khiển lại được

chuyển trở về lệnh tiếp theo trong chương trình chính ngay sau lệnh gọi chương

trình con. Từ một chương trình con có thể gọi được một chương trình con khác

trong nó, có thể gọi như vậy nhiều nhất là 8 lần trong S7 – 200. Đệ qui (trong một

chương trình con có lệnh gọi đến chính nó) về nguyên tắc không bị cấm song phải

chú ý đến giới hạn trên.

Nếu lệnh nhảy hay lệnh gọi chương trình con được thực hiện thì đỉnh ngăn

xếp luôn có giá trị logic bằng 1. Bởi vậy trong chương trình con các lệnh có điều

khiển được thực hiện như các lệnh không điều kiện. Sau các lệnh LBL (đặt nhãn) và

SBR, lệnh LD trong STL sẽ bị vô hiệu hóa.

Khi một chương trình con được gọi, toàn bộ nội dung của ngăn xếp sẽ được

cất đi, đỉnh của ngăn xếp nhận một giá trị mới là 1, các bit khác còn lại của ngăn

xếp nhận giá trị logic 0 và chương trình được chuyển tiếp đến chương trình con đã

Page 45: Hệ thống bãi giữ xe ô tôt tự động

Phần II: Giới thiệu tổng quát về PLC Luận văn tốt nghiêp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 45

được gọi. Khi thực hiện xong chương trình con và trước khi điều khiển được

chuyển trở lại chương trình đã gọi nó, nội dung ngăn xếp đã được cất giữ trước đó

sẽ được chuyển trở lại ngăn xếp.

Nội dung của thanh ghi AC không được cất giữ khi gọi chương trình con,

nhưng khi một chương trình xử lý ngắt được gọi, nội dung của thanh ghi AC sẽ

được cất giữ trước khi thực hiện chương trình xử lý ngắt và nạp lại khi chương trình

xử lý ngắt đã được thực hiện xong. Bởi vậy chương trình xử lý ngắt có thể tự do sử

dụng bốn thanh ghi AC của S7 – 200.

JMP, CALL

LBL, SBR : Lệnh nhảy JMP và lệnh gọi chương trình con SBR cho phép

chuyển điều khiển từ vị trí này đến một vị trí khác trong chương trình. Cú pháp lệnh

nhảy và lệnh gọi chương trình con trong LAD và STL đều có toán hạng là nhãn chỉ

đích (nơi nhảy đến, nơi chứa chương trình con)

LAD STL Mô tả Toán hạng

n

─( JMP)

JMP Kn

Lệnh nhảy thực hiện việc chuyển

điều khiển đến nhãn n trong một

chương trình.

n:

CPU 212: 0÷63

CPU 214: 0÷255

JMP Kn

Lệnh khai báo nhãn n trong một

chương trình.

n

─( CALL)

CALL Kn

Lệnh gọi chương trình con, thực

hiện phép chuyển điều khiển đến

chương trình con có nhãn n.

n:

CPU 212: 0÷15

CPU 214: 0÷255

SBR Kn Lệnh gán nhãn cho một chương

trình con.

─( CRET)

CRET

Lệnh trở về chương trình đã gọi

chương trình con có điều kiện (bit

đầu của ngăn xếp có giá trị logic

bằng 1)

Không có

LBL: n

SBR:n

Page 46: Hệ thống bãi giữ xe ô tôt tự động

Phần II: Giới thiệu tổng quát về PLC Luận văn tốt nghiêp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 46

─( RET)

RET

Lệnh trở về chương trình đã gọi

chương trình con không điều kiện.

VII. SO SÁNH PLC VỚI CÁC HỆ THỐNG ĐIỀU KHIỂN KHÁC

PLC với hệ thống điều khiển bằng Relay

Việc phát triển hệ thống điều khiển bằng lập trình đã dần dần thay thế từng

bước điều khiển hệ thống bằng Relay trong các quá trình sản xuất. Khi thiết kế một

hệ thống điều khiển hiện đại, người kỹ sư phải cân nhắc, lựa chọn các hệ thống, hệ

thống điều khiển lập trình thường được sử dụng thay cho hệ thống điều khiển bằng

Relay do các nguyên nhân sau :

Thay đổi trình tự điều khiển một cách linh động.

Có độ tin cậy cao.

Khoảng không lắp đặt thiết bị nhỏ, không chiếm diện tích.

Có khả năng đưa tín hiệu điều khiển ở ngõ ra cao.

Sự chọn lựa dữ liệu một cách thuận lợi, dễ dàng.

Dễ dàng thay đổi cấu hình (hệ thống máy móc sản xuất) trong tương lai khi

có nhu cầu mở rộng sản xuất.

Đặc trưng cho hệ thống điều khiển chương trình là phù hợp với những nhu cầu

đã nêu trên, đồng thời về mặt kinh tế và thời gian thì hệ thống điều khiển lập trình

cũng vượt trội hơn hệ thống điều khiển cổ điển (Relay, Contactor,…). Hệ thống

điều khiển này cũng phù hợp với sự mở rộng hệ thống trong tương lai do không

phải đổi, bỏ hệ thống dây nối giữa hệ thống điều khiển và các thiết bị, mà chỉ đơn

giản là thay đổi chương trình cho phù hợp với điều kiện sản xuất mới.

PLC với máy tính

Cấu trúc giữa máy tính với PLC đều dựa trên bộ vi xử lý (CPU) để xử lý dữ

liệu. Tuy nhiên có một vài cấu trúc quan trọng cần phân biệt để thấy rõ sự khác biệt

giữa một PLC và một máy tính :

Không như máy tính, PLC được thiết kế đặc biệt để hoạt động trong môi

trường công nghiệp. Một PLC có thể được lắp đặt ở những nơi có độ nhiễu diện cao

Page 47: Hệ thống bãi giữ xe ô tôt tự động

Phần II: Giới thiệu tổng quát về PLC Luận văn tốt nghiêp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 47

(Electrical Noise), vùng có từ truờng mạnh, có các chấn động cơ khí, nhiệt độ môi

trường cao …

Điều quan trọng thứ hai đó là: một PLC được thiết kế với phần cứng và phần

mềm sao cho dễ lắp đặt (đối với phần cứng) đồng thời về mặt chương trình cũng

phải dễ dàng để người sử dụng (kỹ sư, kỹ thuật viên) thao tác lập trình một cách

nhanh chóng, thuận lợi (ví dụ: lập trình bằng ngôn ngữ hình thang… ).

PLC với máy tính cá nhân PC (Personal Computer):

Đối với một PC, người lập trình dễ nhận thấy được sự khác biệt giữa PC với

PLC, sự khác biệt có thể biết được như sau:

Máy tính không có các cổng giao tiếp trực tiếp với các thiết bị điều khiển,

đồng thời máy tính cũng hoạt động không tốt trong môi trường công nghiệp.

Ngôn ngữ lập trình trên máy tính không phải là dạng hình thang, máy tính

ngoài việc sử dụng các phần mềm chuyên biệt cho PLC, còn phải thông qua việc sử

dụng các phần mềm khác, làm "chậm" đi quá trình giao tiếp với các thiết bị được

điều khiển.

Tuy nhiên qua máy tính, PLC có thể dễ dàng kết nối với các hệ thống khác,

cũng như PLC có thể sử dụng bộ nhớ (có dung lượng rất lớn) của máy tính làm bộ

nhớ của PLC.

VIII. LỢI ÍCH CỦA VIỆC SỬ DỤNG PLC

Cùng với sự phát triển của phần cứng và phần mềm, PLC ngày càng tăng được

các tính năng cũng như lợi ích của PLC trong hoạt động công nghiệp. Kích thước

của PLC hiện nay được thu nhỏ lại để bộ nhớ và số lượng I/O càng nhiều hơn, các

ứng dụng của PLC càng mạnh hơn giúp người sử dụng giải quyết được nhiều vấn đề

phức tạp trong điều khiển hệ thống.

Lợi ích đầu tiên của PLC là hệ thống diều khiển chỉ cần lắp dặt một lần (đối

với sơ đồ hệ thống, các đường nối dây, các tín hiệu ở ngõ vào/ra …), mà không phải

thay đổi kết cấu của hệ thống sau này, giảm được sự tốn kém khi phải thay đổi lắp

đặt khi đổi thứ tự điều khiển (đối với hệ thống điều khiển Relay), khả năng chuyển

đổi hệ điều khiển cao hơn (như giao tiếp giữa các PLC để truyền dữ liệu điều khiển

lẫn nhau), hệ thống được điều khiển linh hoạt hơn.

Page 48: Hệ thống bãi giữ xe ô tôt tự động

Phần II: Giới thiệu tổng quát về PLC Luận văn tốt nghiêp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 48

Không như các hệ thống cũ, PLC có thể dễ dàng lắp đặt do chiếm một khoảng

không gian nhỏ hơn nhưng điều khiển nhanh, nhiều hơn các hệ thống khác. Điều

này càng tỏ ra thuận lợi hơn đối với các hệ thống điều khiển lớn, phức tạp, và quá

trình lắp đặt hệ thống PLC ít tốn thời gian hơn các hệ thống khác.

Cuối cùng là người sử dụng có thể nhận biết các trục trặc hệ thống của PLC

nhờ giao diện qua màn hình máy tính (một số PLC thế hệ sau có khả năng nhận biết

các hỏng hóc (trouble shoding) của hệ thống và báo cho người sử dụng), điều này

làm cho việc sửa chữa thuận lợi hơn.

IX. MỘT VÀI LĨNH VỰC TIÊU BIỂU ỨNG DỤNG PLC

Hiện nay PLC đã được ứng dụng thành công trong nhiều lĩnh vực sản xuất cả

trong công nghiệp và dân dụng. Từ những ứng dụng để điều khiển các hệ thống đơn

giản, chỉ có chức năng đóng/mở (ON/OFF) thông thường đến các úng dụng cho các

lĩnh vực phức tạp, đòi hỏi tính chính xác cao, ứng dụng các thuật toán trong quá

trình sản xuất. Các lĩnh vực tiêu biểu ứng dụng PLC hiện nay bao gồm:

Hóa học và dầu khí: Định áp suất (dầu), bơm dầu, điều khiển hệ thống ống

dẫn, cân đong trong ngành hóa …

Chế tạo máy và sản xuất: Tự động hóa trong chế tạo máy, cân đong, quá

trình lắp đặt máy, điều khiển nhiệt độ lò kim loại,… -Bột giấy, giấy, xử lý giấy :

điều khiển máy băm, quá trình ủ bột, quá trình cán, gia nhiệt, …

Thủy tinh và phim ảnh: quá trình đóng gói, thử nghiệm vật liệu, cân đong,

các khâu hoàn tất sản phẩm, đo cắt giấy, …

Thực phẩm, rượu bia, thuốc lá: đếm sản phẩm, kiểm tra sản phẩm, kiểm soát

quá trình sản xuất, bơm (bia, nước trái cây, …), cân đong, đóng gói, hòa trộn, …

Kim loại: điều khiển quá trình cán, cuốn (thép), quy trình sản xuất, kiểm tra

chất lượng.

Năng lượng: điều khiển nguyên liệu (cho quá trình đốt, xử lý trong các

turbin, …), các trạm cần hoạt động tuần tự khai thác vật liệu một cách tự động

(than, gỗ, dầu mỏ, …).

X. ỨNG DỤNG PLC VÀO CÁC QUY TRÌNH ĐIỀU KHIỂN TỰ ĐỘNG

Page 49: Hệ thống bãi giữ xe ô tôt tự động

Phần II: Giới thiệu tổng quát về PLC Luận văn tốt nghiêp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 49

Tự động hoá là một trong những yêu cầu căn bản của một nền công nghiệp

phát triển, đối với tự động hoá các quy trình điều khiển sẽ chính xác hơn, các sản

phẩm làm ra sẽ có chất lượng đồng nhất hơn và quan trọng nhất là do tiết kiệm được

chi phí nhân công và tiêu hao vật tư nên các sản phẩm này sẽ có giá thành rẽ hơn

các sản phẩm cùng loại sản xuất bằng tay.

Tự động hoá giải phóng người lao động khỏi những công việc nặng nhọc và

nguy hiểm, tạo điều kiện cho họ có nhiều thời gian hơn để nghiên cứu và cải tiến

các quy trình tự động hoá ngày càng tốt hơn.

Ngày nay, với sự phát triển của xã hội,nhu cầu về cuộc sống ngày càng cao,

tự động hoá không chỉ là ứng dụng trong công nghiệp mà xuất hiện ở khắp mọi nơi,

phục vụ cho mọi nhu cầu dân dụng của cuộc sống.

Trong giai đoạn ban đầu (khoảng cách giữa những thập niên 50 của thế kỷ 20) trong

các quy trình sản xuất của các ngành công nghiệp, một hệ thống điều khiển tự động

là tổ hợp phức tạp của các Rơle điện cơ. Tuy nhiên, các hệ thống có một số nhược

điểm :

Kích thước quá lớn và quá phức tạp đối với các hệ thống lớn, khó kiểm soát,

thời gian lắp đặt lâu.

Khi hoạt động xuất hiện hiện tượng hao mòn các tiếp điểm đóng ngắt nên

yêu cầu bảo dưỡng thường xuyên, do đó, tuổi thọ thiết bị thấp.

Hệ thống điều khiển Rơle là một hệ thống điều khiển theo quy trình cứng có

chức năng cố định, khi có yêu cầu thay đổi bất kỳ về quy trình hoạt động thì chỉ

thực hiện bằng cách nối lại hệ thống dây dẫn hoặc thay đổi thành hệ thống.

Page 50: Hệ thống bãi giữ xe ô tôt tự động

Phần III: Truyền thông sử dụng điều khiển FREEPORT Luận văn tốt nghiêp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 49

PHẦN III

TRUYỀN THÔNG SỬ DỤNG ĐIỀU KHIỂN FREEPORT

I.GIỚI THIỆU

Chế độ Freeport được sử dụng để điều khiển cổng truyền thông của CPU S7-

200 thông qua chương trình của người sử dụng. Ở chế độ Freeport, chương trình

CPU sử dụng các ngắt thu (receiveed interrupt), ngắt phát (transmited interrupt) và

các lệnh thu (RCV –Receive instruction) , lệnh phát (XMT – Transmit instruction)

để điều khiển cổng truyền thông của CPU. Ở chế độ này, giao thức truyền thông

được kiểm soát hoàn toàn bởi chương trình của người sử dụng. Các ô nhớ chuyên

dụng SMB30 ( đối với port 0) và SMB130 ( đối với port 1) được sử dụng để chọn

tốc độ truyền và bit chẵn / lẻ (parity).

Chế độ Freeport chỉ hoạt động khi CPU ở trạng thái RUN. Khi CPU ở trạng

thái STOP, chế độ Freeport ngưng hoạt động và chế độ truyền thông bình thường

được lập lại.

II.ỨNG DỤNG CỦA CHẾ ĐỘ FREEPORT

Chế độ Freeport cho phép CPU S7-200 giao tiếp với bất cứ thiết bị nào hỗ trợ

giao thức truyền thông 10 bit ( 7bit dữ liệu) hoặc 11 bit ( 7 hoặc 8 bit dữ liệu), vì

vậy, cho phép kết nối rất nhiều thiết bị khác nhau ( của nhiều nhà sản xuất khác

nhau ) vào mạng S7-200.

Trong trường hợp đơn giản nhất, có thể gởi dữ liệu đến máy in hoặc màn hình

chỉ sử dụng lệnh phát XMT. Các ví dụ khác bao gồm giao tiếp với thiết bị đọc bar

code, cân điện tử, máy hàn, các bộ cảm biến,... .Trong mỗi trường hợp cần phải viết

chương trình hỗ trợ giao thức truyền thông sử dụng bởi thiết bị cần kết nối.

Một ứng dụng quan trọng của chế độ Freeport là có thể sử dụng chế độ Freeport

để giao tiếp với cổng nối tiếp của máy tính cá nhân. Qua đó, người sử dụng có thể

viết chương trình máy tính ( bằng các ngôn ngữ thông dụng như C, Visual Basic,

Delphi,...) để giám sát và điều khiển hoạt động của CPU S7-200 hoặc mạng S7-200.

Page 51: Hệ thống bãi giữ xe ô tôt tự động

Phần III: Truyền thông sử dụng điều khiển FREEPORT Luận văn tốt nghiêp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 50

III.CÁC YÊU CẦU KĨ THUẬT

Cổng truyền thông của S7-200 là cổng RS-485. Do đó, khi kết nối với các

thiết bị sử dụng chuẩn truyền thông khác cần có thiết bị kết nối chuyên dụng để

chuyển đổi tín hiệu giữa 2 chuẩn sử dụng.

Trong trường hợp thiết bị cần kết nối sử dụng cổng truyền thông RS-232 có thể

sử dụng cáp MÁY TÍNH/PPI để kết nối. Tuy nhiên, thời gian quay vòng của cáp

MÁY TÍNH/PPI phải được tính đến trong chương trình: để đảm bảo không bị mất

dữ liệu, mỗi khi dữ liệu được truyền từ cổng RS-232 đến cổng RS-475, việc truyền

dữ liệu theo hướng ngược lại phải được trì hoãn một khoảng thời gian tối thiểu

bằng thời gian quay vòng của cáp (xem chương II).

Ngoài ra, cổng truyền thông RS-485 của CPU S7-200 chỉ hỗ trợ các tín hiệu thu

dữ liệu, phát dữ liệu và yêu cầu gởi (RTS). Các tín hiệu điều khiển CTS, DTR, các

tín hiệu bắt tay (handshaking) không được hỗ trợ. Điều này cũng cần được tính đến

khi thiết lập kết nối và lập trình sử dụng chế độ Freeport.

IV.KHỞI ĐỘNG CHẾ ĐỘ FREEPORT

Các ô nhớ chuyên dụng SMB30 và SMB130 được dùng để đặt cấu hình cho

port 0 và port 1 hoạt động ở chế độ Freeport, đồng thời cho phép chọn tốc độ

truyền, bit chẵn /lẻ và số bit dữ liệu. Các byte điều khiển này được mô tả trong bảng

sau:

Port 0 Port 1 Mô tả

Ô nhớ

SMB30

Ô nhớ

SMB130

MSB7 LSB0

p p d b b b m m Byte điềukhiển

chế độFreeport

SM30.6

SM30.7

SM130.6

SM130.7

pp : Chọn bit chẵn lẻ (parity)

00 = no parity

01 = even parity (parity chẵn)

10 = no parity

11 = odd parity (parity lẻ)

Page 52: Hệ thống bãi giữ xe ô tôt tự động

Phần III: Truyền thông sử dụng điều khiển FREEPORT Luận văn tốt nghiêp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 51

SM30.5 SM130.5

d : số bit dữ liệu trong 1 ký tự

0 = 8 bit cho 1 ký tự

1 = 7 bit cho 1 ký tự

SM30.2

đến

SM30.4

SM130.2

đến

SM130 .4

bbb: tốc độ truyền của chế độ Freeport

000 = 38400 baud (1920 baud đối với CPU 212)

001 = 19200 baud

010 = 9600 baud

011 = 4800 baud

100 = 2400 baud

101 = 1200 baud

110 = 600 baud

111 = 300 baud

SM30.0

SM30.1

SM130.0

SM130.1

mm : chọn giao thức .

00 = PPI chế độ slave

01 = chế độ Freeport

10 = PPI chế độ master

11 = dự trữ (mặc định là PPI chế độ slave)

Đối với port 0, một bit stop được thiết lập cho tất cả các cấu hình ngoại trừ

trường hợp 7 bit dữ liệu không có parity, trường hợp này có 2 bit stop. Đối với port

1, một bit stop được thiết lập cho tất cả các cấu hình .

Page 53: Hệ thống bãi giữ xe ô tôt tự động

Phần IV: Truyền thông nối tiếp dùng Visual Basic Luận văn tốt nghiệp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 52

PHẦN IV

TRUYỀN THÔNG NỐI TIẾP DÙNG VISUAL BASIC

I. TRUYỀN THÔNG NỐI TIẾP DÙNG VISUAL BASIC

Bình thường, khi chạy phần mềm Visual Basic ta chỉ thấy một số thành phần

quen thuộc trên hộp công cụ. Nhưng VB cho phép nhiều thành phần có thể bổ sung

thêm vào. Điều khiển truyền thông Mscomm của Visual Basic là một trong số các

đối tượng được bổ sung để tham gia vào một số việc truyền nhận dữ liệu thông qua

cổng nối tiếp.

Trong Visual Basic 6.0 ta có thể bổ sung thành phần Mscomm như sau :

Chọn Project( Component(ctrl-t) sẽ xuất hiện cửa sổ. Sau đó chọn Microsoft Comm

Control 6.0, Mscomm sẽ xuất hiện trên thanh công cụ.

Điều khiển truyền thông cung cấp hai khả năng để trao đổi thông tin :

Điều khiển sự kiện

Truyền thông điều khiển sự kiện là phương pháp tốt nhất được sử dụng trong

quá trình trao đổi thông tin nối tiếp khi nó giải phóng máy tính để làm các công việc

khác. Trong nhiều tình huống, ta cần được thông báo về sự thay đổi. Thí dụ như ta

cần biết khi có ký tự gửi đến hoặc sự thay đổi xảy ra trên đường DCD (Data Carier

Detect) hoặc đường RTS (Request to send). Để làm điều đó, ta sẽ phải dùng sự kiện

truyền thông OnComm để bẫy và điều khiển các sự kiện. Điều khiển truyền thông

còn phát hiện và điều khiển các lỗi truyền thông.

Hỏi vòng ( Polling )

Ta cũng có thể hỏi vòng các sự kiện và lỗi bằng cách kiểm tra giá trị của đặc

tính ComEvent sau mỗi chu kỳ của chương trình để xác định xem liệu một sự kiện

hoặc một lỗi đã xuất hiện. Chẳng hạn ,chương trình có thể tạo vòng lặp để chờ một

ký tự cần được nhận. Cứ mỗi lần như vậy, ký tự được đọc từ bộ đệm nhận. Thông

thường, phương pháp này được sử dụng khi chương trình có thời gian để tiến hành

hỏi vòng bộ nhận thông tin, hay nói cách khác là trong những ứng dụng không lớn.

Đặc tính

Thành phần comm. Được bổ sung vào biểu mẫu (form) bất cứ lúc nào cần

đến việc truyền thông nối tiếp.

Page 54: Hệ thống bãi giữ xe ô tôt tự động

Phần IV: Truyền thông nối tiếp dùng Visual Basic Luận văn tốt nghiệp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 53

Theo mặc định, cổng thứ nhất tạo ra đối tượng có tên là MSComm1, đối

tượng thứ hai là MSComm2,…

Thí dụ chỉ ra cách truyền thông qua cổng nối tiếp có thể được tiến hành như

thế nào bằng cách sử dụng một MODEM.

Private sub Form_load()

Dim Instring as String

Mscomm1.ComPort=1

‘sử dụng COM1

Mscomm1.Setting=”9600,N,8,1”

‘9600baud,no parity,8bit data,1bit stop

Mscomm1.InputLen=0

‘Mscomm đọc heat bộ đệm nhận khi dùng lệnh Input

Mscomm1.PortOpen=True

‘mở cổng

Mscomm1.Output=”ATVQ0”&Chr$(13)

‘gửi lệnh attention tới MODEM

‘đợi dữ liệu trở lại cổng nối tiếp

Do

DoEvents

Buffer$=Buffer$&Mscomm1.Input

Loop Until InStr(Buffer$,”OK”&vbCRLF)

‘đọc dữ liệu trả lời “OK”

Mscomm1.PortOpen=False

‘đóng cổng nối tiếp

End Sub

Settings:

Các đặc tính settings đặt và trả lại các thông số truyền thông cho cổng RS-

232, như tốc độ baud, chẳn lẻ, số bit dữ liệu và số các bit dừng.

Cú pháp của câu lệnh là:

[form]MSComm.Setting[=param.String$]

Page 55: Hệ thống bãi giữ xe ô tôt tự động

Phần IV: Truyền thông nối tiếp dùng Visual Basic Luận văn tốt nghiệp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 54

Nếu paramString không có khi mở cổng thì điều khiển truyền thông phát sinh

ra lỗi 380.

Paramstring là một xâu chứa bốn thông số thiết lập cho cổng RS-232 và có

dạng như sau:

“BBBB, P, D, S”

Ở đây, BBBB xác định tốc độ baud, P là bit chỉ tính chẳn lẻ, D là số bit dữ

liệu, và S là số các bit dừng (bit stop). Giá trị mace định của Paramstring là:

“9600, N, 8, 1”

Comport :

Đặc tính này đặt và trả lại số cổng truyền thông. Cú pháp của câu lệnh là:

[form]MSComm.CommPort[=port number%]

Trong khi thiết kế ta có thể đặt portnumber bằng một giá trị name trong

khoảng từ 1 đến 99(giá trị mace định là 1). Trước khi dùng lệnh này, phải thiết lập

cổng bằng CommPort. Nếu ta dùng đặc tính PortOpen trước khi thiết lập cổng bằng

CommPort thì điều khiển truyền thông sinh ra lỗi 68 (lỗi chu6a có thiết bị hoặc

cổng không tồn tại).

Đặc tính PortoPen

Đặc tính PortOpen đặt và trả lại trạng thái của cổng truyền thông (đóng hoặc

mở). Đặc tính này không có trong thời gian thiết kế chương trình. Cú pháp câu lệnh

là:

[form]MSComm.PortOpen[=True/False]

Thông số thiết lập là True để mở cổng, còn False để đóng (giải phóng) cổng và

xoá nội dung các bộ đệm nhận và truyền (tác động này tự động xảy ra khi một ứng

dụng được đóng).

Trước khi dùng đặc tính này, phải đặt số cổng bằng đặc tính CommPort, nếu ta

quên đi đặc điểm này thì lỗi 68 phát sinh.

Thí dụ về mở cổng truyền thông số 1(COM1) với tốc độ Baud là 4800 Baud,

không kiểm tra tính chẳn lẻ, 8 bit dữ liệu, 1 bit stop.

MSComm1.Setting=”4800, N, 8, 1”

Kiểu dữ liệu MSComm1. Setting là String.

Page 56: Hệ thống bãi giữ xe ô tôt tự động

Phần IV: Truyền thông nối tiếp dùng Visual Basic Luận văn tốt nghiệp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 55

Đặc tính Input

Input trả lại và xoá bỏ một chuỗi ký tự từ bộ đệm nhận. Đặc tính này không có

sẵn trong khi thiết kế và là chỉ đọc (Read_only) khi chạy chương trình. Cú pháp của

câu lệnh là:

[form]MSComm.Input

Đặc tính InputLen qui định số ký tự được đọc bởi câu lệnh Input. Để xác định

số các ký tự trong bộ đệm, đặc tính InBufferCount được kiểm tra. Đặt InputLen

bằng 0 để đọc heat bộ đệm nhận.

Đặc tính InputMode quyết định kiểu dữ liệu thu về qua đặc tính Input. Nếu

đặc tính này được đặt là CommInputModeText thì đặc tính Input sẽ trả về dữ liệu

kiểu Text. Nếu đặc tính này được đặt là CommInputModeBinary thì Input sẽ trả về

dữ liệu nhị phân.

Thí dụ chỉ cách đọc dữ liệu từ bộ đệm nhận :

Mscomm1.InputLen=0

‘đọc toàn bộ nội dung của bộ đệm nhận

If Mscomm1.InBufferCount then

‘kiểm tra có dữ liệu hay không

InString$=Mscomm1.Input

End if

Kiểu dữ liệu của đặc tính này là Variant

Đặc tính InBufferSize

Đặt và trả lại kích thước bộ đệm nhận, tính theo số byte.Cú pháp của câu lệnh

là :

[form]Mscomm.InBufferSize[=numbyte%]

Đặc tính này có liên quan đến kích thước bộ đệm nhận. Giá trị mặc định là

1024 bytes. Kích thước của bộ đệm phải được đặt sao cho nó có thể cất giữ được số

lớn nhất của các ký tự sẽ được nhận trước khi chương trình ứng dụng có thể đọc

chúng từ bộ đệm, trừ khi ta làm việc ở chế độ bắt tay (handshaking).

Kiểu dữ liệu của đặc tính này là Integer

Page 57: Hệ thống bãi giữ xe ô tôt tự động

Phần IV: Truyền thông nối tiếp dùng Visual Basic Luận văn tốt nghiệp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 56

Đặc tính InBufferCount

Trả lại số ký tự trong bộ đệm nhận. Nó cũng có thể được dùng để xoá bộ đệm

bằng cách đặt số của các ký tự bằng 0. Đặc tính này không có trong thời gian thiết

kế chương trình. Cú pháp của câu lệnh này là:

[form]Mscomm.InBufferCount[=Count%]

Ta có thể xoá bộ đệm nhận bằng cách đặt đặc tính InBufferCount=0

Kiểu dữ liệu của đặc tính này là Integer.

Đặc tính Output

Đặc tính Output sẽ viết một chuỗi ký tự vào bộ đệm truyền, đặc tính này

không có trong thời gian thiết kế chương trình. Cú pháp của câu lệnh này là :

Mscomm1.Output[=OutString$]

Thí dụ sau cho biết cách gửi ký tự mà người gõ từ bàn phím:

Private Sub Form_load(key Ascii as Integer)

Mscomm1.Outport=Chr$(Key Ascii)

End sub

Đặc tính Output có thể xuất dữ liệu dạng Text hay Binary. Để gửi dữ liệu

Text, ta phải khai báo một biến Variant và cho nó chứa chuỗi muốn gửi sau đó gán

biến này cho một đặc tính Output. Để gửi dữ liệu Binary, ta phải truyền một biến

Variant chứa một mảng các byte cho đặc tính Output.

Kiểu dữ liệu của dạng này là Variant.

Đặc tính OutputBufferSize

Đặc tính này đặt và trả lại kích thước của các ký tự trong bộ đệm truyền. Cú

pháp của câu lệnh này là :

[form]Mscomm.OutputBufferSize[=numbyte%]

Giá trị mặc định của đặc tính này là 512 bytes

Chú ý:

Không được nhầm lẫn giữa hai đặc tính OutBufferCount và OutBufferSize với

nhau. Đặc tính OutBufferCount nói lên số byte hiện đang có trong bộ đệm truyền,

còn OutBufferSize qui định tổng kích thước của bộ đệm truyền.

Không nên để kích thước của bộ đệm truyền quá lớn. Tuy nhiên, nếu để quá

nhỏ sẽ xảy ra hiện tượng tràn dữ liệu (trừ khi làm việc ở chế độ bắt tay). Thông

Page 58: Hệ thống bãi giữ xe ô tôt tự động

Phần IV: Truyền thông nối tiếp dùng Visual Basic Luận văn tốt nghiệp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 57

thường nên bắt đầu kích thước bộ đệm truyền 512 bytes. Nếu lỗi tràn xảy ra phải

tăng kích thước bộ đệm thích hợp.

Đặc tính OutBufferCount:

Đặc tính này trả lại số ký tự trong bộ đệm truyền. Nhờ đặc tính này, ta có thể

xoá nội dung bộ đệm truyền bằng cách đặt giá trị của OutBufferCount=0.Cú pháp

của câu lệnh này là:

[form]Mscomm.OutBufferCount[=value%]

Kiểu dữ liệu của đặc tính này là Integer.

Đặc tính SThreshold

Đặt và trả lại số ký tự tối thiểu của các ký tự có thể cho phép trong bộ đệm

truyền trước khi điều khiển truyền thông xác lập đặc tính CommEvent và phát sinh

sự kiện OnComm. Xác lập đặc tính SThreshold bằng 0 để vô hiệu hoá sự phát sinh

sự kiện OnComm. Ngược lại, nếu đặt SThreshold bằng 1 thì điều khiển truyền

thông phát sinh sự kiện OnComm (sự kiện OnComm được gọi) khi bộ đệm truyền

không có dữ liệu (hay bộ đệm truyền rỗng). Cú pháp của câu lệnh này là :

[form}MScomm.SThreshold[=numChars%]

II.CƠ SỞ DỮ LIỆU

1. Giới thiệu Cơ sở dữ liệu

Cơ sở dữ liệu là một kho chứa thông tin. Có nhiều loại cơ sở dữ liệu, nhưng

trong đề tài này chỉ quan tâm đến cơ sở dữ liệu quan hệ, là kiểu cơ sở dữ liệu phổ

biến nhất hiện nay.

Một cơ sở dữ liệu quan hệ:

Chứa dữ liệu trong các bảng, được cấu tạo bởi các dòng còn gọi là các mẩu tin,

và cột còn gọi là các trường

Cho phép lấy về (hay truy vấn) các tập hợp dữ liệu con từ các bảng.

Cho phép nối các bảng với nhau cho mục đích truy nhập các mẩu tin liên quan

với nhau chứa trong các bảng khác nhau.

Page 59: Hệ thống bãi giữ xe ô tôt tự động

Phần IV: Truyền thông nối tiếp dùng Visual Basic Luận văn tốt nghiệp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 58

Thiết kế cơ sở dữ liệu :

Để tạo một cơ sở dữ liệu, trước hết, ta phải xác định thông tin gì cần theo dõi.

Sau đó, ta thiết kế cơ sở dữ liệu, tạo bảng chứa các trường định nghĩa kiểu dữ liệu

sẽ có. Sau khi tạo ra cấu trúc cơ sở dữ liệu, cơ sở dữ liệu có thể chứa dữ liệu dưới

dạng mẩu tin. Ta không thể đưa dữ liệu vào mà không có bảng hay định nghĩa

trường vì dữ liệu sẽ không có chổ để chứa. Do đó, thiết kế cơ sở dữ liệu cực kỳ

quan trọng, nhất là rất khó thay đổi thiết kế một khi ta đã tạo xong nó.

Bảng ( tables ): chứa các mẩu tin là các mẩu dữ liệu riêng rẽ bên trong phân

nhóm dữ liệu.

Mẩu tin : chứa các trường( field ) . Mỗi trường thể hiện một bộ phận dữ liệu

trong một mẩu tin. Ví dụ như mổi mẩu tin thể hiện một mục trong danh bạ địa chỉ

chứa các trường tên và họ, địa chỉ, thành phố, số điện thoại.

Recordset là một cấu trúc dữ liệu thể hiện một tập hợp con các mẩu tin lấy về

từ cơ sở dữ liệu. Về khái niệm, nó tương tự một bảng nhưng có thêm một vài thuộc

tính riêng biệt quan trọng.

Các recordset được thể hiện như là các đối tượng, về khái niệm tương tự như

là các đối tượng giao diện người sử dụng ( như là một nút lệnh và hộp văn bản trong

Visual Basic)

2. Sử dụng Microsoft Access để tạo một cơ sở dữ liệu

Microsoft Access có một giao diện tinh xảo và dể dàng để tạo các đối tượng cơ

sở dữ liệu . Quan hệ giữa các bảng

a.Quan hệ Một - Một

Là loại quan hệ dễ hiểu và dể thực hiện nhất, bởi vì trong những mối quan hệ

như vậy, một bảng sẽ lấy vị trí của một trường trong bảng khác; trường liên quan

cũng dễ nhận dạng. Tuy nhiên, quan hệ một - một không phải là mối quan hệ thông

dụng nhất trong ứng dụng cơ sở dữ liệu.

b.Quan hệ Một - Nhiều

Page 60: Hệ thống bãi giữ xe ô tôt tự động

Phần IV: Truyền thông nối tiếp dùng Visual Basic Luận văn tốt nghiệp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 59

Phổ biến hơn quan hệ Một - Một, trong đó, mỗi mẩu tin trong một bảng này

không có, hoặc có một, hoặc nhiều mẩu tin trong một bảng liên hệ

c.Quan hệ Nhiều - Nhiều

Quan hệ Nhiều - Nhiều là bước phát triển của quan hệ Một - Nhiều. Ví dụ cổ

điển nhất của quan hệ Nhiều - Nhiều là học sinh và lớp. Mổi học sinh có nhiều lớp,

mỗi lóp có nhiều học sinh.

3.Liên kết Cơ sở dữ liệu( Access ) với Visual Basic

a.Sử dụng điều khiển DAO DATA

Ta có thể sử dụng điều khiển DAO Data để kết nối với một cơ sở dữ liệu Jet

của Microsoft. Mặc dù với sự xuất hiện của điều khiển mạnh hơn, ADO Data, việc

sử dụng điều khiển DAO Data bị giảm bớt, nhưng vẫn tồn tại lý do để sử dụng điều

khiển cổ điển DAO Data. Ngoài ra, nó còn có khả năng kết nối với các nguồn dữ

liệu như các tập tin dBASE, văn bản, bảng tính Excel.

b.Sử dụng điều khiển ADO DATA

Để tạo một ứng dụng dùng điều khiển ADO Data rất đơn giản. Thực ra, nếu

những gì ta quan tâm chỉ là duyệt cơ sở dữ liệu thì ta không cần phải lập trình gì cả.

Đây là một quy trình gồm hai bước quy định thuộc tính ConnectionString và

RecordSource của điều khiển Data, sau đó ràng buộc điều khiển với điều khiển giao

diện người sử dụng. Để thực hiện điều này, ta theo các bước sau:

Bắt đầu một đề án mới của Visual Basic

Dùng menu Project Components, lập trình tham chiếu đến “Microsoft ADO

Data Control 6.0 (OLEDB) bằng cách chọn vào hộp đánh dấu trong danh sách.

Nhấn OK. Điều khiển ADO Data xuất hiện trên thanh công cụ của Visual

Basic. Nhấn đúp chuột lên điều khiển để tạo một instance của điều khiển trên biểu

mẩu.

Hình 7: Điều khiển ADO Data

Page 61: Hệ thống bãi giữ xe ô tôt tự động

Phần IV: Truyền thông nối tiếp dùng Visual Basic Luận văn tốt nghiệp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 60

Nhấn nút phải chuột lên điều khiển. Từ menu bật ra, chọn ADODC

Properties. Chọn “User Connection Srting” rồi nhấn Build.

Hộp thoại Data Link Properties xuất hiện. Đây là hộp thoại ta dùng để kết

nối với cơ sở dữ liệu. Sau đó nhấn nút OK khi hoàn tất.

Đến đây bạn đã quay lại hộp thoại Property Pages của điều khiển ADO Data.

Kế tiếp, ta thông báo cho điều khiển bảng nào sẽ được dùng. Chọn tab

RecordSource, rồi chọn 2 – adCmdTable từ hộp kết hợp CommandType.

Chọn hợp kết hợp Table ỏ Stored Procedure Name. Hộp kết hợp hiển thị

danh sách tất cả các bảng trong cơ sở dữ liệu. Chọn tblCustomer, rồi nhấn OK.

Kết nối đến cơ sở dữ liệu xảy ra khi ứng dụng thi hành. Tuy nhiên kết nối

không có thông báo, bởi vì không có cách nào để hiển thị dữ liệu. Để hiển thị dữ

liệu trả về từ một điều khiển dữ liệu, ta phải tạo các điều khiển kết nối ràng buộc

với điều khiển dữ liệu bằng cách gán thuộc tính Datasource và DataField.

Cài đặt và thiết lập tham chiếu đến ADO trong ứng dụng Visual Basic

Trong đề án Visual Basic, chọn Project, References.

Hộp thoại References xuất hiện.

Chọn vào hộp đánh dấu “Microsoft AtiveX Data Objects 2.0 Library” rồi

nhấn OK.

Dùng đối tượng Connection của ADO để kết nối với nguồn dữ liệu

Đây là cách thứ hai liên kết với nguồn dữ liệu mà không thông qua điều khiển

ADO Data.

Dùng phương thức Open của đối tượng Connection để thiết lập kết nối với

nguồn dữ liệu. Để thông báo cho ADO cách nối với nguồn dữ liệu, ta phải cung cấp

thông tin dưới dạng chuỗi kết nối tương tự chuỗi kết nối của ODBC. Ta dùng thuộc

tính ConnectionString để thực hiện điều này. Ta còn có khả năng tùy chọn để chọn

trình cung cấp nào sẽ được dùng bằng cách quy định giá trị của thuộc tính Provider

của đối tượng Connection.

Ví dụ: Cách khai báo biến kết nối với nguồn dữ liệu

Page 62: Hệ thống bãi giữ xe ô tôt tự động

Phần IV: Truyền thông nối tiếp dùng Visual Basic Luận văn tốt nghiệp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 61

Option Explicit

Dim dl as New ADODB. Connection ‘ Biến kết nối với nguồn dữ liệu

Dim rs as New ADODB. Recordset ‘ Biến truy cập đến các bảng trong nguồn dữ

liệu

Public Sub ADOconnect()

Dim dbpath As String

dbpath = App.Path & "\DATA.mdb" ‘ đường dẩn đến nguồn dữ liệu

Set DL = New ADODB.Connection

With DL

.ConnectionString = "Provider=microsoft.jet.oledb.4.0; data source=" & bpath

.CommandTimeout = 0

.CursorLocation = adUseClient

.Open

End With

End Sub

Page 63: Hệ thống bãi giữ xe ô tôt tự động

Phần V: Lập trình ứng dụng Luận văn tốt nghiêp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 62

PHẦN V

LẬP TRÌNH ỨNG DỤNG

I.PHÂN TÍCH CÁC NGÕ VÀO RA

Qui ước

Bãi xe chứa tối đa 100 xe.

Khi bãi xe trống đèn xanh sáng cho phép xe vào, khi bãi xe đầy, đèn đỏ

sáng báo hiệu xe không được vào.

Cảm biến S1 là cảm biến từ đặt dưới mặt đất trước cửa vào để nhận biết có

xe vào bãi xe.

Cảm biến S5 là cảm biến quang đặt sau cửa vào để biết xe đã vào bãi xe để

đóng cửa vào đồng thời S5 cũng là cảm biến phân loại cho xe 4 chỗ vào bãi xe.

Cảm biến S4 là cảm biến quang đặt ở độ cao 2m để loại bỏ sự phân loại cho

xe 4 chỗ vào. Khi đồng thời chỉ 2 cảm biến S4 và S5 nhận biết được tín hiệu tức là

có xe 7 chỗ vào bãi xe.

Cảm biến S3 là cảm biến quang đặt cách cảm biến quang S5 một khoảng cách

khoảng 4m để loại bỏ sự phân loại của xe 4 chỗ và xe 7 chỗ vào bãi xe. Khi đồng

thời cả 3 cảm biến S5, S4 và S3 nhận biết được tín hiệu tức là có xe 12 chỗ vào bãi

xe.

Cảm biến S2 là cảm biến quang đặt cách cảm biến quang S5 một khoảng cách

khoảng 8m để loại bỏ sự phân loại xe 4 chỗ, xe 7 chỗ và xe 12 chỗ vào bãi xe. Khi

Page 64: Hệ thống bãi giữ xe ô tôt tự động

Phần V: Lập trình ứng dụng Luận văn tốt nghiêp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 63

đồng thời cả 4 cảm biến S5, S4, S3 và S2 nhận biết được tín hiệu tức là có xe 30 chỗ

vào bãi xe.

Cảm biến S6 là cảm biến từ đặt dưới mặt đất trước cửa ra để nhận biết có xe

ra.

Cảm biến S10 là cảm biến quang đặt sau cửa ra để biết xe đã ra khỏi bãi xe để

đóng cửa ra đồng thời S10 cũng là cảm biến phân loại cho xe 4 chỗ ra khỏi bãi xe.

Cảm biến S9 là cảm biến quang đặt ở độ cao 2m để loại bỏ sự phân loại cho

xe 4 chỗ ra khỏi bãi xe. Khi đồng thời chỉ 2 cảm biến S10 và S9 nhận biết được tín

hiệu tức là có xe 7chỗ ra khỏi bãi xe.

Cảm biến S8 là cảm biến quang đặt cách cảm biến quang S10 một khoảng

cách khoảng 4m để loại bỏ sự phân loại của xe 4 chỗ và xe 7 chỗ ra khỏi bãi xe.Khi

đồng thời cả 3 cảm biến S10, S9 và S8 nhận biết được tín hiệu tức là có xe 12 chỗ ra

khỏi bãi xe.

Cảm biến S7 là cảm biến quang đặt cách cảm biến quang S10 một khoảng

cách khoảng 8m để loại bỏ sự phân loại xe 4 chỗ, xe 7 chỗ và xe 12 chỗ ra khỏi bãi

xe. Khi đồng thời cả 4 cảm biến S10, S9, S8 và S7 nhận biết được tín hiệu tức là có xe

30 chỗ ra khỏi bãi xe.

Page 65: Hệ thống bãi giữ xe ô tôt tự động

Phần V: Lập trình ứng dụng Luận văn tốt nghiêp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 64

Mô hình bãi giữ xe

Page 66: Hệ thống bãi giữ xe ô tôt tự động

Phần V: Lập trình ứng dụng Luận văn tốt nghiêp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 65

Page 67: Hệ thống bãi giữ xe ô tôt tự động

Phần V: Lập trình ứng dụng Luận văn tốt nghiêp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 66

Page 68: Hệ thống bãi giữ xe ô tôt tự động

Phần V: Lập trình ứng dụng Luận văn tốt nghiêp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 67

Qui định các ngõ vào ra , Timer và Counter

Các ngõ vào :

Cảm biến S1:

I0.0 = 0 : không có xe

I0.0 = 1 : có xe

Cảm biến S2 :

I0.1 = 0 : không có xe

I0.1 = 1 : có xe

Cảm biến S3 :

I0.2 = 0 : không có xe

I0.2 = 1 : có xe

Cảm biến S4 :

I0.3 = 0 : không có xe

I0.3 = 1 :có xe

Cảm biến S5 :

I0.4 = 0 : không có xe

I0.4 = 1 : có xe

Cảm biến S6 :

I0.5 = 0 : không có xe

I0.5 = 1 : có xe

Cảm biến S7 :

I0.6 = 0 : không có xe

I0.6 = 1 : có xe

Cảm biến S8 :

I0.7 = 0 : không có xe

I0.7 = 1 : có xe

Cảm biến S9 :

I1.0 = 0 : không có xe

I1.0 = 1 : có xe

Page 69: Hệ thống bãi giữ xe ô tôt tự động

Phần V: Lập trình ứng dụng Luận văn tốt nghiêp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 68

Cảm biến S10:

I1.1 = 0 : không có xe

I1.1 = 1 : có xe

Công tắc hành trình dưới tại cửa vào (CT1)

I1.2 = 0 : khi không bị thanh gạt tác động

I1.2 = 1 : khi bị thanh gạt tác động

Công tắc hành trình trên tại cửa vào (CT2)

I1.3 = 0 : khi không bị thanh gạt tác động

I1.3 = 1 : khi bị thanh gạt tác động

Công tắc hành trình dưới tại cửa ra (CT3)

I1.4 = 0 : khi không bị thanh gạt tác động

I1.4 = 1 : khi bị thanh gạt tác động

Công tắc hành trình trên tại cửa ra (CT4)

I1.5 = 0 : khi không bị thanh gạt tác động

I1.5 = 1 : khi bị thanh gạt tác động

Các ngõ ra :

Cửa vào :

Q0.0 = 0 : không mở cửa

Q0.0 = 1 : mở cửa

Q0.1 = 0 : không đóng cửa

Q0.1 = 1 : đóng cửa

Cửa ra :

Q0.2 = 0 : không mở cửa

Q0.2 = 1 : mở cửa

Q0.3 = 0 : không đóng cửa

Q0.3 = 1 : đóng cửa

Đèn xanh :

Q0.4 = 0 : đèn xanh tắt

Q0.4 = 1 : đèn xanh sáng

Page 70: Hệ thống bãi giữ xe ô tôt tự động

Phần V: Lập trình ứng dụng Luận văn tốt nghiêp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 69

Đèn đỏ :

Q0.5 = 0 : đèn đỏ tắt

Q0.5 = 1 : đèn đỏ sáng

Đèn chiếu sáng :

Q0.6 = 0 : không bật đèn

Q0.6 = 1 : bật đèn

Sự cố :

Q1.0 = 0 : không có sự cố

Q1.0 = 1 : có sự cố

Counter :

C48 đếm xe 4 chỗ hiện có trong bãi xe.

C49 đếm xe 7 chỗ hiện có trong bãi xe.

C50 đếm xe 12 chỗ hiện có trong bãi xe.

C51 đếm xe 30 chỗ hiện có trong bãi xe.

C52 chứa kết quả của xe 7 chỗ nhân 2.

C53 chứa kết quả của xe 12 chỗ nhân 3.

C54 chứa kết quả của xe 30 chỗ nhân 4.

C55 chứa kết quả cộng của C48 và C52

C56 chứa kết quả cộng của C53 và C54

C57 chứa kết quả cộng của C55 và C56 (C57 chứa tổng số xe hiện

còn trong bãi xe).

Timer :

T37 là thời gian tối đa để mở cửa vào.

T38 là thời gian tối đa để mở cửa ra.

Page 71: Hệ thống bãi giữ xe ô tôt tự động

Phần V: Lập trình ứng dụng Luận văn tốt nghiêp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 70

Bắt đầu

Có xe vào

Mở cửa vào

Mở xong

Ngừng mở

Kích Timer

<10s

Xe đã vào

Phân loại xe vào

Xe 4 chỗ

Xe 7 chỗ

Xe 12 chỗ

Xe 30 chỗ

Đếm xe vào ( xe 4 chỗ + xe 7 chỗ x 2 +

xe 12chỗ x 3 + xe 30chỗ x 4)

Hiệu số

Có xe ra

Mở cửa ra

Mở xong

Ngừng mở

Kích Timer

<10s

Xe đã ra

Phân loại xe ra Tính tiền

Y

Y

N

N

Đóng cửa vào

Đóng xong

Đếm xe ra ( xe 4 chỗ + xe 7 chỗ x 2 +

xe 12chỗ x 3 + xe 30chỗ x 4)

Đóng cửa ra

Đóng xong

Ngưng đóng Kết thúc

N

Y

N

Y

Y

N

Xekhácvào Y

N

Y

Y

Y

Y

N

N

N Xe khác ra

Y

Y

Y

Y

Y

Y

Y

Y

N

N

Y

<100

Đèn xanh CAR

EMPTY

Đèn đỏ CAR FULL

PART

Y N

Ngưng đóng

N

N

II. LƯU ĐỒ GIẢI THUẬT

Page 72: Hệ thống bãi giữ xe ô tôt tự động

Phần V: Lập trình ứng dụng Luận văn tốt nghiêp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 71

III.GIAO DIỆN GIAO TIẾP MÁY TÍNH

Page 73: Hệ thống bãi giữ xe ô tôt tự động

Phần V: Lập trình ứng dụng Luận văn tốt nghiêp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 72

Page 74: Hệ thống bãi giữ xe ô tôt tự động

Phần V: Lập trình ứng dụng Luận văn tốt nghiêp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 73

Page 75: Hệ thống bãi giữ xe ô tôt tự động

Phần V: Lập trình ứng dụng Luận văn tốt nghiêp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 74

IV.VIẾT CODE CHO GIAO DIỆN

Code Form Giao diện giao tiếp

Option Explicit

Dim Nhan() As Byte

' KHAI BAO BIEN DE KET NOI CSDL

Dim sqlLuuDL As String

Public rsLuuDL As New ADODB.Recordset

Dim sqlXera As String

Public rsCapnhatXera As New ADODB.Recordset

Dim sqlPhanloaixe As String

Dim rsPhanloaixe As New ADODB.Recordset

Public Soxe As String

Public Loaixe As String

Dim sott As Integer

Public ngayvao As Date

Dim giovao As String

Dim ngayra As Date

Dim giora As String

Public thanhtien As Double

Public thoigian As String

Private Sub Chitiet_Click()

Load Baixe

Baixe.Show

End Sub

Private Sub ClosePort_Click()

If MSComm1.PortOpen = True Then

MSComm1.PortOpen = False

OPENPORT.Enabled = True

sco.Enabled = True

Page 76: Hệ thống bãi giữ xe ô tôt tự động

Phần V: Lập trình ứng dụng Luận văn tốt nghiêp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 75

End If

End Sub

Private Sub CmbXera_Click()

Dim soxe1 As String

soxe1 = CmbXera.Text

rsCapnhatXera.Find "[so xe] = '" & soxe1 & "'", , , adBookmarkFirst

If Not rsCapnhatXera.EOF Then

txtLoaixera.Text = rsCapnhatXera.Fields(1)

End If

End Sub

Private Sub CmbXera_Change()

Dim soxe1 As String

soxe1 = CmbXera.Text

rsCapnhatXera.Find "[so xe] = '" & soxe1 & "'", , , adBookmarkFirst

If Not rsCapnhatXera.EOF Then

txtLoaixera.Text = rsCapnhatXera.Fields(1)

End If

End Sub

Private Sub cmdBoqua_Click()

txtSoxevao.Text = ""

CmbLoaixevao.Text = "Chon loai xe"

CmbXera.Text = "Xe ra"

txtLoaixera.Text = "Chon loai xe"

txtSoxevao.Enabled = False

CmbLoaixevao.Enabled = False

CmbXera.Enabled = False

txtLoaixera.Enabled = False

CmdLuuVao.Enabled = False

CmdLuuRa.Enabled = False

End Sub

Page 77: Hệ thống bãi giữ xe ô tôt tự động

Phần V: Lập trình ứng dụng Luận văn tốt nghiêp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 76

Private Sub CmdPhanloaixe_Click()

Load Form5

Form5.Show

End Sub

Private Sub lbxevao_Click()

txtSoxevao.Enabled = True

CmbLoaixevao.Enabled = True

CmbXera.Enabled = False

txtLoaixera.Enabled = False

lbxevao.ForeColor = &HFF0000

txtLoaixera.Text = "Loai xe ra"

CmbXera.Text = "Xe ra"

txtSoxevao.Text = ""

CmdLuuRa.Enabled = False

CmdLuuVao.Enabled = True

cmdBoqua.Enabled = True

End Sub

Private Sub lbxera_Click()

CmdLuuVao.Enabled = False

CmdLuuRa.Enabled = True

cmdBoqua.Enabled = True

txtSoxevao.Text = "Xe vao"

txtSoxevao.Enabled = False

CmbLoaixevao.Enabled = False

CmbXera.Enabled = True

txtLoaixera.Enabled = True

txtLoaixera.Locked = True

lbxera.ForeColor = &HFF0000

sqlXera = "SELECT * FROM CHITIET"

Set rsCapnhatXera = LayDL(sqlXera)

Page 78: Hệ thống bãi giữ xe ô tôt tự động

Phần V: Lập trình ứng dụng Luận văn tốt nghiêp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 77

rsCapnhatXera.Sort = "[so xe] ASC"

If rsCapnhatXera.RecordCount > 0 Then

rsCapnhatXera.MoveFirst

Do While Not rsCapnhatXera.EOF

CmbXera.AddItem rsCapnhatXera.Fields(2)

rsCapnhatXera.MoveNext

Loop

rsCapnhatXera.MoveFirst

CmbXera.Text = rsCapnhatXera.Fields(2)

txtLoaixera.Text = rsCapnhatXera.Fields(1)

End If

End Sub

Private Sub CmdLuuVao_Click()

Dim Error As Integer

TIEP.Enabled = True

sqlLuuDL = "select * from chitiet"

Error = kiemtra

Set rsLuuDL = LayDL(sqlLuuDL)

If Error = 0 Then

If Val(CmbLoaixevao.Text) = False Then

MsgBox "Loai xe vao chi duoc chon gia tri tu 1 den 4 "

CmbLoaixevao.Text = ""

Exit Sub

End If

If Val(CmbLoaixevao.Text) > 4 Then

MsgBox "Loai xe khong duoc lon hon 4"

CmbLoaixevao.Text = ""

Exit Sub

End If

rsLuuDL.AddNew

Page 79: Hệ thống bãi giữ xe ô tôt tự động

Phần V: Lập trình ứng dụng Luận văn tốt nghiêp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 78

GhiDL rsLuuDL

LuuDL rsLuuDL

txtSoxevao.Text = ""

CmbLoaixevao.Text = ""

End If

If Error = 1 Then

MsgBox "Vui long nhap so xe!"

Exit Sub

End If

If Error = 2 Then

MsgBox "Vui long chon loai xe!"

Exit Sub

End If

If Error = 3 Then

MsgBox "So xe chi duoc nhap 7 ki tu!"

txtSoxevao.Text = ""

Exit Sub

End If

If Error = 4 Then

MsgBox "Loai xe chi duoc chon tu 1 den 4!"

CmbLoaixevao.Text = ""

Exit Sub

End If

End Sub

Private Sub GhiDL(rs As ADODB.Recordset)

Dim s As String

Dim MALN As Variant

Dim tam As Variant

Dim rsDem As New ADODB.Recordset

s = "select * from chitiet"

Page 80: Hệ thống bãi giữ xe ô tôt tự động

Phần V: Lập trình ứng dụng Luận văn tốt nghiêp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 79

Set rsDem = LayDL(s)

MALN = 0

Do While (Not rsDem.EOF)

tam = rsDem![stt]

If (MALN < tam) Then

MALN = tam

End If

rsDem.MoveNext

Loop

MALN = MALN + 1

rs.Fields(0) = MALN

rs.Fields(1) = CmbLoaixevao.Text

rs.Fields(2) = txtSoxevao.Text

rs.Fields(3) = Date

rs.Fields(4) = Time

rs.Fields(5) = 0

rs.Fields(6) = 0

rs.Fields(7) = 0

rs.Fields(8) = 0

Set rsDem = Nothing

End Sub

Private Sub Sco_Click()

Timer18.Enabled = False

MSComm1.Output = "a"

Timer18.Enabled = True

sco.Enabled = False

End Sub

Private Sub Exit_Click()

Call ClosePort_Click

Page 81: Hệ thống bãi giữ xe ô tôt tự động

Phần V: Lập trình ứng dụng Luận văn tốt nghiêp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 80

End

End Sub

Private Sub Form_mousemove(button As Integer, shift As Integer, X As Single, Y

As Single)

lbxevao.FontUnderline = False

lbxevao.ForeColor = &HFF&

End Sub

Private Sub lbxevao_mousemove(button As Integer, shift As Integer, X As Single,

Y As Single)

lbxevao.FontUnderline = True

lbxevao.ForeColor = &HC000C0

lbxera.FontUnderline = False

lbxera.ForeColor = &HFF0000

End Sub

Private Sub lbxera_mousemove(button As Integer, shift As Integer, X As Single, Y

As Single)

lbxera.FontUnderline = True

lbxera.ForeColor = &HC000C0

lbxevao.FontUnderline = False

lbxevao.ForeColor = &HFF0000

End Sub

Private Sub Form_Load()

'---------------------------------------------------------------'

cnn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" &

App.Path & "\baigiuxe.mdb;Persist Security Info=False"

cnn.CursorLocation = adUseClient

cnn.Open

txtSoxevao.Enabled = False

CmbXera.Enabled = False

CmbLoaixevao.Enabled = False

Page 82: Hệ thống bãi giữ xe ô tôt tự động

Phần V: Lập trình ứng dụng Luận văn tốt nghiêp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 81

txtLoaixera.Enabled = False

txtSoxevao.Text = " Xe vao"

CmdLuuVao.Enabled = False

CmdLuuRa.Enabled = False

cmdBoqua.Enabled = False

Dim i As Integer

For i = 1 To 4

Me.CmbLoaixevao.AddItem i

Next i

'--------------------------------------------------------------'

MSComm1.CommPort = 1

MSComm1.Settings = "9600,N,8,1"

MSComm1.InputLen = 0

MSComm1.RThreshold = 11

MSComm1.InputMode = comInputModeBinary

MSComm1.PortOpen = True

OPENPORT.Enabled = True

CLOSEPORT.Enabled = False

Timer18.Enabled = True

End Sub

Private Sub OpenPort_Click()

If MSComm1.PortOpen = True Then

MSComm1.PortOpen = False

End If

MSComm1.PortOpen = True

Timer18.Enabled = True

Timer19.Enabled = True

OPENPORT.Enabled = False

CLOSEPORT.Enabled = True

End Sub

Page 83: Hệ thống bãi giữ xe ô tôt tự động

Phần V: Lập trình ứng dụng Luận văn tốt nghiêp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 82

Private Sub MSComm1_OnComm()

If MSComm1.InBufferCount >= 11 Then MSComm1.InputLen = 0

Nhan() = MSComm1.Input

Dim i, j, k, l, m, n, o, p, q, r, s As Integer

i = Nhan(0)

j = Nhan(1)

k = Nhan(2)

l = Nhan(3)

m = Nhan(4)

n = Nhan(5)

o = Nhan(6)

p = Nhan(7)

q = Nhan(8)

r = Nhan(9)

s = Nhan(10)

Text3.Text = o 'xe 4 cho

Text4.Text = p 'xe 7 cho

Text5.Text = q 'xe 12 cho

Text6.Text = r 'xe 30 cho

Text7.Text = s 'tong so xe

If i = 1 Then 'mo cua vao

Timer1.Enabled = True

Cuavao.Text = " MỞ "

If XanhVao.Visible = False Then

XanhVao.Visible = True

TatXanhVao.Visible = False

DoVao.Visible = False

TatDoVao.Visible = True

End If

If CTraiVao.Width = 495 And CPhaiVao.Width = 495 Then

Do

Page 84: Hệ thống bãi giữ xe ô tôt tự động

Phần V: Lập trình ứng dụng Luận văn tốt nghiêp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 83

CTraiVao.Width = CTraiVao.Width - 1

CPhaiVao.Width = CPhaiVao.Width - 1

CPhaiVao.Left = CPhaiVao.Left + 1

Loop Until CTraiVao.Width = 15 And CPhaiVao.Width = 15

End If

End If

If i = 2 Then 'dong cua vao

Timer1.Enabled = True

Cuavao.Text = " ĐÓNG "

If XanhVao.Visible = True Then

XanhVao.Visible = False

TatXanhVao.Visible = True

DoVao.Visible = True

TatDoVao.Visible = False

End If

If CTraiVao.Width = 15 And CPhaiVao.Width = 15 Then

Do

CTraiVao.Width = CTraiVao.Width + 1

CPhaiVao.Width = CPhaiVao.Width + 1

CPhaiVao.Left = CPhaiVao.Left - 1

Loop Until CTraiVao.Width = 495 And CPhaiVao.Width = 495

End If

End If

If j = 1 Then 'mo cua ra

Timer2.Enabled = True

Cuara.Text = " MỞ "

If XanhRa.Visible = False Then

XanhRa.Visible = True

TatXanhRa.Visible = False

DoRa.Visible = False

TatDoRa.Visible = True

Page 85: Hệ thống bãi giữ xe ô tôt tự động

Phần V: Lập trình ứng dụng Luận văn tốt nghiêp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 84

End If

If CTraiRa.Width = 495 And CPhaiRa.Width = 495 Then

Do

CTraiRa.Width = CTraiRa.Width - 1

CPhaiRa.Width = CPhaiRa.Width - 1

CPhaiRa.Left = CPhaiRa.Left + 1

Loop Until CTraiRa.Width = 15 And CPhaiRa.Width = 15

End If

End If

If j = 2 Then 'dong cua ra

Timer2.Enabled = True

Cuara.Text = " ĐÓNG "

If XanhRa.Visible = True Then

XanhRa.Visible = False

TatXanhRa.Visible = True

DoRa.Visible = True

TatDoRa.Visible = False

End If

If CTraiRa.Width = 15 And CPhaiRa.Width = 15 Then

Do

CTraiRa.Width = CTraiRa.Width + 1

CPhaiRa.Width = CPhaiRa.Width + 1

CPhaiRa.Left = CPhaiRa.Left - 1

Loop Until CTraiRa.Width = 495 And CPhaiRa.Width = 495

End If

End If

If k = 1 Then 'bai xe trong

Timer3.Enabled = True

TTrang.Text = " TRỐNG XE "

If XanhTrong.Visible = False Then

XanhTrong.Visible = True

Page 86: Hệ thống bãi giữ xe ô tôt tự động

Phần V: Lập trình ứng dụng Luận văn tốt nghiêp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 85

TatXanhTrong.Visible = False

DoDay.Visible = False

TatDoDay.Visible = True

End If

End If

If k = 2 Then 'bai xe day

Timer3.Enabled = True

TTrang.Text = " ĐẦY XE "

If XanhTrong.Visible = True Then

XanhTrong.Visible = False

TatXanhTrong.Visible = True

DoDay.Visible = True

TatDoDay.Visible = False

End If

End If

If l = 1 Then ' mo den chieu sang

Timer5.Enabled = True

HTDen.Text = " MỞ "

If XanhDen.Visible = False Then

XanhDen.Visible = True

TatXanhDen.Visible = False

DoDen.Visible = False

TatDoDen.Visible = True

End If

End If

If l = 2 Then 'tat den chieu sang

Timer5.Enabled = True

HTDen.Text = " TẮT "

If XanhDen.Visible = True Then

XanhDen.Visible = False

TatXanhDen.Visible = True

Page 87: Hệ thống bãi giữ xe ô tôt tự động

Phần V: Lập trình ứng dụng Luận văn tốt nghiêp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 86

DoDen.Visible = True

TatDoDen.Visible = False

End If

End If

If m = 1 Then

CmbLoaixevao.Text = "1"

End If

If m = 2 Then

CmbLoaixevao.Text = "2"

End If

If m = 3 Then

CmbLoaixevao.Text = "3"

End If

If m = 4 Then

CmbLoaixevao.Text = "4"

End If

If n = 1 Then

txtLoaixera.Text = "1"

End If

If n = 2 Then

txtLoaixera.Text = "2"

End If

If n = 3 Then

txtLoaixera.Text = "3"

End If

If n = 4 Then

txtLoaixera.Text = "4"

End If

End Sub

Private Sub CmdLuuRa_Click()

Page 88: Hệ thống bãi giữ xe ô tôt tự động

Phần V: Lập trình ứng dụng Luận văn tốt nghiêp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 87

Dim gio1 As Integer

Dim phut1 As Integer

Dim tam1 As Integer

Dim tam2 As Integer

Dim tam3 As Integer

Dim gio2 As Integer

Dim phut2 As Integer

Dim gio3 As Integer

Dim phut3 As Integer

Dim Gia As Double

sqlXera = "select [so xe], [loai xe] from chitiet where [so xe] like '" &

CmbXera.Text & "' and [loai xe] like '" & txtLoaixera.Text & "' "

Set rsCapnhatXera = LayDL(sqlXera)

If (rsCapnhatXera.BOF = True And rsCapnhatXera.EOF = True) Then

MsgBox ("Khong co so xe nay, hay chon trong combo so xe!")

Else

rsCapnhatXera.MoveFirst

sqlXera = "select * from chitiet"

Set rsCapnhatXera = LayDL(sqlXera)

sqlXera = "select stt from chitiet where [so xe] = '" & Soxe & "' and [loai

xe]='" & Loaixe & "' "

sott = rsCapnhatXera.Fields(0)

Soxe = CmbXera.Text

Loaixe = txtLoaixera.Text

sqlXera = "UPDATE chitiet SET [ngay ra] = '" & Date & _

"' WHERE [loai xe] = '" & Loaixe & "' and [so xe] = '" & Soxe & "'" 'and [stt] =

'" & Val(sott) & "' "

Set rsCapnhatXera = LayDL(sqlXera)

sqlXera = "UPDATE chitiet SET [gio ra] = '" & Time & _

"' WHERE [loai xe] = '" & Loaixe & "'and [so xe] = '" & Soxe & "'" 'and [stt] =

'" & Val(sott) & "' " 'and [gio vao] = '" & rsGiovao.Fields(4) & "' "

Page 89: Hệ thống bãi giữ xe ô tôt tự động

Phần V: Lập trình ứng dụng Luận văn tốt nghiêp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 88

Set rsCapnhatXera = LayDL(sqlXera)

sqlXera = "select [gio vao] from chitiet where [so xe] = '" & Soxe & "' and

[loai xe] = '" & Loaixe & "'" 'and [stt] = '" & Val(sott) & "' "

Set rsCapnhatXera = LayDL(sqlXera)

gio1 = (Hour(rsCapnhatXera![gio vao]))

phut1 = (Minute(rsCapnhatXera![gio vao]))

gio2 = Hour(Time)

phut2 = Minute(Time)

gio3 = gio2 - gio1

phut3 = phut2 - phut1

tam1 = gio1 * 60 + phut1

tam2 = gio2 * 60 + phut2

tam3 = tam2 - tam1

gio3 = tam3 / 60

phut3 = tam3 - (gio3 * 60)

thoigian = gio3 & " :" & phut3

sqlXera = "UPDATE chitiet SET [thoi gian goi (gio)] = '" & thoigian & _

"' WHERE [loai xe] = '" & Loaixe & "' and [so xe] = '" & Soxe & "'" 'and

[stt] = '" & Val(sott) & "'" 'and [gio vao] = '" & giovao & "' "

Set rsCapnhatXera = LayDL(sqlXera)

sqlPhanloaixe = "select [gia tien (vnd/gio)] from phanloaixe where loai = '" &

Loaixe & "'" 'and [stt] = '" & Val(sott) & "' "

Set rsPhanloaixe = LayDL(sqlPhanloaixe)

Gia = rsPhanloaixe![gia tien (vnd/gio)]

If Val(gio3 = 0) And Val(phut3) < 30 Then

gio3 = 1

thanhtien = Val(Gia) * Val(gio3)

End If

If (Val(phut3) > 15) And Val(gio3 > 0) Then

thanhtien = Val(Gia) * (Val(gio3) + 1)

Else

Page 90: Hệ thống bãi giữ xe ô tôt tự động

Phần V: Lập trình ứng dụng Luận văn tốt nghiêp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 89

thanhtien = Val(Gia) * Val(gio3)

End If

sqlXera = "UPDATE chitiet SET [thanh tien (vnd)]= '" & Val(thanhtien) & "'

WHERE [loai xe] = '" & Loaixe & "' and [so xe] = '" & Soxe & "'" 'and [stt] = '" &

Val(sott) & "' " 'and [gio vao] = '" & giovao & "' "

Set rsCapnhatXera = LayDL(sqlXera)

soxe1 = Soxe

loaixe1 = Loaixe

sqlXera = "select [gio vao] from chitiet where [so xe] = '" & Soxe & "' and [loai

xe] = '" & Loaixe & "'" 'and [stt] = '" & Val(sott) & "' "

Set rsCapnhatXera = LayDL(sqlXera)

giovao1 = rsCapnhatXera![gio vao]

sqlXera = "select [ngay vao] from chitiet where [so xe] = '" & Soxe & "' and

[loai xe] = '" & Loaixe & "'" 'and [stt] = '" & Val(sott) & "' "

Set rsCapnhatXera = LayDL(sqlXera)

ngayvao1 = rsCapnhatXera![ngay vao]

thoigian1 = thoigian

thanhtien1 = thanhtien

Load Form4

Form4.Show

End If

End Sub

Private Sub TIEP_Click()

Load Form3

Form3.Show

End Sub

Private Sub Thoat2_Click()

Unload Me

End Sub

Private Sub Timer19_Timer()

MSComm1.Output = "*" + "*" + "*"

Page 91: Hệ thống bãi giữ xe ô tôt tự động

Phần V: Lập trình ứng dụng Luận văn tốt nghiêp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 90

End Sub

Private Sub Timer7_Timer()

Dim X, Y

X = Right(FORM2.Caption, 1)

Y = Left(FORM2.Caption, Len(FORM2.Caption) - 1)

FORM2.Caption = X + Y

End Sub

Private Sub Timer8_Timer()

Tgian.Caption = Time

End Sub

Private Sub Timer9_Timer()

Ngay.Caption = Date

End Sub

Private Sub Timer16_Timer()

Dim U As String

Dim V As String

U = Left(Label2.Caption, 1)

V = Right(Label2.Caption, Len(Label2.Caption) - 1)

Label2.Caption = V + U

End Sub

Private Sub Form_Unload(Cancel As Integer)

Set rsLuuDL = Nothing

cnn.Close

End Sub

Private Sub Timervao_Timer()

If lbxevao.ForeColor = vbBlue Then lbxera.ForeColor = vbRed Else

lbxevao.ForeColor = vbBlue

End Sub

Private Sub XOA_Click()

Load Form4

Form4.Show

Page 92: Hệ thống bãi giữ xe ô tôt tự động

Phần V: Lập trình ứng dụng Luận văn tốt nghiêp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 91

End Sub

Private Function kiemtra() As Integer

If (Me.txtSoxevao.Text = "") Then

kiemtra = 1

Exit Function

End If

If (Me.CmbLoaixevao.Text = "") Then

kiemtra = 2

Exit Function

End If

If Len(Me.txtSoxevao.Text) > 7 Or Len(Me.txtSoxevao.Text) < 7 Then

kiemtra = 3

Exit Function

End If

If Len(Me.CmbLoaixevao.Text) < 1 Or Len(Me.CmbLoaixevao.Text) > 1 Then

kiemtra = 4

Exit Function

Else

kiemtra = 0

End If

End Function

Code Form Cơ sở dữ liệu

Option Explicit

Dim sql As String

Dim str1 As String

Public rs1 As New ADODB.Recordset

Public rsCapnhatXe As New ADODB.Recordset

Dim sqlCapnhat As String

Dim Soxe As String

Page 93: Hệ thống bãi giữ xe ô tôt tự động

Phần V: Lập trình ứng dụng Luận văn tốt nghiêp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 92

Dim Loaixe As String

Dim ngayvao As Date

Dim giovao As String

Dim ngayra As Date

Dim giora As String

'---------

Private Sub cbSoxe_Click()

Soxe = cbSoxe.Text

rsCapnhatXe.MoveFirst

rsCapnhatXe.Find "[so xe] = '" & Soxe & "'", , , adBookmarkFirst

If Not rsCapnhatXe.EOF Then

txtStt.Text = rsCapnhatXe.Fields(0)

DTPNgayvao.Value = rsCapnhatXe.Fields(3)

txtGiovao.Text = rsCapnhatXe.Fields(4)

txtThoigian.Text = rsCapnhatXe.Fields(7)

txtLoaixe.Text = rsCapnhatXe.Fields(1)

DTPNgayra.Value = rsCapnhatXe.Fields(5)

txtGiora.Text = rsCapnhatXe.Fields(6)

txtThanhtien.Text = rsCapnhatXe.Fields(8)

End If

End Sub

Private Sub CmdTim_Click()

OptSoxe.Visible = True

OptLoaixe.Visible = True

OptNgayvao.Visible = True

OptNgayra.Visible = True

If (OptSoxe) Then

str1 = "select * from chitiet where [so xe] like '" & cbSoxe.Text & "'"

Set rs1 = LayDL(str1)

rs1.Sort = "stt ASC"

Page 94: Hệ thống bãi giữ xe ô tôt tự động

Phần V: Lập trình ứng dụng Luận văn tốt nghiêp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 93

Call XUATBANGCHITIETXETIM(cbSoxe.Text)

Else

If (OptNgayvao = True) Then

str1 = "select * from chitiet where [ngay vao] like '" & DTPNgayvao.Value & "'"

Set rs1 = LayDL(str1)

rs1.Sort = "stt ASC"

Call XUATBANGCHITIETXETIM(DTPNgayvao.Value)

Else

If (OptLoaixe = True) Then

str1 = "select * from chitiet where [loai xe] like '" & txtLoaixe.Text & "'"

Set rs1 = LayDL(str1)

rs1.Sort = "stt ASC"

Call XUATBANGCHITIETXETIM(txtLoaixe.Text)

Else

str1 = "select * from chitiet where [ngay ra] like '" & DTPNgayra.Value & "'"

Set rs1 = LayDL(str1)

rs1.Sort = "stt ASC"

Call XUATBANGCHITIETXETIM(DTPNgayra.Value)

End If

End If

End If

End Sub

Private Sub cmdTimkiem_Click()

OptSoxe.Visible = True

OptLoaixe.Visible = True

OptNgayvao.Visible = True

OptNgayra.Visible = True

txtLoaixe.Enabled = False

DTPNgayvao.Enabled = False

DTPNgayra.Enabled = False

Page 95: Hệ thống bãi giữ xe ô tôt tự động

Phần V: Lập trình ứng dụng Luận văn tốt nghiêp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 94

cbSoxe.Enabled = False

CmdTimkiem.Visible = False

CmdTim.Visible = True

cmdXoa.Visible = False

CmdTimXoa.Visible = True

lbStt.Visible = False

LbGiovao.Visible = False

LbThoigiangoi.Visible = False

lbGiora.Visible = False

LbThanhtien.Visible = False

txtStt.Visible = False

txtGiovao.Visible = False

txtThoigian.Visible = False

txtGiora.Visible = False

txtThanhtien.Visible = False

End Sub

Private Sub CmdTimXoa_Click()

CmdTimkiem.Visible = True

cmdXoa.Visible = True

CmdTimkiem.Visible = True

CmdTim.Visible = False

lbStt.Visible = True

LbGiovao.Visible = True

LbThoigiangoi.Visible = True

lbGiora.Visible = True

LbThanhtien.Visible = True

txtStt.Visible = True

txtGiovao.Visible = True

txtThoigian.Visible = True

txtGiora.Visible = True

Page 96: Hệ thống bãi giữ xe ô tôt tự động

Phần V: Lập trình ứng dụng Luận văn tốt nghiêp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 95

txtThanhtien.Visible = True

OptSoxe.Visible = False

OptLoaixe.Visible = False

OptNgayvao.Visible = False

OptNgayra.Visible = False

End Sub

Private Sub cmdXoa_Click()

Dim sql As String

Dim rs1 As New ADODB.Recordset

Dim vitri As Integer

OptSoxe.Visible = False

OptLoaixe.Visible = False

OptNgayvao.Visible = False

OptNgayra.Visible = False

sql = "select * from chitiet where [so xe]= '" & Soxe & "'"

Set rs1 = LayDL(sql)

If (rs1.BOF = True And rs1.EOF = True) Then

MsgBox ("Khong co so xe nay, hay chon trong combo so xe!")

Else

If MsgBox("Ban co chac la xoa khong ?", vbYesNo) = vbYes Then

rsCapnhatXe.Find "[so xe] = '" & Soxe & "'", , , adBookmarkFirst

rsCapnhatXe.Delete

LuuDL rsCapnhatXe

vitri = cbSoxe.ListIndex

cbSoxe.RemoveItem vitri

cbSoxe.Refresh

Call XUATBANGCHITIETXE

End If

End If

Set rs1 = Nothing

Page 97: Hệ thống bãi giữ xe ô tôt tự động

Phần V: Lập trình ứng dụng Luận văn tốt nghiêp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 96

End Sub

Private Sub MSHFlexGridChitiet_Click()

MSHFlexGridChitiet.Refresh

Dim sql As String

Dim rs1 As New ADODB.Recordset

txtStt.Text = MSHFlexGridChitiet.MouseRow

Set rs1 = Nothing

End Sub

Private Sub OptLoaixe_Click()

txtLoaixe.Enabled = True

DTPNgayvao.Enabled = False

DTPNgayra.Enabled = False

cbSoxe.Enabled = False

txtLoaixe.Locked = False

End Sub

Private Sub OptNgayra_Click()

txtLoaixe.Enabled = False

DTPNgayvao.Enabled = False

DTPNgayra.Enabled = True

cbSoxe.Enabled = False

End Sub

Private Sub OptNgayvao_Click()

txtLoaixe.Enabled = False

DTPNgayvao.Enabled = True

DTPNgayra.Enabled = False

cbSoxe.Enabled = False

End Sub

Page 98: Hệ thống bãi giữ xe ô tôt tự động

Phần V: Lập trình ứng dụng Luận văn tốt nghiêp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 97

Private Sub OptSoxe_Click()

txtLoaixe.Enabled = False

DTPNgayvao.Enabled = False

DTPNgayra.Enabled = False

cbSoxe.Enabled = True

End Sub

Private Sub THOAT_Click()

End

rs1.Close

End Sub

Private Sub TROVE_Click()

Unload Me

End Sub

Private Sub Form_Load()

OptSoxe.Visible = False

OptLoaixe.Visible = False

OptNgayvao.Visible = False

OptNgayra.Visible = False

txtStt.Locked = False

cbSoxe.Locked = False

DTPNgayvao.Enabled = True

DTPNgayra.Enabled = True

txtThoigian.Locked = True

txtThanhtien.Locked = True

txtLoaixe.Locked = True

txtGiora.Locked = True

txtGiovao.Locked = True

CmdTim.Visible = False

sqlCapnhat = "select * from chitiet where stt = 1 "

Set rsCapnhatXe = LayDL(sqlCapnhat)

Page 99: Hệ thống bãi giữ xe ô tôt tự động

Phần V: Lập trình ứng dụng Luận văn tốt nghiêp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 98

txtStt.Text = rsCapnhatXe.Fields(0)

txtLoaixe.Text = rsCapnhatXe.Fields(1)

DTPNgayvao.Value = rsCapnhatXe.Fields(3)

txtGiovao.Text = rsCapnhatXe.Fields(4)

txtGiora.Text = rsCapnhatXe.Fields(6)

DTPNgayra.Value = rsCapnhatXe.Fields(5)

txtThoigian.Text = rsCapnhatXe.Fields(7)

txtThanhtien.Text = rsCapnhatXe.Fields(8)

cbSoxe.Text = rsCapnhatXe.Fields(2)

sqlCapnhat = "select * from chitiet"

Set rsCapnhatXe = LayDL(sqlCapnhat)

If rsCapnhatXe.RecordCount > 0 Then

rsCapnhatXe.MoveFirst

Do While Not rsCapnhatXe.EOF

cbSoxe.AddItem rsCapnhatXe.Fields(2)

rsCapnhatXe.MoveNext

Loop

End If

Call XUATBANGCHITIETXE

End Sub

Private Sub Form_Unload(Cancel As Integer)

MSHFlexGridChitiet.Refresh

Set rsCapnhatXe = Nothing

Set rs1 = Nothing

End Sub

Private Sub XUATBANGCHITIETXETIM(thamso As String)

Dim i As Integer

Dim soluong As Integer

soluong = 0

Dim Mang(9) As String

Page 100: Hệ thống bãi giữ xe ô tôt tự động

Phần V: Lập trình ứng dụng Luận văn tốt nghiêp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 99

Mang(0) = "STT"

Mang(1) = "LOẠI XE"

Mang(2) = "SỐ XE"

Mang(3) = "NGÀY VÀO"

Mang(4) = "GIỜ VÀO"

Mang(5) = "NGÀY RA"

Mang(6) = "GIỜ RA"

Mang(7) = "THỜI GIAN GỬI (GIỜ)

Mang(8) = "THÀNH TIỀN (VNĐ)"

While Not rs1.EOF

soluong = soluong + 1

rs1.MoveNext

Wend

MSHFlexGridChitiet.Rows = soluong + 1

MSHFlexGridChitiet.Cols = 9

If (rs1.BOF = True And rs1.EOF = True) Then

MsgBox ("Co so du lieu rong!")

Else

rs1.MoveFirst

End If

For i = 0 To 8

MSHFlexGridChitiet.Row = 0

MSHFlexGridChitiet.Col = i

MSHFlexGridChitiet.Text = Mang(i)

Next i

i = 1

rs1.Sort = " stt asc"

While Not rs1.EOF

MSHFlexGridChitiet.Row = i

MSHFlexGridChitiet.Col = 0

MSHFlexGridChitiet.ColWidth(0) = 500

Page 101: Hệ thống bãi giữ xe ô tôt tự động

Phần V: Lập trình ứng dụng Luận văn tốt nghiêp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 100

MSHFlexGridChitiet.Text = rs1.Fields(0)

MSHFlexGridChitiet.Col = 1

MSHFlexGridChitiet.ColWidth(1) = 900

MSHFlexGridChitiet.Text = rs1![loai xe]

MSHFlexGridChitiet.Col = 2

MSHFlexGridChitiet.ColWidth(2) = 1000

MSHFlexGridChitiet.Text = rs1![so xe]

MSHFlexGridChitiet.Col = 3

MSHFlexGridChitiet.ColWidth(3) = 1200

MSHFlexGridChitiet.Text = rs1![ngay vao]

MSHFlexGridChitiet.Col = 4

MSHFlexGridChitiet.ColWidth(4) = 1000

MSHFlexGridChitiet.Text = rs1![gio vao]

MSHFlexGridChitiet.Col = 5

MSHFlexGridChitiet.ColWidth(5) = 1200

MSHFlexGridChitiet.Text = rs1![ngay ra]

MSHFlexGridChitiet.Col = 6

MSHFlexGridChitiet.ColWidth(6) = 900

MSHFlexGridChitiet.Text = rs1![gio ra]

MSHFlexGridChitiet.Col = 7

MSHFlexGridChitiet.ColWidth(7) = 1500

MSHFlexGridChitiet.Text = rs1.Fields(7)

MSHFlexGridChitiet.Col = 8

MSHFlexGridChitiet.ColWidth(8) = 1800

MSHFlexGridChitiet.Text = rs1.Fields(8)

i = i + 1

rs1.MoveNext

Wend

Set rs1 = LayDL(str1)

End Sub

Private Sub XUATBANGCHITIETXE()

Page 102: Hệ thống bãi giữ xe ô tôt tự động

Phần V: Lập trình ứng dụng Luận văn tốt nghiêp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 101

Dim i As Integer

Dim soluong As Integer

str1 = "select * from chitiet "

Set rs1 = LayDL(str1)

soluong = 0

Dim Mang(9) As String

Mang(0) = "STT"

Mang(1) = "LOẠI XE"

Mang(2) = "SỐ XE"

Mang(3) = "NGÀY VÀO"

Mang(4) = "GIỜ VÀO"

Mang(5) = "NGÀY RA"

Mang(6) = "GIỜ RA"

Mang(7) = "THỜI GIAN GỬI (GIỜ)"

Mang(8) = "THÀNH TIỀN (VNĐ)"

While Not rs1.EOF

soluong = soluong + 1

rs1.MoveNext

Wend

MSHFlexGridChitiet.Rows = soluong + 1

MSHFlexGridChitiet.Cols = 9

rs1.MoveFirst

For i = 0 To 8

MSHFlexGridChitiet.Row = 0

MSHFlexGridChitiet.Col = i

MSHFlexGridChitiet.Text = Mang(i)

Next i

i = 1

rs1.Sort = " stt asc"

While Not rs1.EOF

MSHFlexGridChitiet.Row = i

Page 103: Hệ thống bãi giữ xe ô tôt tự động

Phần V: Lập trình ứng dụng Luận văn tốt nghiêp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 102

MSHFlexGridChitiet.Col = 0

MSHFlexGridChitiet.ColWidth(0) = 500

MSHFlexGridChitiet.Text = rs1.Fields(0)

MSHFlexGridChitiet.Col = 1

MSHFlexGridChitiet.ColWidth(1) = 900

MSHFlexGridChitiet.Text = rs1![loai xe]

MSHFlexGridChitiet.Col = 2

MSHFlexGridChitiet.ColWidth(2) = 1000

MSHFlexGridChitiet.Text = rs1![so xe]

MSHFlexGridChitiet.Col = 3

MSHFlexGridChitiet.ColWidth(3) = 1200

MSHFlexGridChitiet.Text = rs1![ngay vao]

MSHFlexGridChitiet.Col = 4

MSHFlexGridChitiet.ColWidth(4) = 1000

MSHFlexGridChitiet.Text = rs1![gio vao]

MSHFlexGridChitiet.Col = 5

MSHFlexGridChitiet.ColWidth(5) = 1200

MSHFlexGridChitiet.Text = rs1![ngay ra]

MSHFlexGridChitiet.Col = 6

MSHFlexGridChitiet.ColWidth(6) = 900

MSHFlexGridChitiet.Text = rs1![gio ra]

MSHFlexGridChitiet.Col = 7

MSHFlexGridChitiet.ColWidth(7) = 1500

MSHFlexGridChitiet.Text = rs1.Fields(7)

MSHFlexGridChitiet.Col = 8

MSHFlexGridChitiet.ColWidth(8) = 1800

MSHFlexGridChitiet.Text = rs1.Fields(8)

i = i + 1

rs1.MoveNext

Wend

Set rs1 = LayDL(str1)

Page 104: Hệ thống bãi giữ xe ô tôt tự động

Phần V: Lập trình ứng dụng Luận văn tốt nghiêp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 103

End Sub

Code Form Phiếu thu :

Dim So As Integer

Dim tam As Integer

Private Sub CmdIn_Click()

MsgBox "Da thu tien!"

End Sub

Private Sub Form_Load()

lbNgay.Caption = Date

So = 0

If (So < tam) Then

LbSo.Caption = tam + 1

Else

So = 1

LbSo.Caption = So

End If

LbSoxe.Caption = soxe1

LbLoaixe.Caption = loaixe1

LbNgaygui.Caption = ngayvao1

LbGiogui.Caption = giovao1

Lbthoigian.Caption = thoigian1

LbThanhtien.Caption = thanhtien1

tam = So

End Sub

Code Form Cập nhật :

Dim sqlPhanloaixe As String

Dim rsPhanloaixe As New ADODB.Recordset

Dim sqlCapnhatPhanloai As String

Dim rsCapnhatPhanloai As New ADODB.Recordset

Dim sqlXoa As String

Page 105: Hệ thống bãi giữ xe ô tôt tự động

Phần V: Lập trình ứng dụng Luận văn tốt nghiêp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 104

Dim rsXoa As New ADODB.Recordset

Dim sql As String

Dim rsxe As New ADODB.Recordset

Dim kiemtra As Integer

Private Sub cmdCapnhat_Click()

kiemtra = 2

cmdLuu.Visible = True

cmdThem.Visible = False

cmdCapnhat.Enabled = False

cmdXoa.Enabled = False

txtLoaixe.Enabled = False

txtChitietxe.Locked = False

txtGiatien.Locked = False

End Sub

Private Sub cmdLuu_Click()

Dim str As String

Dim rs1 As New ADODB.Recordset

cmdThem.Visible = True

cmdLuu.Visible = False

cmdCapnhat.Enabled = True

cmdXoa.Enabled = True

If kiemtra = 1 Then

rsPhanloaixe.AddNew

GhiPhanLoaiXe rsPhanloaixe

LuuDL rsPhanloaix

Else

If kiemtra = 2 Then

sqlCapnhatPhanloai = "UPDATE PHANLOAIXE SET [CHI TIET XE] = '"

& txtChitietxe.Text & _

"' WHERE LOAI = '" & txtLoaixe.Text & "'"

Set rsCapnhatPhanloai = LayDL(sqlCapnhatPhanloai)

Page 106: Hệ thống bãi giữ xe ô tôt tự động

Phần V: Lập trình ứng dụng Luận văn tốt nghiêp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 105

sqlCapnhatPhanloai = "UPDATE PHANLOAIXE SET [GIA TIEN

(VND/GIO)] = '" & txtGiatien.Text & _

"' WHERE LOAI = '" & txtLoaixe.Text & "'"

Set rsCapnhatPhanloai = LayDL(sqlCapnhatPhanloai)

Else

sqlXoa = "select * from phanloaixe"

Set rsXoa = LayDL(sqlXoa)

If MsgBox("Ban co chac la xoa khong ?", vbYesNo) = vbYes Then

rsXoa.Find " loai = '" & txtLoaixe.Text & "'", , , adBookmarkFirst

rsXoa.Delete

LuuDL rsXoa

End If

End If

End If

Call HIENTHIPHANLOAIXE

End Sub

Private Sub cmdThem_Click()

kiemtra = 1

cmdThem.Visible = False

cmdLuu.Visible = True

cmdCapnhat.Enabled = False

cmdXoa.Enabled = False

txtLoaixe.Enabled = True

txtLoaixe.SetFocus

txtLoaixe.Text = ""

txtChitietxe.Text = ""

txtGiatien.Text = ""

txtLoaixe.Locked = False

txtChitietxe.Locked = False

txtGiatien.Locked = False

End Sub

Page 107: Hệ thống bãi giữ xe ô tôt tự động

Phần V: Lập trình ứng dụng Luận văn tốt nghiêp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 106

Private Sub cmdTrove_Click()

Unload Me

End Sub

Private Sub cmdXoa_Click()

kiemtra = 3

cmdThem.Enabled = True

cmdThem.Visible = False

cmdLuu.Visible = True

cmdLuu.Enabled = True

cmdCapnhat.Enabled = False

cmdXoa.Enabled = False

txtLoaixe.Locked = True

txtChitietxe.Locked = True

txtGiatien.Locked = True

End Sub

Private Sub Form_Load()

cmdLuu.Visible = False

sqlPhanloaixe = "SELECT * FROM PHANLOAIXE"

Set rsPhanloaixe = LayDL(sqlPhanloaixe)

rsPhanloaixe.Sort = "LOAI ASC"

txtLoaixe.Locked = True

txtChitietxe.Locked = True

txtGiatien.Locked = True

txtLoaixe.Text = rsPhanloaixe.Fields(0)

txtChitietxe.Text = rsPhanloaixe.Fields(1)

txtGiatien.Text = rsPhanloaixe.Fields(2)

If rsPhanloaixe.RecordCount > 0 Then

rsPhanloaixe.MoveFirst

Call HIENTHIPHANLOAIXE

Page 108: Hệ thống bãi giữ xe ô tôt tự động

Phần V: Lập trình ứng dụng Luận văn tốt nghiêp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 107

End If

End Sub

Private Sub HIENTHIPHANLOAIXE()

Dim i As Integer

Dim soluong As Integer

sql = "select * from phanloaixe "

Set rsxe = LayDL(sql)

soluong = 0

Dim Mang(3) As String

Mang(0) = "LOAÏI XE"

Mang(1) = "CHI TIEÁT XE"

Mang(2) = "GIAÙ TIEÀN (VNÑ/GIÔØ)"

While Not rsxe.EOF

soluong = soluong + 1

rsxe.MoveNext

Wend

MSHFGridPhanLoai.Rows = soluong + 1

MSHFGridPhanLoai.Cols = 3

rsxe.MoveFirst

For i = 0 To 2

MSHFGridPhanLoai.Row = 0

MSHFGridPhanLoai.Col = i

MSHFGridPhanLoai.Text = Mang(i)

Next i

i = 1

rsxe.Sort = " loai asc"

While Not rsxe.EOF

MSHFGridPhanLoai.Row = i

MSHFGridPhanLoai.Col = 0

MSHFGridPhanLoai.ColWidth(0) = 970

MSHFGridPhanLoai.Text = rsxe.Fields(0)

Page 109: Hệ thống bãi giữ xe ô tôt tự động

Phần V: Lập trình ứng dụng Luận văn tốt nghiêp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 108

MSHFGridPhanLoai.Col = 1

MSHFGridPhanLoai.ColWidth(1) = 1300

MSHFGridPhanLoai.Text = rsxe![chi tiet xe]

MSHFGridPhanLoai.Col = 2

MSHFGridPhanLoai.ColWidth(2) = 2100

MSHFGridPhanLoai.Text = rsxe![gia tien (vnd/gio)]

i = i + 1

rsxe.MoveNext

Wend

Set rsxe = LayDL(sql)

End Sub

Private Sub Form_Unload(Cancel As Integer)

Set rsxe = Nothing

Set rsPhanloaixe = Nothing

Set rsCapnhatPhanloai = Nothing

Set rsXoa = Nothing

End Sub

Private Sub GhiPhanLoaiXe(rs As ADODB.Recordset)

rsPhanloaixe.Fields(0) = txtLoaixe.Text

rsPhanloaixe.Fields(1) = txtChitietxe.Text

rsPhanloaixe.Fields(2) = txtGiatien.Text

End Sub

Private Sub MSHFGridPhanLoai_Click()

txtLoaixe.Text = MSHFGridPhanLoai.MouseRow

sqlPhanloaixe = "select * from phanloaixe where loai = '" &

MSHFGridPhanLoai.MouseRow & "'"

Set rsPhanloaixe = LayDL(sqlPhanloaixe)

txtChitietxe.Text = rsPhanloaixe.Fields(1)

txtGiatien.Text = rsPhanloaixe.Fields(2)

End Sub

Page 110: Hệ thống bãi giữ xe ô tôt tự động

Phần V: Lập trình ứng dụng Luận văn tốt nghiêp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 109

V. LẬP TRÌNH CHO PLC Ở DẠNG LADDER

Page 111: Hệ thống bãi giữ xe ô tôt tự động

Phần V: Lập trình ứng dụng Luận văn tốt nghiêp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 110

Page 112: Hệ thống bãi giữ xe ô tôt tự động

Phần V: Lập trình ứng dụng Luận văn tốt nghiêp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 111

Page 113: Hệ thống bãi giữ xe ô tôt tự động

Phần V: Lập trình ứng dụng Luận văn tốt nghiêp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 112

Page 114: Hệ thống bãi giữ xe ô tôt tự động

Phần V: Lập trình ứng dụng Luận văn tốt nghiêp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 113

Page 115: Hệ thống bãi giữ xe ô tôt tự động

Phần V: Lập trình ứng dụng Luận văn tốt nghiêp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 114

Page 116: Hệ thống bãi giữ xe ô tôt tự động

Phần V: Lập trình ứng dụng Luận văn tốt nghiêp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 115

Page 117: Hệ thống bãi giữ xe ô tôt tự động

Phần V: Lập trình ứng dụng Luận văn tốt nghiêp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 116

Page 118: Hệ thống bãi giữ xe ô tôt tự động

Phần V: Lập trình ứng dụng Luận văn tốt nghiêp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 117

Page 119: Hệ thống bãi giữ xe ô tôt tự động

Phần V: Lập trình ứng dụng Luận văn tốt nghiêp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 118

Page 120: Hệ thống bãi giữ xe ô tôt tự động

Phần V: Lập trình ứng dụng Luận văn tốt nghiêp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 119

Page 121: Hệ thống bãi giữ xe ô tôt tự động

Phần V: Lập trình ứng dụng Luận văn tốt nghiêp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 120

Page 122: Hệ thống bãi giữ xe ô tôt tự động

Phần V: Lập trình ứng dụng Luận văn tốt nghiêp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 121

Page 123: Hệ thống bãi giữ xe ô tôt tự động

Phần V: Lập trình ứng dụng Luận văn tốt nghiêp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 122

Page 124: Hệ thống bãi giữ xe ô tôt tự động

Phần V: Lập trình ứng dụng Luận văn tốt nghiêp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 123

Page 125: Hệ thống bãi giữ xe ô tôt tự động

Phần V: Lập trình ứng dụng Luận văn tốt nghiêp

Thiết Kế Hệ Thống Quản Lí Tự Động Bãi Giữ Xe Trang 124