Phép so sánh – CMP

Một phần của tài liệu bai giang plc (Trang 27 - 155)

Bạn có thể dùng những lênh so sánh để so sánh các cặp giá trị số sau: I : So sánh những số nguyên Interger ( Dựa trên cơ sở số 16 bit).

D : So sánh những số nguyên Doulbe Interger ( Dựa trên cơ sở số 32bit).

R : So sánh những số thực ( Dựa trên cơ sở số thực 32 bit – số thực dấu chấm động). Nếu kết quả của phép so sánh là “True”, thì RLO của phép toán là “1”, ngược lại là “0”. Phép so sánh ở ngõ vào IN1 & IN2 tương ứng với các loại sau:

Có các phép toán logic về Word & Double Word. Phần này nói về các phép logic Word : WAND_W, WOR_W, WXOR_W. Các phép toán logic Double Word : WAND_DW, WOR_DW, WXOR_DW cũng được khai báo tương tự như vậy.

3.6.1. Phép toán Logic AND – WAND_W

Câu lênh AND Word sẽ tổ hợp hai giá trị số tại ngõ vào IN1 và IN2 từng bit theo bảng sự thật AND. Kết quả của phép toán AND được lưu trữ tại địa chỉ ngõ ra OUT.

Lệnh được thực hiện khi EN =1 & ENO = 1 nếu lệnh được thực thi. Tham số Kiểu dữ

liệu

Vùng nhớ Miêu tả EN BOOL I, Q, M, L, D Enable input ENO BOOL I, Q, M, L, D Enable output IN1 WORD I, Q, M, L, D Toán hạng thứ nhất IN2 WORD I, Q, M, L, D Toán hạng thứ hai OUT WORD I, Q, M, L, D Kết quả của phép logic Ví dụ:

MW0 = 01010101 01010101

IN2 = 00000000 00001111

MW0 AND IN2 = MW2 = 00000000 00000101

3.6.2. Phép toán Logic OR – WOR_W

Câu lênh AND Word sẽ tổ hợp hai giá trị số tại ngõ vào IN1 và IN2 từng bit theo bảng sự thật OR. Kết quả của phép toán OR được lưu trữ tại địa chỉ ngõ ra OUT.

Lệnh được thực hiện khi EN =1 & ENO = 1 nếu lệnh được thực thi. Tham số Kiểu dữ

liệu Vùng nhớ Miêu tả

EN BOOL I, Q, M, L, D Enable input ENO BOOL I, Q, M, L, D Enable output IN1 WORD I, Q, M, L, D Toán hạng thứ nhất IN2 WORD I, Q, M, L, D Toán hạng thứ hai OUT WORD I, Q, M, L, D Kết quả của phép logic Ví dụ:

MW0 = 01010101 01010101

IN2 = 00000000 00001111

MW0 OR IN2=MW2 = 01010101 01011111

3.6.2. Phép toán Logic XOR – WXOR_W

Câu lênh AND Word sẽ tổ hợp hai giá trị số tại ngõ vào IN1 và IN2 từng bit theo bảng sự thật XOR. Kết quả của phép toán XOR được lưu trữ tại địa chỉ ngõ ra OUT.

Lệnh được thực hiện khi EN =1 & ENO = 1 nếu lệnh được thực thi. Tham số Kiểu dữ

liệu Vùng nhớ Miêu tả

EN BOOL I, Q, M, L, D Enable input ENO BOOL I, Q, M, L, D Enable output IN1 WORD I, Q, M, L, D Toán hạng thứ nhất IN2 WORD I, Q, M, L, D Toán hạng thứ hai OUT WORD I, Q, M, L, D Kết quả của phép logic Ví dụ:

MW0 = 01010101 01010101

IN2 = 00000000 00001111

MW0 XOR IN2 = MW2 = 01010101 01011010

3.7. Các Phép Toán Học Cơ Bản

IN1, IN2 : Giá trị IN1 được đọc vào như là toán tử đầu tiên và giá trị tại IN2 là giá trị toán tử thứ hai.

OUT : Kết quả cảu phép toán đươc lưu trữ tại ngõ ra OUT.

Các câu lệnh: Cộng ADD_I : Cộng số nguyên ADD_DI : Cộng số nguyên kép ADD_R : Cộng số thực Trừ SUB_I : Trừ số nguyên SUB_DI : Trừ số nguyên kép SUB_R : Trừ số thực

