Mục đích của đề tài Nghiên cứu xây dựng hệ thống giám sát quá trình tự động chống nghiêng tàu thủy bằng phần mềm LAVIEW để có thể sử dụng trong việc giảng dạy, học tập và trong hệ thống
Trang 1LỜI CAM ĐOAN
Tôi xin cam đoan đây là công trình nghiên cứu của riêng tôi Các số liệu, kết
quả nêu trong luận văn là trung thực và chƣa từng đƣợc ai công bố trong bất kỳ
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 đỡ và các thầy cô trong Khoa Điện - Điện tử, Viện đào tạo sau đại học
đã truyền dạy những kiến thức quí báu trong chương trình cao học và những kinh
nghiệm để luận văn hoàn thành thuận lợi
Những lời cảm ơn chân thành tiếp theo xin được đến tới gia đình và bạn bè,
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 iv
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
CHỐNG NGHIÊNG TÀU THỦY 4
1.1 Giới thiệu chung về hệ thống chống nghiêng tàu thủy 4
1.2 Nhiệm vụ của hệ thống chống nghiêng tàu thủy 5
1.3 Các yêu cầu cơ bản đối với hệ thống chống nghiêng tàu thủy 6
1.4 Phân loại hệ thống chống nghiêng tàu thủy 7
1.5 Cấu trúc chung của hệ thống chống nghiêng tàu thủy 8
1.6 Nguyên lý làm việc của hệ thống chống nghiêng tàu thủy 10
CHƯƠNG 2 TỔNG QUAN VỀ PHẦN MỀM LABVIEW 12
2.1 Khái niệm về LABVIEW 12
2.2 Các chức năng chính của LABVIEW 12
2.3 Môi trường phát triển và các tín hiệu đo được của LabVIEW 14
2.4 Cấu trúc một chương trình trong LabView 15
2.5 Các bảng trên LabVIEW 18
2.6 Các kiểu dữ liệu 21
2.7 SubVI và cách xây dựng SubVI 25
2.8 Kỹ thuật lập trình nâng cao trong LabVIEW 28
2.9 Ứng dụng của Labview 35
CHƯƠNG 3 ỨNG DỤNG PHẦN MỀM LABVIEW VÀO THIẾT KẾ HỆ THỐNG GIÁM SÁT CHỐNG NGHIÊNG TÀU THỦY 39
3.1 Cấu trúc của hệ thống giám sát chống nghiêng tàu thủy 39
Trang 43.2 Các phần tử trong hệ thống chống nghiêng tàu thủy 39
3.3 Thiết kế giao diện giám sát trên LABVIEW 48
3.4 Thử nghiệm phần mềm giám sát trên máy tính 591
KẾT LUẬN VÀ KIẾN NGHỊ 6262
TÀI LIỆU THAM KHẢO 64
PHỤ LỤC
Trang 5DANH MỤC CÁC CHỮ VIẾT TẮT VÀ KÝ HIỆU Các chữ viết tắt:
ADC Analog Digital Converter
CAN Control Area Network
CNH_HĐH Công nghiệp hóa, hiện đại hóa
DAC Digital Analog Converter
DAQ Data Acquisition
DMA Direct Memory Access
DMM Digital Multimeter
DSP Digital Signal Processing
GUI Graphic User Interface
HTML Hypertex Markup Language
I/O Input/ Output
IEEE Institute of Electrical and Electronics Engineers
ISA Internet Security Aceleration
LAVIEW Laboratory Virtual Instrumentation Engineering Workbench
LSB Least Significant Bit
MATLAB Matrix Laboratory
NI National Instruments
PCI Peripheral Component Interconnect
PCMCIA Personal Computer memory Card International Association
PDA Personal Digital Assistant
PID Proportional Intergral Derivative
PLC Programable Logic Controller
USB Universal Serial Bus
Trang 6VDR Voyage Data Recorder
VI Virtual Instruments
Các ký hiệu:
NC Tiếp điểm thường mở của rơle
NO Tiếp điểm đóng mở của rơle
C Chân chung của cặp tiếp điểm rơle
EN Chân tín hiệu điều khiển rơle
VSS Nguồn nuôi rơle
Trang 7DANH MỤC CÁC BẢNG
Trang 8DANH MỤC CÁC HÌNH
1.1 Cấu trúc hệ thống chống nghiêng tàu thủy 9
2.10 Icon mặc định và Icon sau khi đƣợc tạo 26
2.13 Thƣ viện Advanced và thƣ viện Instrument I/O 29
2.16 Mối quan hệ giữa LABVIEW với thiết bị DAQ 32
2.18 Thu thập dữ liệu tại Cơ quan hàng không và vũ trụ -
Trang 93.5 Bơm hoạt động hút 1 chiều 42
3.8 Tín hiệu sơ cấp và thứ cấp trên MXP cổng A và B 45
3.9 Tín hiệu sơ cấp và thứ cấp trên MSP cổng C 45
3.12 Bố trí mặt ngoài của tủ điều khiển động cơ 49
3.13 Bố trí mặt bên trong tủ điều khiển động cơ 50
3.15 Đấu nối các thiết bị trong tủ điện chống nghiêng 51
3.16 Tạo hai cửa sổ Front Panel và Block Diagram 52
3.17 Tạo hai bồn chứa nước trong giao diện giám sát chống
nghiêng
52
3.19 Tạo các hiển thị trạng thái van và bơm trên giao diện 55
3.20 Giao diện giám sát chống nghiêng tàu thủy 56
3.22 Chương trình đọc tín hiệu và hiển thị trang thái chống
nghiêng
58
3.23 Chương trình xuất tín hiệu điều khiển ra ngoài 59
3.24 Giao diện báo chế độ tự động, góc nghiêng < 2o 60
3.25 Giao diện báo chế độ tự động, góc nghiêng >2o 60
3.26 Giao diện báo chế độ tự động, góc nghiêng > 5o 61
Trang 10MỞ ĐẦU
1 Tính cấp thiết của đề tài
Khoa học kỹ thuật đang có những bước phát triển vượt bậc và nhanh chóng đạt được những thành tựu đáng kể trên thế giới hiện nay.Vì vậy đã cho ra đời rất
nhiều công cụ thiết bị hiện đại với độ chính xác cao
Việt Nam đang trên con đường phát triển CNH_HĐH đất nước nên việc áp
dụng các thành tựu tiến bộ của thế giới là rất quan trọng Các dây chuyền công
nghệ và thiết bị tự động hóa sản xuất đang dần được thay thế các công nghệ lạc
hậu thiết bị cũ với độ chính xác không cao và độ tin cậy kém Kỹ thuật vi tính đã
góp phần thay đổi bộ mặt của các trung tâm điều khiển, giám sát Một trong những
ứng dụng đó là phần mềm LAVIEW được tích hợp với bộ điều khiển NI myRIO
1900
Với một hệ thống cảng biển trải dài trên mọi miền đất nước nên ngành công
nghiệp đóng tàu đã sản sinh ra những con tàu hiện đại có tải trọng lớn Vì vậy vấn
đề đặt ra cho ngành công nghiệp này là phải có hệ thống giám sát và điều khiển
hoàn thiện, nhanh nhạy, độ chính xác và an toàn cao để giảm bớt sức lao động của
con người Đặc biệt là trong quá trình xếp dỡ hàng hóa và khi tàu hành trình trên
biển trong điều kiện sóng gió đòi hỏi phải có sự giám sát về chống nghiêng
Cùng với sự phát triển lớn mạnh của thiết bị điện tử, tự động hóa đã được áp dụng rất nhiều vào ngành công nghiệp Tàu thủy trong nhiều hệ thống Vấn đề về
điều khiển, giám sát, xu hướng hình thành trung tâm điều khiển đã và đang được
áp dụng Trong ngành công nghiệp tàu thủy đang từng bước ứng dụng rất nhiều
những thành tựu khoa học kỹ thuật và công nhệ vào việc điều khiển và giám sát
Đặc biệt là trong hệ thống chống nghiêng tàu thủy đã ứng dụng phần mềm
LAVIEW để giám sát để đạt được kết quả tối ưu nhất, tăng năng suất và giảm chi
phí cho những ứng dụng kiểm tra và đo lường Chính vì lý do đó em đã chọn đề
tài:
‘‘Nghiên cứu xây dựng hệ thống giám sát chống nghiêng tàu thủy.’’
Trang 112 Mục đích của đề tài
Nghiên cứu xây dựng hệ thống giám sát quá trình tự động chống nghiêng
tàu thủy bằng phần mềm LAVIEW để có thể sử dụng trong việc giảng dạy, học tập
và trong hệ thống chống nghiêng tàu thủy trong các cảng biển
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 là hệ thống giám sát chống nghiêng tàu thủy
- Phạm vi nghiên cứu của đề tài:
+ Phân tích tổng quan hệ thống giám sát chống nghiêng tàu thủy
+ Thiết kế hệ thống giám sát chống nghiêng tàu thủy trên phần mềm
LABVIEW
+ Xây dựng mô hình vật lý hệ thống
4 Phương pháp nghiên cứu của đề tài
Để đạt được những yêu cầu đề ra khi nghiên cứu chống nghiêng tàu thủy, đề
tài đã dùng các phương pháp như sau: phương pháp chuyên gia, phương pháp phân
tích, phương pháp thực nghiệm để kiểm chứng kết quả trên phần mềm cùng với
phương pháp mô hình hóa
5 Ý nghĩa khoa học và thực tiễn của đề tài
* Ý nghĩa khoa học đề tài:
Đây là kho kiến thức khá hữu dụng cho những người muốn tìm hiểu ứng
dụng phần mềm laview và bộ điều khiển NI myRIO 1900 trong thiết kế giao diện
giám sát chống nghiêng tàu thủy Thể hiện rõ sự đóng góp của tiến bộ khoa học kỹ
thuật vào nghành đóng tàu của nước ta, giảm được chi phí nhân công và nâng cao
quá trình tự động hóa trong sản xuất Nói được tầm quan trọng của kỹ thuật vi tính
đã đóng góp như thế nào vào quá trình giám sát tự động tạo nên sự tối ưu và năng
suất cao hơn Đề tài này sẽ đóng góp một phần vào 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 công nghiệp đóng tàu
* Ý nghĩa thực tiễn:
Trang 12Kết quả được nghiên cứu của luận văn này có thể ứng dụng trong lĩnh vực dạy
học trong các trường đào tạo kỹ thuật và sử dụng trong công nghiệp đóng tàu
đang rất phát triển hiện nay đặc biệt là ở thành phố cảng Hải Phòng
Kết quả của hệ thống giám sát đã được nghiên cứu của đề tài có thể dùng vào
thực tế ở các cảng biển sao cho tiết kiệm được 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
Khi con tàu ngả nghiêng về bên trái hoặc bên phải mà không thể trở về được
vị trí thẳng đứng lúc ban đầu thì có nghĩa là lúc đó tàu đã bị nghiêng đi một góc
Việc bị nghiêng này không những ảnh hưởng đến sự an toàn của con tàu, của máy
móc mà còn ảnh hưởng đến thuyền viên trên tàu Theo lý thuyết tàu thủy có thể
nhận thấy ngay nguyên nhân chính đưa đến điều này là do tàu vận hành trong
điều kiện gió mạnh, sóng, bão, tàu đổi hướng, và do tình trạng xếp dỡ hàng hóa
không cân Cũng có thể trong hành trình di chuyển của mình tàu bị tiêu hao nhiên
liệu và nước ngọt dự trữ trong các két nước ở hai bên mạn trái và phải của con 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 chống nghiêng tàu[14]
Hệ thống chống nghiêng trên tàu thủy tự động phát hiện góc nghiêng của tàu
để bù lại góc tương ứng Hệ thống này giúp con tàu tiếp tục xếp dỡ hàng mà
không bị gián đoạn để cân chỉnh Điều này giúp tiết kiệm khá lớn thời gian ở
cảng[10] Bản chất của hệ thống chống nghiêng tàu thủy được dùng trên tàu là hai
bên mạn trái và phải của tàu có các két nước để tạo nên sự cân bằng Trong hệ
thống này các két ballast được nối với nhau bởi các đường ống, van tự động và
các hệ thống kiểm soát Khi tàu bị nghiêng về bất cứ mạn nào cảm biến nghiêng
sẽ gửi tín hiệu về sự biến đổi đó cho hệ thống kiểm soát[10] Hệ thống giám sát
chống nghiêng tàu có nhiệm vụ báo cáo các trạng thái hoạt động của góc
nghiêng,van ,bơm để đưa đến hệ thống điều khiển bơm nước từ két trái sang két
phải và ngược lại để tàu được cân bằng Trong thực tế hành trình của tàu thủy
người ta có thể dùng hai hay nhiều các két nước hai bên mạn tàu và nhiều hệ
thống điều khiển giám sát đóng, mở và đo lường dung tích các két tùy thuộc vào
tính năng, kết cấu,hình dáng,kích thước của loại tàu
Trang 141.2 Nhiệm vụ của hệ thống chống nghiêng tàu thủy
Hệ thống chống nghiêng tàu thủy sẽ giúp chúng ta giải quyết được những vấn
đề sau[10]:
- Tàu xếp dỡ hàng được nhanh hơn và an toàn hơn
- Thời gian tàu ở cảng ít hơn, tiết kiệm chi phí
- Tránh nguy cơ hàng hóa và container bị lăn, trượt
- An toàn cho tàu và thuyền viên
Hệ thống chống nghiêng tàu là mô ̣t hê ̣ thống có tầm quan trọng hàng đầu của
con tàu , nó có chức năng giám sát và kiểm tra tất cả những sự sai lê ̣ch về đô ̣
nghiêng thực tế của con tàu so với đô ̣ nghiêng tiêu chuẩn được thiết kế Trong thực
tế đã cho thấy rằng có rất nhiều nguyên nhân có thể 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 không cân giữa hai mạn tàu, 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…[14] Hệ thống chống nghiêng đã thực hiê ̣n
quá trình giám sát thông qua các cảm biến mức nước được đặt trong các két chống
nghiêng, từ đó cảm biến này gửi tín hiê ̣u thu nhận được tới trung tâm xử lý để nó
tính toán lại Từ các số liê ̣u phản hồi từ trung tâm xử lý người vâ ̣n hành sẽ tính
toán và đưa ra quyết định để điều khiển các van, 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ự động điều khiển ch ống nghiêng tàu thì
khi tín hiê ̣u thu được từ các cảm biến mức nướ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 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[10]
Trang 15Hê ̣ thống giám sát và điều khiển chống nghiêng tàu có nhiệm vụ chín h là
nâng cao tính ổn đi ̣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 chống nghiêng tàu được sử dụng khi tàu đang trong quá trình xếp hàng kh ông đều , khi tàu không chở hàng
(tàu chạy ballast) hoặc khi có ngoa ̣i lực tác du ̣ng lên tàu như sóng, gió[10]
Viê ̣c điều hành hoa ̣t đô ̣ng của hê ̣ thống chống nghiêng tàu sẽ đượ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 rõ ràng tính ổn định của con tàu trong điều kiện khai thác và vận hành thực tế
Sau đó mệnh lệnh này được đưa đến, sĩ quan máy sẽ thực hiện các thao tác cần
thiết để điều khiển van và bơm nước từ két này sang két kia để cân bằng tàu [10]
1.3 Các yêu cầu cơ bản đố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 chống nghiêng tàu, liên quan đến trực tiếp sự an toàn của con tàu,vì vậy hệ thống chống nghiêng phải đáp
ứng được các yêu cầu đưa ra như[14]:
- Hệ thống này nhất định phải có 2 chế độ là bằng tay và tự động[10]
- Trên màn hình của hệ thống giám sát chống nghiêng người vận hành hoặc người kiểm tra phải quan sát nhận định chính xác được góc nghiêng của tàu.Bên
cạnh đó là quan sát được trạng thái hoạt động của các bơm, van, quan sát được
mức nước trong hai két…[10]
- Các van chống nghiêng của hệ thống điều khiển đều có thể đóng hoặc mở được bằng tay để tránh trường hợp khi không thể điều khiển từ xa dẫn đến nguy
hiểm cho con tàu[10]
- Lắp đặt các thiết bị cảm biến nhanh nhạy để phục vụ cho việc báo động mức nước trong mỗi két chống nghiêng và đưa ra thông số được hiển thị trên bảng
điều khiển cho người vận hành biết[10]
- Khi có tín hiệu báo góc nghiêng của tàu trong quá trình làm việc thì hệ thống này cần đặt thời trễ để khẳng định chính xác độ nghiêng tránh sự nghiêng giả
tức thời do sóng, gió gây ra[10]
Trang 16- Phải có các chế độ bảo vệ hệ thống, các tín hiệu báo động để khống chế bơm,van hoạt động khi mức nước ở hai két quá cao hoặc quá thấp, hoặc khi các
van không mở được[10]
- 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[10]
- Hệ thống 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 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…[10]
1.4 Phân loại hệ thống chống nghiêng tàu thủy
Hiện nay có hai loại hệ thống chống nghiêng được sử dụng rộng rãi trên tàu[10]:
- Hệ thống chạy bằng khí: hệ thống này bao gồm hệ thống hút khí và hệ
thống van tác dụng lên phía trên của két ballast Khí được bơm vào một két và hút
ra ở két khác, tạo ra sự chênh lệch áp suất do đó lượng nước được di chuyển từ két
này qua két khác
- Hệ thống bơm nước : hệ thống bơm nước bao gồm một mô tơ điện để chạy
bơm, bơm này là loại có thê đảo chu trình, kết nối với các bộ kiểm soát,các van
điều khiển từ xa để chuyển nước qua lại các két
Trong phạm vi luận văn này sẽ nghiên cứu về hệ thống chống nghiêng bằng
bơm nước Hệ thống chống nghiêng tàu bằng bơm nước được chia thành hai loại
chính [14]:
- Hệ thống chống nghiêng có chế độ giám sát nhưng không tự đô ̣ng điều khiển
chống nghiêng
- Hệ thống chống nghiêng tàu có giám sát và có thể tự động phát ra tín hiệu
khởi đô ̣ng để điều khiển chống nghiêng
Đối với hệ thống chống nghiêng có giám sát nhưng không tự động điều
khiển ch ống nghiêng thì các tín hiệu giám sát được gửi đến cho sĩ quan boong
Người đưa ra các quyết định sau đó sẽ do sĩ quan boong (thường là đa ̣i phó ) chịu
Trang 17điểm là khiến cho công viê ̣c và trách nhiệm của đại phó nặng nề hơn Tuy vậy nó
lại có ưu điểm rất đáng lưu tâm là tính an toàn và độ chắc chắn cao hơn
Đối với hệ thống chống nghiêng có giám sát và lại có thể tự đô ̣ng điều khiển
chống nghiêng tàu thì đáp ứng được yêu cầu về tính tự động hoá cao trên tàu thuỷ ,
nâng cao được hiệu suất làm việc Tuy nhiên nó lại có một nhược điểm khá lớn là
nếu có sự hỏng hóc hay trục trặc về kỹ thuật nào đó với các thiết bị trong hê ̣ thống
thì độ nguy hiểm đối với c on tàu sẽ rất lớn Ngày nay, đối với các tàu có yêu cầu
cao về đô ̣ ổn đi ̣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
Bên cạnh đó, hệ thống này còn có thể được phân loại theo loại bơm được sử
1.5 Cấu trúc chung của hệ thống chống nghiêng tàu thủy
Hệ thống chống nghiêng tàu thủy có cấu trúc cơ bản bao gồm các thành phần
chính sau [15,16]:
Trang 18Hình 1.1 Cấu trúc hệ thống chống nghiêng tàu thủy
1.5.1 Kết cấu của hệ thống chống nghiêng
Hệ thống chống nghiêng tàu thủy bao gồm có hệ thống két chống nghiêng,
van ống và các thiết bị ngoại vi lắp đặt bên ngoài
- Các két nước chống nghiêng và van ống[10]
+ Hệ thống chống nghiêng tàu thủy bao gồm có 2 két chứa nước được treo ở
Trang 19các van để đóng, mở đường ống khởi động bơm Nếu như tàu bị nghiêng sang bên
trái thì bơm sẽ khởi động hút nước đưa từ két chưa nước bên trái chuyển sang két
bên phải và từ két phải sang trái nếu tàu nghiêng phải
- Hệ thống các thiết bị ngoại vi lắp đặt bên ngoài bao gồm có:
+ Hệ thống các thiết bị điều khiển có thể lấy ví dụ như Bơm chống nghiêng, các van đóng và mở đường ống nước và các van phân phối
+ Hệ thống các thiết bị giám sát gồm có: cảm biến nghiêng đặt trong két nước, các bộ chuyển đổi mức, cảm biến để báo động trong trường hợp mức nước
quá thấp hay quá cao …
1.5.2 Kết cấu của hệ thống giám sát chống nghiêng
Kết cấu của hệ thống điều khiển và giám sát chống nghiêng tàu chính là
buồng điều khiển giám sát của hệ thống được đặt trong buồng riêng của hệ thống
Ballast Nó sẽ thực hiện các nhiệm vụ sau:
+ Điều khiển tự động các nhiệm vụ chống nghiêng từ xa
+ Đưa ra màn hình giao diện của hệ thống giám sát các trạng thái và các thông số của hệ thống chống nghiêng tàu như: góc nghiêng, mức nước trong hai
két, các trạng thái báo hiệu hoặt động của bơm và van…
+ Bảng điều khiển tại chỗ : sẽ nhận nhiệm vụ thực hiện các chức năng điều khiển của hệ thống chống nghiêng tàu khi chế độ điều khiển tự động từ xa gặp sự
cố, hỏng hóc…
1.6 Nguyên lý làm việc của hệ thống chống nghiêng tàu thủy
Hệ thống chống nghiêng trên tàu biển tự động phát hiện góc nghiêng của tàu để bù lại góc tương ứng Như đã nói ở phần trên thì hệ thống chống nghiêng
tàu thủy sẽ sử dụng các két nước chống nghiêng ở hai bên mạn tàu trái và phải
Trong quá trình tàu thực hiện nhiệm vụ xếp dỡ hàng hóa, hoặc trong hành trình gặp
phải một lí do thời tiết nào đó làm cho tàu mát vị trí cân bằng thì hệ thống này có
nhiệm vụ khởi động bơm để chuyển nước di chuyển từ két trái sang két phải và
ngược lại để tàu không bị nghiêng[16]
Trang 20Chẳng hạn khi tàu đang bị nghiêng trái hoặc phải thì nhờ có các cảm biến nghiêng được đặt ở trong các két nước của hệ thống sẽ báo tín hiệu để gửi đến
trung tâm xử lý tín hiệu Nếu sau một khoảng thời gian trễ đã được cài đặt,nó sẽ
khẳng định chính xác tàu bị nghiêng thật thì tín hiệu này được gửi đến trung tâm
xử lý Tiếp theo sau khi xử lý xong trung tâm này sẽ gửi tín hiệu để mở van ống
trước Khi van nhận lệnh và được mở ra hoàn toàn thì thông qua bộ phận phản hồi
trạng thái của van sẽ có tín hiệu khởi động bơm để bơm nước theo chiều ngược lại
với góc nghiêng của tàu Van được sử dụng là van một chiều để tránh trường hợp
bị bơm nước ngược trở lại gây mất cân bằng tàu Sau khi có sự điều chỉnh đó tàu
sẽ dần trở lại không bị mất cân bằng nữa Khi góc nghiêng không còn trung tâm
điều khiển sẽ xuất tín hiệu điều khiển làn lượt dừng bơm trước sau đó là tín hiệu
đóng van
Trong suốt quá trình điều khiển và giám sát chống nghiêng tàu, cần chú ý nếu
tín hiệu gửi về cho thấy tàu đang bị nghiêng quá độ cho phép(>50) hoặc mức nước
ở trong các két chống nghiêng giảm quá thấp so với mức cho phép thì trung tâm xử
lý sẽ tự gửi tín hiệu ra báo động chung (được biểu hiện trên giao diện giám sát cho
người vận hành biết) và xuất ra tín hiệu dừng bơm
Mạch kiểm soát mực nước cũng được lắp đặt ở các két ballast cùng với hệ
thống chống nghiêng để ngăn ngừa mực nước quá thấp hoặc quá đầy[10]
Trang 21CHƯƠNG 2 TỔNG QUAN VỀ PHẦN MỀM LABVIEW 2.1 Khái niệm về LABVIEW
LABVIEW (viết tắt của Laboratory Virtual Instrumentation Engineering Workbench) là một phần mềm máy tính được phát triển bởi công ty National
Instruments[2,3,12] Về thực chất nó là một môi trường phát triển dựa trên ngôn
ngữ lập trình đồ họa bằng cách sử dụng các biểu tượng đồ họa trực quan và dây
dẫn trông giống như một sơ đồ khối,nó thường được sử dụng cho những mục đích
như giao tiếp máy tính, đo lường , kiểm tra , đánh giá, xử lý, mô phỏng, và điều
khiển hệ thống, kết nối thiết bị ngoại với máy tính theo thời gian thực LABVIEW
dùng trong hầu hết các phòng thí nghiệm, lĩnh vực khoa học kỹ thuật như tự động
hóa, điều khiển, điện tử, cơ điện tử, hàng không, hóa sinh, điện tử y sinh ở các
nước đặc biệt là Mỹ, Hàn quốc, Nhật Bản[2]
Hình 2.1 Mã nguồn viết bằng LabVIEW
2.2 Các chức nă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[2] Hiện tại ngoài
phiên bản LABVIEW cho các hệ điều hành Window, Linux, hãng NI đã phát
triển các modul LABVIEW cho máy hỗ trợ cá nhân PDA[2]
Trang 22Các chức năng chính của LABVIEW có thể tóm tắt như sau:
- Thu thập tín hiệu từ các thiết bị bên ngoài như cảm biến nhiệt độ, hình ảnh từ
webcam, vận tốc của động cơ,… [13]
- Trong ứng dụng của LabVIEW có một tính năng rất dễ sử dụng không thể thiếu
được đó là phân tích Ở phần mềm LabVIEW chứa hơn 500 chức năng đã được lập
sẵn để phục vụ cho việc trích xuất thông tin có ích từ những dữ liệu đã thu nhận
được, các phép đo được phân tích nhanh chóng và tín hiệu được xử lý Để nhận
được các số liệu thống kê quan trọng trong nhiều dữ liệu của bạn thì phải nhờ vào
chức năng phân tích tần số, phát tín hiệu, toán học, chỉnh lý đường cong, phép nội
suy Dù cho thuật toán đưa ra có phức tạp đến nhường nào thì với tính năng phân
tích này làm cho phần mềm LabVIEW vô cùng dễ sử dụng Nhờ có hơn 15
Express VIs nên đã làm giảm rất nhiều độ phức tạp trong khi phân tích các phép đo
có ở ứng dụng của bạn thông qua hộp thoại cấu hình tương tác để đưa ra kết quả
phân tích[13]
- Chức năng hiển thị bao gồm: trực quan, tạo báo cáo và quản lý dữ liệu Để hiện
thị dữ liệu một cách hấp dẫn LabVIEW có các công cụ chức năng trực quan, trong
đó gồm các tiện ích có thể kể đến như vẽ biểu đồ hoặc đồ thị với các công cụ trực
quan 2D, 3D cài sẵn Nhờ đó ta có thể nhanh chóng hình dung và biểu hiện lại các
thuộc tính của bản vẽ chẳng hạn như màu sắc, kích cỡ phông, kiểu đồ thị, quay,
phóng to thu nhỏ và quay quét (pan) đồ thị khi đang chạy Bên cạnh đó, qua
Internet bằng phần mềm LabVIEW có thể xem và điều khiển được VIs Nếu như
tạo một báo cáo, NI cung cấp cho ta các tùy chọn khá đầy đủ như: công cụ tạo tài
liệu, báo cáo dạng HTML, báo cáo dạng Word/Excel và báo cáo tương tác với NI
DIA[13]
- Giao tiếp với các thiết bị ngoại vi thông qua nhiều chuẩn giao tiếp thông qua
các cổng giao tiếp: RS232, USB, PCI, Enthernet[2]
- Mô phỏng và xử lý các tín hiệu thu nhận được để phục vụ các mục đích nghiên
cứu hay mục đích của hệ thống mà người lập trình mong muốn[2]
Trang 23- Xây dựng các giao diện người dùng một cách nhanh chóng và thẩm mỹ hơn
nhiều so với các ngôn ngữ khác như Visual basic, Matlab[2,13]…
- Cho phép thực hiện các thuật toán điều khiển như PID, logic M( Fuzzy) một
cách nhanh chóng thông qua các chức năng tích hợp sẵn trong LABVIEW[2,13]
- Cho phép kết hợp với nhiều ngôn ngữ truyền thông như C, C++, [2]
- Cho phép triển khai những ứng dụng nhúng đến các bộ vi xử lý 32 bit[13]
2.3 Môi trường phát triển và các tín hiệu đo được của LabVIEW
Môi trường phát triển rộng rãi và nhanh chóng của LabVIEW là công nghệ Express Cho dù không cần lập trình trước,công nghệ này sử dụng Express VIs và
I/O nên đã tạo ra nhiều ứng dụng đo lường phổ biến Hàng nghìn chương trình
minh họa, kiểu module và phân cấp, trợ giúp tích hợp, thư viện giao diện người sử
dụng kéo và thả hàng nghìn chức năng lập sẵn, ngôn ngữ được biên dịch để thực
hiện nhanh hơn Đến phát triển lớn, theo hướng nhóm (teamoriented) Ngôn ngữ
mở, gỡ rối bằng đồ họa tích hợp, phân phối ứng dụng đơn giản, nhiều công cụ
phát triển cấp cao, công cụ phát triển nhóm, điều khiển mã nguồn, quản lý đích
Thu thập, phân tích và hiển thị lập sẵn Môi trường LabVIEW mở tương thích với
mọi phần cứng đo với các trợ giúp tương tác, tạo mã nguồn và khả năng kết nối tới
hàng nghìn thiết bị giúp tập hợp dữ liệu dễ dàng Chúng ta có thể hoàn toàn kết
hợp được mọi ứng dụng của LabVIEW mới vào các hệ thống hiện tại đòi hỏi độp
chính xác cao vì LabVIEW cung cấp tính kết nối tới hầu hết mọi thiết bị đo
LabVIEW luôn luôn cung cấp cho người dùng một giao diện để có thể kết nối tới
I/O một cách dễ dàng kể cả khi mọi yêu cầu của phần cứng không đáp ứng [13]
Các tín hiệu đo được của LabVIEW bao gồm có: Nhiệt độ, sức căng, độ rung, âm thanh, điện áp, dòng, tần số, ánh sáng, điện trở, xung, thời gian (giai
đoạn), tín hiệu số, thu thập tín hiệu từ các thiết bị bên ngoài như cảm biến nhiệt độ,
hình ảnh từ webcam, vận tốc của động cơ,[13]
Trang 242.4 Cấu trúc một chương trình trong LabView
Chương trình LABVIEW được gọi là các thiết bị ảo VI vì giao diện và cách
thức hoạt động của nó tương tự như thiết bị thật Các VI có giao diện với người sử
dụng và một mã nguồn tương đương tiếp nhận các thông số từ VI cao hơn[12]
Các thiết bị ảo (VI) chính là cơ sở thực hiện của lập trình Labview Một ưu
điểm vượt trội của LabVIEW so với các phần mềm khác đó là các đối tượng ở các
thiết bị ảo được dùng để mô phỏng cho các thiết bị thực mà không cần tới chúng
Các thiết bị ảo VI giống như các hàm khi sử dụng lập trình bằng ngôn ngữ khác
Một chương trình VI trong Labview bao gồm 3 phần chính:
- Front Panel là giao diện người sử dụng GUI
- Block Diagram là giao diện dạng sơ đồ khối cung cấp mã nguồn lập trình
- Biểu tượng kết nối Icon và Connecter
Trong đó Front Panel và Block Diagram là hai thành phần quan trọng nhất
trong Labview
2.4.1 Front Panel và Block Diagram
Một chương trình trong LabView gồm hai phần chính: một là giao diện với người sử dụng (Front Panel), hai là giao diện dạng sơ đồ khối cung cấp mã nguồn
(Block Diagram) và các biểu tượng kết nối (Icon/Connector)[13]
2.4.1.1 Front Panel
Front panel là một panel tương tự như panel của thiết bị thực tế Ví dụ các nút bấm, nút bật, các đồ thị và các bộ điều khiển Từ Front Panel người dùng chạy
và quan sát kết quả có thể dùng chuột, bàn phím để đưa dữ liệu vào sau đó cho
chương trình chạy và quan sát Front Panel thường gồm các bộ điều khiển
(Control) và các bộ hiển thị (Indicator)[13]
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[2]
Trang 25Hình 2.2 Cách lấy Control
Hình 2.3 Các Control thường dùng
Trang 26Indicator 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[2]
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]
Trang 27Cấ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.6 Block Diagram của chương trình LabVIEW
2.4.2 Icon và Connector
Icon (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]
Khi các VI được phân cấp và module hóa thì ta có thể dùng chúng như các chương trình con Do đó để xây dựng một VI ta có thể chia thành nhiều VI thực
hiện các chức năng đơn giản và cuối cùng kết hợp chúng lại với nhau thành một
khối để thực thi những công việc cụ thể trong một chương trình
2.5 Các bảng trên LabVIEW
Điểm khác biệt của phần mềm LabVIEW so với các ngôn ngữ lập trình thông thường khác là ngôn ngữ lập trình LabVIEW còn sử dụng các bảng Có thể
kể đến ở đây là bảng Tools Palette, Controls Palette và Function Palette Những
bảng này tạo nên sự khác biệt tích cực đó là làm cho ngôn ngữ LabVIEW trở nên
dễ nhớ đơn giản không có những câu lệnh rườm rà, khó nhớ Chúng còn cung cấp
cho người sử dụng các chức năng để có thể tạo ra và thay đổi trên cửa sổ Front
Trang 28Panel và Block Diagram chính bằng các biểu tượng, các hình ảnh trực quan giúp
ích trong việc ứng dụng trở nên dễ dàng và linh động hơn[13]
2.5.1 Tool palette
Trên cả hai cửa sổ Font Panel và Block Diagram đều xuất hiện Tool Panel
Bảng này giúp chúng ta có thể xác lập được các chế độ làm việc đặc biệt của con
trỏ chuột Biểu tượng của con trỏ chuột sẽ được biến đổi chính theo biểu tượng của
công cụ mà chúng ta đã lựa chọn trước đó Nếu muốn thiết lập một chế độ tự động
lựa chọn công cụ thì hãy nhớ di chuyển con trỏ chuột 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]
2.5.2 Controls Palette
Bảng điều khiển Controls Palette không như Tool palette mà chỉ duy nhất
xuất hiện trên của sổ Front panel Bảng điều khiển này sẽ bao gồm các bộ điều
khiển (control) và các bộ hiển thị (Indicator) Để có được bảng điều khiển controls
palette ta thao tác như sau: vào menu View, chọn controls palette như hình 2.7[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ị gồm các thiết bị ví dụ: các công tắc, các loại đèn, các loại màn hình hiển
thị…[13] Với bảng điều khiển này, người sử dụng có thể chọn các bộ thiết bị
chuẩn do hãng sản xuất cung cấp ví dụ công tắc nhưng cũng có thể chọn các thiết
bị do người sử dụng tự xây dựng Bảng điều khiển dùng để cung cấp dữ liệu đầu
vào và hiển thị kết quả đầu ra
Ta thấy rằng trên bảng điều khiển controls palette có rất nhiều các bộ điều khiển phong phú khác nhau Ta có thể sử dụng tất cả các thanh phần của bảng
controls, ở hình trên mục Express đang được mở, sau đây ta xem qua một số bộ
điều khiển điển hình của LabVIEW
Trang 29Hình 2.7 Bảng điều khiển (Controls Palette)
- 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[13]
- 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]
- 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]
2.5.3 Function palette
Cũng như bảng Controls Palette thì bảng Functions Palette cũng chỉ xuất hiện trên một cửa sổ nhưng không phải Front panel mà là Block Diagram Để tạo
dựng thiết kế nên các khối lưu đồ thì người sử dụng phải nhờ vào các VI có chứa
trong bảng này Chúng ta có thể lập trình để thực hiện các lệnh khác nhau với bảng
Function Palett bằng các lưu đồ như: các biểu thức toán học, các phép tính số học,
Trang 30, phép lựa chọn thông qua các nhóm hàm, các vòng lặp Ngoài những chức năng đã
được cung cấp ở trên ta thấy rằng bảng Function Palett này có thể tạo ra và sử
dụng lại các hàm và chức năng mà người sử dụng tự mình xây dựng ra Tất cả các
hàm toán học và các chức năng khác đều được minh họa diễn giải bằng các biểu
tượng Vì vậy người sử dụng khi muốn lựa chọn hay thực hiện một hàm hoặc một
chức năng nào đó thì phải chọn biểu tượng để thể hiện rõ ràng cho nó và muốn
đến một vị trí nào trên cửa sổ Block Diagram thì chỉ việc kéo thả ở vị trí đó.Công
việc tiếp theo rất đơn giản là xác định những đầu vào ra cần thiết theo yêu cầu của
xử lý và thay đổi dữ liệu trở nên dễ dàng và thuận lợi hơn Trong lý thuyết về phần
mềm LabVIEW,cho thấy rằng các biến được chia làm 2 loại là biến toàn cục
(global variables) và các biến địa phương (local variables)
- Biến toàn cục Global variables: được dùng để thực hiện mọi công việc trao đổi giữa một vài VI là truyền và lưu trữ dữ liệu Trong LabVIEW biến toàn
cục luôn được coi là một đối tượng Muốn tạo ra một “VI toàn cục” đặc biệt thì ta
chỉ việc tạo ra một biến toàn cục trong LabVIEW Cách thức để tạo ra các biến
toàn cục rất đơn giản, đầu tiên ta lựa chọn biến trên thanh công cụ “Structs and
Constants function” tiếp đó thả chúng lên của sổ Diagram Trên các Controls hoặc
các Indicators ta cần xác định chính xác kiểu dữ liệu cho nó ứng với kiểu dữ liệu
đã sử dụng theo yêu cầu Cần lưu ý rằng ứng với mỗi biến toàn cục nhất thiết phải
tạo nên một VI có một tên riêng khác biệt không được trùng với các VI trước nó
Trang 31mỗi biến toàn cục Với các kiểu dữ liệu như numerics và Boolean tương đối đơn
giản thì việc truy xuất vào biến toàn cục trở nên vô cùng nhanh chóng Tuy vậy,
đối với các dữ liệu dưới dạng mảng (arrays), Clusters hay các sâu (string) lớn thì
lại yêu cầu thời gian xử lý và bộ nhớ cần thiết để xử lý sẽ tương đối lớn khi muốn
dùng biến toàn cục trong việc lưu trữ và xử lý các dữ liệu 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 Nhược điểm lớn nhất của phần
mềm này là “sự tranh chấp dữ liệu” khi thao tác dùng cả hai các biến toàn cục và
các biến cục bộ Khi hai hoặc nhiều hơn các đoạn mã lệnh thực hiện đồng thời việc
thay đổi giá trị của một biến thì việc “tranh chấp dữ liệu” sẽ xảy ra không biết ưu
tiên cho bên nào Đầ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[3,13]
- Local variable: giúp người lập trình đọc hoặc viết thông tin cần thiết lên các thiết bị điều khiển hoặc thiết bị hiển thị trên của sổ Front Panel Local Variable
giúp chúng ta tạo được một biến địa phương từ bảng Structs & Constant Khi sử
dụng biến địa phương cần chú ý một số thông tin sau:
+ 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 322.6.2 String
Kiểu string (chuỗi) là một kiểu dữ liệu dạng chuỗi ký tự Ta có thể sử dụng chuỗi tham gia tính toán xử lý Để lựa chọn các ô text lưu trữ dữ liệu kiểu string ta
chọn từ ô “String & path” từ control palette Không chỉ vậy có thể thực hiện việc
chuyển đổi từ dạng string sang các dạng khác như dạng số, dạng mảng (array)
Trong LabVIEW, đôi khi người sử dụng có thể cần phải tạo ra hoặc hiển thị một số
ký tự trong bảng mã ASCII mà không thể hiển thị được như: Esc, tab… Để giải
quyết vấn đề đó, Labview đã cung cấp một số từ đại diện cho các từ đó, khi cần thể
hiện các ký tự đó ta chỉ cần gõ vào những từ đại diện cho chúng trên Front Panel
2.6.3 Array
Trong việc lập trình đôi khi chúng ta cần xử lý một số các dãy số mà mỗi phần tử trong đó có thể được xử lý như từng thành phần riêng biệt, vì vậy mà ta
cần tới mảng Các mảng ở đây có thể là mảng một chiều (một cột hoặc một véc tơ),
mảng 2 chiều, mảng 3 chiều Labview hỗ trợ cho người lập trình có thể tạo ra các
mảng của mình mà trong đó chứa dữ liệu kiểu numberic, string, boolean… và rất
nhiều dạng dữ liệu khác Các mảng thường được tạo ra bởi các vòng lặp Việc sử
dụng vòng lặp là tốt cho các ứng dụng bởi vì nó xác định một vùng bộ nhớ xác
định từ khi nó bắt đầu Nếu không dùng các vòng lặp thì LabVIEW không có cách
nào biết được khi nào vòng lặp lại được lặp lại, việc quản lý bộ nhớ có thể sẽ được
gọi lại nhiều lần và làm chậm việc xử lý
Người sử dụng có thể sử dụng chức năng xây dựng mảng Nó còn cho phép ràng buộc mảng gốc vào các mảng khác
2.6.3.1 Array Constant
Sử dụng hàm này sẽ tạo ra một mảng với các phần tử là các hằng số Để định nghĩa dạng dữ liệu của mảng hằng số ta lựa chọn bất kỳ hằng số vô hướng
nào từ bảng Function Palette và đặt nó vào bên trong mảng hằng số Tất cả các
thành phần của mảng sẽ có dạng này Sử dụng Operating Tool để nhập giá trị cho
từng thành phần của mảng Ta không thể thay đổi được giá trị của mảng trong khi
Trang 332.6.3.2 Array Max & Min
Hình 2.8 Hàm Array Max & Min Hàm này có chức năng tìm kiếm số lớn nhất và số nhỏ nhất của các số trong mảng Hàm này thường trả về kết quả để hiển thị Mảng có thể là mảng n chiều của
bất kỳ loại dữ liệu nào
Giá trị lớn nhất (max value) là cùng dạng dữ liệu như các thành phần trong mảng[3]
Chỉ số lớn nhất (max index) là chỉ số của phần tử lớn nhất
Giá trị nhỏ nhất (min value) là cùng dạng dữ liệu như các thành phần trong mảng[3]
Chỉ số nhỏ nhất (min index) là chỉ số của giá trị nhỏ nhất
2.6.4 Các cấu trúc điều khiển luồng chương trình
Cấu trúc (Structures) là các phần tử điều khiển luồng chương trình luôn có mặt trong bất kể một ngôn ngữ lập trình nào Người lập trình luôn luôn phải gặp và
làm việc với nó Trong một VI của LabVIEW bao gồm có 5 cấu trúc điều khiển
luồng chương trình đó là: For Loop, While Loop, Case Structure, Sequence
Structure và Fomula Node[13]
Các cấu trúc đó thực hiện tự động khi dữ liệu đầu vào của chúng có sẵn và thực hiện các công việc theo ý muốn cho tới khi hoàn thành thì mới cung cấp dữ
liệu tới các dây nối dữ liệu đầu ra Tuy nhiên, mỗi cấu trúc thực hiện theo các quy
tắc riêng (SubDiagram) của nó[13]
SubDiagram là tập hợp của các Node, Wire và Terminal bên trong đường viền của Structure Mỗi cấu trúc For Loop và While loop có một SubDiagram[13]
Trang 34Hình 2.9 Vòng lặp While loop Cấu trúc Case và Sequence có thể có nhiều SubDiagram, nhưng chỉ có một Sub Diagram có thể thực hiện tại một thời điểm Cách xây dựng các SubDiagram
cũng giống như việc xây dựng các Block diagram mức đầu[13]
Việc truyền dữ liệu vào và ra các Structure thông qua các Terminal mà được
tự động tạo ra ở nơi dây nối đi qua đường viền của cấu trúc, các Terminal này
được gọi là các đường ống (Tunel)[13]
2.7 SubVI và cách xây dựng SubVI
2.7.1 Khái niệm SubVI
Khi thiết kế chương trình trong LabView, ta thường chú ý thiết kế các VI và xác định đầu vào và đầu ra cho chúng Khi đó mỗi VI thực hiện một chức năng xác
định Trong việc lập trình, các VI đó có thể được sử dụng trong các Block Diagram
của một VI khác ở mức độ cao hơn Khi đó VI cao hơn đó được gọi là một SubVI
Như vậy, một SubVI ta có thể coi như một chương trình con trong các chương
trình khác như C++… Trong một chương trình labVIEW, không bị hạn chế số
SubVI và mỗi SubVI không bị hạn chế việc gọi đến các SubVI Với tiện ích này,
một chương trình trên Labview sẽ trở nên dễ hiểu, gọn gàng và dễ gỡ rối
hơn[2,3,13]
2.7.2 Xây dựng SubVI
Có hai cách đơn giản nhất để xây dựng một SubVI: tạo một SubVI từ một
Trang 35Các SubVI được sử dụng thông qua Icon và Conector của nó Icon của một
VI là một biểu tượng đồ họa Conector của một VI gán các Control và Indicator
cho các Terminal đầu vào và đầu ra Muốn gọi một VI từ Block Diagram của một
VI khác, thì trước tiên ta phải tạo ra Icon và Conector cho VI đó[13]
Để tạo Icon, ta bấm đúp chuột trái vào biểu tượng Icon ở góc bên phía trên của Front Panel hoặc bấm chuột phải vào biểu tượng Icon và chọn Edit Icon… Sau
khi chọn Edit Icon… ta dùng các công cụ ở bên trái cửa sổ để tạo ra kiểu Icon
trong vùng soạn thảo điểm lớn Hình ảnh mặt định của Icon xuất hiện trong vùng
soạn thảo Phụ thuộc vào dạng màn hình đang sử dụng, ta có thể thiết kế kiểu Icon
ở dạng đơn sắc, 16 màu hoặc 256 màu Màu mặc định của Icon là Đen - Trắng
(Black-White), nhưng nó có thể bấm vào mục chọn màu để chuyển sang 16 màu
hoặc 256 màu Ta có thể copy một Icon thành một Icon đen – trắng, và ngược
lại[3,13]
Hình 2.10 Icon mặc định và Icon sau khi được tạo Xác định kiểu Connector Terminal: SubVI nhận dữ liệu tới và gửi dữ liệu thông qua các Terminal ở trong ô vuông Connector của nó Ta có thể xác định các
mối liên hệ bằng cách chọn số Terminal cần thiết cho VI và gán một Front Panel
Control hoặc Indicator cho mỗi Terminal Nếu Connector của VI chưa xuất hiện ở
góc trái của Front Panel thì ta chọn Show Connector từ menu của Icon Connector
Trang 36thay thế Icon ở góc bên phải phía trên của Front Panel Kiểu Terminal ban đầu
được chọn cho VI có số các Terminal bên phải của Connector bằng số Indicator
trên Front panel và số Terminal bên trái Connector bằng số Control trên Front
Panel Nếu điều này không thể có được thì phần mềm sẽ chọn kiểu Terminal phù
hợp gần nhất Mỗi hình chữ nhật trong Connector sẽ tương ứng với một đầu vào
hoặc đầu ra từ VI Ta có thể chọn một kiểu Terminal khác trong menu Pattern Ta
có thể thêm hoặc loại bỏ bớt Terminal bằng cách chọn Add Terminal hoặc chọn
Remove Terminal Sau khi đã chọn được Connector Terminal Pattern ta phải gán
các Front Panel Control và Indicator cho các Terminal theo các bước sau[3,13]:
- Bấm vào một Termianl của Connector, sau đó bấm vào một Front Panel Control hoặc Front Panel Indicator muốn gán cho Terminal đã chọn Một khung
bao xung quanh Front Panel của Control hoặc Indicator được chọn xuất hiện và
nhấp nháy.[13]
- Bấm vào một vùng mở của Front Panel và bấm chuột, khung nhấp nháy biến mất Termianl và Front Panel Control hoặc Indicator đã chọn được gắn với
nhau[13]
Hình 2.11 Cách thức tạo Conector của một VI
2.7.2.2 Tạo một SubVI từ một phần của VI
Để biến đổi một phần của VI thành một SubVI được gọi từ VI khác, chọn một phần trong Block Diagram của VI, sau đó chọn Edit\Create SubVI Phần đó sẽ
Trang 37SubVI sẽ thay thế phần được chọn trong Block Diagram của VI gốc Đối với
SubVI này ta có thể điều chỉnh được Icon & Connector tương tự như trên[3,13]
2.8 Kỹ thuật lập trình nâng cao trong LabVIEW
2.8.1 Liên kết thiết bị ảo với thiết bị phần cứng
Thư viện DAQ VIs nằm trong Panel Functions → Data Acquisition gồm các lớp khác nhau của DAQ DAQ được chia thành 6 lớp cơ bản sau[13]:
- Analog Input VIs
- Analog Output VIs
- Digital I/O VIs
- Counter VIs
- Calibration and Configuration VIs
- Signal Conditioning VI
Hình 2.12 Thư viện DAQ Các DAQ được chia thành các mức khác nhau tùy theo mức độ tác động của chúng Các DAQ được chia thành 4 mức:[13]
- Easy VIs
- Intermadiate VIs
- Utility VIs
Trang 38Ngoài ra, LabView còn có thư viện cho các hệ thống Card chuyên dụng của hãng NI[13]
Hình 2.13 Thư viện Advanced và thư viện Instrument I/O
Để đưa dữ liệu vào/ra các cổng song song, nối tiếp của máy tính ta có thể sử dụng các VIs vào ra của LabVIEW
2.8.2 Cấu trúc cơ bản của DAQ
Thiết bị ảo được xem như là một công cụ liên kết giữa thiết bị phần cứng và phần mềm của thiết bị đo lường, được tạo ra bởi người sử dụng với các tiêu chuẩn
của máy tính Hãng National Instruments đã phát triển phần cứng và phần mềm
điều khiển để thu nhận dữ liệu (DAQ), phân tích, biểu diễn và lưu giữ dữ liệu ở các
dạng khác nhau Phần mềm điều khiển là một chương trình nối ghép giữa thiết bị
Trang 39có thể là LabVIEW, LabWindows/CVI, ComponentWorks và các công cụ đo
lường cơ bản, mở rộng để hiển thị và phân tích các kết quả của thiết bị ảo[13]
Thiết bị ảo được sử dụng để tạo ra hệ thống theo yêu cầu của kiểm tra, đo lường và kỹ thuật tự động hóa, phù hợp với phần cứng nối ghép và phần mềm
thành phần Nếu hệ thống thay đổi, ta có thể thay đổi thiết bị ảo mà không cần phải
thay đổi phần mềm và phần cứng
2.8.2.1 DAQ
Nhiệm vụ cơ bản của tất cả các hệ thống đo lường là đo và tạo ra các tín hiệu vật lý thực tế Điểm khác biệt lớn nhất của các thiết bị là phương thức truyền giữa
thiết bị đo lường và máy tính Thiết bị DAQ đa năng là thiết bị kết nối tới máy tính
và nó cho phép truy xuất tín hiệu số Thiết bị DAQ cho phép liên kết trực tiếp với
bus của máy tính thông qua khe cắm mở rộng Một vài thiết bị DAQ ở bên ngoài
cho phép liên kết với máy tính thông qua cổng nối tiếp, IEEE 488 (GPIB), hoặc
cổng ethernet Thiết bị DAQ cho phép biến đổi tín hiệu và thành tín hiệu số và gửi
chúng tới máy tính (tới phần mềm bên trong máy tính) Phần mềm ứng dụng sử
dụng các dữ liệu đó để đo lường, điều khiển và hiển thị dữ liệu bên trong máy tính,
đồng thời gửi dữ liệu đó trở lại thiết bị đo lường Phương pháp này có tính mềm
dẻo cao vì có thể sử dụng một thiết bị phần cứng cho nhiều dạng kiểm tra và có thể
phát triển thêm các ứng dụng khác cho các dạng kiểm tra Thiết bị DAQ đa năng
rất thích ứng sử dụng để số hóa dữ liệu của thiết bị đo lường
Hình 2.14 Thiết bị DAQ
Trang 40Trên hình 2.15, trình bày hai dạng lựa chọn của thiết bị DAQ Trong lựa chọn A, hệ thống thiết bị DAQ nằm bên trong máy tính Trong lựa chọn B, thiết bị
DAQ nằm ở bên ngoài máy tính Với bảng mạch mở rộng nằm ở bên ngoài ta có
thể xây dựng hệ thống DAQ liên kết với máy tính mà không cần đến khe cắm mở
rộng, ví dụ như máy tính xách tay Khi này, máy tính và modul DAQ giao tiếp với
nhau thông qua nhiều loại kênh khác nhau như: Cổng song song, cổng nối tiếp,
Ethernet Đây là hệ thống thực hiện thu nhận dữ liệu từ xa và điều khiển ứng dụng
Hình 2.15 Các dạng lựa chọn thiết bị DAQ Trên hình 2.9 không thể hiện lựa chọn thứ 3, lựa chọn này sử dụng bus PCMCIA có trong một số máy tính xách tay Một thiết bị PCMCIA liên kết với
máy tính và truyền tín hiệu tới bo mạch như trong sự lựa chọn A Đây chính là sự
linh động và chặt chẽ của hệ thống DAQ
2.8.2.2 Mối quan hệ giữa LabVIEW với thiết bị DAQ
Máy tính thu nhận dữ liệu thô và chuyển đổi nó thành dạng chuẩn mà người
sử dụng có thể hiểu được Phần mềm mã hóa dữ liệu thành dạng có thể thể hiện
trong đồ thị, biểu đồ hoặc trong file của report Phần mềm không chỉ tác động vào