0968140191Miền Nam
0975897066Miền Bắc

Điều khiển động cơ servo bằng PLC: đấu xung, cài bánh răng điện tử và lập trình định vị

Viết bởi: Vũ Hồng Phúc
Vũ Hồng Phúc
Vũ Hồng Phúc, sinh năm 1985, sau khi tốt nghiệp cử nhân tại Đại Học Bách Khoa Hà Nội, Vũ Hồng Phúc đã tự mình khám phá thế giới qua việc du học tại EF Language School London và nhiều trường đại học khác. Tích lũy kinh nghiệm trong nhiều năm, anh quyết định trở về đất nước. Vũ Hồng Phúc đã hướng đến mục tiêu phát triển Dongco3pha.com là thương hiệu "Động cơ điện" hàng đầu Việt Nam. Trong nhiều năm liền danh liên tục mang lại nhiều thành tựu cho doanh nghiệp và đóng góp nhiều giải pháp tối ưu về chế tạo máy, chế tạo động cơ giảm tốc, động cơ điện.
12 thg 10 2026 08:31

Điều khiển động cơ servo bằng PLC là cách phổ biến nhất để định vị trục máy trong máy đóng gói, máy cắt theo chiều dài, bàn trượt vít me hay cơ cấu gắp đặt. PLC tính quãng đường, tốc độ, thời gian tăng giảm tốc và phát lệnh; driver servo nhận lệnh rồi đóng vòng vị trí – tốc độ – dòng điện dựa trên encoder để motor bám đúng lệnh. Muốn hệ chạy chính xác, phải chọn đúng loại ngõ ra PLC, đấu đúng mức điện áp tín hiệu, cài bánh răng điện tử khớp giữa hai bên và lập trình trình tự Servo ON, về gốc, định vị, xử lý lỗi.

Nội dung dưới đây đi từ phương thức giao tiếp, cách chọn PLC theo tần số xung, sơ đồ đấu NPN/PNP/line driver, ví dụ tính bánh răng điện tử với vít me 10 mm, đến lệnh định vị trên Mitsubishi FX3U/FX5U, Siemens S7-1200, Delta DVP và các lỗi hay gặp khi chạy thực tế.

1. Hệ điều khiển servo bằng PLC gồm những gì

Một trục servo điều khiển từ PLC gồm PLC, driver servo và motor servo có encoder. Ở phương thức phát xung, PLC không đọc encoder để đóng vòng vị trí; việc đó do driver đảm nhận. PLC chỉ quyết định đi bao nhiêu xung, tần số bao nhiêu, tăng tốc trong bao lâu, còn driver so sánh xung lệnh với xung encoder để triệt tiêu sai lệch.

Hình dưới minh họa vị trí của bộ điều khiển cấp trên (PLC, bộ điều khiển chuyển động hoặc máy tính) so với driver servo: dây điều khiển vào cổng I/O, dây encoder về cổng riêng, cổng truyền thông dùng để cài thông số.

Sơ đồ điều khiển động cơ servo bằng PLC qua driver servo, gồm dây nguồn, dây encoder và dây điều khiển

Giữa PLC và driver có bốn nhóm tín hiệu cần liệt kê đủ trước khi vẽ sơ đồ:

NhómTín hiệu điển hìnhChiều
Lệnh chuyển độngPULSE, SIGN hoặc CW/CCWPLC → driver, cần ngõ ra tốc độ cao
Điều khiểnServo ON, Reset, dừng khẩn, giới hạn hành trình LSP/LSNPLC hoặc công tắc → driver
Trạng tháiAlarm, Ready, In-positionDriver → ngõ vào PLC
Phản hồiXung encoder chia tần A/B, pha ZDriver → PLC, dùng về gốc và kiểm tra vị trí

Các driver đi kèm motor servo AC 220V phổ biến đều có cổng I/O nhận cả xung open collector lẫn xung vi sai, nên điều khiển được từ các PLC thông dụng.

2. Các phương thức điều khiển servo từ PLC

a. Phát xung: xung + hướng, CW/CCW, pha A/B

Đây là cách dùng nhiều nhất cho máy một đến bốn trục. Số xung quyết định quãng đường, tần số xung quyết định tốc độ. Có ba dạng:

  • Xung + hướng (PULSE/SIGN): một dây phát xung, một dây giữ mức logic chỉ chiều quay; dạng mặc định của hầu hết PLC.
  • CW/CCW: chạy thuận phát xung ở dây thứ nhất, chạy nghịch phát ở dây thứ hai.
  • Pha A/B lệch 90°: giống tín hiệu encoder, chiều quay xác định bằng pha đi trước.

