Chào bạn, sau khi đã biết so sánh các con số, bước tiếp theo để trở thành một chuyên gia lập trình PLC là khả năng tính toán. PLC không chỉ điều khiển On/Off, nó còn phải tính toán tỷ lệ, quy đổi đơn vị analog, hoặc tính toán công suất.
Bài 8: Các phép toán Số học (ADD, SUB, MUL, DIV)
Trong PLC Mitsubishi, các phép toán cộng, trừ, nhân, chia được thực hiện trên các thanh ghi dữ liệu (D).
1. Danh sách các lệnh cơ bản
-
ADD (Addition): Phép cộng.
-
SUB (Subtraction): Phép trừ.
-
MUL (Multiplication): Phép nhân.
-
DIV (Division): Phép chia.
2. Cấu trúc lệnh
Cấu trúc chung của các lệnh này là:
Lệnh [S1] [S2] [D]
-
S1: Số hạng thứ nhất.
-
S2: Số hạng thứ hai.
-
D: Thanh ghi chứa kết quả.
3. Ví dụ minh họa chi tiết
A. Phép Cộng (ADD)
Bài toán: Tính tổng số sản phẩm của 2 dây chuyền (đang lưu ở D0 và D1) rồi lưu vào D2.
-
ADD D0 D1 D2(D2 = D0 + D1)
B. Phép Nhân (MUL) – Lưu ý đặc biệt
Khi nhân hai số 16-bit, kết quả có thể rất lớn nên PLC sẽ tự động chiếm 2 thanh ghi liên tiếp để chứa kết quả (32-bit).
-
Ví dụ:
MUL D10 K5 D20 -
Kết quả sẽ nằm ở cặp D20 và D21. Nếu bạn dùng D21 cho việc khác, kết quả phép nhân sẽ bị sai.
C. Phép Chia (DIV) – Lưu ý về số dư
Khi chia, PLC Mitsubishi sẽ trả về cả Thương số và Số dư.
-
Ví dụ:
DIV K10 K3 D30 -
Thanh ghi D30 sẽ chứa Thương số (bằng 3).
-
Thanh ghi tiếp theo D31 sẽ chứa Số dư (bằng 1).
4. Phép toán 32-bit (Số lớn)
Nếu bạn cần tính toán những con số vượt quá 32,767 (như xung Encoder hoặc tiền tệ), hãy thêm chữ D (Double) vào trước lệnh:
-
DADD,DSUB,DMUL,DDIV. -
Lúc này mỗi tham số S1, S2 sẽ chiếm 2 thanh ghi.
5. Ví dụ thực tế: Tính năng suất trung bình
Bài toán: Bạn có tổng số sản phẩm trong D100 và tổng số giờ máy chạy trong D102. Hãy tính sản phẩm/giờ và lưu vào D104.
Sơ đồ Ladder:
Đoạn mã
|--[ LD X0 ]---------------------------[ DDIV D100 D102 D104 ]--|
Giải thích:
Khi bật X0, PLC lấy giá trị 32-bit ở D100-D101 chia cho giá trị ở D102-D103. Kết quả (thương số) lưu vào D104-D105.
6. Mẹo cho kỹ thuật viên sửa máy
Khi bạn gặp một máy cũ mà các con số trên màn hình HMI nhảy lung tung hoặc không chính xác, hãy kiểm tra xem các lệnh MUL hoặc DIV có đang bị “đè” địa chỉ lên nhau không (ví dụ: vừa dùng D20 làm kết quả phép nhân, vừa dùng D21 làm biến tạm). Đây là lỗi cực kỳ phổ biến của những người mới lập trình.
Bạn đã nắm được cách làm cho PLC “làm toán” chưa? Nếu đã sẵn sàng, chúng ta sẽ bước sang một phần rất thú vị và thực tế: Bài 9: Điều khiển biến tần qua ngõ ra Analog (Dùng lệnh ghi dữ liệu ra Module mở rộng).