Nhân MUL_I : Nhân số nguyên MUL_DI : Nhân số nguyên kép MUL_R : Nhân số thực

Chia DIV_I : Chia số nguyên DIV_DI : Chia số nguyên kép

DIV_R : Chia số thực

3.8. Lệnh dịch chuyển – Shift

Shift : Lệnh được thi hành khi RLO = 1 tại ngõ vào EN.

SHL_W : Lệnh SHL_W dịch từng bit từ bit 0 – 15 của ACC1 sang bên trái với số vị trí được đặt tại ngõ vào “N”.

Các Bit phía bên phải được điền giá trị 0.

SHR_W : Lệnh SHL_W dịch từng bit từ bit 0 – 15 của ACC1 sang bên phải với số vị trí được đặt tại ngõ vào “N”.

Các Bit phía bên trái được điền giá trị 0. ACCU1 – H : Các bit từ 16 đến 31 không bị ảnh hưởng.

OUT : Kết quả của lệnh Shift được lưu trữ vào địa chỉ ngõ ra OUT. N : Phạm vi cho phép N = 0 – 15 nếu N > 16 thì OUT = 0.

ENO : Nếu lệnh được thực hiện (EN =1) thì ENO cho biết trạng thái bit cuối cùng số bit bị dịch.

Điều này có nghĩa rằng các lệnh phụ thuộc ENO ( thứ tự) khác sẽ không được thực hiện khi trạng thái của bit cuối cùng số bit bị dịch là “0”.

Ngoài ra còn có các lênh dịch bit khác như SHL_DW, SHR_DW, SHL_I, SHR_I, SHL_DI, SHR_DI.

3.9. Lệnh Xoay Doubleword

không được thực hiện khi trạng thái của bit cuối cùng dịch là “0”.

ROL_DW : Lệnh xoay phải Doubleword.

Chƣơng 4: XỬ LÝ TÍN HIỆU ANALOG

4.1. Sử dụng các Module Analog

 Nguyên lý

Trong quá trình sản xuất có nhiều các đại lượng vật lý ( Áp suất, tốc độ, tốc độ quay, nồng độ pH, độ nhớt,.v.v…) Cần được PLC xử lý cho mục đích điều khiển tự động.

Các cảm biến đo lường cảm nhận những thay đổi vật lý có thể đo như sự thay đổi tuyến tính, góc quay, độ dẫn điện thay đổi,..v.v…

 Bộ chuyển đổi

Các bộ chuyển đổi đo lường chuyển đổi các giá trị đề cập ở trên sang những tín hiệu Analog chuẩn, chẳng hạn 500mV, 10V, 20mA, 4…20mA.

 ADC

Trước khi những giá trị Analog được CPU xử lý, chúng phải chuyển sang dạng số. Điều này được thực hiện bằng bộ chuyển đổi ADC ở các module analog ngõ vào.

Việc chuyển đổi tín hiệu Analog sang tín hiệu Digital được thực hiện tuần tự, có nghĩa là tín hiệu được chuyển đổi lần lượt cho từng kênh Analog Input.

 Kết quả bộ nhớ

Kết quả chuyển đổi được lưu trữ trong bộ nhớ, chúng chỉ mất đi khi cso giá trị mới viết đè lên.

Tín hiệu Analog qua chuyển đổi có thể được được bằng lệnh “L PIW…”  Ngõ vào Analog

Lệnh truyền “T PQW…” được dùng để truyền các giá trị Analog của chương trình tới một module ngõ ra, một bộ DAC chuyển chúng sang các tín hiệu Analog chuẩn.

 Cơ cấu chấp hành Analog

 Module đo lường

Module đo lường có các thông số ghi bên hông trái của modul. Phải cài đặt đúng trước khi lắp đặt Module.

Khả năng lắp đặt là “A”, “B”, “C”, “D”.

Sự lắp đặt cho những loại đo lường và phạm vi đo khác nhau được in trên Module.  Nhóm kênh

Trong một số Module nhiều kênh được nhóm lại với nhau để tạo thành một nhóm kênh. Trong trường hợp này nguyên tắc được áp dụng cho toàn bộ nhóm kênh.

4.3. Định tỉ lệ ngõ vào Analog