Kiểu xung trên driver phải trùng với kiểu PLC phát. Ở driver Mitsubishi MR-J4/MR-JE dòng A, dạng xung cài tại PA13; driver Delta ASDA cài tại P1-00. Sai thông số này là nguyên nhân hàng đầu khiến motor chỉ quay một chiều hoặc đứng im dù đèn ngõ ra PLC vẫn nháy.

b. Điện áp analog ±10V

Driver đặt ở chế độ tốc độ hoặc mô-men, PLC xuất −10V đến +10V qua module analog để quy định tốc độ và chiều. Muốn định vị, PLC phải đọc xung encoder chia tần vào bộ đếm tốc độ cao và tự đóng vòng vị trí, nên độ chính xác phụ thuộc chu kỳ quét và dễ trôi điểm 0 do nhiễu. Cách này hợp với điều tốc, kéo căng vật liệu hơn là định vị. Nhiều CPU S7-1200 chỉ có ngõ ra analog 0–20 mA, phải thêm module ngõ ra áp ±10V.

c. Truyền thông Modbus RS485

PLC ghi vị trí đích, tốc độ, gia tốc vào thanh ghi của driver (driver chạy định vị nội bộ) rồi đọc lại vị trí thực và mã lỗi. Chỉ cần một cặp dây cho nhiều trục, nhưng mỗi lần đọc ghi mất vài đến vài chục mili giây, không dùng được cho nội suy. Lệnh tương ứng: MODRD/MODWR trên Delta DVP, ADPRW trên Mitsubishi (FX3U có adapter Modbus hoặc cổng RS485 tích hợp của FX5U), khối Modbus Master với module CM 1241 trên S7-1200.

d. Mạng chuyển động thời gian thực

EtherCAT, PROFINET, CC-Link IE TSN, SSCNET III/H, MECHATROLINK truyền lệnh vị trí theo chu kỳ cố định và trả về vị trí encoder thật. Không còn giới hạn tần số xung, không mất xung do nhiễu, đọc được vị trí tuyệt đối và alarm qua một sợi cáp. Đổi lại, driver và PLC phải cùng hỗ trợ mạng đó: S7-1200 dùng PROFINET với driver PROFIdrive; FX5U thêm module FX5-40SSC-S/80SSC-S (SSCNET III/H) hoặc FX5-40SSC-G/80SSC-G (CC-Link IE TSN); EtherCAT thường đi với PLC Omron, Beckhoff, Inovance và nhiều driver chuẩn CiA 402.

Phương thứcSố trục hợp lýĐọc vị trí thựcChi phí
Xung + hướng1–4Phải đấu thêm encoder chia tầnThấp
Analog ±10V1–2Bắt buộc đọc encoderTrung bình
Modbus RS485Nhiều, chạy rời rạcCó, qua thanh ghiThấp
Mạng thời gian thựcNhiều, đồng bộ, nội suyCó, theo chu kỳ mạngCao hơn

3. Chọn PLC phát xung điều khiển servo

Ngõ ra transistor, không dùng relay

Tiếp điểm relay đóng cắt cỡ vài chục mili giây và chỉ chịu vài trăm nghìn đến vài triệu lần đóng; motor chạy 2.000 xung/vòng thì vài phút đã vượt con số đó. Vì vậy phải dùng CPU transistor (MT ở Mitsubishi, DC/DC/DC ở Siemens, T ở Delta). S7-1200 loại relay có thể gắn signal board ngõ ra DC để lấy kênh phát xung.

Tần số xung tối đa theo dòng PLC

PLCTần số tối đaSố trụcGhi chú
Mitsubishi FX3U, FX3UC100 kHz3 (Y000–Y002)Open collector
FX3U + FX3U-2HSY-ADP200 kHz2 mỗi adapterNgõ ra vi sai
Mitsubishi FX3S, FX3G 14/24 điểm100 kHz2FX3G 40/60 điểm có 3 trục
Mitsubishi FX5U, FX5UC200 kHz4CPU transistor
Mitsubishi FX5UJ200 kHz3CPU transistor
Siemens S7-1200 1211C–1215C DC/DC/DC100 kHz4 bộ phát xung (1214C)Ngõ ra Q0.0–Q0.3
Siemens S7-1200 1217C1 MHz4Ngõ ra vi sai
Siemens signal board SB 1222200 kHz4 ngõ raBản 5V hoặc 24V
Delta DVP-SS210 kHz4 điểmHợp motor bước hơn servo
Delta DVP-SA2, DVP-SX2100 kHz2 kênh nhanh2 kênh còn lại 10 kHz
Delta DVP-SV2, DVP-EH3 (40 điểm trở lên)200 kHz4Có nội suy

