Đăng Ký
Kết quả 1 đến 7 của 7
  1. #1
    Thành viên Mới
    Ngày tham gia
    Aug 2014
    Bài viết
    6
    Thanks
    1
    0 lượt trong 0 bài viết

    Exclamation Ứng dụng pointer(con trỏ) trong việc đọc dữ liệu Modbus RS485 của nhiều slave.

    Chào mọi người. Hiện nay mình đang làm 1 cái demo nhỏ về giao tiếp PLC s7-1200-Circuit breaker - PowerMeter-Inverter thông qua chuẩn Modbus. Tình trạng là khi điều khiển biến tần qua truyền thông RS485 thì bị trễ và đôi lúc không ổn định. Nguyên nhân có thể là do mình truy cập để đọc các thanh ghi modbus của slave chưa tối ưu nhất. Vậy bạn nào có kinh nghiệm trong việc sử dụng pointer (con trỏ) hoặc cách gì khác để giải quyết vấn đề này có thể chia sẻ để mình cùng mọi người tham khảo ?

    Best Regard.

  2. #2
    Thành viên cấp 1
    Ngày tham gia
    Sep 2011
    Bài viết
    32
    Thanks
    15
    4 lượt trong 2 bài viết
    Mới có nhiêu đó slave mà lo gì trễ ? khoảng cách bạn làm bao xa ? Hiện tượng mà bạn nói là trễ và không ổn định là như thế nào là như thế nào? Nếu không ngại thì cứ đưa project lên có gì mọi người xem mới góp ý được được về code, còn về phần cứng nói về ổn định nó phụ thuộc vào nhiều yếu tố, mà chủ yếu là phần cứng (động lực, điều khiển) bố trí đi dây sao cho nó tốt tí là được. Giải thuật modbus thì cứ làm theo đúng theo manual mẫu có sẵn bên siemen cung cấp làm cho 1200 thì với nhiêu đó slave không có gì lo về độ trễ đâu.

  3. #3
    Little PLC

    Ngày tham gia
    Mar 2011
    Đang ở
    Mọi câu hỏi hãy đưa lên diễn dàn. Tôi không dùng hộp thư riêng.
    Bài viết
    3,151
    Thanks
    257
    1,084 lượt trong 567 bài viết
    Hi bạn,

    Mình cũng mới chuyển sang làm Modbus nhưng cách làm của mình là đọc từng Slave về theo step by step. Sau khi đọc xong hay truyền xong thì sẽ cho slave tiếp theo làm... Còn lại thì như hhnhmln nói thì trễ là bao nhiêu, vòng quét OB Main khoảng 150ms là tối đa thì có lẽ đáp ứng kịp chứ.

    Còn lại giải thuật đọc bạn thực hiện tốt ko thôi. Hi
    Hidden Content

    Trần Văn Hiếu
    Email: Hidden Content
    Sđt: (+84)987 - 338 - 334

  4. #4
    Thành viên Mới
    Ngày tham gia
    Aug 2014
    Bài viết
    6
    Thanks
    1
    0 lượt trong 0 bài viết
    Hiện tại mình còn thiếu kinh nghiệm lập trình nhiều, chắc do đọc và ghi nhiều slave cùng 1 lúc. Vd Slave 1 có 1 số thanh ghi mình cần đọc như 4001 ,4009 , 4120-4125 , và ghi 4003,4005, 4130-4132. thì mình nghĩ sử dụng pointer để thay đổi địa chỉ thanh ghi (chỉ sử dụng 1 khối MB_Client ) để tối ưu đường truyền nhưng chưa làm được. Còn phương pháp step_by_step của anh Hiếu (sử dụng nhiều khối FB MB_Client cho 1 Slave ) cho em hỏi là mình dựa vào đâu để biết Slave 1 đã hoàn thành công việc do Master yêu cầu để chuyển qua Slave tiếp theo.

    Còn về độ trễ : trên web server ( google chorm mình giám sát các thông số) có vẻ bị trễ khoảng 2-3s

    Mô hình: diagram.PNG

    Project: TiaV13
    http://www.mediafire.com/download/8t.../Project.zap13
    Lần sửa cuối bởi mrtranlam, ngày 06-03-2015 lúc 10:48 AM.

  5. #5
    Thành viên cấp 1
    Ngày tham gia
    Sep 2011
    Bài viết
    32
    Thanks
    15
    4 lượt trong 2 bài viết
    Trích dẫn Gửi bởi mrtranlam Xem bài viết
    Hiện tại mình còn thiếu kinh nghiệm lập trình nhiều, chắc do đọc và ghi nhiều slave cùng 1 lúc. Vd Slave 1 có 1 số thanh ghi mình cần đọc như 4001 ,4009 , 4120-4125 , và ghi 4003,4005, 4130-4132. thì mình nghĩ sử dụng pointer để thay đổi địa chỉ thanh ghi (chỉ sử dụng 1 khối MB_Client ) để tối ưu đường truyền nhưng chưa làm được. Còn phương pháp step_by_step của anh Hiếu (sử dụng nhiều khối FB MB_Client cho 1 Slave ) cho em hỏi là mình dựa vào đâu để biết Slave 1 đã hoàn thành công việc do Master yêu cầu để chuyển qua Slave tiếp theo.

    Còn về độ trễ : trên web server ( google chorm mình giám sát các thông số) có vẻ bị trễ khoảng 2-3s

    Mô hình: diagram.PNG

    Project: TiaV13
    http://www.mediafire.com/download/8t.../Project.zap13
    bạn in thành file pdf đi, cài bản TiaV13 nữa nhọc chết

  6. #6
    Thành viên Mới
    Ngày tham gia
    Aug 2014
    Bài viết
    6
    Thanks
    1
    0 lượt trong 0 bài viết
    Nói chung trong cái project cũng ko có gì cả , mình chỉ sử dụng khối MB_Client thôi, đọc,ghi dữ liệu của 3 slave trên. các thanh ghi ko liên tục, vd 4001 , 4005 ,4020, 4100-4110 ... Vấn đề ở đây là tìm cách làm sao tối ưu hóa cách đọc modbus cho mỗi slave khi truyền thông.
    Và làm sao nhận biết Slave1 đã truyền thông xong để chuyển qua slave 2 ... slave n .

  7. #7
    Thành viên cấp 1
    Ngày tham gia
    Nov 2011
    Bài viết
    13
    Thanks
    5
    3 lượt trong 2 bài viết
    Hy vọng cái này có thể giúp bạn
    http://www.mediafire.com/download/ir...d_10_Slave.rar

  8. The Following 2 Users Say Thank You to chimungtrang For This Useful Post:


Đánh dấu

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •  
Back to Top