.1 Các lệnh so sánh

Một phần của tài liệu Xây dựn mô hình cân băng định lượng nguyên liệu đầu vào trong nhà máy sản xuất thức ăn chăn nuôi (Trang 70)

Kiểu quan hệ Sự so sánh là đúng nếu

== IN1 bằng IN2

<> IN1 khác IN2

>= IN1 lớn hơn hoặc bằng IN2

<= IN1 bé hơn hoặc bằng IN2

> IN1 lớn hơn IN2

< IN1 bé hơn IN2

5.3.3. Lập trình trình xử lí tín hiệu xung tốc độ cao từ Encoder

Sau khi cấu hình phần cứng cho bộ HSC để sử dụng sinh viên chi cần khái báo địa chỉ vùng nhớ của HSC mà sinh viên chọn để sử dụng. Có thể dùng khối “CTRL_HSC” trong việc quản lí giá trị xung đọc về.Các bước thêm khối “CTRL_HSC” như sau: Instructions Technology Counting

CTRL_HSC. Khi thêm khối CTRL_HSC thì mô hình sẽ tự tạo 1 khối Instance

Data block để lưu trữ dữ liệu của khối CTRL_HSC.

Tham số Ý nghĩa Thiết lập HSC Địa chỉ phần cứng của HSC sử dụng

(Hardware identifier) 257

DIR = 1: yêu cầu chiều đếm mới False

CV = 1: yêu cầu một giá trị đếm mới TRUE

RV = 1: yêu cầu một giá trị đếm tham chiếu

mới False

PERIOD = 1: yêu cầu chu kì đếm mới (chỉ áp

dụng cho đếm tần số) False

NEW_DIR Giá trị hướng quay mới 0

NEW_CV Giá trị đếm mới 0

NEW_RV Giá trị tham chiếu mới 0

NEW_PERIOD Giá trị chu kì mới (1s, 0.1s, 0.01s) 0

Số xung Encoder lưu ở ô nhớ ID1000 đang ở kiểu dữ liệu số nguyên Dint cần chuyển sang kiểu sô thực Real để tiện tính toán

Hình 5. 36 Chuyển đổi giá trị xung Encoder đếm được

 Lập trình tính tốc độ dịch chuyển của băng tải

Cứ sau mỗi 100 ms, chương trình NGẮT sẽ đọc giá trị xung encoder về và gán cho vùng nhớ “xung_hiện_ tại” sau đó tính tốc độ dịch chuyển của băng tải theo công thức.

𝑉𝑃𝑉 =(𝐶𝑜𝑢𝑛𝑡𝑃𝑢𝑙𝑠𝑒 × 𝐷 × 𝜋)/ ( 0.1 × 𝑅𝑒𝑠𝑜𝑙𝑢𝑡𝑖𝑜𝑛) (𝑚/𝑠) Với:

 𝐶𝑜𝑢𝑛𝑡𝑃𝑢𝑙𝑠𝑒 : xung Encoder đếm được  𝐷: đường kính con lăn bị dẫn (𝑚) : 0.0567m

 𝑅𝑒𝑠𝑜𝑙𝑢𝑡𝑖𝑜𝑛: độ phân giải của encoder (𝑥𝑢𝑛𝑔/𝑣ò𝑛𝑔) : 2000 xung/vòng Gán phép toán trên vào lệnh CALCULATE

Hình 5. 38 Lệnh CALCULAT

Các phép toán biểu thức được ghi ở ô “OUT:=”, IN1, IN2,IN3,IN4 và IN5 là tham số đầu vào tương ứng lần lượt với 𝐶𝑜𝑢𝑛𝑡𝑃𝑢𝑙𝑠𝑒 , 𝐷 , 𝜋, 0.1 và 𝑅𝑒𝑠𝑜𝑙𝑢𝑡𝑖𝑜𝑛. OUT là kết quả phép toán.

5.3.4.Lập trình xử lí tín hiệu Analog

Để xử lí tín hiệu Analog trả về tín hiệu áp 0-10v từ bộ khuếch đại tín hiệu Loadcell ,ta sử dụng kết hợp 2 tập lệnh NORM_X và SCALE_X

Hình 5. 40 Lệnh NORM_XBảng 5. 3 Tham số của lệnh NORM_X Bảng 5. 3 Tham số của lệnh NORM_X