Driver cũng có giới hạn riêng: Mitsubishi MR-JE nhận tối đa 4 Mpulse/s qua ngõ vi sai nhưng chỉ 200 kpulse/s qua ngõ open collector. Khi phát 100–200 kHz, ưu tiên ngõ vi sai nếu PLC hỗ trợ.

4. Đấu nối ngõ ra phát xung PLC với driver servo

Ngõ vào xung của driver là một opto cách ly, cần dòng khoảng 7–16 mA. Hình dưới là sơ đồ kết nối tổng thể của một driver servo dạng xung: giắc lệnh về PLC, giắc encoder về motor, nguồn L–N vào và ba pha U V W ra motor.

Sơ đồ đấu nối PLC với driver servo: giắc lệnh từ PLC, cáp encoder, cáp động lực U V W và máy tính cài thông số

Ngõ ra NPN (sink)

Mitsubishi FX3U bản MT/ES và đa số PLC Nhật, Trung Quốc là ngõ ra NPN, kéo xuống 0V khi dẫn. Nối +24V vào chân dương ngõ vào xung của driver (hoặc chân dành riêng cho 24V), chân âm về ngõ ra Y0, COM của PLC về 0V. Dây hướng đấu tương tự.

Ngõ ra PNP (source)

CPU S7-1200 DC/DC/DC và Mitsubishi bản ESS cấp +24V ra khi dẫn. Nối ngõ ra Q0.0 vào chân dương ngõ vào xung, chân âm về 0V chung với nguồn PLC.

Ngõ ra vi sai (line driver)

Hai dây xoắn đôi mang hai tín hiệu ngược pha, driver đọc hiệu điện áp nên nhiễu chung bị triệt tiêu. Mitsubishi giới hạn dây xung open collector khoảng 2 m, dây vi sai tới khoảng 10 m.

Điện trở hạn dòng khi xung 24V vào driver 5V

Nhiều driver có ngõ vào xung thiết kế cho mức 5V; cấp thẳng 24V sẽ cháy LED opto. Phải mắc nối tiếp điện trở:

R ≈ (Vnguồn − Vled − Rtrong × I) / I

Với điện trở trong khoảng 270 Ω, LED sụt 1,5V, dòng 10 mA, nguồn 24V: R ≈ (24 − 1,5 − 2,7) / 0,01 ≈ 1.980 Ω, chọn 2 kΩ, 0,25W. Đây cũng là giá trị nhiều nhà sản xuất driver khuyến nghị: 1 kΩ cho 12V, 2 kΩ cho 24V, không cần điện trở với 5V. Mắc cho cả dây xung lẫn dây hướng, và luôn đối chiếu sơ đồ trong manual driver.

Chống nhiễu và mất xung

  • Dùng cáp xoắn đôi có lưới chống nhiễu, nối lưới về đất một đầu. Dây drain không nối đất là nguyên nhân phổ biến gây mất xung ngẫu nhiên.
  • Đi dây xung tách khỏi cáp U V W và cáp biến tần ít nhất 20–30 cm, cắt nhau thì cắt vuông góc.
  • Ngõ ra open collector hoặc PNP ở tần số cao có sườn xuống chậm; một số hãng hướng dẫn mắc thêm điện trở tải vài trăm ohm, loại vài watt, song song với ngõ vào xung để giữ dạng sóng vuông.

Servo ON, Reset, dừng khẩn là tín hiệu 24V thông thường, ngõ ra nào cũng dùng được. Alarm, In-position, Ready từ driver về ngõ vào PLC; kiểm tra driver xuất NPN hay PNP để đấu COM ngõ vào cho đúng.

Video dưới đây ghi lại cách điều chỉnh bộ phát xung cấp lệnh cho motor servo 400 W, giúp hình dung tín hiệu xung và hướng đi vào driver giống như khi PLC phát xung.

5. Tính bánh răng điện tử và tốc độ tối đa theo tần số xung

Bánh răng điện tử là tỉ số driver nhân với mỗi xung lệnh để ra số xung encoder. Nhờ nó, PLC chỉ cần phát số xung theo đơn vị cơ khí dễ tính thay vì hàng trăm nghìn xung mỗi vòng.

Công thức

  • Tỉ số bánh răng điện tử = Độ phân giải encoder / Số xung PLC mỗi vòng motor
  • Tần số xung cần (Hz) = Số xung mỗi vòng × Tốc độ motor (vòng/phút) / 60

Ví dụ 1: vít me bước 10 mm, encoder 131.072 xung/vòng

Muốn mỗi xung là 0,001 mm thì cần 10.000 xung/vòng. Tỉ số = 131.072 / 10.000 = 8.192 / 625. Trên driver Mitsubishi nhập PA06 (CMX) = 8192, PA07 (CDV) = 625; nhiều dòng còn cho nhập thẳng số xung lệnh mỗi vòng tại PA05 sau khi chọn kiểu cài ở PA21. Driver Delta ASDA dùng P1-44 (tử số) và P1-45 (mẫu số).

