Đăng Ký
Trang 9 của 10 Đầu tiênĐầu tiên ... 78910 CuốiCuối
Kết quả 81 đến 90 của 92
  1. #81
    Thành viên cấp 3
    Ngày tham gia
    Oct 2013
    Bài viết
    103
    Thanks
    17
    13 lượt trong 11 bài viết
    Rảnh rỗi nên em viết code chơi cho không quên kiến thức
    không biết nó có ích không, sau đây là chức năng ạ
    hàm cộng nhiều số liên tiếp, có gì sai mấy anh chỉ em với ạ

    ví dụ muốn cộng 10 byte bắt đầu từ mb10 ---> nhập p#m10.0 byte 10
    cộng 10 số int bắt đầu từ mw10--> nhậpp#m10.0 int 10
    cộng 10 số dint bắt đầu từ md10--> nhậpp#m10.0 dint 10

    FUNCTION "sum" : VOID
    TITLE =
    VERSION : 0.1


    VAR_INPUT
    IN : ANY ;
    END_VAR
    VAR_OUTPUT
    sum : DINT ;
    END_VAR
    VAR_TEMP
    data_type : BYTE ;
    n : INT ;
    count : INT ;
    END_VAR
    BEGIN
    NETWORK
    TITLE =

    L P##IN;
    LAR1 ;
    L B [AR1,P#1.0];
    T #data_type;
    L W [AR1,P#2.0];
    T #n;
    L D [AR1,P#6.0];
    LAR1 ;
    //------------------------------------------
    A( ;
    L #data_type;
    L B#16#2;
    ==I ;
    ) ;
    JNB lb1;
    L 0;
    T #data_type;
    JU next;
    lb1: A( ;
    L #data_type;
    L B#16#5;
    ==I ;
    ) ;
    JNB lb2;
    L 1;
    T #data_type;
    JU next;
    lb2: A( ;
    L #data_type;
    L B#16#7;
    ==I ;
    ) ;
    JNB err;
    L 2;
    T #data_type;
    next: NOP 0;
    L 0;
    T #sum;
    L #n;
    lap: T #count;
    L #data_type;
    JL er;
    JU l0;
    JU l1;
    JU l2;
    er: JU err;
    l0: L B [AR1,P#0.0];
    L #sum;
    +D ;
    T #sum;
    +AR1 P#1.0;
    JU lb3;
    l1: L W [AR1,P#0.0];
    L #sum;
    +D ;
    T #sum;
    +AR1 P#2.0;
    JU lb3;
    l2: L D [AR1,P#0.0];
    L #sum;
    +D ;
    T #sum;
    +AR1 P#4.0;
    lb3: NOP 0;
    L #count;
    LOOP lap;
    BEU ;
    err: NOP 0;
    BEU ;
    END_FUNCTION

  2. #82
    Thành viên cấp 3
    Ngày tham gia
    Oct 2013
    Bài viết
    103
    Thanks
    17
    13 lượt trong 11 bài viết
    mấy anh cho em hỏi xíu ạ...
    khi em mở khóa mấy khối FC thì em thấy đa số mấy khối đó người ta thường dùng lệnh OPN để mở khối DB
    , em không biết người ta mở khối DB đó ra làm gì,sau khi mở khôi thì dữ liệu sẽ như thế nào, nêu có ghi vào khối thì làm để xem được dữ liệu đó ạ

    OPN DB [#BLOCK_NO]

  3. #83
    Thành viên cấp 3
    Ngày tham gia
    Oct 2013
    Bài viết
    103
    Thanks
    17
    13 lượt trong 11 bài viết
    Truyền time từ HMI xuống PLC
    chức năng giống hàm trong #64, vì #64 em viết dài quá nên em viết lại

    FUNCTION FC 2 : VOID
    TITLE =
    //truyen time tu HMI xuong PLC
    //vi du de truyen 2h46m30s tren hmi ta nhap 02h46m30s tag tren HMI kieu string
    VERSION : 0.1


    VAR_INPUT
    time_add : POINTER ; //dia chi bat dau cua chuoi timer
    END_VAR
    VAR_OUTPUT
    timer_out : WORD ;
    END_VAR
    VAR_TEMP
    giay : INT ;
    count : INT ;
    TEMP0 : BYTE ;
    d_pointer : DWORD ;
    END_VAR
    BEGIN
    NETWORK
    TITLE =

    L P##time_add;
    LAR1 ;
    L D [AR1,P#2.0];
    T #d_pointer;
    LAR1 ;
    A( ;
    L B [AR1,P#2.0];
    L 47;
    >D ;
    ) ;
    JNB exit;
    //-----------------------------------------------
    L 8;
    lap: T #count;
    L B [AR1,P#2.0];
    L '0';
    -I ;
    T B [AR1,P#100.0];
    +AR1 P#1.0;
    L #count;
    LOOP lap;
    //-----------------------------------------------
    L #d_pointer;
    LAR1 ;
    LAR2 ;
    +AR1 P#100.0;
    +AR2 P#110.0;
    //------------------------------------------------
    L 3;
    lap2: T #count;
    L B [AR1,P#0.0];
    SLW 4;
    T #TEMP0;
    L #TEMP0;
    L B [AR1,P#1.0];
    OW ;
    BTI ;
    T B [AR2,P#0.0];
    +AR1 P#3.0;
    +AR2 P#1.0;
    L #count;
    LOOP lap2;
    //----------------------------------------------
    L #d_pointer;
    LAR2 ;
    +AR2 P#110.0;
    //----------------------------------------------
    L B [AR2,P#0.0];
    L 3600;
    *I ;
    T #giay;
    L B [AR2,P#1.0];
    L 60;
    *I ;
    L #giay;
    +I ;
    T #giay;
    L B [AR2,P#2.0];
    L #giay;
    +I ;
    DTB ;
    T #giay;
    //------------------------------------------------
    A( ;
    L #giay;
    L W#16#999;
    <D ;
    ) ;
    JNB lb1;
    L #giay;
    L W#16#2000;
    OW ;
    T #timer_out;
    JU exit;
    lb1: L #giay;
    SRD 4;
    L W#16#3000;
    OW ;
    T #timer_out;
    JU exit;
    exit: SET ;
    SAVE ;
    BEU ;

    END_FUNCTION
    Lần sửa cuối bởi nmh_bk, ngày 03-07-2014 lúc 08:08 PM.

  4. #84
    Thành viên cấp 3
    Ngày tham gia
    Oct 2013
    Bài viết
    103
    Thanks
    17
    13 lượt trong 11 bài viết
    em mới tìm hiểu về đóng ngắt thì thấy có đong ngắt dương và đóng ngắt âm, các anh cho em hỏi là khi nào dùng đóng ngắt dương và khi nào dùng đóng ngăt âm ạ...
    ... cho em hỏi câu nữa là cái nut stop trong hệ thống cái nút to đùng màu đỏ đập cái là hệ thống dừng, muốn chạy lại thì phải vặn hoặc có cái chìa khóa mới mở được ấy ạ... cho em hỏi là cái nút đó người ta thường lập trình cho nó hay chỉ kết nối phần cứng cho nó thôi, và nếu dùng kết nói phần cứng thì thường dùng đóng ngắt âm hay đóng ngắt dương ạ (đóng ngắt ở đây ý em là đóng ngắt nguồn của mấy cái phần tử đáp ứng ạ)

  5. #85
    Thành viên cấp 3
    Ngày tham gia
    Oct 2013
    Bài viết
    103
    Thanks
    17
    13 lượt trong 11 bài viết
    truyền timer từ HMI xuống PLC: STRING_TO_S5TIME
    nhập vào 1 chuỗi ví dụ: 100m10s, 900s,10m,1m30s, phần số tối đa 3 số, qua hàm này nó sẽ tính toán và cho ra dữ liệu kiểu S5TIME

    Cái này em viết bằng SCL build ra STL share lên đây: http://www.mediafire.com/download/8t..._to_s5time.txt

  6. #86
    Thành viên Mới
    Ngày tham gia
    Jun 2014
    Bài viết
    7
    Thanks
    1
    0 lượt trong 0 bài viết
    Trích dẫn Gửi bởi nmh_bk Xem bài viết
    hàm set nhiều bít liên tiếp

    FUNCTION "set bit" : VOID
    TITLE =
    VERSION : 0.1


    VAR_INPUT
    IN : POINTER ;
    N : INT ;
    END_VAR
    VAR_TEMP
    cont : INT ;
    END_VAR
    BEGIN
    NETWORK
    TITLE =

    L P##IN;
    LAR1 ;
    L D [AR1,P#2.0];
    LAR1 ;
    A( ;
    L #N;
    L 0;
    <>I ;
    ) ;
    JNB exit;
    L #N;
    lap: T #cont;
    S [AR1,P#0.0]; // doi S=>R =>reset
    +AR1 P#0.1;
    L #cont;
    LOOP lap;
    exit: NOP 0;

    END_FUNCTION
    anh nmh_bk giải thích giúp em mấy dòng lệnh cuối được không , em đọc mãi cũng không hiểu

  7. #87
    Thành viên cấp 3
    Ngày tham gia
    Oct 2013
    Bài viết
    103
    Thanks
    17
    13 lượt trong 11 bài viết
    Trích dẫn Gửi bởi thienan Xem bài viết
    anh nmh_bk giải thích giúp em mấy dòng lệnh cuối được không , em đọc mãi cũng không hiểu
    có gì đâu mà bạn k hiểu...
    vòng lặp giống for .. next ấy, đó là set nhiêu bit, muôn đời thành hàm reset nhiều bit thì S=>R... thế thôi

  8. #88
    Thành viên cấp 1
    Ngày tham gia
    Dec 2014
    Bài viết
    12
    Thanks
    0
    0 lượt trong 0 bài viết
    Sao nhìn đoạn code này phức tạp quá. Mình đang định ôn lại kiến thức mà nhìn đoạn này chẳng hiểu được là bao.
    Cung cấpHidden Content , Hidden Content , Hidden Content nhập khẩu

  9. #89
    Thành viên cấp 3
    Ngày tham gia
    Oct 2013
    Bài viết
    103
    Thanks
    17
    13 lượt trong 11 bài viết
    đây toàn lệnh cơ bản thôi

  10. #90
    Thành viên cấp 4
    Ngày tham gia
    Oct 2011
    Bài viết
    300
    Thanks
    17
    89 lượt trong 75 bài viết
    diễn đàn toàn cao thủ

Trang 9 của 10 Đầu tiênĐầu tiên ... 78910 CuốiCuối

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