Chức năng của hàm FC105 có tác dụng chuyển đổi giá trị số nguyên được đặt vào ngõ IN và chuyển nó thành giá trị sử dụng trong kỹ thuật nằm trong khoảng LO_LIM và HI_LIM. Và ngõ ra được xuất ra OUT. Dựa theo công thức sau:

OUT = [ ((FLOAT (IN) – K1)/(K2–K1)) * (HI_LIM–LO_LIM)] + LO_LIM Trong đó: hằng số K1 & K2 được xác định dựa theo giá trị là đơn cực hay lưỡng cực (BIPOLAR hay UNIPOLAR).

BIPOLAR ( Lưỡng cực): giá trị số nguyên đặt vào phải nằm trong khoảng K1 = – 27648.0 đến K2 = +27648.0

UNIPOLAR(Đơn cực ) : giá trị số nguyên đặt vào phải nằm trong khoảng K1 = 0.0 đến K2 = +27648.0

Nếu giá trị đặt vào ngõ IN không nằm trong khoản K1 đến K2 thì sẽ báo lỗi.

Ta có thể đảo ngược scale bằng cách đặt LO_LIM > HI_LIM, khi đó giá trị đầu ra sẽ nhỏ đi nếu giá trị đầu vào tăng.

Các tham số của hàm FC105:

Tham số Khai báo Kiểu dữ liệu Vùng bộ nhớ Mô tả

EN IN BOOL I,Q,M,D,L Cho phép khi giá trị là 1

ENO OUT BOOL I,Q,M,D,L Ngõ ra là 1 khi không có lỗi

IN IN INT I,Q,M,D,L,P,

HẰNG SÓ

Giá trị số nguyên đặt vào cần chuyển

HI_LIM IN REAL I,Q,M,D,L,P,

HẰNG SÓ Cận trên của đơn vị kỹ thuật

LO_LIM IN REAL I,Q,M,D,L,P,

HẰNG SÓ

Cận dưới của đơn vị kỹ thuật BIPOLAR IN BOOL I,Q,M,D,L 1: là số lưỡng cực

0: là số đơn cực

OUT OUT REAL I,Q,M,D,L,P Kết qủa sau khi chuyển đổi RET_VAL OUT WORD I,Q,M,D,L,P Thực thi đúng thì sẽ báo

W#16#0000 Lưu ý:

Khi khai báo số nguyên ta cần phải khai báo thêm dấu chấm động ( ví dụ khai báo là 6 thì ta nhập 6.0)

Nếu giá trị ENO =0 thi RET_VAL = W#16#0008

4.4.Định tỉ lệ ngõ ra Analog

Sau khi giá trị qua Scale được sử lý theo yêu cầu của người sử dụng, thì ta cần phải chuyển đổi lại giá trị thực tế để điều khiển. Khi đó ta sẽ sử dụng hàm FC106 để chuyển đổi ngược từ giá trị kỹ thuật sang số nguyên. Dựa theo công thức sau:

OUT = [ ((IN–LO_LIM)/(HI_LIM–LO_LIM)) * (K2–K1) ] + K1 Các tham số của FC106:

Tham số Khai báo Kiểu dữ liệu Vùng bộ nhớ Mô tả

EN IN BOOL I,Q,M,D,L Cho phép khi giá trị là 1

ENO OUT BOOL I,Q,M,D,L Ngõ ra là 1 khi không có lỗi IN IN INT I,Q,M,D,L,P, Giá trị số nguyên đặt vào cần

0: là số đơn cực

OUT OUT REAL I,Q,M,D,L,P Kết qủa sau khi chuyển đổi RET_VAL OUT WORD I,Q,M,D,L,P Thực thi đúng thì sẽ báo

W#16#0000

Chƣơng 5: MỘT SỐ KHỐI HÀM CƠ BẢN 5.1. Khối hàm Byte & Bit

5.1.1. Đặt một loạt Byte ngõ ra lập tức FC101

Khối hàm FC101 : Hàm SETI set trạng thái tín hiệu của một loạt các byte lên 1 nếu bit MCR là 1. Nếu các bit MCR là 0, trạng thái tín hiệu của từng byte trong dãy không thay đổi. S_BYTE là byte đầu tiên trong phạm vi, và N xác định kích thước tầm hoạt động.

Chú ý : Giá trị của N phải là các số nguyên và là bội số của 8 (8, 16, 24, …).

