Lập trình Modbus RTU

Một phần của tài liệu DTDT KLTN THIẾT kế hệ THỐNG điều KHIỂN và GIÁM sát CHUYỂN NGUỒN tự ĐỘNG (ATS) (Trang 67 - 71)

Với truyền thông Modbus RTU với S7-1200 thì trong TIA Portal đã hỗ trợ sẵn cho ta 3 hàm chính dùng để truyền thông đó là:

 MB_COMM_LOAD: Dùng để cấu hình cho cổng kết nối vì vậy nó sẽ được khởi động đầu tiên và chỉ chạy 1 lần trong cả quá trình truyền thông. Cái này bắt buộc phải có.

 MB_MASTER: Đây là hàm dùng để điều khiển quá trình truyền nhận trên thiết bị Master.

 MB_SLAVE: Đây là hàm điều khiển quá trình truyền nhận trên thiết bị Slave

Ví dụ như trong trường hợp này ta sử dụng S7-1200 để đọc dữ liệu từ đồng hồ đo năng lượng Select MFM 383A-C, vì vậy S7-1200 sẽ đóng vai trò làm Master và đồng hồ sẽ đóng vai trò là Slave nên ta cần sử dụng 2 hàm MB_COMM_LOAD và MB_MASTER.

Để đọc được dữ liệu từ đồng hồ về PLC chúng ta cần phải cài đặt các thông số quan trọng sau:

 Mạng điện: 3 pha 4 dây, 3 pha 3 dây, 1 pha 2 dây…  Tỉ số biến dòng: 600/5 A

 Slave Id: 1-255  Tốc độ Baud: 9600  Parity: None

- Lập trình cấu hình cho cổng kết nối:

Hình 4.4: Hàm Modbus Comm Load

Chúng ta cài đặt các thông số cho hàm MB_COMM_LOAD với các thông số như hình 4.2, trong đó:

 REQ: Đóng vai trò như là 1 bit enable, nghĩa là khi nó bằng 1 thì hàm sẽ được thực hiện. Mặt khác như đã nói ở trên hàm này chỉ cần thực hiện 1 lần để khởi tạo các thông số truyền thông. Do đó bit REQ chỉ có giá trị bằng 1 trong vòng lặp đầu tiên. Ở đây ta gán bit M1.0 First Scan cho REQ. Do vậy khi bắt đầu chương trình hàm MB_COMM_LOAD sẽ được thực hiện 1 lần duy nhất, các vòng quét sau sẽ không được thực hiện.

 PORT: 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.

 BAUD hay PARITY cũng tương tự các giá trị đã cài đặt cho module.

 MB_DB: Chính là địa chỉ của hàm MB_MASTER_DB

Hình 4.5: Hàm Modbus Master

Ta thiết lập các thông số như hình 4.3. Trong đó:

 REQ: Là bit enable, khi nó được bật lên thì quá trình truyền thông được thực hiện. Ta chọn Clock = 0,5 Hz => T = 2s: 1s đọc dữ liệu 1 lần

 MB_ADDR: Là địa chỉ của Slave, ở đây là đồng hồ MFM383A-C.

 MODE: Bit này sẽ được set tùy theo mục đích sử dụng của ta là đọc hay ghi. Cụ thể tham khảo trong tài liệu của S7-1200, như trong trường hợp này ta cần đọc thanh ghi chứa dữ liệu của đồng hồ nên ta chọn mode là 0.

 DATA_ADDR: Là địa chỉ tương đối của thanh ghi chứa giá trị cần đọc. Gọi là địa chỉ tương đối vì DATA_ADDR=A+B+C

Trong đó:

 A: Là giá trị đầu tiên trong dải địa chỉ của chế độ mà ta chọn. Như hình trên ta thấy cùng là mode 0, 1 hoặc 2 thì có nhiều chế độ khác nhau, để phân biệt chúng với nhau thì ta để ý tới ô cuối cùng nó sẽ có các dải địa chỉ khác nhau. Ví dụ như khi ta chọn mode 0 và nhập vào địa chỉ nằm trong khoảng từ 1 tới 999 thì PLC nó sẽ hiểu là ta chọn chế độ đọc giá trị out put của bit. Như ở đây ta

cần đọc giá trị của 1 thanh ghi nên ta phải nhập địa chỉ nằm trong khoảng từ 30001 tới 39999 (trong hướng dẫn của PLC). Khi đó giá trị A của ta sẽ là 30001

Ở đây ta chọn A = 30001

 B: Là giá trị của địa chỉ thực của thanh ghi bắt đầu dữ liệu cần đọc, như Hình 4.4 ở dưới ta thấy địa chỉ chứa thanh ghi bắt đầu là V1N = 0.

 C: Là giá trị offset bằng 1.

Từ đó ta tính được giá trị : DATA_ADDR = 30001 + 0 + 1= 30002

 DATA_LEN: Độ dài của dữ liệu cần đọc, ở đây ta cần đọc địa chỉ của đồng hồ từ 30000 đến 30060 nên chọn DATA_LEN = 60.

 DATA_PTR: Con trỏ chỉ tới địa chỉ lưu dữ liệu. Ở đây ta cần tạo thêm 1 Data Block để lư dữ liệu đọc về. Ta tạo 1 Data Block ở Hình 4.5 với tên là

Hình 4.6: Địa chỉ thanh ghi chứa dữ liệu của đồng hồ

Hình 4.7 Data block chứa dữ liệu đọc được

Một phần của tài liệu DTDT KLTN THIẾT kế hệ THỐNG điều KHIỂN và GIÁM sát CHUYỂN NGUỒN tự ĐỘNG (ATS) (Trang 67 - 71)

w