Đăng Ký
Kết quả 1 đến 7 của 7

Threaded View

  1. #6
    Thành viên cấp 3
    Ngày tham gia
    Oct 2011
    Đang ở
    Q9, HCM
    Bài viết
    205
    Thanks
    37
    33 lượt trong 24 bài viết
    Trích dẫn Gửi bởi mechatronic_hieu Xem bài viết
    cái này mình từng viết cho step 7 manager, giờ tia phổ biến qua nên cũng đua đòi update, các bạn có thể tham khảo link cho phiên bản step 7
    https://plcvietnam.com.vn/forum/show...1ng-profilebus

    1. Ví dụ cấu hình phần cứngh0.jpg, trong hệ thống mình dùng cpu1518f để quản lý các slave. Trong ví dụ mình sẽ viết chương trình cho 5 slave ở nhánh profibus số 2 cho nó gọn:1 dp/dp coupler, 2abb drive và 2 asi module

    2. Bắt đầu viết chương trình
    - tạo hàm fcxxx rồi khai báo biến như hình
    h2.1.PNG
    - trong fc này viết ct
    network 1: Ghi địa chỉ phần cứng của salve và địa chỉ profibus vào các biến tạm
    // node: 4
    l 1038 // con số này là địa chỉ trong phần cứng
    t #rio_devs[0]
    l 4
    t #rio_nodes[0]
    // node: 5
    l 941
    t #rio_devs[1]
    l 5
    t #rio_nodes[1]
    // node: 6
    l 944
    t #rio_devs[2]
    l 6
    t #rio_nodes[2]
    // node: 7
    l 542
    t #rio_devs[3]
    l 7
    t #rio_nodes[3]
    // node: 8
    l 547
    t #rio_devs[4]
    l 8
    t #rio_nodes[4]
    // số node
    l 4
    t #rio_nnodes

    nw2: Tạo xung 1s để cập nhật trạng tháih3.PNG
    * db300.dbw1278 sẽ tăng lên 1 sau mỗi vòng quét để scan toàn bộ slave.
    * chỗ chân riosts của fc440, trong db300 khai báo như sau h6.PNG
    mỗi phần tử array[x,y] là 1 slave: X là slave, y là vị trí của submodule gắn trên slave (-1 chính là bản thân slave).


    * tiếp tục viết ham fc440, trong fc440 khai báo như sauh4.PNG

    hôm qua co bạn hỏi mình cách viết scl nên sẵn mình dùng scl cho hàm này luôn. Trong hàm này mình dùng hàm thư viện modulestates của siemen để kiểm tra trạng thái của các slave, và kiểm tra cả các module gắn trên remote io( et200). Code chương trình này khá dể hiểu, chỉ cần mở của hàm modulestates của siemen lên là hiểu ngay.




    Tiếp theo lấy bit của slave tương ứng ra dùng, ví dụ slave số 4
    a db300.rio_diag_net[1].sts[4, -1] // slave số 4
    = m0.0
    a db300.rio_diag_net[1].sts[4, 2] // submodule nằm ở slot 2 của slave 4
    = m0.1

    tương tự bạn có thể lấy được cho tất cả, các bạn có thể làm ngắn gọn hơn bằng cách dùng trực tiếp hàm của siemen cho từng module, hàm này viết tổng quan nên tạo mảng hơi phức tạp.
    Những tín hiệu này đưa về hmi, khi có lỗi xảy ra người bảo trì và vận hành sẽ biết được chính xác module và submodule nào bi lỗi
    không hiểu j luôn. chưa có làm 1500. Hix.
    P/s: Hiếu về thành phố alo cafe mày
    Lần sửa cuối bởi minhhungspk, ngày 09-21-2016 lúc 04:29 PM.

Đá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