S_BYTE phải tham khảo các đầu vào và đầu ra của bộ nhớ ngoài (bộ nhớ P). Kể từ khi bộ nhớ P được truy cập như là byte, word, double word, các S_BYTE phải tham khảo một địa chỉ đó là byte liên kết, có nghĩa là số bit của con trỏ phải là 0.

Chú ý : Hàm FC101 dùng cho giá trị của ngõ out – put (Q memory). Thông số của FC 101:

Tham số Kiểu tham

số Kiểu dữ liệu Vùng nhớ Miêu tả

EN IN BOOL I, Q, M, L, D Enable input

ENO OUT BOOL I, Q, M, L, D Enable output

S_BYTE IN *Pointer P Điểm để Byte bắt đầu tầm

hoạt động

N IN INT I, Q, M, L, D,

const

Số bit trong tầm hoạt động

Ví dụ: Nếu bit trạng thái của ngõ Enable I0.0 = 1 và MCR = 1 thì hàm SETI được thực thi. S_BYTE có địa chỉ bắt đầu là P2.0. Tham số N = 8 ( 1 byte). Sau khi thực thi lệnh thì trạng thái tín hiệu của mỗi bit từ P2.0 – P2.7 được set lên 1.

5.1.2. Đặt một loạt Bit ngõ ra FC83

Hàm SET đặt trạng thái tín hiệu của mỗi Bit trong vùng tín hiệu lên mức 1 khi MCR = 1. Nếu MCR = 0 thì trạng thái tín hiệu của mỗi bit được giữ lại không thay đổi. Số Bit trong tầm hoạt động được đưa vào N. Và giá trị bắt đầu tại con trỏ S_BIT.

Thông số của FC83: Tham số Kiểu tham

số Kiểu dữ liệu Vùng nhớ Miêu tả

EN IN BOOL I, Q, M, L, D Enable input

ENO OUT BOOL I, Q, M, L, D Enable output

S_BIT IN *Pointer I,Q,M,D Điểm để Bit bắt đầu tầm

hoạt động

N IN INT I, Q, M, L, D,

const

Số bit trong tầm hoạt động

Lỗi xảy ra: Nếu các khai báo tham số S_BIT mà nằm trong vùng nhớ P ( P memory) thì lỗi xảy ra.

Ví dụ: Nếu trạng thái tín hiệu ngõ vào I0.1 = 1 và MCR = 1 thì lệnh SET được thực thi. Giá trị bắt đầu S_BIT là M0.0. Thông số N = 10 là số lượng Bit cần Set lên 1.

5.1.3. Xóa một loạt Byte lập tức FC100

Khối hàm FC100 : Hàm RESETI xóa trạng thái tín hiệu của một loạt các byte về 0 nếu bit MCR là 1. Nếu các bit MCR là 0, trạng thái tín hiệu của từng byte trong dãy không thay đổi. S_BYTE là byte đầu tiên trong phạm vi, và N xác định kích thước tầm hoạt động.

S_BYTE phải tham khảo các đầu vào và đầu ra của bộ nhớ ngoài (bộ nhớ P). Kể từ khi bộ nhớ P được truy cập như là byte, word, double word, các S_BYTE phải tham khảo một địa chỉ đó là byte liên kết, có nghĩa là số bit của con trỏ phải là 0.

Chú ý : Hàm FC100 dùng cho giá trị của ngõ out – put (Q memory). Thông số của FC 101:

Tham số Kiểu tham

số Kiểu dữ liệu Vùng nhớ Miêu tả

EN IN BOOL I, Q, M, L, D Enable input

ENO OUT BOOL I, Q, M, L, D Enable output

S_BYTE IN *Pointer P Điểm để Byte bắt đầu tầm

hoạt động

N IN INT I, Q, M, L, D,

const

Số bit trong tầm hoạt động

Ví dụ: Nếu bit trạng thái của ngõ Enable I0.2 = 1 và MCR = 1 thì hàm RESETI được thực thi. S_BYTE có địa chỉ bắt đầu là P2.0. Tham số N = 16 ( 2 byte). Sau khi thực thi lệnh thì trạng thái tín hiệu của mỗi bit từ P2.0 – P3.7 được xóa về 0.

5.1.4. Xóa một loạt bit FC82

