Modbus RTU cho PLC S7-1200

Ngày 16-07-2023 Lượt xem 542

Cấu hình các thông số cho module CM1241 (RS422/RS485)

Các bạn làm lần lượt các bước như hình ở trên, vào Device Configuration, Click vào hình ảnh của module, Click vào thư mục General.

Tại Tag General các bạn bắt đầu config bạn chú ý tới những mục sau:

Đầu tiên trong thư mục RS422/RS485 interface các bạn vào mục PortConfiguration tại đây ta chú ý tới các thông số được khoanh như trong hình.

+ Trong phần Operating mode cho Half duplex (RS485) two-wire operation là chế độ truyền thông RS485 2 dây.

+ Các thông số như Baud rate, Parrity, Data bits, Stop bits mình cấu hình phải đúng như trên thiết bị Slave.

+ Thông số Wait time là thời gian chờ thiết lập lại, nghĩa là nếu kết nối không thành công thì trong khoảng thời gian này module sẽ cố gắng kết nối lại, quá khoảng thời gian trên mà vẫn không kết nối được thì module sẽ khởi động lại.

Tiếp theo là phần Hardware identifier

Với truyền thông Modbus RTU của PLC S7-1200 thì trong Step7 đã hỗ trợ sẵn cho chúng 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 là 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, hàm để tạo địa chỉ, làm PLC như 1 thiết bị slave.

Hôm nay, An Phat Automation sẽ làm bài toán sử dụng S7-1200 để đọc dữ liệu từ slave, vì vậy S7-1200 sẽ đóng vai trò là 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.

Để sử dụng các function này ta vào Instructions/Communication/ Communication Processor/Modbus giữ chuột kéo ra như hình bên dưới.

MB_COMM_LOAD:

Sau khi gọi các function cần thiết ra ta bắt đầu thiết lập, cài đặt các thông số đầu vào, đầu ra cho chúng.

Thiết lập các thông số cho MB_COMM_LOAD với các thông số như trên 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 một 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 M0.0 cho REQ nhưng dùng tiếp điểm thường đóng. Do vậy khi bắt đầu chương trình hàm MB_COM_LOAD sẽ được thực hiện luôn, ngay dưới hàm này sẽ là 1 network với nhiệm vụ set bit M0.0 lên 1 để đảm bảo từ vòng lặp sau hàm MB_COMM_LOAD sẽ không thực hiện.

PORT: Giá trị của PORT chính là giá trị thông số của Hardware identifier trong quá trình thiết lập module lúc đầu. Cụ thể ta có thể tham khảo hình bên dưới:

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 mà ta vừa tạo. Như ở đây nó có giá trị là DB3.

Thiết lập các thông số cho MB_MASTER_DB function.

Ta thiết lập các thông số như hình trên. 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.  Như trong ví dụ này ta chỉ đọc 1 thanh ghi của đồng hồ đo năng lượng lên ta nối nó với bit M0.1 bằng tiếp điểm thường đóng, do đó nó luôn luôn được bật và trong khi ta không cần tác động gì vào bit M0.1.

MB_ADDR: Là địa chỉ của Slave.

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ứ dữ liệu điện áp V1 của đồng hồ ta chọn theo mode là 0.

Xem hình ảnh bên dưới.

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 ù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.

VD khi ta chọn mode 0 và nhập vào địa chỉ nằm trong khoảng từ 1 đến 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 một thanh ghi nên ta phải nhập địa chỉ nằm trong khoảng từ 40001 đến 49999 hoặc từ 400001 tới 465535. Khi đó giá trị A của chúng ta sẽ là 40001 hoặc 400001.

Ở đây ta chọn A = 40001.

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

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

DATA_LEN: Độ dài của dữ liệu cần đọc, ở đây ta cần đọc 1 thanh ghi thì chọn DATA_LEN = 1

DATA_PTR: Con trỏ chỉ tới đại chỉ lưu dữ liệu. Ở đây ta cần tạo thêm 1 Data Block để lưu dữ liệu đọc về. Cuối cùng ta tải chương trình xuống PLC S7-1200 và chạy thử.

Chúng tôi có mở các khóa học đào tạo lập trình PLC cho học sinh, sinh viên và người đi làm, xin liên hệ:

Mr. Tú: 0919.318.979 hoặc Mr.Trung: 0352.873.258

HOTLINE

0352 873 258
zalo
zalo Chat với tư vấn viên Gọi ngay