Tham số Ý nghĩa Thiết lập

EN Ngõ vào cho phép hoạt động

MIN Giới hạn dưới của Value 0

VALUE Giới trị Value đưa vào IW64

MAX Giới hạn trên của Value 27648

OUT Kết quả trả về MD50

Tín hiệu analog dạng điện áp sẽ được chuyển tuyến tính sang giá trị số và lưu vào vùng nhớ IW64

Lệnh NORM_X làm chuẩn hóa thông số VALUE bên trong phạm vi giá trị được xác định bởi các thông số MIN và MAX:

OUT = (VALUE – MIN) /(MAX – MIN) = IW64/27648

với (0,0 <= OUT <= 1,0).

Hình 5. 42 Lệnh SCALE_XBảng 5. 4 Tham số của lệnh SCALE_X Bảng 5. 4 Tham số của lệnh SCALE_X

Tham số Ý nghĩa Thiết lập

EN Ngõ vào cho phép hoạt

động

MIN Giới hạn dưới của Value 0.0

VALUE Giới trị Value đưa vào MD50

MAX Giới hạn trên của Value 10.0

OUT Kết quả trả về DB4.DBD40

Lệnh SCALE_X định tỷ lệ của thông số số thực được chuẩn hóa VALUE, với (0,0 <= VALUE <= 1,0), để chuyển đổi giá trị VALUE sang một tầm giá trị mới phù hợp với yêu cầu sử dụng. Ở đây là thành giá trị khối lượng vật lý và phạm vi giá trị được xác định bởi các thông số MIN và MAX.

Khối lượng đo bởi loadcell được tính theo công thức:

OUT = VALUE *(MAX –MIN) + MIN= MD50*10 (kg)

5.3.5.Lập trình giao thức truyền thông Modbus RTU

Để PLC có thể giao tiếp với biến tần LS IG5A qua giao thức truyền thông Modbus RTU cần phải dùng 2 khối lệnh của TIA Portal là: MB_COMM_LOAD và MB_MASTER.

cũng sẽ sinh ra 1 khối instance data block cho khối lệnh đó.

Hình 5. 43 Khối MB_COMM_LOAD

Hình 5. 44 Khối Data block đi kèm với khối MB_COMM_LOADBảng 5. 5 Bảng chức năng các chân của khối MB_COMM_LOAD Bảng 5. 5 Bảng chức năng các chân của khối MB_COMM_LOAD

Thông số Thông tin Thiết lập

REQ Thực hiện khối lệnh khi cạnh lên M0.0

PORT ID của Port giao tiếp 269

BAUD Lựa chọn tốc độ baud:

4800,9600,19200,38400,57600 9600 PARITY Lựa chọn Parity:

0- None 1- Parity lẻ 2- Parity chẵn

0

MB_DB Khối dữ liệu của MB_MASTER DB2

DONE 1: Khi không có lỗi ERROR Báo lỗi:

0- Không có lỗi

1- Báo có lỗi. Khi có lỗi thì mã lỗi đó sẽ xuất hiện ở ngõ ra của thông số STATUS STATUS Mã lỗi

Đầu tiên, thêm bit FirstScan cho thông số REQ. Thông số này sẽ kích hoạt khối lệnh khởi tạo khi có cạnh lên

Hình 5. 45 Thêm bit FirstScan

Tiếp theo là chọn Port giao tiếp cho MODBUS. Giá trị của PORT chính là giá trị của thông số Hardware indentifier trong quá trình thiết lập module lúc đầu. Sau khi chọn Module CM 1241 thì chương trình sẽ tự gán Port phù hợp cho khối lệnh như hình dưới.

Hình 5. 46 Định danh phần cứng của Module SM1241 RS422/485

( Parity=0).

Khối MB_MASTER: thiết lập chương trình hiện tại như 1 master có thể gửi các yêu cầu xuống Biến tần LS IG5A. Bất kì khối MB_MASTER nào được tạo ra thì 1 instance dasta block cũng sẽ tương ứng được tạo ra.

Hình 5. 48 Khối MB_MASTER

Hình 5. 49 Khối Data block đi kèm với khối MB_MASTERBảng 5. 6 Bảng chức năng các chân của MB_MASTER Bảng 5. 6 Bảng chức năng các chân của MB_MASTER

Chân Chức năng Thiết lập