Kiểm tra tốc độ: ở 3.000 vòng/phút cần 10.000 × 3.000 / 60 = 500 kHz. FX3U chỉ phát 100 kHz nên motor chỉ đạt 600 vòng/phút, tương đương 100 mm/s. Đây là lỗi thiết kế rất hay gặp: chọn độ phân giải quá mịn rồi thấy servo chạy chậm.

Ví dụ 2: hạ độ phân giải để đạt tốc độ định mức

Chọn 2.000 xung/vòng (0,005 mm mỗi xung). Ở 3.000 vòng/phút cần đúng 100 kHz, vừa giới hạn FX3U hay S7-1200. Tỉ số = 131.072 / 2.000 = 8.192 / 125. Với vít me cán thông thường, 0,005 mm/xung đã dư dùng.

Ví dụ 3: encoder 2.500 xung, có hộp số

Motor dùng encoder 2.500 xung/vòng được driver nhân 4 thành 10.000 xung/vòng. Muốn PLC phát 2.000 xung/vòng thì tỉ số = 10.000 / 2.000 = 5/1. Các model như motor servo 400W hay motor servo 750W có cả bản encoder 2.500 xung và bản tuyệt đối 17/23 bit (131.072 hoặc 8.388.608 xung/vòng). Nếu có hộp giảm tốc tỉ số i, quãng đường mỗi vòng motor bằng bước vít me chia i: hộp số 1:5 với vít me 10 mm cho 2 mm mỗi vòng, nên 2.000 xung/vòng đã đạt 0,001 mm/xung.

Xung PLC mỗi vòngmm mỗi xung (vít me 10 mm)Tốc độ tối đa ở 100 kHzTốc độ tối đa ở 200 kHz
1.0000,0106.000 vòng/phút12.000 vòng/phút
2.0000,0053.000 vòng/phút6.000 vòng/phút
4.0000,00251.500 vòng/phút3.000 vòng/phút
10.0000,001600 vòng/phút1.200 vòng/phút

Tốc độ thực tế còn bị chặn bởi tốc độ định mức của motor: thường 3.000 vòng/phút với loại 400–750W và 2.500 hoặc 1.500 vòng/phút với các model lớn như motor servo 1.5kW. Sau khi cài, cho PLC phát đúng số xung của 10 vòng ở tốc độ thấp và đánh dấu trên trục để kiểm tra.

6. Lập trình điều khiển servo trên PLC Mitsubishi FX3U và FX5U

LệnhChức năng
PLSYPhát số xung tần số cố định, không tăng giảm tốc
PLSVPhát xung tốc độ thay đổi, có chân hướng (chạy JOG)
DRVIĐịnh vị tương đối (đi thêm N xung)
DRVAĐịnh vị tuyệt đối (đi tới tọa độ N), cần về gốc trước
ZRNVề gốc theo cảm biến gần gốc, không tìm DOG
DSZRVề gốc có tìm DOG và dùng tín hiệu pha Z
DVITĐịnh vị ngắt: chạy đến khi có tín hiệu rồi đi thêm quãng định trước (FX3U/FX3UC)

DRVI, DRVA trên FX3U

Lệnh có bốn toán hạng: số xung, tần số xung, ngõ ra phát xung, ngõ ra hướng. Bản 32 bit cho tần số 10–100.000 Hz. Ví dụ đi thêm 20.000 xung ở 50 kHz trên Y000, chân hướng Y003:

LD    M10
DDRVI K20000 K50000 Y000 Y003
LD    M8029
SET   M11

Số xung âm làm PLC đảo chân hướng. Với DDRVA, toán hạng đầu là tọa độ tuyệt đối.

Về gốc bằng DSZR

LD    M20
DSZR  X010 X000 Y000 Y003

X010 là cảm biến gần gốc (DOG), X000 là tín hiệu pha Z lấy từ driver (phải thuộc X000–X007). Khi gặp DOG trục giảm về tốc độ bò, khi DOG tắt và gặp xung Z đầu tiên thì dừng, vị trí hiện tại được đặt về giá trị gốc.

Thanh ghi và cờ của Y000

  • D8341, D8340: vị trí hiện tại 32 bit (số xung lệnh đã phát).
  • D8345: tốc độ bò; D8346, D8347: tốc độ về gốc; D8348, D8349: thời gian tăng tốc, giảm tốc.
  • M8340: Y000 đang phát xung; M8029: lệnh hoàn tất; M8329: kết thúc bất thường; M8343, M8344: giới hạn thuận, nghịch.

