Bài 3 : Các tập lập điều khiển chương trình
2.2 Các phép toán số của PLC
2.2.1 Các lệnh cộng, trừ, nhân và chia ADD, SUB, MUL, DIV
Lệnh nhân Lệnh chia Hình 3.6.Các lệnh số học
Ta sử dụng một lệnh hộp phép toán để lập trình các vận hành phép toán cơ bản: ADD: phép cộng (IN1 + IN2 = OUT)
SUB: phép trừ (IN1 – IN2 = OUT) MUL: phép nhân (IN1 * IN2 = OUT) DIV: phép chia (IN1 / IN2 = OUT)
Một hoạt động chia số nguyên sẽ cắt bỏ phần phân số của thương số để tạo ra một tín hiệu ra số nguyên. Ta nhấp vào phía dưới tên hộp và lựa chọn một kiểu dữ liệu từ trình đơn thả xuống.
Hình 3.7.Cách lấy lệnh
Chú ý: Các thông số lệnh phép toán cơ bản IN1, IN2 và OUT phải có kiểu dữ liệu giống nhau.
Thông số Kiểu dữ liệu Miêu tả
IN1, IN2 SInt, Int, DInt, UInt, UDInt, Real, LReal, Constant
Các đầu vào phép toán OUT SInt, Int, DInt, UInt, UDInt, Real, LReal Ngõ ra phép toán
Khi được cho phép (EN = 1), lệnh phép toán thực hiện hoạt động được định rõ trên các giá trị đầu vào (IN1 và IN2) và lưu trữ kết quả trong địa chỉ nhớ được xác định bởi thông số đầu ra (OUT). Sau một sự hoàn tất thành công phép toán, lệnh sẽ đặt ENO = 1.
Ví dụ: Thực hiện phép tính ADD, SUB, MUL, DIV với các giá trị IN1 và IN2 lần lượt là 250 và 125. Kết quả của phép toán ADD, SUB, MUL, DIV được lưu trữ tại địa chỉ đầu ra OUT. Các lệnh chỉ được thực hiện khi EN = 1.
Trạng thái ENO Miêu tả
1 Không có lỗi
0 Giá trị kết quả tính toán có thể đã vượt quá phạm vi hợp lệ của kiểu dữ liệu được chọn. Phần trọng số thấp nhất trong kết quả mà vừa với kích thước nơi đến thì được trả về.
0 Phép chia cho 0 (IN2 = 0): kết quả không được xác định và số 0 được trả lại.
0 Real/LReal: nếu một trong các giá trị đầu vào là NaN (không phải một số) thì NaN được trả lại.
0 ADD Real/LReal: nếu cả hai giá trị IN đều là INF với dấu khác nhau, đây là
một phép toán không hợp lệ và NaN được trả lại.
0 SUB Real/LReal: nếu cả hai giá trị IN đều là INF và cùng dấu, đây là một phép toán không hợp lệ và NaN được trả lại.
0 MUL Real/LReal: nếu một giá trị IN là 0 còn giá trị kia là INF, đây là một phép toán không hợp lệ và NaN được trả lại.
0 DIV Real/LReal: nếu cả hai giá trị IN là 0 hoặc là INF, đây là một phép toán không hợp lệ và NaN được trả lại.
2.2.2 Lệnh MOD.
Lệnh Modulo sẽ lấy phần dư của phép toán. Giá trị Tín hiệu vào IN1 chia cho IN2 và giá trị phần dư sẽ được lưu vào OUT
Hình 3.8.Lệnh MOD
Ta sử dụng lệnh MOD (modulo) cho phép toán IN1 modulo IN2. Phép toán IN1
MOD IN2 = IN1 – (IN1/IN2) = thông số OUT. Ta nhấp vào phía dưới tên hộp và chọn một kiểu dữ liệu từ trình đơn thả xuống.
Chú ý: Các thông số IN1, IN2 và OUT phải có kiểu dữ liệu giống nhau.
Thông số Kiểu dữ liệu Miêu tả
IN1 và IN2 Int, DInt, USInt, UInt, UDInt, Constant Các đầu vào modulo
OUT Int, DInt, USInt, UInt, UDInt Đầu ra modulo
Trạng thái ENO Miêu tả
1 Không có lỗi
0 Giá trị IN2 = 0, OUT được gán giá trị bằng 0
Ví dụ: Thực hiện phép tính MOD với các giá trị IN1 và IN2 lần lượt là 250 và 125. Kết quả của phép toán MOD được lưu trữ tại địa chỉ đầu ra OUT. Lệnh chỉ được thực hiện khi EN = 1.
Lệnh NEG
Ta sử dụng lệnh NEG (phép đảo) để đảo ngược dấu số học của giá trị tại thông số IN và lưu trữ kết quả trong thông số OUT. Ta nhấp vào phía dưới tên hộp và chọn một kiểu dữ liệu từ trình đơn thả xuống.
Thông số Kiểu dữ liệu Miêu tả
IN SInt, Int, DInt, Real, LReal, Constant Tín hiệu đầu vào phép toán
Trạng
thái ENO Miêu tả
1 Không có lỗi
0
Giá trị kết quả vượt quá phạm vi hợp lệ của kiểu dữ liệu được chọn. Ví dụ đối với SInt: NEG (– 128) cho kết quả + 128 vượt quá giá trị tối đa của kiểu dữ liệu này.
Các lệnh tăng và giảm
Lệnh tăng Lệnh giảm
Ta sử dụng các lệnh INC và DEC để:
Tăng giá trị một số nguyên có dấu hoặc không dấu. INC: giá trị thông số IN/OUT + 1 = giá trị thông số IN/OUT.
Giảm giá trị một số nguyên có dấu hoặc không dấu. DEC: giá trị thông số IN/OUT – 1 = giá trị thông số IN/OUT.
Ta nhấp vào phía dưới tên hộp và chọn một kiểu dữ liệu từ trình đơn thả xuống.
Thông số Kiểu dữ liệu Miêu tả
IN/OUT SInt, Int, DInt, USInt, UDInt Tín hiệu vào và ngõ ra phép toán
Trạng
thái ENO Miêu tả
1 Không có lỗi
0
Giá trị kết quả vượt quá phạm vi hợp lệ của kiểu dữ liệu được chọn. Ví dụ đối với SInt: INC (127) cho kết quả + 128 vượt quá giá trị tối đa của kiểu dữ liệu này.