DANH MỤC CÁC HÌNH1.1 Cấu trúc chung của hệ thống chống nghiêng tàu thủy 6 2.2 Thu thập dữ liệu tại Cơ quan hàng không và vũ trụ - NASA 102.3 Thu thập dữ liệu từ cảm biến đo gió trong ôtô
Trang 1LỜI CAM ĐOAN
Tôi xin cam đoan luận văn “nghiên cứu xây dựng hệ thống điều khiển chống nghiêng tàu thủy” là do tôi làm dưới sự hướng dẫn của thầy giáo TS Hoàng Đức Tuấn Các dữ liệu được thu thập, tính toán, lập trình và kết quả cuối cùng nêu trong luận văn là trung thực, chưa từng được ai công bố trong bất kỳ công trình nào khác
Tôi xin cam đoan rằng các thông tin trích dẫn trong luận văn đều đã được chỉ
rõ nguồn gốc, tất cả tài liệu tham khảo đã được liệt kê ở mục tài liệu tham khảo
Tác giả luận văn
Dương Đức Khải
Trang 2LỜI CẢM ƠN
Tác giả xin chân thành cảm ơn TS Hoàng Đức Tuấn đã tận tình hướng
dẫn, giúp đỡ để luận văn được hoàn thành thuận lợi; xin chân thành cảm ơn các thầy cô trong Khoa Điện - Điện tử và Viện đào tạo sau đại học đã truyền dạy những kiến thức quí báu
Những lời cảm ơn chân thành tiếp theo xin được đến tới gia đình, bạn bè và đồng nghiệp, những người đã luôn động viên, khuyến khích và chia sẻ khó khăn trong suốt quá trình học tập và nghiên cứu khoa học của tác giả
Trang 3MỤC LỤC
LỜI CAM ĐOAN i
LỜI CẢM ƠN ii
MỤC LỤC iii
DANH MỤC CÁC CHỮ VIẾT TẮT VÀ KÝ HIỆU v
DANH MỤC CÁC BẢNG vii
DANH MỤC CÁC HÌNH viii
MỞ ĐẦU 1
CHƯƠNG 1 KHÁI QUÁT CHUNG VỀ HỆ THỐNG 3
CHỐNG NGHIÊNG TÀU THỦY 3
1.1 Giới thiệu chung về hệ thống chống nghiêng tàu thủy 3
1.2 Chức năng của hệ thống chống nghiêng tàu thủy 3
1.3 Các yêu cầu đối với hệ thống chống nghiêng tàu thủy 4
1.4 Phân loại hệ thống chống nghiêng tàu thủy 5
1.5 Cấu trúc chung của hệ thống chống nghiêng tàu thủy 6
1.6 Nguyên lý chung của hệ thống chống nghiêng tàu thủy 8
CHƯƠNG 2 TỔNG QUAN VỀ PHẦN MỀM LABVIEW 10
2.1 Giới thiệu về LabVIEW 10
2.2 Những khái niệm cơ bản của LabView 16
2.3 Các kỹ thuật lập trình trên LabVIEW 19
2.4 Kiểu dữ liệu trong Labview 24
2.5 Các phép toán cơ bản trong LabVIEW 27
2.6 Các cấu trúc điều khiển luồng chương trình 31
2.7 SubVI và cách xây dựng SubVI 36
2.8 Kỹ thuật lập trình nâng cao trong LabVIEW 38
CHƯƠNG 3 XÂY DỰNG HỆ THỐNG ĐIỀU KHIỂN CHỐNG NGHIÊNG TÀU THỦY BẰNG PHẦN MỀM LABVIEW 43
3.1 Đề xuất cấu trúc hệ thống điều khiển cân bằng tàu trên máy tính 43
3.2 Các phần tử chính trong hệ thống điều khiển chống nghiêng tàu thủy 44
Trang 43.3 Xây dựng hệ thống điều khiển chống nghiêng tàu thủy 52
KẾT LUẬN VÀ KIẾN NGHỊ 73
TÀI LIỆU THAM KHẢO 74
PHỤ LỤC 1
Trang 5DANH MỤC CÁC CHỮ VIẾT TẮT VÀ KÝ HIỆU Các chữ viết tắt:
COM Computer Output on Micro
DLL Dynamic Link Library
DMM Digital Multimeter
DSP Digital Signal Processing
GUI Graphic User Interface
HTML Hypertex Markup Language
LaVIEW Laboratory Virtual Instrumentation Engineering WorkbenchLSB Least Significant Bit
NI National Instruments
PCI Peripheral Component Interconnect
PDA Personal Digital Assistant
PID Proportional Intergral Derivative
PXI PCI Extensions for Instrumentation
RS232 Recommended Standard 232
SCADA Supervisory Control and Data Acquisition
TCP/IP Transmission Control Protocol/ Internet Protocol
UDP User Datagram protocol
USB Universal Serial Bus
VDR Voyage Data Recorder
VI Virtual Instruments
Trang 6Các ký hiệu:
NC Tiếp điểm thường mở của rơle điện tử
NO Tiếp điểm đóng mở của rơle điện tử
C Chân chung của cặp tiếp điểm rơle điện tử
EN Chân tín hiệu điều khiển rơle điện tửVSS Nguồn nuôi rơle điện tử
GND Chân nối đất rơ le điện tử
Trang 7DANH MỤC CÁC BẢNG
3.3 Thông số cảm biến mức nước dạng tương tự 46
3.5 Thông số kỹ thuật của cảm biến đo góc nghiêng S917
inclinometers
48
3.6 Chức năng và thông số của các chân trên cổng A, B của bộ
điều khiển NI myRIO 1900
50
3.7 Chức năng và thông số của các chân trên cổng C của bộ điều
khiển NI myRIO 1900
513.8 Các tín hiệu vào ra của hệ thống điều khiển 56
Trang 8DANH MỤC CÁC HÌNH
1.1 Cấu trúc chung của hệ thống chống nghiêng tàu thủy 6
2.2 Thu thập dữ liệu tại Cơ quan hàng không và vũ trụ - NASA 102.3 Thu thập dữ liệu từ cảm biến đo gió trong ôtô và thí nghiệm
thuật toán chuyển đổi cảm biến
11
2.6 Robot dưới nước (Spider) được phát triển dựa trên
LabVIEW của công ty Nexans
13
2.7 Hệ thống lái không trục lái tại phòng thí nghiệm
Biorobotics, KUT, Hàn Quốc
Trang 93.1 Cấu trúc chung của hệ thống tự động cân bằng tàu thủy 42
3.8 Cảm biến đo góc nghiêng S917 inclinometers 47
3.10 Các khối chức năng trong bộ điều khiển NI myRIO 1900 493.11 Cổng A, B của bộ điều khiển NI myRIO1900 50
3.13 Bố trí mặt ngoài của tủ điều khiển động cơ 52
3.27 Cấp nước từ ngoài hệ thống tới các két nước 63
3.29 Cửa sổ True của chương trình điều khiển van, bơm tự động 643.30 Cửa sổ False của chương trình điều khiển van, bơm tự động 653.31 Chương trình điều khiển van, bơm bằng tay 65
3.33 Của sổ True - True của chương trình xuất tín hiệu tương tự 663.34 Cửa sổ True - False - True của chương trình xuất tín hiệu 67
Trang 11MỞ ĐẦU
1 Tính cấp thiết của đề tài
Ngày nay với sự phát triển lớn mạnh, vượt bậc của nghành công nghiệp đóng tàu đã cho ra đời những con tàu siêu trường, siêu trọng Cùng với đó thì việc vận hành khai thác sẽ phức tạp hơn đặt ra yêu cầu cho các hệ thống điều khiển, giám sát trên tàu ngày càng phải hoàn thiện và hiện đại hơn, từ đó giảm bớt được
số người phục vụ và nâng cao được chất lượng của toàn hệ thống Theo đó việc bốc xếp, dỡ hàng hóa đòi hỏi phải có sự giám sát và tự động điều chỉnh độ cân bằng của tàu (giám sát và điều khiển góc nghiêng)
Hiện nay vấn đề giám sát và điều khiển mức độ cân bằng tàu hầu như được thực hiện bằng tay Việc quan sát góc nghiêng được thưc hiện chủ yếu thông qua đồng hồ cơ Vấn đề điều khiển phải thông qua các sỹ quan vận hành đi ca, mở van
và bơm nước cân bằng bằng tay mất nhiều thời gian và đòi hỏi luôn phải có sỹ quan trực và phục vụ khi làm hàng cũng như khi tàu hành trình Đặc biệt khi tàu hành trình trong điều kiện trên biển có sóng gió việc thiết lập độ cân bằng cho tàu
là hết sức quan trọng
Với sự phát triển lớn mạnh của các ngành điện, điện tử, công nghệ thông tin thì vấn đề về điều khiển, giám sát và xu hướng xây dựng phòng điều khiển trung tâm ngày càng được ứng dụng rộng rãi Xuất phát từ thực tế đó tác giả đã chọn đề
tài luận văn: “Nghiên cứu xây dựng hệ thống điều khiển chống nghiêng tàu
thủy”
2 Mục đích của đề tài
Nghiên cứu xây dựng mô hình vật lý hệ thống điều khiển chống nghiêng tàu thủy Việc nghiên cứu thành công đề tài này sẽ làm cơ sở cho việc ứng dụng hệ thống điều khiển tự động cân bằng tàu thủy vào các tàu đóng mới hiện nay
3 Đối tượng và phạm vi nghiên cứu của đề tài
Đối tượng nghiên cứu của đề tài: Hệ thống chống nghiêng tàu thủy
Trang 12Phạm vi nghiên cứu của đề tài: Nghiên cứu xây dựng hệ thống điều khiển chống nghiêng tàu thủy bằng phần mềm LabVIEW với bộ điều khiển NI myRIO 1900.
4 Phương pháp nghiên cứu của đề tài
Để đạt được mục tiêu nghiên cứu, đề tài sử dụng các phương pháp như: phương pháp phân tích, phương pháp chuyên gia, phương pháp mô hình hóa và phương pháp thực nghiệm để kiểm chứng kết quả trên phần mềm
5 Ý nghĩa khoa học và thực tiễn của đề tài
* Ý nghĩa khoa học Đề tài
Là tài liệu tham khảo hữu ích cho các độc giả quan tâm đến các ứng dụng của LabVIEW trong thực tế Thể hiện rõ được vai trò của các tiến bộ khoa học kỹ thuật góp phần vào phát triển ngành công nghiệp đóng tàu ở nước ta, từ đó giảm được chi phí nhân công đồng thời nâng cao được quá trình tự động hóa trong vận hành khai thác tàu Đề tài này có thể đóng góp một phần nhỏ vào công cuộc công nghiệp hóa - hiện đại hóa đất nước trong thời kỳ hiện nay đặc biệt là trong ngành công nghiệp đóng tàu
*Ý nghĩa thực tiễn
Kết quả nghiên cứu của đề tài có thể sử dụng vào việc dạy học trong chương trình đào tạo nghề và ứng dụng trong công nghiệp tàu thủy Kết quả nghiên cứu của đề tài hoàn toàn có thể áp dụng vào thực tế trong các cảng biển để tiết kiệm chi phí, nâng cao năng suất lao động, an toàn cho tàu và thuyền viên
Trang 13CHƯƠNG 1 KHÁI QUÁT CHUNG VỀ HỆ THỐNG
CHỐNG NGHIÊNG TÀU THỦY 1.1 Giới thiệu chung về hệ thống chống nghiêng tàu thủy
Tàu thuỷ là phương tiện hoạt động trên nước Trong quá trình hoạt động di chuyển do tác động của nhiều yếu tố môi trường như sóng, gió, bão,… tàu có thể
bị mất cân bằng nghiêng trái, nghiêng phải, chúi mũi, chúi lái và một lí do chính khiến cho tàu mất cân bằng là khi tàu xếp dỡ hàng hoá (xếp hàng không cân) hoặc trong quá trình di chuyển tàu tiêu hao nhiên liệu và nước ngọt dự trữ trong các két
ở hai bên mạn tàu khiến cho trọng lượng của các két giảm xuống Để giải quyết vấn đề ổn định cho tàu trong quá trình hoạt động người ta sử dụng hệ thống cân bằng tàu Bản chất của hệ thống cân bằng tàu sử dụng trên tàu là: hai bên mạn tàu
có các két chống nghiêng Trong quá quá trình tàu hoạt động, vì một lí do nào đó
mà tàu bị nghiêng thì hệ thống cân bằng tàu có nhiệm vụ bơm nước từ két này sang két kia để tàu được cân bằng Trong thực tế phụ thuộc vào tính năng, kết cấu, hình dáng và kích thước của loại tàu người ta có thể sử dụng nhiều hoặc ít các két chứa nước chống nghiêng và nhiều hệ thống điều khiển đóng, mở, đo lường dung tích các két
1.2 Chức năng của hệ thống chống nghiêng tàu thủy
Hệ thống cân bằng tàu là một hệ thống hết sức quan trọng của con tàu, nó có nhiệm vụ giám sát và kiểm tra mọi sự sai lệch về độ nghiêng thực tế của con tàu so với độ nghiêng được thiết kế (có nhiều nguyên nhân dẫn đến tàu bị nghiêng khỏi vị trí cân bằng ban đầu của nó như do tác động của sóng, gió, do quá trình xếp dỡ hàng hoá ở cảng, do quá trình luân chuyển và sử dụng các két dầu đốt, các két nước ngọt…) [11] Hệ thống thực hiện việc giám sát bằng các cảm biến mức nước của các két chống nghiêng qua đó gửi tín hiệu thu được tới trung tâm tính toán Từ các số liệu thu được người vận hành sẽ tính toán và đưa ra quyết định điều khiển các bơm chống nghiêng khác nhau ở các vị trí két khác nhau nhằm giữ cho con tàu có thể cân bằng trong giới hạn cho phép Đối với những con tàu có hệ thống tự
Trang 14động điều khiển chống nghiêng thì tín hiệu thu được từ các cảm biến mức nước, cảm biến góc nghiêng được đưa về bộ xử lí trung tâm, nó sẽ được tính toán và từ bộ xử lí trung tâm này sẽ gửi tín hiệu điều khiển tới các rơle trung gian để khởi động các bơm và van chống nghiêng tương ứng Hệ thống này rất quan trọng đối với sự an toàn của con tàu và hàng hoá vì nếu có sai sót hỏng hóc nào đó của hệ thống mà tín hiệu giám sát và điều khiển không đúng thì có thể dẫn đến con tàu bị nghiêng quá nhiều gây ra tình trạng nước tràn vào tàu và có thể bị đắm tàu.
Hệ thống giám sát và điều khiển cân bằng tàu có nhiệm vụ chính là nâng cao tính ổn định cho con tàu, đảm bảo cho con tàu luôn luôn cân bằng (không bị nghiêng, bị lệch) [10]
Nâng cao hiệu suất đối với hệ lực đẩy Hệ thống cân bằng tàu dùng khi tàu xếp hàng không đều, khi tàu không chở hàng (tàu chạy ballast) hoặc khi có ngoại lực tác dụng lên tàu như sóng, gió [10]
Việc điều hành hoạt động của hệ thống cân bằng tàu được thực hiện theo lệnh của sĩ quan boong, thông thường là đại phó (chief officer) khi đã nghiên cứu tính ổn định của tàu trong điều kiện khai thác thực tế Sau khi nhận được lệnh bơm nước để cân bằng tàu vào các két chống nghiêng tương ứng thì sĩ quan máy sẽ thực hiện các thao tác cần thiết [10]
1.3 Các yêu cầu đối với hệ thống chống nghiêng tàu thủy
Do đặc điểm và tính chất quan trọng của hệ thống cân bằng tàu, liên quan đến trực tiếp sự an toàn của con tàu [11], vì vậy hệ thống phải phải đáp ứng được các yêu cầu đưa ra như:
- Hệ thống phải có ít nhất hai trạm điều khiển tại chỗ và từ xa Hai trạm này
có thể điều khiển độc lập được với nhau Trong quá trình điều khiển, khi cần chuyển đổi từ trạm này sang trạm kia thì việc chuyển đổi phải được thực hiện nhanh chóng và chính xác
- Hệ thống phải có 2 chế độ là bằng tay và tự động
- Trên hệ thống giám sát người vận hành phải quan sát được góc nghiêng của tàu và phải quan sát được trạng thái hoạt động của các bơm, van…
Trang 15- Các van chống nghiêng đều có thể đóng mở bằng tay được khi không thể điều khiển từ xa.
- Van sau bơm là loại van một chiều để tránh việc nước chảy ngược về bơm [10]
- Lắp đặt các thiết bị cảm biến chỉ báo mức nước trong mỗi két cân bằng và hiển thi thông số trên bảng điều khiển cho người vận hành biết
- Khi có tín hiệu nghiêng hệ thống cần đặt thời trễ để khẳng định độ nghiêng tránh sự nghiêng giả tức thời do sóng, gió gây ra
- Có các chế độ bảo vệ hệ thống, khống chế bơm hoạt động khi mực nước trong các két quá cao hoặc quá thấp, hoặc khi các van không mở được
- Phải có tín hiệu báo động cho người vận hành biết khi độ nghiêng của tàu
> 5o, và khống chế hoạt động điều khiển tự động
- Hệ thống cần nên trang bị thêm trạm điều khiển và giám sát trên buồng lái [10]
- Hệ thống nên cần được ghép nối với hệ thống máy in để có thể in nhật ký khi có sự cố và cần được ghép nối với hệ thống VDR…
1.4 Phân loại hệ thống chống nghiêng tàu thủy
Hệ thống hệ thống chống nghiêng tàu có thể phân thành hai loại chính [11]:
- Hệ thống có giám sát nhưng không tự động điều khiển chống nghiêng
- Hệ thống có giám sát và có thể tự động phát tín hiệu khởi động để điều khiển chống nghiêng
Đối với hệ thống có giám sát nhưng không tự động điều khiển chống nghiêng thì các quyết định đưa ra sau đó sẽ do sĩ quan boong (thường là đại phó) chịu trách nhiệm và người thực hiện sẽ là sĩ quan máy Hệ thống loại này có nhược điểm là làm cho công việc của đại phó nhiều thêm nhưng nó có ưu điểm là tính an toàn và chắc chắn cao hơn Đối với hệ thống có giám sát và có tự động điều khiển chống nghiêng tàu thì đáp ứng được tính tự động hoá cao trên tàu thuỷ nhưng lại có nhược điểm lớn là nếu có trục trặc hay hỏng hóc nào đó với hệ thống thì độ nguy hiểm đối với con tàu sẽ rất lớn Ngày nay đối với các tàu có yêu cầu cao về
Trang 16độ ổn định như các tàu chở container, tàu chở hàng rời thì được ứng dụng loại hệ thống có tự động điều khiển chống nghiêng tàu nhưng hệ thống này cần phải được thường xuyên theo dõi để đảm bảo không có hỏng hóc nào xảy ra đối với hệ thống cũng là đảm bảo an toàn cho con tàu [10].
Ngoài ra, hệ thống hệ thống chống nghiêng tàu còn được phân loại theo loại bơm được sử dụng: bơm li tâm, bơm cánh gạt, bơm piston, bơm bánh răng
1.5 Cấu trúc chung của hệ thống chống nghiêng tàu thủy
Cấu trúc chung của hệ thống chống nghiêng tàu thủy bao gồm các phần chính được thể hiện trong hình vẽ sau [14], [15]:
Trang 17Hình 1.1 Cấu trúc chung của hệ thống chống nghiêng tàu thủy
1.5.1 Kết cấu chung
- Hệ thống két chống nghiêng, van ống Đối với kết cấu của hệ điều chỉnh nghiêng bao gồm 2 két chứa nước được treo ở 2 bên mạn tàu nằm ở vị trí giữa của
Trang 18tàu Hệ thống đường ống nối 2 két với nhau thông qua bơm hút, đấy và hệ thống van để đóng, mở đường ống Giả sử tàu bị nghiêng trái thì bơm sẽ hút nước từ két bên trái chuyển sang két bên phải và ngược lại [10].
- Các thiết bị ngoại vi lắp đặt bên ngoài [10]:
+ Các thiết bị điều khiển như: bơm chống nghiêng, van đóng mở đường ống, van phân phối
+ Các thiết bị giám sát như: cảm biến nghiêng, các bộ chuyển đổi mức, cảm biến báo động mức nước…
1.5.2 Kết cấu hệ thống điều khiển
- Buồng điều khiển của hệ thống chống nghiêng (nằm trong phòng riêng của hệ thống ballast) [10]
- Buồng điều khiển thực hiện các chức năng [10]:
+ Điều khiển từ xa chức năng chống nghiêng
+ Giám sát các trạng thái, các thông số trong hệ thống chống nghiêng như:
độ nghiêng, mức nước các két, các trạng thái của bơm, van…
+ Bảng điều khiển tại chỗ: buồng điều khiển tại chỗ thực hiện chức năng điều khiển hệ chống nghiêng khi hệ điều khiển từ xa có sự cố…
1.6 Nguyên lý chung của hệ thống chống nghiêng tàu thủy
Bản chất của hệ thống chống nghiêng sử dụng trên tàu là: hai bên mạn tàu có các két chống nghiêng Trong quá quá trình tàu đứng làm hàng hoặc hành trình vì một lí do nào đó mà tàu bị nghiêng thì hệ thống chống nghiêng tàu có nhiệm vụ bơm chuyển nước từ két này sang két kia để tàu được trở lại cân bằng
Giả sử khi tàu bị nghiêng với góc độ lớn hơn 2o trái hoặc phải thì nhờ vào các cảm biến nghiêng đặt ở trong các két chống nghiêng sẽ đưa tín hiệu gửi đến trung tâm xử lý tín hiệu, sau thời gian trễ khẳng định nghiêng trung tâm xử lý sẽ xử
lý tín hiệu và gửi tín hiệu mở van tương ứng trước Sau khi van đã được mở hoàn toàn thông qua phản hồi trạng thái của van sẽ có tín hiệu khở động bơm hút đẩy nước Sau khi điều chỉnh tàu dần dần trở lại vị trí cân bằng khi đó trung tâm điều khiển xuất tín hiệu để dừng bơm, sau đó có tín hiệu đóng van
Trang 19Trong quá trình điều chỉnh cân bằng tàu vì lý do nào dó mà tàu nghiêng quá
độ cho phép (5o trái hoặc phải) hoặc mức nước trong két cân bằng giảm quá thấp trung tâm xử lý sẽ gửi tín hiệu ra báo động chung và dừng bơm
Trang 20CHƯƠNG 2 TỔNG QUAN VỀ PHẦN MỀM LABVIEW
2.1 Giới thiệu về LabVIEW
2.1.1 LabVIEW là gì?
LabVIEW (viết tắt của Laboratory Virtual Instrumentation Engineering Workbench) là môi trường ngôn ngữ đồ họa hiệu quả trong việc giao tiếp đa kênh giữa con người, thuật toán và các thiết bị [2]
Hình 2.1 Chương trình viết bằng LabVIEWLabVIEW hỗ trợ các kỹ sư, nhà khoa học và sinh viên…xây dựng (thực thi) các thuật toán một cách nhanh, gọn, sáng tạo, và dễ hiểu nhờ các khối hình ảnh có tính gợi nhớ và cách thức hoạt động theo kiểu dòng dữ liệu (data flow) lần lượt từ trái qua phải Các thuật toán này sau đó được áp dụng lên các mạch điện và cơ cấu chấp hành thực nhờ vào việc kết nối hệ thống thật với LabVIEW thông qua nhiều chuẩn giao tiếp như chuẩn giao tiếp RS232 (giao tiếp qua cổng COM), chuẩn USB, chuẩn giao tiếp mạng TCP/IP, UDP, chuẩn GPIB,…Vì vậy LabVIEW là một ngôn ngữ giao tiếp đa kênh [2]
LabVIEW hỗ trợ hầu hết các hệ điều hành (Windows (2000, XP, Vista, Windows7), Linux, MacOS, Window Mobile, Window Embedded [2]
Trang 212.1.2 Các ứng dụng chính của LabVIEW
LabVIEW được biết đến như là một ngôn ngữ lập trình với khái niệm hoàn toàn khác so với các ngôn ngữ lập trình truyền thống như ngôn ngữ C, Pascal Bằng cách diễn đạt cú pháp thông qua các hình ảnh trực quan trong môi trường soạn thảo, LabVIEW đã được gọi với tên khác là lập trình G (viết tắt của Graphical) LabVIEW được sử dụng trong các lĩnh vực đo lường, tự động hóa, cơ điện tử, robotics, vật lý, toán học, sinh học, vật liệu, ôtô, … Nhìn chung [2]:
- LabVIEW giúp kỹ sư kết nối bất kỳ cảm biến, và bất kỳ cơ cấu chấp hành nào với máy tính [2]
- LabVIEW có thể ñược sử dụng để xử lý các kiểu dữ liệu như tín hiệu tương tự (analog), tín hiệu số (digital) hình ảnh (vision), âm thanh (audio),… [2]
- LabVIEW hỗ trợ các giao thức giao tiếp khác nhau như RS232, RS485, TCP/IP, PCI, PXI [2]
- Bạn cũng có thể tạo ra các thực thi độc lập và các thư viện chia sẻ (ví dụ thư viện liên kết động DLL), bởi vì LabVIEW là một trình biên dịch 32-bit [2]
Ứng dụng đo lường, trong hình 2.2 là giao diện thu thập dữ liệu các thông tin cần thiết của tàu vũ trụ cỡ nhỏ tại cơ quan hàng không và vũ trụ NASA, Hoa
Kỳ [2]
Hình 2.2 Thu thập dữ liệu tại Cơ quan hàng không và vũ trụ - NASA
Ứng dụng hình 2.3 này giới thiệu áp dụng của việc sử dụng LabVIEW và card Hocdelam USB 9001 hoặc NI USB 6008 để thực hiện đo tín hiệu, vẽ biểu đồ
Trang 22đặc tuyến các cảm biến trong ôtô và thực nghiệm thuật toán chuyển đổi cảm biến nhằm hạ giá thành sửa chữa xe ôtô Ứng dụng này được thực hiện tại đại học Sư phạm Kỹ thuật Tp.HCM năm 2008 [2].
Hình 2.3 Thu thập dữ liệu từ cảm biến đo gió trong ôtô và thí nghiệm
thuật toán chuyển đổi cảm biếnĐiều khiển xe ô tô từ xa, hình 2.4 là giao diện điều khiển ôtô bảy chỗ (xe Captival) từ xa được thực hiện bởi thành viên Hocdelam Group tại phòng thí nghiệm Biorobotics, Hàn Quốc Giao diện này hoàn toàn được xây dựng trong môi trường lập trình LabVIEW có khả năng hiển thị các thông số và tín hiệu thực như: vận tốc xe, mực xăng, vị trí tay số của xe, video truyền từ xe qua mạng không dây,
âm thanh từ động cơ tỷ lệ thuận với vị trí bướm ga cũng được giả lập làm cho việc điều khiển xe từ xa giống với việc lái xe trực tiếp nhằm nâng cao chất lượng điều khiển xe [2]
Trang 23Hình 2.4 Giao diện lái ôtô từ xa
Mô phỏng 3D, hình 2.5 mô tả ứng dụng mô phỏng một cánh tay robot đơn giản do Thạc sĩ Đỗ Trung Hiếu thực hiện [2]
Hình 2.5 Điều khiển tay RobotĐiều khiển phương tiện không người lái, hình 2.6 mô tả ứng dụng LabVIEW điều khiển robot không người lái nhằm dò tìm và khám phá dưới nước của tập đoàn Nexans [2]
Trang 24Hình 2.6 Robot dưới nước (Spider) được phát triển dựa trên
LabVIEW của công ty NexansThu thập hình ảnh và mô phỏng động lực học, hình 2.7 trình bày ứng dụng
mô phỏng hệ thống lái không trục lái trong ô tô Đồng thời, hình ảnh từ webcam (webcam thông thường gắn qua cổng USB) được thu thập và đưa lên giao diện người dùng (Graphical User Interface - GUI) [2]
Hình 2.7 Hệ thống lái không trục lái tại phòng thí nghiệm
Biorobotics, KUT, Hàn Quốc
Trang 25Thuật toán điều khiển tự động vị trí động cơ DC theo thuật toán PID và giao diện trực quan trong hình 2.8 được Hocdelam Group viết dựa trên cơ sở phần mềm LabVIEW Với giao diện này, người điều khiển sẽ dễ dàng quan sát giá trị vị trí mong muốn, và vị trí thực tế của động cơ, đồng thời, so sánh và đánh giá được tốc
độ đáp ứng, độ ổn định của động cơ DC trong quá trình vận hành [2]
Hình 2.8 Điều khiển động cơ DC theo thuật toán PID
Đo lường, giám sát và điều khiển hệ thống công nghiệp (SCADA), hình 2.9 trình bày ứng dụng của LabVIEW trong hệ thống điều khiển và giám sát dùng trong công nghiệp [2]
Hình 2.9 Hệ thống đo lường, giám sát và điều khiển trong công nghiệp
Trang 262.2 Những khái niệm cơ bản của LabView
2.2.1 VI (Vitual Instrument) - Thiết bị ảo
Lập trình Labview được thực hiện trên cơ sở là các thiết bị ảo (VI) Các đối tượng trong các thiết bị ảo được sử dụng để mô phỏng các thiết bị thực, nhưng chúng được thêm vào bởi phần mềm Các VI tương tự như các hàm trong lập trình bằng ngôn ngữ [13] Để tạo một VI, trên cửa sổ chương trình LabVIEW ta thao tác
File >> New VI:
Hình 2.10 Tạo một VIMột chương trình trong LabView gồm hai phần chính: giao diện người sử dụng (Front Panel) và sơ đồ khối (Block Diagram)
Control là các đối tượng được đặt trên Front Panel để cung cấp dữ liệu cho chương trình Nó tương tự như đầu vào cung cấp dữ liệu [13]
Indicator là đối tượng được đặt trên Front Panel dùng để hiện thị kết quả, nó tương tự như bộ phận đầu ra của chương trình [13]
Trang 27Hình 2.11 Front Panel của chương trình LabVIEWTrình tự thao tác trên Front Panel được thể hiện trên hình 2.12:
(1) Thực hiện tạo lệnh chương trình bằng cách nhấp chột phải (lấy các control và indicator)
(2) Chọn các đối tượng phù hợp
(3) Kéo và nhả đối tượng trong khung lệnh
Hình 2.12 Trình tự thao tác trên Front Panel
Trang 28b Block Diagram
Block diagram của một VI là một sơ đồ được xây dựng trong môi trường LabVIEW, nó có thể gồm nhiều đối tượng và các hàm khác nhau để tạo các cấu trúc lệnh để chương trình thực hiện Block Diagram là một mã nguồn đồ họa của một VI Các đối tượng trên Front Panel được thể hiện bằng các thiết bị đầu cuối trên Block Diagram, không thể loại bỏ các thiết bị đầu cuối trên Block Diagram Các thiết bị đầu cuối chỉ mất đi sau khi loại bỏ đối tượng tương ứng trên Front panel [13]
Cấu trúc của một Block Diagram gồm các thiết bị đầu cuối (Terminal), nút (Node) và các dây nối (wire) [13]
Hình 2.13 Block Diagram của chương trình LabVIEW
2.2.2 Terminal, node, icon & connector
Terminal (cổng) là nơi qua đó dữ liệu được truyền giữa các sơ đồ hoạt động
và mặt máy hoặc giữa các điểm (node) trên sơ đồ hoạt động Chúng nằm giữa biểu tượng của các hàm và VI [3]
Node (điểm) là các phần tử thực hiện chương trình Chúng tương tự với các trạng thái hoạt động, các hàm và các chương trình con trong ngôn ngữ lập trình câu lệnh [3]
Wire (dây nối) là các đường truyền dữ liệu giữa các đầu vào và đầu ra trên một cổng [11]
Trang 29Hình 2.14 Dây nối trong Block DiagramIcon (biểu tượng): là biểu tượng của VI, được sử dụng khi từ một VI muốn
sử dụng chức năng của một VI khác Khi đó VI đó được gọi là SubVI, nó tương đương như một chương trình con trong các ngôn ngữ khác [3, 13]
Connector (đầu nối): là một phần tử của Terminal dùng để nối các đầu vào
và đầu ra của các VI với nhau khi sử dụng Mỗi VI có một Icon mặc định hiển thị trong bảng Icon ở góc trên bên phải cửa sổ Front Palette và Block Diagram [3, 13]
2.3 Các kỹ thuật lập trình trên LabVIEW
Khác với những ngôn ngữ lập trình khác, ngôn ngữ lập trình LabVIEW ngoài những menu quen thuộc giống như những ngôn ngữ khác LabVIEW còn sử dụng các bảng: Tools Palette, Controls Palette, Function Palette, chính những bảng này làm cho LabVIEW khác với các ngôn ngữ sử dụng những câu lệnh rườm rà khó nhớ Các bảng đó cung cấp các chức năng để người sử dụng có thể tạo và thay đổi trên Front Panel và Block Diagram bằng các biểu tượng, các hình ảnh trực quan giúp cho việc sử dụng trở nên dễ dàng, linh động hơn [13]
2.3.1 Tool palette
Tool Panel xuất hiện trên cả Font Panel và Block Diagram Bảng này cho phép người sử dụng có thể xác lập các chế độ làm việc đặc biệt của con trỏ chuột Khi lựa chọn một công cụ, biểu tượng của con trỏ sẽ được thay đổi theo biểu tượng của công cụ đó Nếu thiết lập chế độ tự động lựa chọn công cụ và người sử dụng di chuyển con trỏ qua các đối tượng trên Front Panel hoặc Block Diagram, LabVIEW
sẽ tự động lựa chọn công cụ phù hợp trên bảng Tool Palette [13]
Trang 302.3.2 Controls Palette (bảng điều khiển)
Bảng điều khiển chỉ duy nhất xuất hiện trên Front panel Bảng điều khiển chứa các bộ điều khiển (control) và các bộ hiển thị (Indicator) Bảng điều khiển đầy đủ được minh họa như hình bên đưới Để mở bảng controls palette ta vào
menu View, chọn controls palette [13]
Bảng điều khiển được sử dụng để người sử dụng thiết kế cấu trúc mặt hiển thị Trên bảng controls palette thể hiện khá phong phú các bộ điều khiển khác nhau như trên hình 2.15 [13]:
Hình 2.15 Bảng điều khiển (Controls Palette)
a Numeric controls / Indicators
Bộ công cụ này dùng để hiện thị và điều khiển dữ liệu dạng số trong chương trình LabVIEW:
Trang 31Hình 2.16 Numeric control/indicator
b Boollean controls /Indicators
Bộ công cụ này cung cấp hai giá trị là True và False Khi thực hiện chương trình người sử dụng sử dụng chuột để điều khiển giá trị của thiết bị Việc thay đổi giá trị của các thiết bị chỉ có tác dụng khi các thiết bị đó được xác lập ở chế độ là các Control Còn nếu ở chế độ là các Indicator thì giá trị không thay đổi vì chúng chỉ là các thiết bị hiển thị [13]
Trang 32Hình 2.17 Boolean control/indicator
c String & Path
Các điều khiển này dùng để nhập và hiển thị các ký tự, nó cũng có thể được xác lập ở chế độ đầu vào hay đầu ra hoặc chỉ đường dẫn đến các file cần hiển thị [13]
Hình 2.18 String & Path
Trang 33d Array, Matrix & Cluster
Các điều khiển này dùng để nhập dữ liệu kiểu mảng, ma trận và nhóm
Hình 2.19 Array, Matrix & Cluster
2.3.3 Function palette
Bảng Functions Palette chỉ xuất hiện trên Block Diagram Bảng này chứa các VI và các hàm mà người sử dụng thiết kế để tạo dựng nên các khối lưu đồ Với bảng Function Palette, người lập trình thực hiện các lệnh khác nhau bằng các lưu
đồ như: các phép tính số học, các biểu thức toán học, các vòng lặp, phép lựa chọn thông qua các nhóm hàm, chức năng đã được cung cấp bên cạnh đó bảng này có thể tạo ra và sử dụng lại các hàm, chức năng mà người sử dụng tự xây dựng Các hàm toán học được minh họa thông qua các biểu tượng Khi muốn lựa chọn thực hiện một hàm nào đó thì người sử dụng chọn biểu tượng thể hiện cho hàm đó và có thể kéo thả ở bất kỳ vị trí nào trên Block Diagram sau đó xác định những đầu vào
và đầu ra cần thiết [13]
Trang 34Hình 2.20 Function palette
2.4 Kiểu dữ liệu trong Labview
2.4.1 Các kiểu dữ liệu cơ bản
Kiểu dữ liệu là công cụ dùng để gán (ép) một numeric hay indicator vào một dãy giá trị nào đó LabVIEW hỗ trợ cho tất cả các dạng dữ liệu Trong LabVIEW
có nhiều kiểu biến: Biến số (Numeric), Biến ký tự (String), Biến Mảng, Biến Cluster, Biến Logic (Boolean)…[12]
Trang 35Hình 2.21 Các kiểu dữ liệu cơ bảnMỗi biến được phân biệt bằng các màu trong Block Diagram Ví dụ:
- Kiểu Numeric: dạng Float (số 64 bit dấu phảy động) là kiểu biến có dải giá trị lớn nhất, với độ chính xác cao nhất nhưng tốn nhiều dung lượng chương trình nhất, biểu diện bằng màu vàng da cam [12]
- Các kiểu Numeric Integer: Int8, Int16, Int32, Int64 (số nguyên 8, 16, 32, 64 bit) và U8, U16, U32, U64 (số nguyên không dấu 8,16,32,64 bit) được biểu diễn màu xanh da trời [12]
- String: Chuỗi ký tự, biểu diễn màu hồng [12]
- Boolean: Kiểu Logic, là kiểu biến cho các nút bấm, đèn led và các giá trị logic khác, biểu diễn bằng màu xanh lá cây [12]
2.4.2 Global variables (biến toàn cục) & Local variables (biến địa phương)
Trong quá trình lập trình cần thiết phải sử dụng tới các biến Thông qua các biến, người lập trình có thể thực hiện được việc xử lý và thay đổi dữ liệu một cách thuận lợi Trong LabVIEW, các biến được sử dụng dưới 2 dạng là biến toàn cục (global variables) và các biến địa phương (local variables) [13]:
a Global variables (biến toàn cục)
Biến toàn cục được sử dụng để thực hiện công việc truyền và lưu trữ dữ liệu giữa một vài VI Biến toàn cục được coi là một đối tượng trong LabVIEW Khi ta tạo ra một biến toàn cục LabVIEW sẽ tạo ra một “VI toàn cục” đặc biệt Để tạo ra các biến toàn cục, ta lựa chọn chúng trên menu “Structs and Constants function” sau đó đặt chúng lên Diagram Tiếp tục cần xác định cho chúng kiểu dữ liệu thông qua các kiểu dữ liệu đã sử dụng thông qua các Controls hoặc các Indicators [13]
Chúng ta cần chú ý, đối với mỗi biến toàn cục ta cần phải tạo ra một VI với một tên riêng duy nhất Đối với các biến toàn cục chúng ta cũng cần xác định chế
độ chỉ cho phép ghi hoặc chỉ cho phép đọc [13]
Đối với việc truy xuất vào biến toàn cục sẽ thực hiện rất nhanh chóng đối với các kiểu dữ liệu đơn giản như numerics và Boolean Tuy nhiên, khi ta sử dụng biến toàn cục để lưu trữ và xử lý các dữ liệu dưới dạng mảng (arrays), Clusters hay
Trang 36các sâu (string) lớn thì thời gian cũng như bộ nhớ cần thiết để xử lý chúng lại sẽ tương đối lớn Vì nó đòi hỏi một vài dịch vụ quản lý bộ nhớ mỗi khi các biến đó gọi tới [13].
Khi sử dụng các biến toàn cục cũng như các biến cục bộ thì một vấn đề có thể gặp phải là “sự tranh chấp dữ liệu” Biến sử dụng trong LabVIEW không hoàn toàn giống như trong các ngôn ngữ lập trình dòng lệnh Việc “tranh chấp dữ liệu” xảy ra khi hai hoặc nhiều hơn các đoạn mã lệnh cùng thực hiện song song cùng thay đổi giá trị của một biến Đầu ra của VI phụ thuộc vào thứ tự được thực thi của các dòng lệnh Bởi vì nếu không có sự phụ thuộc dữ liệu giữa các biểu thức khác nhau thì sẽ không xác định được cái nào chạy trước Nếu sử dụng các biến toàn cục trong VIs mà được thực hiện song song, thì ta có thể sử dụng một biến toàn cục thêm vào để xác định khi nào dữ liệu được phép thay đổi và được đọc giá trị mới [13]
b Local variable (biến địa phương)
Cho phép người sử dụng đọc hoặc viết thông tin lên một trong những thiết bị điều khiển hoặc thiết bị hiển thị trên Front Panel Để tạo một biến địa phương, chọn Local Variable từ bảng Structs & Constant Khi sử dụng biến địa phương cần chú ý một số thông tin sau [2, 3, 13]:
- Các biến địa phương chỉ có tác dụng duy nhất trên các thiết bị điều khiển hoặc thiết bị hiển thị mà cùng ở trên một lược đồ Ta không thể sử dụng biến địa phương để truy cập tới một điều khiển mà không cùng trên một lược đồ [13]
- Ta có thể có rất nhiều các biến địa phương cho mỗi thiết bị điều khiển hoặc thiết bị hiển thị Tuy nhiên điều đó có thể gây ra sự phức tạp, cho rằng điều khiển của bạn thay đổi trạng thái một cách khó hiểu bởi vì bạn ngẫu nhiên lựa chọn sai các phần tử trong một hoặc nhiều biến địa phương [13]
- Giống như biến toàn cục, bạn có thể sử dụng biến địa phương không có một “dòng dữ liệu” hợp lệ khác sử dụng [13]
Trang 372.5 Các phép toán cơ bản trong LabVIEW
Như ta đã biết, trong LabVIEW nội dung chương trình được thiết lập trong Block Diagram Ta có thể tìm thấy các thư viện hàm để thực thi các thuật toán từ đơn giản đến phức tạp bằng cách: Ấn chuột phải, chọn mũi tên (như hình vẽ) và chọn Programming (để chọn các khối hàm cơ bản) hoặc chọn các khối hàm nâng cao hơn (ví dụ như khối Mathematics) [2, 12]
Hình 2.22 Thao tác tới thư viện hàm
- Thư viện các phép toán cơ bản như cộng, trừ, nhân, chia …:
Trang 39Hình 2.25 Các phép toán logic
- Thư viện các phép toán với chuỗi ký tự:
Hình 2.26 Các phép toán với chuỗi ký tự
- Thư viện các phép toán với mảng:
Trang 40Hình 2.27 Các phép toán với mảng
- Thư viện các phép toán đặc biệt khác:
Hình 2.28 Các phép toán đặc biệt