REQ 0: không có yêu cầu

1: yêu cầu truyền/nhận dữ liệu từ slave

M2.4

MB_ADDR Địa chỉ của Slave (0 đến 247) 1

MODE Dạng yêu cầu:

0- Đọc giá trị từ Slave

1- Ghi giá trị xuống Slave

DATA_ADDR Địa chỉ vùng nhớ bắt đầu trên Slave 40005 DATA_LEN Độ dài của dữ liệu :Số lượng bit hoặc

thanh ghi word sẽ truy cập trong yêu cầu này

2

DATA_PTR Địa chỉ vùng nhớ mà dữ liệu ở đó được

ghi xuống slave hoặc đọc vào master DB3 DONE 0 : Giao thức chưa hoàn tất

1: Hoàn tât giao thức ERROR 0: Không có lỗi

1: Khi có lỗi xảy ra

STATUS Mã lỗi

BUSY 0: không có yêu cầu nào

1: yêu cầu đang được thực hiện

Sau khi chọn xong khối MB_MASTER, quay trở lại khối MB_COMM_LOAD, chọn thông số MB_DB và chọn khối lệnh MB_MASTER_DB như hình dưới

Hình 5. 50 Thêm Data block MB_MASTER_DB vào MD_DB

Tiếp theo, ta thêm các thông số cần thiết cho khối MB_MASTER để thiết lập truyền dữ liệu cho Biến tần LS IG5A.

chọn chuột phải và chọn “Define tag…”

Hình 5. 51 Khai báo bit điều khiển truyền dữ liệu

Tiếp theo, ta khai báo địa chỉ Biến tần LS IG5A trong mạng MODBUS. Trong đồ án, biến tần LS IG5A có địa chỉ là 1. Vì vậy, ta nhấn đúp vào thông số MB_ADDR và thêm giá trị 1 như hình dưới

Hình 5. 52 Khai báo địa chỉ biến tần LS IG5A

Sau đó, ta sẽ chọn chế độ giao tiếp truyền thông với biến tần. Trong đồ án, ta cần truyền lệnh điều khiển và giá trị tần số xuống biến tần LS IG5A nên sẽ chọn chế độ là GHI, Vì vậy, ta sẽ chọn giá trị MODE là 1

Hình 5. 53 Chọn chế độ GHI dữ liệu xuống biến tần

Tiếp tục, thêm địa chỉ thanh ghi bắt đầu gần GHI trên biến tần LS IG5A vào thông số DATA_ADDR. Trong đề tài, ta cần thay đổi tần số, và điều khiển biến tần chạy, dừng thông qua giao tiếp truyền thông Modbus RTU. Theo tài liệu

biến tần LS IG5A, địa chỉ thanh ghi Tần số yêu cầu và thanh ghi Lệnh điều khiển lần lượt là 0x0005 và 0x0006.

Hình 5. 54 Địa chỉ thanh ghi trên biến tần LS IG5A

Vì vậy, ta sẽ điền giá trị thông số DATA_ADDR là 40005, DATA_LEN là 2

Hình 5. 55 Gán địa chỉ thanh ghi cho DATA_ADDR

Sau đó,ta tạo 1 Data block để chứa giá trị cần truyền xuống biến tần. Và thông số DATA_PTR như một con trỏ để trỏ đến khối dữ liệu này.

Hình 5. 57 Gán giá trị cho thông số DATA_PTR

5.3.6.Lập trình PID

Để giải quyết bài toán ổn định lưu lượng nguyên liệu trên băng tải trong đề tài, ta sử dụng giải thuật PID. Trong phần mềm TIA Portal đã được tích hợp sẵn hàm PID hỗ trợ người lập trình trong quá trình xây dựng ứng dụng của mình.

Trong Tia Portal có 2 khối PID:

+PID_Compact: được sử dụng cho hầu hết các ứng dụng theo kiểu tự chỉnh.

+PID_3Step: sử dụng cho các đối tượng điều khiển là động cơ bước. Trong chương trình này sẽ sử dụng bộ PID_Compact.

Để thêm khối vào chương trình ta làm như sau: Instructions Technology

PID Control ▶ Compact PID PID_Compact.

Hình 5. 59 Khối PID_Compact

Khi tạo khối PID_Compact thì mô hình sẽ tự tạo 1 khối Instance Data block để lưu trữ dữ liệu của khối PID_Compact.

