Chức năng toán học

Một phần của tài liệu Giáo trình PLC cơ bản (Nghề Điện công nghiệp Cao đẳng) (Trang 83 - 88)

Các lệnh số học dùng đểthưc hiện các phép tính số học trong chương trình.

Trong LAD, bốn khối toán học (math box) thực hiện các phép tính cộng, trừ 16 bit và 32 bit. Khối nhân (multiply box) nhân hai số nguyên 16 bit và kết quả là một số nguyên 32 bít. Khối chia (divide box) chia hai số 16 bit, thương là 16 bit và dư cũng là một số16 bit và được nạp vào từ ngay trước. Nếu lập trình bằn LAD, có thể

tiết kiệm ô nhớ bằng cách sử dụng đầu vào IN1 đồng thời cũng là đầu ra OUT.

Trong STL, lệnh thực hiện bốn phép tính số học được quy định cho toán hạng 16 bit và 32 bit. Khối nhân thực hiện phép nhân hai số nguyên 16 bit và tích số là một số nguyên 32 bit. Lệnh chia thực hiện phép chia một số nguyên 16 bit với 16 bit cuối của một số nguyên 32 bit. Kết quả là một giá trị từ kép (32 bit) trong đó từ

thấp (từ bit 0 đến bit 15) là thương số và từ cao (từ bit 16 đến 32 bit) là sốdư của phép tính.

3.5.1. Phép cộng trừ (ADD và SUB).

a, Phép cng s nguyên 16 bit

ADD_I (LAD)

+I (STL)

Lệnh thực hiện phép cộng các số nguyên 16_bit IN1 và IN2. Trong LAD kết quả là một sốnguyên 16 bit được ghi vào OUT, tức là IN1 + IN2 = OUT.

Trong STL, kết quả cũng là một giá trị16 bit nhưng được ghi lại vào IN2, tức là IN1 + IN2 = IN2.

b, Phép tr s nguyên 16 bit

SUB_I (LAD)

-I (STL)

Lệnh thực hiện phép cộng các số nguyên 16_bit IN1 và IN2. Trong LAD kết quả là một sốnguyên 16 bit được ghi vào OUT, tức là IN1 - IN2 = OUT.

Trong STL, kết quả cũng là một giá trị16 bit nhưng được ghi lại vào IN2, tức là IN1 - IN2 = IN2.

LAD STL Toán hạng

+I IN1 IN2

IN1, IN2 VW, IW, QW, MW, (INT) W, SMW, T, C, AC, LW, AIW, Constant, *VD, *LD, *AC OUT VW, IW, QW, MW, (INT) SW, SMW, T, C, LW, AC, *VD, *LD, *AC -I IN1 IN2 c, Phép cng s nguyên kép 32 bit ADD_DI (LAD) +D (STL)

Lệnh thực hiện phép cộng các số nguyên 32 bit IN1 và IN2. Trong LAD kết quả là một số nguyên 32 bit được ghi vào OUT, tức là IN1+IN2=OUT

Trong STL kết quả cũng là một sốnguyên 32 bit nhưng được ghi lại vào IN2, tức là IN1+IN2=IN2.

d, Phép tr s nguyên kép 32 bit

SUB_DI (LAD)

-D (STL)

Lệnh thực hiện phép cộng các số nguyên 32 bit IN1 và IN2. Trong LAD kết quả là một sốnguyên 32 bit được ghi vào OUT, tức là IN1-IN2=OUT

Trong STL kết quả cũng là một sốnguyên 32 bit nhưng được ghi lại vào IN2, tức là IN1- IN2=IN2.

Cú pháp dùng lệnh cộng trừ hai sốnguyên 32 bit trong LAD và STL như sau:

LAD STL Toán hạng

+D IN1 IN2

IN1, IN2 VD, ID, QD, MD, SMD,

-D IN1 IN2 Constant, *VD, *LD, *AC OUT VD, ID, QD, MD, SMD, (DINT) SD, LD, AC, *VD, *LD, *AC e, Phép cng s thc kép 32 bit ADD_R (LAD) +R (STL)

Lệnh thực hiện phép cộng các số thực 32 bit IN1 và IN2. Trong LAD kết quả

là một sốnguyên 32 bit được ghi vào OUT, tức là IN1+IN2=OUT

Trong STL kết quả cũng là một sốnguyên 32 bit nhưng được ghi lại vào IN2, tức là IN1+IN2=IN2.

f, Phép tr s thc kép 32 bit

SUB_R (LAD)

