Từ khoá:

Truyền thông Modbus RTU giữa plc Siemens S7-1200 và biến tần

Hướng dẫn chi tiết truyền thông Modbus RTU giữa plc Siemens S7-1200 và biến tần từng bước kèm video minh họa.

Cấu hình phần cứng

  • Đầu tiên vào Device Configuration, chọn CPU. Trong ví dụ này sử dụng CPU 1217C DC/DC/DC.
  • Tiếp theo thêm module truyền thông CM1241 RS422/485 vào cấu hình phần cứng của PLC.
  • Sau khi thêm CM1241, chọn module và vào Properties → System constants để kiểm tra Hardware Identifier của cổng truyền thông.
  • Trong project của video, Hardware Identifier của cổng CM1241 là: 269. Giá trị này sẽ được sử dụng cho chân PORT của khối MB_COMM_LOAD.

Lưu ý: 269 không phải giá trị cố định của mọi CM1241. Đây là Hardware ID do TIA Portal gán trong project cụ thể này. Khi làm project khác phải kiểm tra lại trong System constants.

Tham khảo: Khóa học plc online miễn phí

Tạo Data Block

  • Vào Program blocks → Add new block và tạo một Global Data Block: tên DB_Modbus
  • Trong Properties của DB, vào Attributes và bỏ chọn Optimized block access.
  • Khi tạo DB có thể để Number = Automatic, để TIA Portal tự gán số DB.

Khai báo dữ liệu trong DB_Modbus

Tên biếnKiểu dữ liệuChức năng
Write_DataArray[0..9] of WordVùng dữ liệu gửi xuống Slave
Send_ReqBoolBit yêu cầu truyền
DoneBoolBáo hoàn thành
BusyBoolKhối đang thực hiện truyền
ErrorBoolBáo lỗi
StatusWordMã trạng thái/lỗi
  • Phần tử đầu tiên sử dụng để gửi xuống biến tần là:DB_Modbus.Write_Data[0]

Cấu hình System Memory và Clock Memory

  • Vào: PLC → Properties → System and clock memory
  • System memory Enable: System memory bits và đặt:System memory byte = MB1,M1.0 = FirstScanBit này ON trong chu kỳ quét đầu tiên sau khi CPU khởi động/chuyển RUN.
  • Clock memory Enable:Clock memory bitsvà đặt:Clock memory byte = MB2M2.5với tag:Clock_1Hzđể kích yêu cầu truyền Modbus theo chu kỳ.

Network 1 – Khởi tạo CM1241

  • Vào: Instructions → Communication → Communication processor → MODBUS (RTU) chèn khối:MB_COMM_LOADKhối này dùng để khởi tạo/cấu hình cổng serial cho Modbus RTU.
  • REQ := M1.0 "FirstScan"Tức là khối MB_COMM_LOAD được yêu cầu thực hiện lúc PLC khởi động.
  • PORT:PORT := 269Đây chính là Hardware Identifier của CM1241 đã kiểm tra ở phần System constants.
  • BAUD và PARITY: BAUD := 9600và:PARITY := 0
  • MB_DB:MB_DB := "MB_MASTER"Cụ thể đây là Instance DB của khối MB_MASTER ở Network 2. Điểm này quan trọng: MB_DB không phải DB_Modbus chứa Write_Data, mà liên kết tới instance DB của MB_MASTER.

Network 2 – Khối MB_MASTER

  • Chèn:MB_MASTER
  • REQ:M2.5 "Clock_1Hz"dùng để kích hoạt một yêu cầu Modbus. Khối phản ứng theo yêu cầu kích hoạt của tín hiệu, không nên hiểu đơn giản rằng giữ Clock ở mức 1 thì PLC liên tục “ghi mỗi giây một lần”.
  • MB_ADDR:MB_ADDR := 1Đây là địa chỉ Modbus Slave của biến tần
  • MODE:MODE := 1PLC ghi dữ liệu xuống Slave/biến tần.
  • DATA_ADDR:DATA_ADDR := 48194Đây là địa chỉ Modbus bắt đầu mà MB_MASTER sẽ truy cập, là địa chỉ được sử dụng cho biến tần cụ thể trong video, không được lấy 48194 áp dụng cho mọi biến tần. Phải tra Modbus register map/manual của đúng model biến tần.
  • DATA_LEN:DATA_LEN := 1nghĩa là yêu cầu Modbus xử lý 1 register. Do một Modbus register có kích thước 16 bit nên dữ liệu tương ứng phù hợp với một:
  • DATA_PTR:"DB_Modbus".Write_Data[0]Đây là phần tử đầu tiên của mảng:Write_Data : Array[0..9] of Word.Giá trị trong Write_Data[0] được sử dụng làm dữ liệu nguồn cho lệnh ghi Modbus.
  • DONE – BUSY – ERROR – STATUS: DONE → "DB_Modbus".Done,BUSY → "DB_Modbus".Busy,ERROR → "DB_Modbus".Error,STATUS → "DB_Modbus".Status
  • DONE = TRUE → yêu cầu truyền đã hoàn thành thành công.
  • BUSY = TRUE → khối đang xử lý yêu cầu truyền.
  • ERROR = TRUE → yêu cầu kết thúc với lỗi.
  • STATUS → mã trạng thái/mã lỗi để chẩn đoán.

Download xuống PLC

Sau khi hoàn thành cấu hình và chương trình, Compile rồi Download xuống PLC.

Đặc biệt phải download cả Hardware Configuration, vì CM1241 đã được thêm và cấu hình trong Device Configuration.

Kiểm tra truyền thông

Sau khi PLC chạy, quan sát hoạt động truyền/nhận của CM1241.

  • Nếu có trao đổi dữ liệu, các LED TX/RX sẽ nhấp nháy theo quá trình truyền nhận.
  • Đồng thời kiểm tra đấu dây RS485 giữa: CM1241 ↔ biến tần
  • và bảo đảm hai bên giống nhau về: Baud rate – parity – stop bit – Slave address.

Video chi tiết

0 Bình luận
0
Nếu có thắc mắc hoặc đóng góp vui lòng gửi bình luận.x