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 chip megaAVR, ATmega8, ATmega168, ATmega328, ATmega1280 và ATmega2560. Hiện tại thì có các dòng Arduino như Arduino Uno, Arduino Mega, Arduin Nano, Arduino Due và Arduino Leonardo. Arduino là một nền tảng phần cứng mã nguồn mở, tuy nhiên nhiều nhà phát triển ứng dụng bằng Arduino cũng có phát hành thương mại các sản phẩm tương thích với Arduino nhưng lấy cái tên là ‘- duino’.
16
Hình 2.13: Một số loại Arduino thông dụng
Cảm biến quang
Cảm biến quang điện được tạo thành từ các linh kiện quang điện. Khi có ánh sáng thích hợp chiếu vào bề mặt của cảm biến quang, chúng sẽ thay đổi tính chất. Tín hiệu điện tạo ra là nhờ hiện tượng phát xạ điện tử biến đổi từ tín hiệu quang, từ đó cảm biến sẽ tác động ngõ ra để đưa tín hiệu đó vào PLC.
Cảm biến quang được phân loại như sau:
- Cảm biến quang thu phát
- Cảm biến quang phản xạ gương
- Cảm biến quang khuếch tán
Cấu trúc của cảm biến quang gồm 3 thành phần chính:
- Bộ phát sáng.
- Bộ thu sáng.
- Mạch xử lý tín hiệu ra.
Ứng dụng của nó là dùng để phát hiện các vật thể từ xa ví dụ như phát hiện xe đã có trong bãi giữ xe chưa hoặc là kiểm tra thử vật đã được đi qua trong băng chuyền hay chưa. Cảm biến quang được sử dụng rất nhiều trong các ứng dụng tự động hóa.
17
Hình 2.14: Một số loại cảm biến quang thông dụng
Công tắc hành trình
Như tên gọi của nó, công tắc hành trình dùng để giới hạn hành trình của các bộ phận chuyển động. Công tắc hành trình hoạt động giống như công tắc điện nhưng là loại không duy trì trạng thái, khi không còn tác động sẽ trở về vị trí ban đầu. Nó có cấu tạo gồm 1 cần tác động, chân COM, chân thường đóng (NC – Normally Closed), chân thường hở (NO – Normally Open). Khi cần sử dụng ứng dụng thường hở thì ta sẽ sử dụng chân COM và chân NO. Khi có tác động từ cần tác động thì mạch điện sẽ được đóng lại, khi cần tác động nhả ra thì mạch điện sẽ hở lại bình thường. Hoạt động tương tự cho chân NC.
Trên thị trường hiện nay có rất nhiều loại công tắc hành trình và được ứng dụng rất rộng rãi trong thực tế, nhất là trong các ứng dụng tự động hóa như trên các dây chuyền sản xuất, băng tải và các ứng dụng đóng ngắt tự động.
18
Động cơ bước
Là một loại động cơ điện đồng bộ biến đổi các tín hiệu xung rời rạc thành các chuyển động góc quay. Động cơ bước hoạt động quay theo từng bước nên có độ chính xác rất cao về mặt điều khiển. Chính vì tính chất đó nên nó được ứng dụng nhiều trong ngành tự động hóa, nhất là trong các ứng dụng cần phải điều khiển chính xác vị trí của hệ thống như điều khiển vị trí của tay nâng trong hệ thống bãi giữ xe ô tô tự động.
Hình 2.16: Một số loại động cơ bước phổ biến
Động cơ điện một chiều.
Đây là loại động cơ điện hoạt động với dòng điện một chiều, được sử dụng trong các ứng dụng đặc biệt yêu cầu mô men khởi động cao. Cấu tạo của một động cơ điện một chiều gồm có 2 phần chính là stato và roto. Trong đó:
- Stato là bộ phận đứng yên, sinh ra từ trường, gồm 1 hoặc nhiều nam châm vĩnh cửu hoặc nam châm điện.
- Roto là các cuộn dây quấn và được nối với nguồn điện một chiều. Roto là bộ phận sẽ quay quanh stato.
19
Hình 2.17: Động cơ điện một chiều