-R (STL)

Lệnh thực hiện phép cộng các số thực 32 bit IN1 và IN2. Trong LAD kết quả

là một sốnguyên 32 bit được ghi vào OUT, tức là IN1- IN2=OUT

Trong STL kết quả cũng là một số thực 32 bit nhưng được ghi lại vào IN2, tức là IN1- IN2=IN2.

Cú pháp dùng lệnh cộng trừ hai số thực 32 bit trong LAD và STL như sau:

LAD STL Toán hạng

+D IN1

IN2 IN1, IN2 VD, ID, QD, MD, SD, SMD, (REAL) LD, AC, Constant, *VD, *LD, *AC

OUT VD, ID, QD, MD, SD, SMD, LD, AC, *VD, *LD, *AC

-D IN1 IN2

3.5.2. Phép nhân chia (MUL và DIV).

a, Phép nhân

Trong LAD: lệnh thực hiện phép nhân hai số nguyên 16 bit IN1 và IN2 và cho ra kết quả 32 bit chứa trong từ kép OUT (4 bytes).

Trong STL: lệnh thực hiện phép nhân hai số nguyên 16 bit n1 và số nguyên chứa trong từ thấp (từ bit 0 đến bit 15) của toán hạng 32 bit n2 (4 bytes). Kết quả 32 bit được ghi lại vào n2.

Cú pháp dùng lệnh nhân hai sốnguyên trong LAD và STL như sau:

LAD STL Toán hạng

MUL n1 n2

n1, IN1, IN2:VW, IW, QW, MW, SW, (INT) SMW, T, C, LW, AC,

AIW, Constant, *VD,*LD, *AC n2, OUT: VD, ID, QD, MD, SMD,

(DINT) SD, LD, AC, *VD, *LD, *AC

b, Phép chia

Trong LAD: lệnh thực hiện phép chia hai số nguyên 16 bit IN1 và IN2, cho ra kết quả 32 bit chứa trong từ kép OUT (4 bytes) gồm thương số ghi trong mảng 16 bit từ 0 đến 15 (từ thấp) và phần dư cũng gồm 16 bit trong mảng từ bit 16 đến 31 (từ cao).

Trong STL: lệnh thực hiện phép nhân hai số nguyên 16 bit n1 và số nguyên 16 bit nằm trong từ thấp (từbit 0 đến bit 15) của toán hạng 32 bit n2 (4 bytes). Kết quả 32 bit được ghi lại vào n2 bao gồm thương số ghi trong bảng 16 bit từ 0 đến bit 15 (từ thấp) và phần dư ghi trong mảng 16 bit từbit 16 đến bit 31 (từ cao).

Cú pháp dùng lệnh chia hai sốnguyên trong LAD và STL như sau:

LAD STL Toán hạng

MUL n1 n2

n1, IN1, IN2:VW, IW, QW, MW, SW, (INT) SMW, T, C, LW, AC, AIW, Constant, *VD, *LD, *AC

n2, OUT: VD, ID, QD, MD, SMD, (DINT) SD, LD, AC, *VD, *LD,*AC

Tương tự, ta có các lệnh nhân chia sau (Tham khảo cú pháp và toán hạng trong mục trợ giúp).

MUL_I: nhân hai số nguyên 16 bit DIV_I: chia hai số nguyên 16 bit MUL_DI: Nhân hai số nguyên 32 bit. DIV_DI: Chia hai số nguyên 32 bit. MUL_R: Nhân hai số thực.

DIV_R: Chia hai số thực.

3.5.3. Phép lấy căn bậc hai (SQRT)

Lệnh thực hiện phép lấy căn bậc hai của số thực 32 bit IN. Kết quả cũng là

một số32 bit được ghi vào từ kép OUT (4 bytes).

Cú pháp dùng lệnh lấy căn bậc hai hai sốnguyên trong LAD và STL như sau:

LAD STL Toán hạng

SQRT IN OUT

IN: VD, ID, QD, MD, SMD, SD, LD, (REAL) AC, Constant, *VD, *LD, *AC OUT: VD, ID, QD, MD, SMD, SD (REAL) LD, AC, *VD, *LD, *AC Ví dụ minh họa cách sử dụng một số lệnh số học:

Khi I0.0 ON, chương trình thực thi:

Một phần của tài liệu Giáo trình PLC cơ bản (Nghề Điện công nghiệp Cao đẳng) (Trang 83 - 88)

Tải bản đầy đủ (PDF)

(146 trang)