Đăng Ký
Trang 4 của 10 Đầu tiênĐầu tiên ... 23456 ... CuốiCuối
Kết quả 31 đến 40 của 92
  1. #31
    Thành viên cấp 4
    Ngày tham gia
    Dec 2011
    Đang ở
    Ho Chi Minh City
    Bài viết
    422
    Thanks
    60
    217 lượt trong 104 bài viết
    Xin lỗi bạn, quên mất cái pass giải nén @.@

  2. #32
    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ệt với con trỏ qua anh ơi... nhưng mà nó hay

    L P##BoolIn // load boolin vào pointer
    LAR1 // đua nó vào AR1

    cho em hỏi tai sao lại mở khối DB này
    L W [AR1,P#0.0] // lệnh này đưa cái gì vô ACC ạ. em đọc TL rồi ạ, mà test không thấy ACC thay đổi gì
    T #DB_Number
    OPN DB [#DB_Number]

    //đọc data vô ACC
    L D [AR1,P#2.0] // tại sao chỗ này lại load DWORD ạ. sao lại là P#2.0... em test chán rồi.. không hiểu ạ
    LAR1 //


    mong các anh giúp em ạ.. em có chịu đọc tài liệu, hỏi lệnh này làm gì em biết nhưng em không hiểu ý đồ của người ta
    Lần sửa cuối bởi nmh_bk, ngày 10-28-2013 lúc 11:21 AM.

  3. #33
    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 dùng tài liệu này http://my.opera.com/nhan209a/blog/show.dml/4346763
    và quyển auto stl&scl để nghiên cứu con trỏ.... Mong các anh

  4. #34
    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
    Trích dẫn Gửi bởi nmh_bk Xem bài viết
    mệt với con trỏ qua anh ơi... nhưng mà nó hay

    L P##BoolIn // load boolin vào pointer
    LAR1 // đua nó vào AR1

    cho em hỏi tai sao lại mở khối DB này
    L W [AR1,P#0.0] // lệnh này đưa cái gì vô ACC ạ. em đọc TL rồi ạ, mà test không thấy ACC thay đổi gì
    T #DB_Number
    OPN DB [#DB_Number]

    //đọc data vô ACC
    L D [AR1,P#2.0] // tại sao chỗ này lại load DWORD ạ. sao lại là P#2.0... em test chán rồi.. không hiểu ạ
    LAR1 //


    mong các anh giúp em ạ.. em có chịu đọc tài liệu, hỏi lệnh này làm gì em biết nhưng em không hiểu ý đồ của người ta
    Mình k trả lời cho bạn nhưng mình sẽ có 1 số gợi ý như sau:
    L P##BoolIn // load boolin vào pointer ( nghĩa là như thế nào?nếu như đầu vào bạn đựa con trỏ bắt đầu từ DB20.DBW2 chẳng hạn thì giá trị chứa trong ACC1 và AR1 có những gì?
    LAR1 // đua nó vào AR1 (Đưa nó là đưa cái gì?
    L W [AR1,P#0.0] // lệnh này đưa cái gì vô ACC ạ. em đọc TL rồi ạ, mà test không thấy ACC thay đổi gì (cái này thì nó load word có địa chì là nội dung chứa trong AR1)
    T #DB_Number
    OPN DB [#DB_Number] Mở khối DB ra để nó ghi các dữ liệu vào Db, nếu k mở thì nó biết ghi vô đâu?
    L D [AR1,P#2.0] // tại sao chỗ này lại load DWORD ạ. sao lại là P#2.0 (chỗ này là nó tăng địa chỉ con trỏ lên 2word, ví dụ cau lenh truoc nó trỏ tới word10 thì giờ nó trỏ tới word để lấy giá trị chứa trong Dword12
    Lần sửa cuối bởi Mechatronic_Hieu, ngày 10-28-2013 lúc 03:10 PM.

  5. The Following 2 Users Say Thank You to Mechatronic_Hieu For This Useful Post:


  6. #35
    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
    FUNCTION FC2 : VOID
    //************************************************** *
    VAR_INPUT
    BYTE_NUM: INT;
    START_BIT: INT;
    STOP_BIT: INT;
    MIEN_NHO: CHAR;
    END_VAR
    VAR_TEMP
    TEM: INT;
    END_VAR
    VAR_OUTPUT
    ERROR: BOOL;
    END_VAR;
    //************************************************** *
    IF STOP_BIT < START_BIT THEN ERROR:=TRUE;
    END_IF;
    //************************************************** *
    TEM:=START_BIT;

    WHILE TEM<=STOP_BIT DO
    CASE CHAR_TO_INT(MIEN_NHO) OF
    77: M[BYTE_NUM,TEM]:=1;
    81: Q[BYTE_NUM,TEM]:=1;
    73: I[BYTE_NUM,TEM]:=1;
    ELSE:
    ERROR:=TRUE;
    END_CASE;
    TEM:=TEM+1;
    END_WHILE;

    //************************************************** *
    END_FUNCTION


    cuối cùng em cũng làm được... tại hôm trước xem video của thầy Hiếu em thây chỗ reset nhiều bit hay hay nên đi tìm hiểu con trỏ nhái lại một cái... cuối cũng cùng nhái dc 1 ít... tuy hơi cùi nhưng mà vui vì em đã biết thêm một ít nữa...

    mấy anh có hàm toán, hay bài toán nào nhỏ nhỏ cho em xin với... em sẽ cố gắng làm và up lên...

    mong các anh giúp đỡ vì em mới học được hơn 2 tuần thôi

  7. #36
    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
    FUNCTION FC3 : VOID
    TITLE = 'giai phuong trinh bac 2 a*x^2+b*x+c=0'
    //************************************************** *
    VAR_INPUT
    A : REAL;
    B : REAL;
    C : REAL;
    END_VAR
    VAR_TEMP
    DELTA: REAL;
    END_VAR
    VAR_OUTPUT
    VO_NGHIEM: BOOL;
    X1 : REAL;
    X2 : REAL;
    END_VAR;
    //************************************************** *
    DELTA:=B*B-4*A*C;
    IF DELTA <0 THEN VO_NGHIEM:=TRUE;
    ELSIF DELTA =0 THEN X1:=-B/(2*A);X2:=-B/(2*A);
    ELSE
    X1:=(-B+SQRT(DELTA))/(2*A);
    X2:=(-B-SQRT(DELTA))/(2*A);
    END_IF;
    //************************************************** *
    END_FUNCTION

  8. #37
    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
    cho bán 1 bài toán thế nay: Trong thư viện cùa S7 manager có hàm SFC20 (block move) để copy 1 mảng dữ liệu nhưng nó có hạn chế là: Ví dụ bạn copy 10word bắt đầu từ db0.dbw0 đến db0.dbw18 sang db0.dbw5 đến db0.dbw23 hoặc copy ngược lại thì chỉ có đúng 1 chiều, 1 chiều copy thì sai nó sẽ bị trùng lắp dữ liệu( chiều nào sai bạn tự tìm hiểu nha). Yêu cầu là bạn viết 1 hàm tương tự nhưng khắc phục dc nhược điểm trên

    Bạn cứ làm cái yêu cầu đơn giản này trước, sau đó cũng với bài toán này mình sẽ có yêu cầu cao hơn 1 tí
    Lần sửa cuối bởi Mechatronic_Hieu, ngày 10-28-2013 lúc 09:52 PM.

  9. Bài viết của "Mechatronic_Hieu" đã được cám ơn bởi các thành viên:


  10. #38
    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 Mechatronic_Hieu Xem bài viết
    cho bán 1 bài toán thế nay: Trong thư viện cùa S7 manager có hàm SFC20 (block move) để copy 1 mảng dữ liệu nhưng nó có hạn chế là: Ví dụ bạn copy 10word bắt đầu từ db0.dbw0 đến db0.dbw18 sang db0.dbw5 đến db0.dbw23 hoặc copy ngược lại thì chỉ có đúng 1 chiều, 1 chiều copy thì sai nó sẽ bị trùng lắp dữ liệu( chiều nào sai bạn tự tìm hiểu nha). Yêu cầu là bạn viết 1 hàm tương tự nhưng khắc phục dc nhược điểm trên
    em hiểu rồi ạ. EM sẽ cố gắng. hi vọng sẽ được... em cảm ơn anh

  11. #39
    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 Mechatronic_Hieu Xem bài viết
    cho bán 1 bài toán thế nay: Trong thư viện cùa S7 manager có hàm SFC20 (block move) để copy 1 mảng dữ liệu nhưng nó có hạn chế là: Ví dụ bạn copy 10word bắt đầu từ db0.dbw0 đến db0.dbw18 sang db0.dbw5 đến db0.dbw23 hoặc copy ngược lại thì chỉ có đúng 1 chiều, 1 chiều copy thì sai nó sẽ bị trùng lắp dữ liệu( chiều nào sai bạn tự tìm hiểu nha). Yêu cầu là bạn viết 1 hàm tương tự nhưng khắc phục dc nhược điểm trên

    Bạn cứ làm cái yêu cầu đơn giản này trước, sau đó cũng với bài toán này mình sẽ có yêu cầu cao hơn 1 tí

    FUNCTION FC4 : VOID
    TITLE = 'MOVE N BYTE'
    //************************************************** *****************
    VAR_INPUT
    DB_BLOCK: INT; // TEN CUA DATA BLOCK
    FROM_AD : INT; // COPPY TU FROM_DT
    TO_AD : INT; // DEN DIA CHI TO_AD
    N : INT; // VOI SO LUONG N BYTE
    END_VAR
    VAR_TEMP
    I : INT;
    BUFFER : ARRAY[1..30] OF BYTE;
    END_VAR;
    //************************************************** *****************
    //coppy data tu from_ad den from_ad+n vao BUFFER
    FOR I:=FROM_AD TO (FROM_AD + N) BY 1 DO

    BUFFER[I-FROM_AD]:=WORD_TO_BLOCK_DB(INT_TO_WORD(DB_BLOCK)).DB[I];

    END_FOR;
    //************************************************** *****************
    //coppy data tu BUFFER vao dich

    FOR I:= TO_AD TO TO_AD+N BY 1 DO

    WORD_TO_BLOCK_DB(INT_TO_WORD(DB_BLOCK)).DB[I]:=BUFFER[I-TO_AD];

    END_FOR;
    //************************************************** *****************
    END_FUNCTION

    em không biết test như thế nào... em có viết ra ở trên nhưng không biết chạy hay không vì em không biết cách test cái SFC 20 đó
    nên không biết nó chạy thế nào
    cũng không biết đúng không vì em không biết test SFC20 như thế nào

  12. #40
    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
    hàm bạn viết như SFC20 vậy, có 1 chân Int và 1 chân Out. Thì là hàm Move thôi, bạn cho giá trị các word đầu vào rồi kiểm tra đầu ra thế là test dc thôi. Viết thì tất nhiên sẽ dc nhưng vấn đề là hàm thế nào cho tổng quát: đầu nào người dùng có thể đưa vào địa chỉ bất kỳ vùng nhớ nào( Db,M,DW...) và có thể 1 dãy 100 hay 200 word tuỳ ý
    Lần sửa cuối bởi Mechatronic_Hieu, ngày 10-28-2013 lúc 10:19 PM.

  13. Bài viết của "Mechatronic_Hieu" đã được cám ơn bởi các thành viên:


Trang 4 của 10 Đầu tiênĐầu tiên ... 23456 ... 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