Mỗi ngõ ra chỉ được một lệnh định vị điều khiển tại một thời điểm; sau khi tắt điều kiện lệnh trước phải chờ M8340 tắt mới kích lệnh sau, nếu không lệnh sau bị bỏ qua.

FX5U, FX5UC, FX5UJ

Trên GX Works3, cấu hình nằm ở Module Parameter → High Speed I/O → Output Function → Positioning: kiểu xung (PULSE/SIGN hoặc CW/CCW), chân hướng, đơn vị (xung, µm, inch, độ), tốc độ tối đa, thời gian tăng giảm tốc, giới hạn mềm, thông số về gốc. Lệnh DRVI, DRVA, DSZR, PLSV giữ tên nhưng toán hạng cuối là số trục và cờ hoàn thành/lỗi thay cho chân xung, chân hướng. FX5 còn có bảng định vị cài trong tham số, gọi bằng lệnh TBL, tiện cho máy chạy chuỗi nhiều điểm dừng.

7. Điều khiển servo bằng PLC Siemens S7-1200 trong TIA Portal

S7-1200 dùng đối tượng công nghệ TO_PositioningAxis và các khối chuyển động chuẩn PLCopen thay cho lệnh phát xung kiểu ladder.

Cấu hình trục

1. Trong cấu hình CPU, bật Pulse generator, chọn dùng cho đối tượng công nghệ.

2. Thêm TO_PositioningAxis, chọn kết nối driver PTO (đối tượng này còn hỗ trợ driver analog và PROFIdrive).

3. Chọn kiểu tín hiệu: xung A + hướng B, đếm lên/đếm xuống (tương ứng CW/CCW) hoặc A/B lệch pha.

4. Mechanics: nhập số xung mỗi vòng motor (khớp bánh răng điện tử của driver, ví dụ 2.000) và quãng đường tải mỗi vòng (ví dụ 10 mm); từ đó mọi lệnh tính bằng mm.

5. Drive signals: gán ngõ ra Enable nối vào Servo ON, ngõ vào Ready nhận tín hiệu sẵn sàng của driver.

6. Khai báo công tắc hành trình phần cứng, giới hạn mềm, tốc độ tối đa, gia tốc, gia tốc dừng khẩn và thông số về gốc.

Các khối lệnh chính

KhốiChức năng
MC_PowerBật/tắt trục, xuất Enable (Servo ON)
MC_ResetXác nhận lỗi trục
MC_HomeVề gốc hoặc gán tọa độ
MC_MoveJogChạy nhắp thuận/nghịch
MC_MoveAbsolute, MC_MoveRelativeĐịnh vị tuyệt đối, tương đối
MC_MoveVelocity, MC_HaltChạy theo tốc độ, dừng có giảm tốc

MC_Power có tham số StopMode: 0 dừng khẩn theo gia tốc dừng khẩn rồi tắt trục, 1 dừng ngay, 2 dừng khẩn có giới hạn độ giật. MC_Home có Mode 0 (gán vị trí hiện tại bằng Position), Mode 1 (cộng Position vào vị trí hiện tại), Mode 2 (về gốc thụ động, ghi nhận gốc khi lệnh khác di chuyển trục qua công tắc), Mode 3 (về gốc chủ động, trục tự tìm công tắc gốc); Mode 6, 7 hiệu chỉnh encoder tuyệt đối chỉ dùng với driver analog hoặc PROFIdrive.

MC_MoveAbsolute chỉ chạy khi trục đã bật bằng MC_Power và đã về gốc. Các khối kích bằng sườn lên Execute; Done báo xong, CommandAborted báo bị lệnh khác ghi đè, Error kèm ErrorID để tra nguyên nhân. Trình tự điển hình: gọi MC_Power mỗi chu kỳ → Status bật thì cho MC_Home Mode 3 → Done thì cho MC_MoveAbsolute → có lỗi thì dừng, xử lý, kích MC_Reset. Bảng Commissioning trong TIA Portal cho chạy JOG, về gốc ngay từ máy tính, nên dùng để kiểm tra chiều quay và bánh răng điện tử trước khi viết chương trình.

8. Lập trình phát xung trên PLC Delta DVP

PLC Delta DVP lập trình bằng ISPSoft hoặc WPLSoft, bộ lệnh định vị gần giống Mitsubishi: DRVI, DRVA (số xung, tần số, ngõ ra xung, ngõ ra hướng), ZRN (tốc độ về gốc, tốc độ bò, cảm biến gốc, ngõ ra xung), PLSV cho JOG và PLSY phát số xung cố định.

Chọn model phải nhìn tần số trước: DVP-SS2 chỉ 10 kHz, với 2.000 xung/vòng motor chỉ đạt 300 vòng/phút. DVP-SA2, DVP-SX2 có 2 kênh 100 kHz; DVP-SV2, DVP-EH3 có 4 trục 200 kHz.

