Hướng dẫn lập trình Encoder PLC Mitsubishi
Hướng dẫn bằng PDF Link 1: https://drive.google.com/file/d/1JxcIVuOwcRn-ov0NoSaKpcuwEBYxbOqB/view
Hướng dẫn bằng PDF Link 2: https://mega.nz/file/ZoBlnDSC#qJlK6dEgIr-GIAlYECawgiHDPJUB3fQU0q_R3-z7sS0
1. Video hướng dẫn
2. Đấu nối phần cứng
2.1. Đấu nối encoder sử dụng nguồn ngoài
Thông thường Encoder có 2 loại dạng Sink (NPN) và dạng source (PNP) tùy thuộc khi mua encoder bạn có thể chọn một trong 2 loại. dưới đây là cách đấu nối của Encoder tương ứng 2 loại đó
Hình 1 – Đấu nối Encoder khi dùng nguồn ngoài (a. Encode loại NPN, b. Encoder loại PNP)
2.2. Đấu nối encoder sử dụng nguồn có sẵn từ PLC
Nếu sử dụng nguồn có sẵn từ PLC thì ta dung chân 24V và 0V trên thân của PLC để cấp nguồn cho encoder (cách này tương đối tiện lợi)
Hình 2 – Đấu nối Encoder khi dùng nguồn PLC (a. Encode loại NPN, b. Encoder loại PNP)
3. Xác định mạch đấu
Tùy thuộc vào loại Encoder bạn mua để xác định mạch đấu cho phù hợp.
Ví dụ: Bạn mua loại Encoder có mã E8B2-CWZ6C. Loại này sử dụng mạch đấu NPN do đó bạn quay lại mục 1 tìm đến mạch đấu dạng NPN.
Thông số Encoder:
- Model: Omron E6B2-CWZ6C 1000 p/r
- Điện áp sử dụng: 5~24VDC.
- Dòng tiêu thụ: max 80mA
- Số xung: 1000 xung / 1 vòng (1000 p/r)
- Số kênh xung: 3 kênh xung riêng biệt A, B, Z.
- Tần số đáp ứng tối đa: 100Khz
- Dạng ngõ ra xung: NPN cực thu hở (cần mắc trở treo lên VCC để tạo mức cao (High))
- Đường kính trục: 6mm
- Đường kính thân: 40mm
Lúc này ta có mạch đấu như sau (ở đây dùng nguồn PLC)
Hình 3 – Đấu nối Encoder E8B2-CWZ6C (dùng nguồn PLC)
4. Xác định bộ đếm tốc độ cao theo chân tín hiệu đầu vào
PLC Mitsubishi có sẵn các thanh ghi bộ đếm counter tốc độ cao để tiện cho người sử dụng, khi sử dụng ta xác định loại PLC, so sánh bảng bộ đếm tương ứng với chân đầu vào theo bảng sau.
Ví dụ: Khi đấu chân A vào X0 chân B vào X1 ta xác định được bộ đếm C251 sử dụng để đọc tín hiệu tốc độ cao từ 2 chân X0 và X1. Lúc này giá trị của bộ đếm C251 là xung mà encoder đọc được.
5. Lập trình PLC
5.1. Đọc về tín hiệu Encoder từ bộ đếm C251
Bit M8000 luôn bằng 1 chỉ sử dụng làm bit giữ nguồn. bộ đếm C251 được gọi với giá trị cài đặt là 1000 (giá trị này thì bạn có thể đặt bất kỳ vì nó không ảnh hưởng đến chương trình lập trình). Lúc này khi encoder quay thì C251 hiển thị số xung mà Encoder đếm được.
5.2. Công thức tính tốc độ động cơ
Ta có công thức tính tốc độ động cơ như sau:
Trong đó:
Nđc : Tốc độ động cơ
Δx: Xung đọc được từ encoder (X0, X1 là C251)
R: Độ phân giải của Encoder
Δt: Thời gian lấy mẫu
Ví dụ: Một Encoder có độ phân giản 600 xung (R = 600), thời gian lấy mẫu là 1s, tính tốc độ động cơ:
Ở network trên ta tạo một timer T0 có độ phân giải 100ms tức là với câu lệnh dòng 6 thì mỗi 100ms.10 = 1000ms = 1s thì T0 sẽ đếm lặp lại vì trước nó là bit thường đóng T0.
Khi T0 tác động (Network dòng 11) thì move giá trị đếm được từ C51 vào D0 (D0 chính là Δx), lúc này ta reset C251 để counter đếm lại từ đầu sau mỗi 1s.
Áp dụng công thức ta lấy Δx nhân 60 ở câu lệnh DMUL K60 D0 D2, kết quả nhân này được đưa vào miền nhớ trung gian D2.
Sau đó ta dùng D2 chia (độ phân giải của Encoder x 1s) , ở đây sử dụng encoder có độ phân giải 600 xung/v do đó ta lấy D2 chia K600 kết quả đưa ra D4 chính là tốc độ thực tế của động cơ (v/p).
Network này kiểm tra chiều của động cơ, nếu tốc độ động cơ lớn hơn 0 thì động cơ đang quay thuận (đèn Y0 sáng) nếu tốc độ động cơ âm (nhỏ hơn 0) thì động cơ đang quay ngược (đèn Y1 sáng).
5.3. Toàn bộ chương trình tính toán tốc độ động cơ từ Encoder
5.4. Tải Project mẫu
Bạn có thể tải project GXWorks 2 mẫu tại:
Link 1: https://mega.nz/file/Zh5FHZTK#mdv9Lr2RGe5ehWpTXsxd84A34kE9o7FgJuyxRP2s2-o
Link 2: https://drive.google.com/file/d/1TZdQbbJLhf0TSIAnD0P19uByfQFe4Xq_/view