Home | Project | Activity | Company | IEEE | HCMUTE| Learn LabVIEW |                                      Tiếng Việt

 

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 , nếu card bị hỏng th́ sẽ thấy dấu chéo nền tṛn đỏ 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 đỏ  (hoặc dấu chấm than ) th́ kiểm tra lại xem máy tính đă chắc chắn nhận được card trong My computer> Properties.

 

- 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 firmwarefail 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 ) th́ test resource vẫn phải thành công (The device passed the resource test successfully!).  Đối với card có hư hơng th́ việc test resource sẽ fail.

 

Đọ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), Hochiminh, Vietnam, 2009. Download PDF

[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), Hanoi, Vietnam, 2009. Download PDF

[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, Seoul, Korea. Download PDF

[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

 

 

 

 

Bài viết tại website này được giữ bản quyền,

 để copy và sử dụng tài liệu này bạn cần liên lạc với tác giả.

Liên hệ/Contact: nguyenbahai@hocdelam.org | Phone: 82 10 5894 8484

Cập nhật/Updated on July 31, 2009