Cách kết hợp hay gặp với driver Delta ASDA: lưu sẵn các điểm định vị trong driver (chế độ PR), PLC chỉ gửi Servo ON và chọn chỉ số điểm qua ngõ vào số; khi cần đổi tọa độ từ HMI thì ghi giá trị mới vào thanh ghi driver bằng MODWR qua RS485. Cách này không bị giới hạn tần số xung của PLC.

9. Servo ON, Alarm, Reset, In-position và trình tự vận hành

Phần lớn sự cố "PLC phát xung mà servo không chạy" nằm ở tín hiệu điều khiển chứ không ở xung. Trình tự đúng:

1. Cấp nguồn driver, chờ hết khởi động, không có Alarm, Ready bật.

2. PLC bật Servo ON; chờ 100–200 ms hoặc chờ Ready/Status rồi mới phát xung, xung phát sớm sẽ bị bỏ qua.

3. Về gốc nếu dùng định vị tuyệt đối.

4. Chạy định vị. Khi PLC phát xong, chờ thêm In-position (INP ở Mitsubishi, TPOS ở Delta) mới chuyển bước.

5. Khi có Alarm: dừng phát xung, tắt Servo ON, hiển thị lỗi. Chỉ kích Reset sau khi đã xử lý nguyên nhân; một số lỗi phải tắt nguồn mới xóa được.

Ở nhiều driver, ngõ ra Alarm dẫn khi bình thường và ngắt khi có lỗi; lập trình "Alarm tắt là lỗi" đồng thời phát hiện được đứt dây. Driver Mitsubishi dòng A có ngõ vào LSP, LSN: để hở thì driver coi như đang chạm giới hạn và khóa chiều tương ứng, motor không quay dù có Servo ON và có xung. Khi thử chưa có công tắc có thể cài thông số cho LSP/LSN tự bật, nhưng máy thật nên đấu công tắc hành trình thường đóng vào cả driver lẫn PLC. Yêu cầu về phanh trục đứng và cách xử lý từng nhóm alarm được trình bày trong bài lưu ý khi sử dụng động cơ servo.

Video ngắn dưới đây minh họa phần cài đặt driver servo trong một hệ tự động hóa.

10. Về gốc, công tắc hành trình và đọc vị trí phản hồi

Bố trí cảm biến về gốc

Trục định vị tuyệt đối cần giới hạn thuận, giới hạn nghịch và cảm biến gần gốc (DOG). Về gốc chính xác nhất là DOG kết hợp pha Z: vì xung Z chỉ có một lần mỗi vòng motor, độ lặp lại đạt mức một xung encoder, không phụ thuộc độ trễ cảm biến tiệm cận. Đặt DOG sao cho mép tắt không sát vị trí xung Z; nếu quá gần, lúc trục dừng ở xung Z này, lúc ở xung Z kế tiếp, lệch đúng một vòng motor. Dịch DOG khoảng nửa vòng motor là hết.

Encoder tuyệt đối có cần về gốc mỗi lần bật máy

Với điều khiển bằng xung, PLC không tự biết vị trí tuyệt đối sau khi mất điện. Muốn bỏ bước về gốc phải truyền dữ liệu tuyệt đối từ driver về PLC (giao thức riêng của hãng, Modbus hoặc mạng chuyển động); nếu không, vẫn phải về gốc sau mỗi lần cấp điện.

Đọc vị trí phản hồi thật

Thanh ghi vị trí của PLC khi phát xung chỉ là số xung đã phát, không phải vị trí motor; khi motor kẹt hoặc driver báo lỗi giữa chừng, hai giá trị khác nhau. Có ba cách đọc vị trí thật: nối ngõ ra xung encoder chia tần A/B của driver vào bộ đếm tốc độ cao của PLC (đặt tỉ lệ chia bằng số xung PLC mỗi vòng để cùng đơn vị), đọc thanh ghi vị trí của driver qua Modbus, hoặc dùng mạng chuyển động. So sánh vị trí lệnh với vị trí thật sau mỗi lần dừng giúp phát hiện sớm mất xung hay trượt khớp nối.

11. Lỗi thường gặp khi điều khiển servo bằng PLC