Hàm RESET xóa trạng thái tín hiệu của mỗi Bit trong vùng tín hiệu về mức 0 khi MCR = 1. Nếu MCR = 0 thì trạng thái tín hiệu của mỗi bit được giữ lại không thay đổi. Số Bit trong tầm hoạt động được đưa vào N. Và giá trị bắt đầu tại con trỏ S_BIT.

Thông số của FC83: Tham số Kiểu tham

số

Kiểu dữ liệu Vùng nhớ Miêu tả

EN IN BOOL I, Q, M, L, D Enable input

ENO OUT BOOL I, Q, M, L, D Enable output

S_BIT IN *Pointer I,Q,M,D Điểm để Bit bắt đầu tầm

hoạt động

N IN INT I, Q, M, L, D,

const

Số bit trong tầm hoạt động

Lỗi xảy ra: Nếu các khai báo tham số S_BIT mà nằm trong vùng nhớ P ( P memory) thì lỗi xảy ra.

Ví dụ: Nếu trạng thái tín hiệu ngõ vào I0.3 = 1 và MCR = 1 thì lệnh RESET được thực thi. Giá trị bắt đầu S_BIT là M0.0. Thông số N = 10 là số lượng Bit xóa về 0.

5.2. Hàm chuyển đổi 6.2.1. Giải mã 7 đoạn FC93 6.2.1. Giải mã 7 đoạn FC93

Đổi một word hexa 4 digit ở IN (I,M,D,P, const) ra 4 byte mã 7 đoạn của từng digit, xuất ra địa chỉ OUT là double word (Q,M,D,L,P)

Bảng mã LED 7 đoạn:

Thông số FC93 :

số

EN IN BOOL I,Q,M,D,L Enable input

ENO OUT BOOL I,Q,M,D,L Enable output

IN IN WORD I ,M,D, Const Nguồn dữ liệu word 4 số digit OUT OUT DWORD Q,M, L,D,P Kết quả giải mã của 4 số Lối xảy ra : Nếu khai báo không đúng tham số / các kiểu tham số sẽ bị lỗi không chạy. Ví dụ: Nếu bit trạng thái I0.0 = 1 thì hàm FC93 sẽ thực hiện giải mã giá trị LED 7 đoạn. Nếu thực thi không lỗi thì ngõ ENO = 1.

IN → W#16#1234 OUT → MD0 = 065B4F66

5.2.2. Hàm đổi tầm Scale FC105

Chức năng của hàm FC105 có tác dụng chuyển đổi giá trị số nguyên được đặt vào ngõ IN và chuyển nó thành giá trị sử dụng trong kỹ thuật nằm trong khoảng LO_LIM và HI_LIM. Và ngõ ra được xuất ra OUT. Dựa theo công thức sau:

OUT = [ ((FLOAT (IN) – K1)/(K2–K1)) * (HI_LIM–LO_LIM)] + LO_LIM Trong đó: hằng số K1 & K2 được xác định dựa theo giá trị là đơn cực hay lưỡng cực (BIPOLAR hay UNIPOLAR).

BIPOLAR ( Lưỡng cực): giá trị số nguyên đặt vào phải nằm trong khoảng K1 = – 27648.0 đến K2 = +27648.0

UNIPOLAR(Đơn cực ) : giá trị số nguyên đặt vào phải nằm trong khoảng K1 = 0.0 đến K2 = +27648.0

5.2.3. Hàm đổi tầm ngƣợc UnScale FC106

Sau khi giá trị qua Scale được sử lý theo yêu cầu của người sử dụng, thì ta cần phải chuyển đổi lại giá trị thực tế để điều khiển. Khi đó ta sẽ sử dụng hàm FC106 để chuyển đổi ngược từ giá trị kỹ thuật sang số nguyên. Dựa theo công thức sau:

Chƣơng 6: GIỚI THIỆU PHẦN MỀM STEP7

6.1. Giới thiệu chung về STEP7

Step7 là một phần mềm hỗ trợ:

 Khai báo cấu hình cứng cho một trạm PLC thuộc họ Simatic S7-300/400.

 Xây dựng cấu hình mạng gồm nhiều trạm PLC S7-300/400 cũng như thủ tục truyền thông giữa chúng.

 Soạn thảo và cài đặt chương trình điều khiển cho một hoặc nhiều trạm.

Một phần của tài liệu bai giang plc (Trang 27 - 155)