Hình 5. 60 Khối Data block đi kèm với PID_Compact

Thuật toán PID luôn cần lấy mẫu theo chu kì nên cần đặt khối PID vào chương trình ngắt. Cách tạo chương trình ngắt theo chu kì 100ms:

Hình 5. 61 Tạo khối Cyclic interrupt

Cấu hình thông số bộ PID: đối với khối PID_Compact, ta cần cấu hình trước khi chuyển sang chế độ vận hành (Commissioning).

Có 2 cách cấu hình:

-Cách 1 – kích chuột phải vào bộ PID và chọn Properties.

-Cách 2 – kích chuột vào biểu tượng configuration màu xanh góc trên bên phải. Tiến hành cấu hình như sau:

Basic setting:

+ Controller type: tùy vào đối tượng điều khiển mà sinh viên lựa chọn

cho phù hợp với ứng dụng. + Mục Input: có 2 lựa chọn sau:

- Input_PER (Analog): bộ PID sẽ tự động scale giá trị analog hồi tiếp

về.

- Input: phải xử lý giá trị analog trước khi đưa vào bộ PID.

+ Mục Output: có 3 lựa chọn:

- Output: Ngõ ra của PID định dạng theo số thực

- Output_PER: Ngõ ra của PID định dạng theo Anaalog ouput

Dựa vào vào yêu cầu đề tài, cần kết hợp tín hiệu analog của loadcell và tín hiệu xung của Encoder để có được tín hiệu lưu lượng phản hồi về bộ PID nên ta thiết lập Basic setting như sau:

- Controller type : Flow (lb/hr)

- Chọn Activate Mode after CPU Reset giúp giữ được trạng thái hoạt động của bộ PID khi đã cấu hình hoàn chỉnh xong , dù CPU khởi động lại hay mất điện

- Input : Input

- Ouput : Output_PER

Hình 5. 62 Thiết lập Basic setting

PID parameter: thể hiện các thông số PID. Các thông số này sẽ được

mô hình tự động tìm ra, nếu muốn thay đổi thì chọn vào Enable manual entry.

Bảng 5. 7 Tham số khối PID_Compact

Thông số Ý nghĩa Thiết lập

Setpoint Giá trị cài đặt mong

muốn Lưu lượng đặt

Input Giá trị xử lý quá trình đã được Scale lại từ tín hiệu phản hồi của cảm biến

Lưu lượng thực tế

Output_PER Ngõ ra của PID định dạng theo Analog output( 0 -27648)

Giá trị tần số

State Chế độ hoạt động của PID

Error Trạng thái báo lỗi

Hình 5. 64 Cấu hình các tham số khối PID

Khối “Xuất giá trị xuống biến tần” sẽ nhận số analog từ khối “PID” và thực hiện 1 phép toán scale giá trị analog này từ dãy giá trị của PLC (0-27648) sang dãy giá trị của biến tần (0 – 16384 ứng với 0 – 60Hz) sau đó gửi giá trị này xuống thanh ghi 0x0005 và gửi lệnh điểu khiển xuống thanh ghi 0x0006 của biến tần thông qua Modbus RTU để điểu khiển tốc độ của động cơ.

Hình 5. 65 Quy đổi tín hiệu analog sang giá trị tần số

Các bước tiến hành tìm hệ số PID :

Bước 1. Các bước chuẩn bị trước khi chạy Commissioning

- Ta sẽ không tiến hành quá trình Zero Calibration để loadcell có tính hiệu trả về cố định hoặc sai lệch rất ít giống như khi mô hình đã ổn định.

- Nhập giá trị Setpoint và bắt đầu chạy chế độ Auto. - Mở cửa sổ Commissioning và làm như sau:

Bước 2. Tại Measurement: Chọn thời gian lấy mẫu để giám sát đồ thị hoạt

động của PID với sampling time là 0.3s và nhấn Start

Hình 5. 66 Bắt đầu quá trình Commissioning

Bước 3. Bắt đầu chạy Pretuning. Để đạt được kết quả tốt nhất nên chạy

Pretuning trước khi chạy Fine tuning.

Hình 5. 68 Bắt đầu quá trình Fine tuning

Hình 5. 69 Bộ số PID tìm được