Hiện tượngNguyên nhân hay gặpCách xử lý
Ngõ ra PLC nháy, motor không quayChưa Servo ON; driver không ở chế độ vị trí; LSP/LSN hở; thiếu nguồn cho ngõ vào xungXem màn hình driver có đếm xung lệnh không; chỉnh chế độ, đấu công tắc
Chỉ chạy một chiềuKiểu xung PLC và driver không khớp; dây hướng hởĐồng bộ kiểu xung; đo chân hướng khi đổi chiều
Sai quãng đường theo tỉ lệ cố địnhBánh răng điện tử sai, bỏ quên nhân 4 encoderTính lại, thử 10 vòng
Sai lệch tăng dầnMất xung do nhiễu, vượt tần số ngõ open collectorCáp chống nhiễu, ngõ vi sai, giảm tần số
Motor chậm hơn tính toánChạm giới hạn tần số PLCGiảm số xung mỗi vòng hoặc đổi PLC
Lệnh định vị thứ hai không chạyKích khi lệnh trước chưa kết thúcChờ cờ phát xung tắt
Cháy ngõ vào xung driverCấp 24V vào ngõ 5V không điện trởThêm 2 kΩ hoặc dùng chân 24V
Báo lệch vị trí khi tăng tốcThời gian tăng tốc quá ngắn so với quán tính tảiTăng thời gian tăng tốc, chạy auto-tuning

12. Câu hỏi thường gặp về điều khiển động cơ servo bằng PLC

PLC ngõ ra relay có điều khiển được động cơ servo không?

Không phát xung được. Relay đóng cắt quá chậm và mòn tiếp điểm rất nhanh. PLC relay chỉ dùng cho Servo ON, Reset hoặc khi ra lệnh qua Modbus, analog, mạng.

PLC ngõ ra NPN có dùng được với driver servo không?

Có. Ngõ vào xung của driver là opto cách ly, đấu được với cả NPN và PNP, chỉ khác chiều nối nguồn. Điều cần kiểm tra là mức điện áp ngõ vào 5V hay 24V.

Xung 24V từ PLC vào driver 5V cần điện trở bao nhiêu?

Thường 2 kΩ, 0,25W, nối tiếp ở cả dây xung và dây hướng, giữ dòng opto khoảng 10 mA. Driver có chân riêng cho 24V thì không cần điện trở ngoài.

PLC Mitsubishi FX3U phát xung tối đa bao nhiêu kHz?

100 kHz trên Y000, Y001, Y002 của CPU transistor; thêm FX3U-2HSY-ADP để có 200 kHz ngõ vi sai. FX5U phát 200 kHz ngay trên CPU.

S7-1200 điều khiển được bao nhiêu trục servo bằng xung?

CPU 1214C có 4 bộ phát xung, tức tối đa 4 trục xung + hướng, 100 kHz trên ngõ tích hợp, 200 kHz với signal board, 1 MHz với CPU 1217C. Nhiều trục hơn nên dùng driver PROFINET.

Vì sao servo chạy không đủ quãng đường so với lệnh?

Thiếu theo tỉ lệ cố định là do bánh răng điện tử hoặc số xung mỗi vòng khai báo sai. Sai lệch tăng dần theo thời gian là mất xung do nhiễu hoặc vượt tần số ngõ vào. Chạy thử đúng 10 vòng ở tốc độ thấp để phân biệt.

PLC báo phát xung xong, motor đã tới vị trí chưa?

Chưa chắc. Cờ hoàn thành của PLC chỉ báo đã gửi hết xung; motor còn trễ một chút do sai lệch vòng vị trí. Hãy chờ thêm tín hiệu In-position của driver.

Nên điều khiển servo bằng xung hay bằng truyền thông?

Một đến bốn trục chạy độc lập thì phát xung là đủ và rẻ. Nhiều trục, cần nội suy, cần đọc vị trí tuyệt đối và mã lỗi, hoặc dây dài trong môi trường nhiễu thì nên dùng mạng chuyển động.

Một ngõ phát xung có điều khiển hai servo cùng lúc được không?

Được, nếu hai trục chạy y hệt, cài cùng bánh răng điện tử và tổng dòng hai ngõ vào opto nằm trong khả năng ngõ ra PLC. PLC sẽ không biết trục nào bị kẹt, nên trục đôi kéo chung khung cần thêm giám sát vị trí.

Điều khiển tốc độ servo bằng PLC dùng lệnh gì?

PLSV trên Mitsubishi, Delta; MC_MoveVelocity hoặc MC_MoveJog trên S7-1200. Nếu chỉ cần điều tốc không định vị, có thể đặt driver ở chế độ tốc độ và cấp lệnh analog.

PLC có điều khiển mô-men servo được không?

Có, khi driver ở chế độ mô-men và nhận lệnh analog ±10V hoặc lệnh mô-men qua mạng. Phát xung không điều khiển mô-men được, chỉ có thể chọn mức giới hạn mô-men nếu driver hỗ trợ.

Có đọc được mã lỗi driver servo lên PLC và HMI không?

Có, qua Modbus hoặc mạng chuyển động. Nếu chỉ dùng xung, PLC chỉ nhận một bit Alarm chung.

