|
Home | Project | Activity | Company | IEEE | HCMUTE| Learn LabVIEW | MOTION
CONTROL| LabVIEW | C |
Solidwork | DSP | PIC/AVR | CONTROL Sử dụng card
điều khiển chuyển động NI PCI-73xx hoặc
PXI-73xx By
Ba-Hai Nguyen (nguyenbahai@hocdelam.org) TÓM TẮT Trong tài liệu này, Hocdelam Group cung cấp thông tin cài
đặt phần mềm và phần cứng cho điều
khiển chuyển động dùng PCI motion controller NI
PCI-73xx hoặc PXI-7356, phương pháp kiểm tra t́nh trạng
làm việc, và hướng dẫn cách lập tŕnh card
trước khi tiến hành lập tŕnh các ứng dụng
cho card NI PCI-73xx. Tài liệu này cũng có thể dùng tham khảo
cho các card PCI DAQ như NI PCI-6010, NI PCI-6220, NI PCI-6503, NI PCI-6601, NI PCI-6610, NI PCI-4472B,
NI PCI-6221, , NI PCI-62xx ,
PCI signal generator (NI-FGEN Signal Generator) như NI PCI-5412,
NI PCI-5421, NI PCI-54xx và một số card PCI của advantech.
vv. Các thông tin, tài liệu mới nhất về LabVIEW và ứng
dụng xem tại http://labview.hocdelam.org. 1. CHUẨN
BỊ Để
sử dụng card này bạn cần có phần cứng và
phần mềm đi kèm cụ thể gồm: Phần cứng - Card PCI 73xx (ví dụ PCI
7356), là bộ điều khiển. - Connector (hoặc giao diện
đa năng UMI, 68 chân), dùng cắm dây ra động
cơ và encoder. - Cable nối card ra
connector, chuẩn 68 chân. - Động cơ một
chiều DC hoặc động cơ bước, encoder có
xung ra ở mức điện áp 0volt (mức thấp và
5volt (mức cao). - Máy tính để gắn
card. Phần mềm - NI motion driver (để
máy tính nhận ra card). - LabVIEW từ bản 7.1 tới
2009 (để viết chương tŕnh phát triển ứng
dụng cho card NI PCI73xx). - Có thể thay LabVIEW bằng
LabWindows/CVI hoặc Visual C++, hoặc Microsoft Visual Basic. 2. CÀI
ĐẶT PHẦN CỨNG VÀ PHẦN MỀM Hệ
thống lập tŕnh chuyển động sử dụng
card NI PCI và động cơ DC gồm các bước sau: 1. Cài đặt NI motion
driver (kèm theo
CD hoặc tải tại http://labview.hocdelam.org).
Mục tài liệu> Driver, toolkits. (Lưu ư, trong lần cài đặt lần
đầu tiên, việc cài đặt driver luôn phải thực
hiện trước khi gắn card vào máy tính).
Khi chọn
các đặc tính cài đặt, nên chọn các phiên bản
LabVIEW khác nhau ví dụ LabVIEW
7.1 support, LabVIEW 8.5 support,
LabVIEW 8.6 support. Việc này cho phép sử dụng
card PCI 73xx này với bất cả ba phiên bản LabVIEW
này. Chọn LabVIEW Real-time
Support
2. Phần
card NI PCI motion controller (ví dụ NI PCI 7356) Gắn card NI PCI vào khe PCI của máy tính
như h́nh dưới.
3. Gắn cable nối card
NI motion controller vào khối connector (ví dụ UMI 7764-). Chú ư:
Card PCI motion controller của NI có thể điều khiển
từ 4 tới 8 trục (tương đương 8
động cơ) do vậy bạn cần lưu ư khi gắn
cable. Thường nếu dùng một tới bốn động
cơ th́ gắn port motion 1-4. Sau đó nối cable này tới
card UNI (Universal Motion Interface).
4. Gắn động
cơ và encoder Dựa
vào tên các chân của UMI để lần lượt gắn
dây điều khiển động cơ từ card tới
motor driver. Có motor driver dùng phương pháp analog control, tức
xung PWM sẽ được sinh ra từ driver khi driver
đó được cung cấp điện áp từ 0-5
volts. Do vậy, trong trường hợp này ta sẽ nối
chân DAC OUT và DAC GDN để gắn với hai dây nguồn
động cơ. Xem thêm về động
cơ Cần
nối các dây của Encoder vào UMI theo kư hiệu. (Có thể
dùng hai dây A,B hoặc A,B,Z hoặc cả 6 dây từ
encoder). Xem thêm về encoder. 5. Kết quả kết
nối phần cứng
Kiểm
tra việc nhận card của máy tính bằng cách chọn
chuột phải lên My computer>
Properties> Hardware>
Device Manager>, sẽ thấy card như h́nh dưới.
Sau khi
cài đặt, nếu máy tính không nhận ra card th́ chọn
vào Control panel> Add and hardware, chọn Next và làm theo hướng
dẫn.
Lặp
lại bước trên th́ máy tính sẽ được
card theo h́nh với thông báo Completing
the Found New Hardware Wizard (tức việc cài đặt
hoàn thành).
Đồng
thời góc phải bên dưới màn h́nh của bạn hiện
lên thông báo Your new hardware is
installed and ready to use (card đă được cài đặt
và sẵn sàng cho bạn sử dụng).
6. Thử phần cứng
và phần mềm Trước
khi tiến hành lập tŕnh, cần phải thử lại xem việc kết nối
phần cứng và phầm đă đúng chưa? Bằng
cách: - Khởi
động MAX (vào start program> National Instrument>
Measurement & Automation. - Sẽ
thấy tên card hiện ra theo đường dẫn sau:
My system> Devices & Interface> PCI-7350(1). Có hai
trường hợp có thể xảy ra: Card c̣n tốt
nhưng chưa được cập nhật firmware th́ sẽ
thấy dấu chấm than này Có thể
xem thêm tại Tab General để
biết rơ t́nh trạng của card c̣n tốt hay đă hỏng.
Bạn
sẽ thấy ḍng chữ Device is not responding or has been
removed from the system khi máy tính chưa nhận được
card hoặc card bị hỏng. Nếu Device status là Firmware
out of date th́ cần cập nhật (update) firmware. Nếu
card đă được cập nhật firmware và hoạt
động b́nh thường th́ sẽ thấy ḍng chữ The
controller is in a reset state hoặc working property.
Và tại
Tab status sẽ là Ready to
receive.
- Nếu
thấy dấu nhân trắng trong ṿng tṛn nền đỏ
- Nếu
vẫn c̣n dấu này chứng tỏ card cần phải
initialize (khởi tạo) trước khi dùng. Để khởi
tạo, chọn Initialize. Sau khi khởi tạo hoàn thành, dấu
nhân báo lỗi tại PCI-7350 sẽ mất như h́nh bên
dưới.
- Khi
initialize, nếu có thông báo cần phải cập nhật Firmware, th́ chọn Yes. Cập nhật xong, chọn
Initilaize lại và thực hiện tiếp bước 7.
Sau khi
cập nhật firmware bạn sẽ nhận được
thông báo Firmware was downloaded
successfully.
Việc
cập nhật firmware cũng có thể thực hiện bằng
cách vào Tab firmware và chọn Update firmware (nếu chữ
update firmware mờ đi th́ tức là không cần phải
update firmware nữa).
-
Trường hợp card báo lỗi không cho cập nhật
th́ vào tab Status.
Chọn
Test resourse, Nếu thông báo Resource test failed th́ chọn Reset
device và làm lại. Sau đó làm lại các bước vừa
nêu trong bước thứ 6 này.
Trước
khi tới bước 7, bạn cần kiểm tra lại
chắc chắn rằng kết
quả Test resources phải là: The device passed the resource test successfully mới đạt
yêu cầu. - Nếu
vẫn có lỗi bạn cần remove card từ My
Computer> Properties
Và
remove trong MAX bằng cách nhấn chuột phải lên PCI-7350, chọn Remove Device.
Sau
đó vào Control panel thực hiện lại việc add new
hardware. 7. Thiết lập các
thông số trong MAX Tại Default 7350 setting, chọn Open Loop Stepper
Axis1> Axis configuration: Chọn stepper motor, và
enabled Encoder, type of feedback là Encoder. Sau đó save to all axes (nếu
có nhiều động cơ). Sau đó chọn Initialize lần
nữa để chuyển qua bước 8. 8. Thử động
cơ và chương tŕnh điều khiển động
cơ một chiều DC bằng Analog output Dùng
chương tŕnh xuất DAC trong thư viện của
Motion. Thư viện này nằm trong Block diagram.
Viết
chương tŕnh đơn giản như sau. (Tải
chương tŕnh này tại http://labview.hocdelam.org/giaotrinh)
Bạn
sẽ thấy động cơ quay khi nhập giá trị
vào Nhập gia tri DAC, (ví dụ nhập 5000). Đồng thời
bạn sẽ đọc được tín hiệu
encoder. (xem h́nh front panel bên dưới, dấu trừ nói
lên chiều quay của động cơ).
Tóm tắt
các bước cài đặt và xử lư lỗi cho card
PCI-73xx
Install PCI-73xx card (Add new hardware from control panel) 3.
ĐIỀU KHIỂN CHUYỂN ĐỘNG 3.1
Điều khiển chuyển động là ǵ? Điều
khiển chuyển động là việc sử dụng phần
mềm (ví dụ ngôn ngữ lập tŕnh G trong LabVIEW) để
điều khiển phần cứng (ví dụ: động
cơ) theo một chiến lược (strategy) nào đó.
Chiến lược đó thường gồm các yêu cầu
về tọa độ (vị trí) của trục động
cơ (hoặc vật gắn lên trục động
cơ), thời gian tăng tốc, giảm tốc và vận
tốc chuyển động, vv. Ứng dụng của
điều khiển chuyển động thường gặp
là máy cắt điều khiển bằng máy tính CNC, hoặc
tay robot hàn di chuyển theo đường hàn giữa hai tấm
kim loại, robot di động đi theo một sơ
đồ đường đi được định
trước. vv. 3.1
Công cụ trong điều khiển chuyển động Có thể
sử dụng các phần mềm sau: - Motion assistant, cho phép tạo
ứng dụng điều khiển chuyển động
rất nhanh. Người thiết kế chỉ cần vẻ
các quỹ đạo (đường di chuyển) mà hệ
thống cần đi theo. Sau đó công cụ này tự
động xuất ra mă chương tŕnh (code) dưới
dạng ngôn ngữ C/C++, Visual Basic hoặc LabVIEW. - Visual C/C++, cho phép viết
code dùng ngôn ngữ C để điều khiển card PCI
73xx. - Visual Basic, cho phép viết
code trong Visual Basic C để điều khiển card PCI
73xx. - LabVIEW, là ngôn ngữ
đồ họa, dễ sử dụng, và là ngôn ngữ tốt
nhất khi dùng card NI PCI 73xx nói riêng cũng như các phần
cứng do công ty NI sản xuất và cung cấp. Trong tài liệu
này LabVIEW được sử dụng để tạo
các ứng dụng. 3.2 Sử
dụng LabVIEW trong điều khiển chuyển động Tổng
quan về điều khiển chuyển động Điều
khiển động cơ thường theo hai sơ đồ
dưới đây. Tức thiết lập yêu cầu quỹ
đạo và chiến lược chuyển động
(Trajectory), sau đó đọc tín hiệu phản hồi
(Encoder), qua bộ điều khiển (PID) tới bộ
chuyển đổi DAC để xuất ra điện
áp hoặc bộ PWM generator để phát xung rồi cấp
xung hoặc điện áp đó tới bộ khuyếch
đại (motor driver) và tới động cơ.
Điều khiển
động cơ Servo hoặc động cơ DC Với
động cơ bước th́ việc điều khiển
cũng tương tự. Khác là thay v́ xung PWM hoặc
analog output chuyển thành xung bước. (Stepper pulse).
Điều khiển
động cơ bước Đọc
Encoder Tại sao cần encoder? Encoder
dùng để đo/xác định vị trí, hoặc từ
vị trí đo được tính ra vận tốc hoặc
gia tốc của chuyển động quay như trục
quay động cơ. Vận tốc xe, vận tốc
xoay của khớp trong robot, vv. Cách thức đọc
tín hiệu encoder Để
lọc đọc encoder, ta sử dụng hàm Read Encoder
Position (Card PCI Motion control) hoặc counter (card DAQ). Ở
đây giải thích hàm Read
Encoder.
Board ID: là một số duy nhất
được gắn vào cho card thông qua phần mềm
MAX. Axis or
Encoder: là trục hoặc encoder cần đọc.
Retn Vect:
đích trả về của tín hiệu bởi hàm đọc
encoder. Ví dụ về host (0xFF), tới biến (0x01 tới 0x78), tới biến gián tiếp
(0x81 tới 0xF8), không trả về th́ điền (0. error in (no error): để thông
báo các lỗi nếu có. Encoder
Position: giá trị đọc được
(đơn vị là quadrature counts). Bd ID Out: dùng cho việc tái sử
dụng ID. Resource Output: dùng cho việc tái sử
dụng Axis, Encoder, vv. error out: dùng tái sử dụng từ
các error out trước đó. Lọc
nhiễu tín hiệu encoder Để
lọc nhiễu, ta sử dụng hàm Configure Encoder Filter.
Xem bảng
giá trị tần số và tần số đếm cao nhất
bên dưới.
Ví dụ mẫu đọc
Encoder (block digram, front panel)
Lưu ư Cần
chú ư khi quy đổi và scale các giá trị của encoder,
đặc biệt khi sử dụng động cơ có
hộp số (gear). Xuất
tín hiệu điện áp (Analog output) Tại sao cần tín hiệu
điện áp? V́ một
số bộ khuyếch đại động cơ có thể
điều khiển bởi tín hiệu Analog, hoặc khi cần
một nguồn Analog trong điều khiển tự
động, robotics, thí nghiệm. Ta sẽ phải xuất
ra tín hiệu này. Cách thức xuất tín hiệu
điện áp Để
xuất điện áp, ta sử dụng hàm Load DAC.
Để
phát được tín hiệu điện áp tại DAC
OUTPUT cần: - Trong
MAX, tab Axis xuất điện áp phải chọn (set) là
stepper hoặc disable. - Chọn stepper open loop
trong Max. DAC Value có giá trị từ
-32,768 to +32,767 tương đương xuất ra ±10 V
(Đối với PCI 7356, các card khác cần xem datasheet của
card. Chú ư:
Không sử dụng DAC torque limits và offsets khi xuất trực
tiếp điện áp (Load DAC) Board ID xem phần encoder. DAC: Là DAC cần sử dụng
để xuất điện áp. Ví dụ mẫu (block
digram, front panel)
Ví dụ
trên gồm hai phần, đọc encoder và xuất analog
output. Chú ư Chỉ
dùng hàm này khi gửi tín hiệu điện áp tới các
kênh unmapped DAC. Tức chỉ khi các DAC này không đước
sử dụng cho Servo motor control th́ nó mới được
sử dụng như một kênh Analog output đa mục
đích. Điều
chế (xuất) xung PWM Tại sao cần PWM? Điều
chế xung thường gặp khi cần điều khiển
động cơ DC, động cơ không chổi than hoặc
các thí nghiệm liên quan tới nguồn xung ở đầu
vào. Cách thức điều
chế xung Để
xuất PWM, ta sử dụng hàm Load PWM Cycle
Duty Cycle có giá trị từ 0 tới
255. PWM Output là chọn nguồn xuất
PWM (1 hoặc 2, vv.). Ví dụ
mẫu (block digram, front panel) (Phần này không có trong bản tài liệu
trực tuyến) Lưu ư: (Phần này không có trong bản tài liệu
trực tuyến) Ví dụ điều khiển ON/OFF cho động
cơ DC sử dụng LabVIEW và card NI PCI 7356 Tại
sao cần thuật toán điều khiển? Xây dựng
mô h́nh thực nghiệm Ví dụ
mẫu (block digram, front panel) Lưu
ư (Phần này không có trong bản tài liệu
trực tuyến, xem thêm tại
sách Lập tŕnh LabVIEW căn bản, Hocdelam Group). Ví dụ điều khiển PID cho động
cơ DC sử dụng LabVIEW và card NI PCI 7356 Tại
sao cần thuật toán điều khiển PID? Xây dựng
mô h́nh thực nghiệm Ví dụ
mẫu (block digram, front panel) Lưu
ư (Phần này không có trong bản tài liệu
trực tuyến, xem thêm tại
sách Lập tŕnh LabVIEW căn bản, Hocdelam Group). 4. MỘT SỐ LỖI ĐẶC BIỆT
NGHIÊM TRỌNG Firmware
download error xuất hiện khi cập nhật
firmware. Bạn cần reset lại card từ tab Status
sau đó update firmware lại.
Thông
báo lỗi khi Initialize card.
Card
báo lỗi không cập nhật firmware và fail
tại test resourse. Trong trường hợp này cần tháo
card ra một vài tiếng. Sau đó thực hiện lại
từ đầu sơ đồ ở mục 2.8 trong tài
liệu này. Các lỗi
khác nếu gặp liên lạc nguyenbahai@hocdelam.org hoặc
xem thêm các bài viết sửa lỗi mới cũng như ứng
dụng, ví dụ, tài liệu về LabVIEW tại website http://labview.hocdelam.org,
http://hocdelam.org. Trường
hợp lỗi xảy ra khi có hai card PCI-73xx gắn vào, cần
lưu ư ta có thể t́m được PCI Slot 1 hoặc 2 bằng
cách chọn properties vào Device manager.
Không
xuất được điện áp bằng Load DAC dù việc
Initialize đă hoàn thành và đă đọc được
encoder. Khi đó bạn cần Calibrate lại
card bằng cách chọn chuột phải lên Board calibration,
chọn Self-Calibrate.
Và chắc chắn rằng Current
setting phải là Open Loop Stepper như h́nh dưới.
Đồng thời lưu ư, muốn
xuất điện áp khoảng 5Volt th́ phải nhập
vào số 15000 (tùy vào số bit của bộ DAC, xem thêm
tại help của Load DAC) chứ không phải nhập
số 5.
Test
resources và Update firmware Đối với card c̣n tốt, Khi
chưa update firmware (có dấu chấm than Đọc Velocity sử dụng hàm Read Velocity của LabVIEW th́ cần phải chọn lại setting là Servo: External Communication và Enable feedback. Cần chọn Open stepper motor trước để xuất Analog output, sau chạy tốt chương tŕnh xuất DAC th́ mới vào Servo, chọn External Communication để đọc encoder.
TÀI LIỆU THAM KHẢO Các tài liệu này nói về ứng dụng
của LabVIEW sử dụng Card NI PCI-7356. [1]
http://labview.hocdelam.org. [2] Nguyễn Bá Hải,
Giáo tŕnh Lập tŕnh LabVIEW, 2008, Hocdelam Group. [3] http://ni.com. [4]
Ba Hai Nguyen,
Jee-Hwan Ryu, “Semi-Experimental Results on a Measured Current Based Method
for Reproducing Realistic Steering Feel ofSteer-By-Wire Systems,” 15th Asia
Pacific Automotive Engineering Conference in Hanoi-Vietnam, 26-28 October
2009 (APAC15), Hanoi, Vietnam, 2009. Download
PDF [5] Ba Hai Nguyen,
Jee-Hwan Ryu, Van-Dung Do, “Velocity Estimation For Haptic
Applications,” The 2009 International
Forum on Strategic Technologies (IFOST2009), [6] Ba Hai Nguyen,
Hai-Bac Ngo, Jee-Hwan Ryu, “Novel Robust Control Algorithm of DC Motors,” The
6th International Conference on Ubiquitous Robots and Ambient Intelligence
(URAI 2009), Seoul, Korea, 2009. Download
PDF [7] Van-Dung Do,
Thanh-Thuong Tran, Ba-Hai Nguyen, “Simulation and Experimental Results on
Study of Automotive Airflow Meter Swappability,” 15th Asia Pacific Automotive
Engineering Conference in Hanoi-Vietnam, 26-28 October 2009 (APAC15), [8] Ba Hai Nguyen,
Jee-Hwan Ryu, “Direct Current Measurement Based Steer-By-Wire Systems for
Realistic Driving Feeling,” Proceedings of the IEEE International Symposium
on Industrial Electronics 2009, [9] NI-Motion Help,
cách chọn động cơ, thiết kế các chuyển
động cơ bản như một động cơ
hoặc chuyển động kết hợp nhiều
động cơ (trục), thu thập h́nh ảnh phụ
vụ ứng dụng chuyển động, khái niệm về
contouring and breakpoints. [10] NI-Motion
Readme, các yêu cầu về máy tính để sử dụng
card NI PCI 73xx, các tính năng mới, các lỗi mới cập
nhật, các lưu ư đáng chú ư về card. [11] NI-Motion
Function Help, Dùng để tham khảo (reference) cho ngôn ngữ
C and Visual Basic. Gồm tên hàm, mô tả hàm, các thông số
dùng trong hàm, và lỗi của hàm. [12] NI-Motion VI
Help Tham khảo về các hàm LabVIEW VI dùng trong điều khiển chuyển
động. [13] Measurement
& Automation Explorer Help for Motion, cách thức thiết lập
(configure) card NI 73xx, một số khái niệm về phân
tích biểu đồ Bode, thông số ṿng lặp của hệ
thống. [14] NI 73xx user
manual, tài liệu mô tả về phần cứng và ứng
dụng của card NI 73xx
|