Bước 5. Sau khi kết thúc quá trình Fine tuning, phần mềm TIA Portal sẽ tìm ra 1 bộ số PID nào đó. Sau đó upload các hệ số PID vào khối PID_Compact.

Hình 5. 70 Nạp các hệ số PID vào khối PID_Compact

Bước 6. Tiếp theo, ta tiến hành chạy mô hình như bình thường bao gồm cả

quá trình Zero Calibration để xem đáp ứng mô hình.

Nếu mô hình chưa được như mong muốn ta có thể tùy chỉnh hệ số ở phần PID Parameter ở trang Configuration của PID_Compact.

Sau quá trình chỉnh và tìm hệ số, ta có bộ số PI như sau: 𝐾𝑝 = 57,83889

𝑇i = 2,987803 (𝑠) 𝑇d = (𝑠)

Với 𝑇𝑖 là thời gian tích phân, 𝑇d là thời gian vi phân

5.4. Thiết kế giao diện giám sát và điều khiển HMI

Trên Tia portal có tích hợp sẵn phần thiết kế giao diện HMI giúp tiện lợi hơn cho người lập trình. Hỗ trợ thiết kế các màn hình vận hành, các hình báo lỗi, màn hình đăng nhập.

Bước 1. Khởi tạo màn hình HMI để thiết kế : Nhấn đúp vào Add new device ▶ HMI ▶ 4” Display ▶ KTP 400 Basic ▶ 6AV2 123-2DB03-0AX0 ▶

Version màn hình ▶ Bỏ chọn chế độ Start device wizard ▶ OK

Hình 5. 71 Thêm màn hình HMI

Bước 2.Thay đổi địa chỉ IP của HMI, ta chọn HMI_1 ▶ Device configuration ▶ Enthernet ▶ General ▶ PROFINET interface [1] ▶

Hình 5. 72 Thay đổi địa chỉ IP của HMI

Bước 3. Thực hiện kết nối truyền thông giữa PLC S7-1200 và Simatic

HMI: Device configuration ▶ Network view ▶ Connections ▶ HMI Connection . Thực hiện thao tác giữ chuột kéo và nhả cổng Enthernet PLC và

Enthernet HMI

Hình 5. 73 Kết nối truyền thông HMI và PLC

Bước 4. Thiết kế giao diện điều khiển cho HMI bằng cách chọn HMI_1 [KTP 400 Basic PN] ▶ Screens ▶ Screen_1

Hình 5. 74 Chọn màn hình để thiết kế

Màn hình thiết kế hiện ra với các Toolbox ở phía bên phải. Vào Element , chọn biểu tượng button

Hình 5. 75 Đặt Button lên màn hình HMI

Thiết lập các thuộc tính cho button bằng cách vào thuộc tính General của button như ở hình trang bên, trong phần Text when button is “not press” ta đặt tên cho button là RUN

Hình 5. 76 Đặt tên cho nút nhấn

Sau đó chọn thuộc tính Events ▶ Press. Vào Add function gõ Setbit sau đó

chọn hàm Setbit , sau đó nhấp vào biểu tượng chọn tag, một cửa sổ mưới xuất hiện. Chọn PLC_1 [CPU 1214C AD/DC/Rly] ▶ PLC_Tag ▶ Default tag table , chọn tag ON HMI sau đó nhấp vào dấu ‘˅’ để hoàn thành việc tạo hàm

Hình 5. 77 Tạo sự kiện khi nhấn Button

Tương tự, ta tạp hàm reset khi rời con trỏ khỏi button ON

Hình 5. 78 Tạo sự kiện khi nhả Button

Tiếp đó, để hiển thị và nhập các thông số, sô liệu ,ta kéo I/O field vào

Hình 5. 79 Tạo I/O field

Để gắn Tag cho I/O field, ta vào Properties ▶ General ▶ Tag, và dẫn tới

Tag ta cần hiển thị tương tự như Button. Sau đó, ta có thể tùy chỉnh các thuộc tính của I/O field theo ý muốn

Hình 5. 81 Thiết kế hoàn thiện giao diện màn hình HMI

Sau khi thiết kế xong, ta tiến hành tải chương trình thiết kế xuống HMI. Gắn cáp

Một phần của tài liệu Xây dựn mô hình cân băng định lượng nguyên liệu đầu vào trong nhà máy sản xuất thức ăn chăn nuôi (Trang 70)

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

(100 trang)