Trong hệ thống bãi giữ xe ô tô tự động này, xe sẽ được cất giữ ở các vị trí 2 bên của bãi.
Ưu điểm:
- Thời gian cất và lấy xe nhanh chóng.
- Tính thẩm mỹ khá cao, có thể lắp đặt ngầm dưới lòng đất. - Sử dụng tốt ở những nơi có diện tích đất hẹp.
Nhược điểm: Giá đầu tư cao.
Hình 2.5: Bãi đỗ xe ô tô tự động dạng hình vuông
2.2. Các cơ sở lý thuyết liên quan đến đề tài. 2.2.1. Giới thiệu công nghệ RFID.
Là một công nghệ nhận dạng qua tần số vô tuyến, dùng kết nối sóng vô tuyến để tự động xác định và theo dõi các thẻ nhận dạng gắn vào vật thể. Trong đề tài thì đối tượng cần theo dõi là các thẻ từ chứa thông tin được lưu trữ bằng chip điện tử. Các thẻ từ này sẽ nhận năng lượng phát ra từ thiết bị đọc RFID (reader) và dùng
7 năng lượng này để gửi ra lại mã thông tin của thẻ qua sóng mang. Từ đó thiết bị RFID reader sẽ nhận biết được mã thông tin của thẻ từ đó. Mỗi loại thiết bị RFID reader sẽ chỉ phát ra một sóng điện từ với tần số nhất định để kiểm tra được thẻ nào phù hợp với dải tần số hoạt động. Quá trình phát ra năng lượng và thu lại tín hiệu sóng điện từ được diễn ra nhờ các antenna. Mỗi thẻ từ chứa một mã thẻ nhất định và không trùng lặp nhau, hay còn được nhắc đến với tên gọi là UID (Unique Identifier). Với module RFID RC522 được sử dụng trong hệ thống thì tầm hoạt động cỡ vài centimet. Ngoài ra ở ngoài thị trường có những loại thẻ từ mà module đọc thẻ từ với tần số khác nhau có thể truyền nhận lên đến vài trăm mét. Ưu điểm của công nghệ này là không sử dụng tia sáng như công nghệ mã vạch và có thể đọc và nhận dạng thông tin được truyền qua những khoảng cách nhỏ mà không cần tiếp xúc vật lý. Hơn nữa, các bộ phận đọc thẻ từ RFID có thể đọc được thông tin từ các thẻ thậm chí xuyên qua các môi trường, vật liệu như: bê tông, tuyết, sương mù, sơn và các môi trường thách thức khác mà công nghệ mã vạch và các công nghệ khác không thể phát huy hiệu quả.
Hình 2.6: Công nghệ RFID
2.2.2. Ngôn ngữ lập trình C# và .NET Framework
C# là một ngôn ngữ lập trình hướng đối tượng được phát triển bởi Microsoft, dựa trên C++ và Java. Được giới chuyên môn nhận định là một ngôn ngữ lập trình đơn giản, hiện đại, hướng đến nhiều mục đích sử dụng. Ngoài ra, tính mạnh mẽ, sự bền bỉ và năng suất của việc lập trình cũng là một điểm mạnh của ngôn ngữ này.
8 .NET Framework là một nền tảng có thể sử dụng với ngôn ngữ .NET như C# để phát triển các trang web động (ASP.NET), các ứng dụng cho Windows, Windows Phone. Nó dược tổ chức thành tập hợp các namespace, nhóm các class có cùng chức năng lại với nhau, ví dụ như System.Drawing cho đồ họa, System.Collections cho cấu trúc dữ liệu và System.Windows.Forms cho hệ thống Windows Forms.
2.2.3. Thư việt S7.NET
Là một thư viện mà trong đề tài này nhóm em dùng để kết nối phần mềm lập trình Visual Studio với PLC thông qua cổng Ethernet. Thư viện này tương thích với đa số các dòng PLC Siemen và được viết hoàn toàn bằng C#. Trước khi thao tác thì ta phải mở kết nối và sau đó là ngắt kết nối nó đi, ta có thể sử dụng hàm Open() và hàm Close() cho hai thao tác này. Nhóm em thường thao tác với việc Set hoặc Reset 1 biến trong PLC và đọc trạng thái tín hiệu biến nào đó trong PLC về lại Visual Studio.
2.2.4. Thư viện xử lý ảnh Emgu CV.
Emgu CV là một thư viện xử lý hình ảnh, thị giác máy tính dành riêng cho ngôn ngữ C#. Cho phép gọi các hàm chức năng của thư viện xử lý ảnh OpenCV. Nó tương thích với các ngôn ngữ như C#, VB, VC++ và Python.
Có thể được Visual Studio, Xamarin Studio và Unity biên dịch, nó có thể chạy trên Windows, Linux, Mac OS X, iOS, Điện thoại Android và Windows.
2.2.5. Hệ quản trị cơ sở dữ liệu SQL Server.
SQL Server hay Microsoft SQL Server là hệ quản trị cơ sở dữ liệu tự do được sử dụng rộng rãi trong nhiều lĩnh vực khác nhau. SQL Server có ưu điểm là tốc độ xử lý và tính bảo mật cao, ổn định và dễ sử dụng. Do đó nó rất thích hợp cho các ứng dụng có truy cập cơ sở dữ liệu trên internet. Đối tượng làm việc của SQL Server là các bảng gồm các hàng và cột.
Hệ quản trị cơ sở dữ liệu hiện nay gồm có Oracle, MySQL, SQL Server nhưng trong đó Oracle không phổ biến bằng 2 hệ còn lại. Ta sẽ phân tích về MySQL và SQL Server. Về cơ bản, MySQL và SQL Server đều tương tự nhau, có cùng chức năng mặc dù cách thức sử dụng có thể khác nhau. Tuy nhiên để sử dụng trên Windows và hoạt động với .NET Framework thì SQL là sự lựa chọn tốt hơn và được khuyên dùng hơn. Trong khi đó MySQL thì hoạt động tốt hơn trên Linux hoặc để lưu trữ dữ liệu trên các ứng dụng web. Vì ứng dụng lưu trữ thông tin khách hàng
9 của đồ án ở quy mô nhỏ nên nhóm em quyết định chọn SQL Server. Để C# có thể thao tác được với SQL server thì cần phải có một công cụ trực quan để làm việc. Ở đây nhóm em sử dụng SQL Server 2014 Management Studio.
2.2.6. Khái niệm về HTLM và AWP. a. HTML là gì? a. HTML là gì?
HTML (Hyper Text Makeup Language) là ngôn ngữ lập trình web đơn giản. Ta có thể lập trình HTML thông qua các thẻ và nội dung dạng text. Mỗi thẻ bao quanh một đối tượng và thuộc tính của các đối tượng này có thể được quyết định bởi các thẻ. Ta có thể sử dụng các chương trình soạn thảo văn bản bất kỳ như Word hoặc Notepad++ để tạo file html một cách rất đơn giản. Trong đồ án này, nhóm em sử dụng Notepad++ để lập trình HTML vì phần mềm này có thể phân chia bố cục rõ ràng cho các thành phần trong code do đó có thể giúp ta quản lý chương trình đang viết tốt hơn. File HTML sau khi lập trình xong được gọi là một trang web.
b. AWP là gì?
AWP (Automation Web Programming) là ngôn ngữ web do Siemens phát triển cho các dòng PLC được tích hợp tính năng Webserver. Nhờ AWP, ta có thể truy cập dữ liệu trên PLC một cách dễ dàng bởi vì PLC có thể biên dịch và hiểu được nó. Bản chất của AWP là các dòng ghi chú trong trang HTML. AWP bao gồm 3 tác vụ cơ bản là đọc giá trị từ PLC (Read), ghi giá trị xuống PLC (Write) và thay thế giá trị dạng số bằng dạng văn bản (Enum).
2.2.7. Các chuẩn truyền dữ liệu.
a. Chuẩn giao tiếp USB (Universal Serial Bus)
Là một chuẩn kết nối tuần tự đa dụng trong máy tính. Các thiết bị ngoại vi được kết nối với máy tính thông qua cổng USB. Trong đề tài này cụ thể là Arduino được kết nối với máy tính thông qua cáp USB. Sau khi kết nối để Arduino có thể làm việc được với máy tính thì ta cần cài các driver cho máy tính. Một trong những số đó là CH341SER, driver này có tác dụng là sẽ quét các cổng giao tiếp với máy tính, trong đó có Arduino. Đối với các máy tính cài đặt Windows 7 đôi khi sẽ gặp lỗi là khi cắm Arduino vào rồi nhưng máy tính không nhận kết nối. Khi đó thì CH314SER sẽ thực sự hữu ích.
Một trong những đặc trưng của cáp USB là nó có 2 sợi nguồn (+5V và dây chung GND). Với sợi nguồn này máy tính có thể cấp nguồn lên tới 500mA ở điện áp 5VDC. Việc này đồng nghĩa với việc khi cắm Arduino vào máy tính qua cáp
10 USB thì ta đã cấp nguồn cho Arduino rồi và không cần một nguồn độc lập nào khác. Ngoài ra thì các thiết bị USB có đặc tính nóng, nghĩa là các thiết bị được cắm vào và rút ra trong mọi thời điểm tùy thích mà không cần phải khởi động lại hệ thống.
b. Chuẩn giao tiếp SPI (Serial Peripheral Interface)
Là một chuẩn truyền thông đồng bộ nối tiếp để truyền dữ liệu ở chế độ song công toàn phần (full-duplex), nghĩa là trong cùng một thời điểm có thể xảy ra đồng thời quá trình truyền và nhận, nhằm đảm bảo sự liên hợp giữa các vi điều khiển và thiết bị ngoại vi một cách đơn giản. Giao thức truyền thông này theo kiểu Master – Slave. Trong luận văn này thì chuẩn giao tiếp SPI được thể hiện qua kết nối giữa module RFID RC522 với vi điều khiển Arduino, trong đó Arduino đóng vai trò là master và module RFID RC522 đóng vai trò là Slave. SPI đôi khi được gọi là truyền thông “4 dây” vì có 4 đường giao tiếp trong chuẩn này, đó là SCK (Serial Clock), MISO (Master Input Slave Output), MOSI (Master Output Slave input) và SS (Slave Select). Trong đó:
- SCK hay SCLK: Xung đồng hồ có tác dụng giữ nhịp cho giao tiếp SPI. Xung
này được tạo ra từ Arduino. Vai trò của nó là rất quan trọng vì nó giúp cho quá trình truyền ít bị lỗi và tốc độ truyền có thể đạt rất cao.
- MOSI hay SI: Cổng ra của bên Master, cổng vào của bên Slave. Chân này có tác dụng truyền dữ liệu từ Master đến Slave.
- MISO hay SO: Cổng vào của bên Master, cổng ra của bên Slave. Chân này
có tác dụng truyền dữ liệu từ Slave đến Master.
- SS hay CS: Dùng để chọn Slave cần giao tiếp. Khi không hoạt động thì chân SS này ở mức cao. Nếu Master kéo chân SS của Slave nào xuống mức thấp thì Slave đó sẽ được giao tiếp với Master.
Về cách thức hoạt động thì cứ mỗi xung nhịp do Master tạo ra trên SCK thì một bit trong thanh ghi dữ liệu của Master được truyền qua Slave trên đường MOSI, đồng thời môt bit trong thanh ghi của Slave được truyền qua Master trên đường MISO. Do quá trình gửi qua lại đồng thời nên nó được gọi là truyền dữ liệu “song công”.
c. Chuẩn giao tiếp Ethernet.
Ethernet là một công nghệ mạng cục bộ nhằm giao tiếp truyền thông tin giữa các máy tính. Trong luận văn này thì cáp Ethernet được dùng để kết nối giữa máy tính và PLC S7-1200 nhằm truyền nhận thông tin giữa hai thiết bị này. Ethernet sử
11 dụng cáp xoắn đôi và các liên kết sợi quang học giúp tăng tốc độ truyền dữ liệu hơn so với phiên bản trước đó của nó là sử dụng cáp đồng trục.
2.2.8. Giới thiệu một số phần mềm lập trình
Microsoft Visual Studio.
Đây là 1 môi trường phát triển tích hợp (IDE) từ Microsoft. Nó được sử dụng để phát triển chương trình máy tính cho Microsoft Windows, cũng như các trang web, các ứng dụng web và các dịch vụ web. Trong luận văn, Visual Studio được sử dụng để lập trình để giao tiếp giữa Arduino, máy tính và PLC. Có rất nhiều ngôn ngữ để cho bạn có thể lập trình trên môi trường này gồm có C, C++, C#, Visual Basic, Java và Python. Ngoài ra cũng có rất nhiều ứng dụng mà bạn có thể xây dựng ở đây như Windows Forms Designer, Web designer hoặc là Mapping designer. Microsoft cung cấp phiên bản “Express” đối với phiên bản Visual Studio từ 2013 trở về trước và “Community” đối với bản Visual Studio từ 2015 trở về sau. Đây là phiên bản miễn phí của Visual Studio và cũng là phiên bản được sử dụng trong luận văn này.
Hình 2.7: Phần mềm Microsoft Visual Studio 2015
SQL Server 2014 Management Studio.
Là một công cụ để ta có thể truy cập đến cơ sở dữ liệu SQL Server. Nó có một giao diện được thiết kế trực quan, dễ sử dụng. Nhờ đó ta có thể thêm, xóa hoặc sửa đổi các thông tin về mã thẻ, khách hàng, thời gian gửi xe và nhiều thông tin khác trong cơ sở dữ liệu. SQL Server 2014 Management Studio đã được tích hợp sẵn
12 trình soạn thảo trực quan SQL, điều đó có nghĩa là ta có thể sử dụng ngôn ngữ SQL lập trình trực tiếp trên SQL Server 2014 Management Studio để thực hiện các thao tác như truy vấn dữ liệu, thêm, xóa dữ liệu hoặc sửa đổi các hàng, cột trong cơ sở dữ liệu của chúng ta.
Hình 2.8: Phần mềm SQL Server 2014 Management Studio
TIA Portal (Total Integrated Automation Portal)
Đây là phần mềm đã được tích hợp tất cả các phần mềm cấu hình, lập trình cho các hệ tự động hóa và truyền động điện như PLC, HMI, Inverter của Siemens. Trong phạm vi luận văn, TIA Portal được sử dụng để lập trình điều khiển PLC S7- 1200 và thiết kế màn hình giao diện thu thập thông tin và giám sát hệ thống bãi giữ xe ô tô tự động. Phần mềm này có một ưu điểm rất lớn là đã tích hợp tất cả trong một giao diện tạo nên sự nhất quán trong quá trình làm việc. Tuy nhiên nó cũng có một nhược điểm là vì tích hợp nhiều thứ nên dẫn đến dung lượng phần mềm lớn, yêu cầu cấu hình máy phải cao.
13
Arduino IDE
Đây là một phần mềm được dùng để lập trình cho vi điều khiển Arduino được viết bằng Java mà ta có thể dễ dàng biên dịch (compile) và gửi chương trình (upload) lên board mạch Arduino chỉ bằng 1 cú nhấp chuột. Một chương trình được viết cho Arduino được gọi là một sketch. Ta có thể viết chương trình cho Arduino bằng ngôn ngữ C hoặc C++. Khi lập trình thì ta cần lưu ý đến 2 hàm để tạo ra một chương trình hoàn chỉnh có thể chạy được. Đó là:
- Setup(): Hàm này để thiết lập các cài đặt, chỉ chạy mỗi khi khởi động một chương trình
- loop(): Hàm này được lặp đi lặp lại cho đến khi tắt nguồn board mạch. Nó giống như while (true) trong C/C++ hoặc giống như khối hàm OB1 trong PLC Siemens vậy.
Ưu điểm của Arduino là một nền tảng mã nguồn mở. Nó có một cộng đồng rất lớn trên thế giới nên sự hỗ trợ từ cộng đồng Arduino là cực kỳ hữu ích. Ở Việt Nam cũng có một cộng đồng Arduino rất lớn đó là arduino.vn.
Hình 2.10: Phần mềm Arduino IDE
2.2.9. Giới thiệu một số phần cứng được sử dụng trong đề tài.
PLC (Programmable Logic Controller).
Là một bộ điều khiển Logic có thể lập trình được. Hiện nay có rất nhiều hãng sản xuất PLC như Siemens (Đức), Omron (Nhật Bản), Mitsubishi (Nhật Bản) và
14 nhiều nhà sản xuất khác nữa. Để lập trình cho PLC thì có các ngôn ngữ lập trình là LAD (Ladder Logic – dạng hình thang), FBD (Function Block Diagram – Khối chức năng), STL (Statement List – liệt kê lệnh), được ưa chuộng nhất có lẽ đó là LAD vì nó đơn giản và dễ hiểu. PLC sẽ nhận các tín hiệu ở ngõ vào và dựa vào các thuật toán điều khiển do người dùng lập trình bên trong PLC để xuất ra các tín hiệu ở ngõ ra có tác dụng điều khiển các thiết bị khác.
Cấu trúc bên trong PLC được thể hiện trong hình 2.11 gồm có :
- Bộ nhớ chương trình RAM, ROM.
- Một bộ vi xử lý trung tâm CPU, dùng để xử lý các thuật toán. - Các module tín hiệu vào ra.
PLC được cấu trúc thành các module nên dễ dàng thay thế, mở rộng khi có nhu cầu. Ngoài ra PLC còn có khả năng chống nhiễu tốt, là sự lựa chọn hàng đầu trong môi trường công nghiệp.
Hình 2.11: Cấu trúc PLC. Ứng dụng:
- PLC được ứng dụng nhiều để điều khiển máy bơm, lò nhiệt, động cơ trong các hệ thống băng tải, thang máy hoặc các dây chuyền sản xuất trong công nghiệp.
15
Hình 2.12: Một số loại PLC thông dụng
Arduino
Arduino là một board mạch vi xử lý được thiết kế trên nền tảng AVR Atmel 8 bit hoặc ARM Atmel 32 bit. Arduino thường được trang bị một cổng USB, các chân input analog và digital để tương tác với các thiết bị khác. Arduino là một giải pháp lập trình dễ dàng, được coi là rẻ tiền cho những người yêu thích lập trình có thể tương tác với môi trường qua các cảm biến và các cơ cấu chấp hành để tạo được nhiều ứng dụng trong cuộc sống. Về phần cứng, Arduino thường sử dụng các dòng