Vì sao S7-1200 báo lỗi khi chạy MC_MoveAbsolute?

Thường do trục chưa bật bằng MC_Power hoặc chưa về gốc. Khi thử nghiệm có thể dùng MC_Home Mode 0 để gán vị trí hiện tại làm gốc, máy thật nên dùng Mode 3.

Chọn bao nhiêu xung mỗi vòng motor là hợp lý?

Chọn sao cho mỗi xung nhỏ hơn khoảng 1/5 đến 1/10 dung sai cần đạt và tần số ở tốc độ định mức không vượt giới hạn PLC. Với vít me 10 mm và PLC 100 kHz, 2.000 xung/vòng là điểm cân bằng tốt.

13. Kết luận

Điều khiển động cơ servo bằng PLC chạy ổn định khi ba phần khớp nhau: phần cứng (ngõ ra transistor, đúng NPN/PNP, đúng mức 5V/24V, cáp chống nhiễu), thông số (kiểu xung và bánh răng điện tử thống nhất, tần số không vượt giới hạn) và trình tự chương trình (Servo ON, kiểm tra Alarm, về gốc, định vị, chờ In-position). Máy ít trục dùng phát xung trên FX3U, FX5U, S7-1200 hay Delta DVP là đơn giản và tiết kiệm; khi số trục tăng hoặc cần vị trí thật, chuyển sang Modbus hoặc mạng chuyển động sẽ bớt nhiều rắc rối về mất xung. Người mới cần cái nhìn tổng quát trước có thể xem bài cách điều khiển động cơ servo.

4.791 reviews

Tin tức liên quan

Mô Tơ Điện 1 Pha, 3 Pha 220V/380V: Bảng Giá Theo kW

Mô Tơ Điện 1 Pha, 3 Pha 220V/380V: Bảng Giá Theo kW

06 thg 11 2026 13:03

Mô tơ điện 3 pha 380V 4 cực giá 920.000 – 17.440.000 đ (0.37 – 30kW); mô tơ 1 pha 220V YL, YC giá 1.070.000 – 5.840.000 đ (0.37 – 3.7kW). Kèm cách chọn 1 pha hay 3 pha, số cực theo máy.
Đọc tiếp
Hộp giảm tốc harmonic: thông số, model CSF, SHF và cách chọn

Hộp giảm tốc harmonic: thông số, model CSF, SHF và cách chọn

14 thg 10 2026 15:12

Hộp giảm tốc harmonic (strain wave) size 14 – 32, tỉ số 1/50 – 1/120, mô men 5,4 – 137 Nm. Cách đọc tem, phân loại CSF, CSG, SHF-2UH, SHF-2UJ, SHF-2SO, SHD-2SH và cách chọn theo servo.
Đọc tiếp
Khám phá Bí Quyết Điều Khiển Động Cơ RC Servo Chính Xác Bằng STM32F4

Khám phá Bí Quyết Điều Khiển Động Cơ RC Servo Chính Xác Bằng STM32F4

15 thg 4 2025 20:44

Điều khiển động cơ RC Servo bằng STM32F4 mang đến độ chính xác cao và khả năng tùy chỉnh tín hiệu PWM tối ưu. Bài viết này hướng dẫn từ cấu hình bộ định thời, lập trình tín hiệu PWM, đến tối ưu hóa hiệu suất động cơ. Đây là giải pháp lý tưởng cho kỹ sư điện, kỹ sư cơ khí và các doanh nghiệp công nghiệp.
Đọc tiếp
Điều khiển động cơ RC servo bằng PWM: chu kỳ, độ rộng xung và cách tạo xung bằng timer

Điều khiển động cơ RC servo bằng PWM: chu kỳ, độ rộng xung và cách tạo xung bằng timer

10 thg 10 2026 17:36

Điều khiển động cơ RC servo bằng PWM: chu kỳ 20 ms, độ rộng xung 500–2500 µs, tính prescaler cho AVR, STM32, ESP32, PCA9685, mạch 555 và cách đo kiểm.
Đọc tiếp
Cách Điều Khiển Động Cơ DC Servo Chính Xác Bằng Giải Thuật PID

Cách Điều Khiển Động Cơ DC Servo Chính Xác Bằng Giải Thuật PID

12 thg 10 2026 08:32

Điều khiển động cơ DC Servo bằng giải thuật PID mang lại sự ổn định và hiệu suất cao cho hệ thống công nghiệp. Tìm hiểu cách áp dụng Proportional-Integral-Derivative, vi điều khiển và encoder để tối ưu hóa tốc độ và vị trí của động cơ. Phương pháp này được sử dụng rộng rãi trong robot, dây chuyền sản xuất và các hệ thống tự động hóa.
Đọc tiếp