Truyền thông Modbus với PLC Siemens S7-1200

29.930 lượt xem

Viết bởi:

Ngày: 03/01/2017

KM-N2-FLK là đồng hồ đo các thông số điện năng như KW,KVA, Cosphi, Điện Áp, Dòng diện… Loại đồng hồ này hỗ trợ kết nối RS485 chuẩn Modbus RTU để các thiết bị khác có thể đọc các thông số về điện năng. Việc PLC đọc dữ liệu từ thiết bị khác qua Modbus RS485 không mới, tuy nhiên rất tốn thời gian. Sau đây xin hướng dẫn chi tiết

Cấu hình các thông số cho module CM 1241 (RS422/485)

p1

Các bạn làm lần lượt các bước như hình ảnh ở trên, vào Device Configuration -> Click vào hình ảnh của module -> Click vào 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 chọn Half duplex (RS485) two-wire operation là chế độ truyền thông RS485 2 dây

+ Cac thông số như Baud rate, Parity, 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 lố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.

p1

Tiếp theo là phần Hardware identifier, thông số này mình ko thiết lập nhưng mình phải nhớ để sau này dung.

p3

Sau đó ta Compile để hoàn thành quá trình cấu hình cho module và bắt đầu đi vào viết chương trình.

Đầu tiên ta tạo 1 Function đặt tên là Modbus_RTU

p4

Sau khi tạo được Function ta mở nó ra. Tại đây ta sẽ viết chương trình chính phục vụ cho mục đích truyền thông.

Với truyền thông Modbus RTU  với S7-1200 thì trong Step7 đã 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ế 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 KM-N2 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.

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

MB_COMM_LOAD:

p5

MB_MASTER:

p6

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

p7

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ư 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 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 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_COMM_LOAD sẽ được thực hiện luôn, ngay bên 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 đượ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. Cụ thể ta có thể tham khảo hình bên dưới.

p8

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

p9

Ta thiết lập các thông số như hình trên. 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. 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, ở đây là đồng hồ thời đo năng lượng KM-N2.

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

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

p10

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.

VD 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ừ 40001 tới 49999 hoặc 400001 tới 465535.  Khi đó giá trị A của ta sẽ là 40001 hoặc 400001.

Ở đây ta chọn A=40001

B: Là giá trị của địa chỉ thực của thanh ghi cần đọc, như hình dưới ta thấy địa chỉ chứa thanh ghi của điện áp V1 là 0.

p11

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 địa chỉ lưu dữ liệu. Ở đây ta cần tạo thêm 1 Data Block để lư dữ liệu đọc về. Như trên hình ta đã tạo 1 Data Block với tên là Data_Modbus trong đó chứa biến Voltage1. Nó có địa chỉ là DB1

p12

Sau khi hoàn thành các bước trên ta vào chương trình chính gọi Function Data_Modbus ra, nạp chương trình xuống PLC sẽ thấy được kết quả như bên dưới

p13

Xin vui lòng xem thêm Siemens tại đây 

Bài cùng chuyên mục

  • Biến tần Mitsubishi Electric FR-F800 cho HVAC

    Biến tần FR-800 Mitsubishi cho ứng dụng HVAC

  • 1S Servo Omron mới- tối ưu hóa từ thiết kế đến vận hành

    Thêm những gì bạn muốn trong Servo Dòng  Servos 1S  của Omron là một bổ sung quan trọng cho Giải pháp Sysmac. Dòng sản phẩm này cung cấp nhiều khả năng tích hợp hơn các dòng servo hiện có của chúng tôi để loại bỏ phần cứng bên ngoài và đơn giản hóa thiết kế, […]

  • Biến tần Mitsubishi Electric FR-D700 dùng để điều khiển bơm và quạt

    FR-D700 là biến tần tưởng để điều khiển máy bơm và quạt nhỏ trong các ứng dụng HVAC. Nhờ thiết kế thành phần tích hợp, FR-D700 cực kỳ nhỏ gọn và có danh tiếng đáng ghen tị về độ bền và khả năng hoạt động không cần bảo trì trong môi trường khắc nghiệt. Lợi […]

  • Bộ đo lưu lượng siêu âm- Nguyên tắc hoạt động

    Tìm hiểu cách sử dụng sóng âm để đo tốc độ dòng chảy. Có nhiều loại đồng hồ đo lưu lượng quá trình. Đồng hồ đo lưu lượng khối lượng Coriolis; đồng hồ đo lưu lượng dịch chuyển dương, chẳng hạn như đồng hồ tuabin; và máy đo lưu lượng thể tích, như máy đo […]

  • Giải thích về công tắc áp suất I Các loại công tắc áp suất

    Giải thích về công tắc áp suất | Các loại công tắc áp suất Trong bài viết này, chúng ta sẽ nói về các loại công tắc áp suất khác nhau và cách chúng hoạt động. Được, đi thôi… Họ cảm biến áp suất Tùy thuộc vào người bạn nói chuyện, công tắc áp suất […]

  • Giới thiệu PLC dòng NX và NJ Omron

    Giới thiệu toàn diện về loạt bộ điều khiển Omron NX và NJ Trong bài viết này, chúng tôi sẽ giới thiệu với bạn về loạt Bộ điều khiển Omron NX và NJ. Bộ điều khiển NX và NJ mạnh mẽ vì chúng kết hợp cả PLC và chức năng điều khiển chuyển động thành […]

  • Giới thiệu về PLC Omron

    Có hàng chục nhà sản xuất Bộ điều khiển Logic Lập trình được sử dụng trong ngành công nghiệp tự động hóa. Một trong những nhà sản xuất PLC nhỏ gọn hàng đầu để tự động hóa máy móc là Omron PLC. Omron cung cấp một dòng bộ điều khiển PLC công nghiệp có thể […]

  • Hướng dẫn board analog FX3G-2AD

    FX3G-2AD-BD Là bo mạch để mở rộng thêm 2 đầu vào analog 0-10VDC ( 12 bit) hoặc 4-20mA( 11 bit) . Bo mạch được cắm vào mặt trước của PLC FX3S, FX3G. Board mở rộng này không chiếm bộ nhớ I/O của CPU. Tùy vào model CPU có thể gắn 1 đến 2 board lên […]