Đăng Ký
Trang 2 của 3 Đầu tiênĐầu tiên 123 CuốiCuối
Kết quả 11 đến 20 của 29
  1. #11
    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
    em thì mới tìm hiểu con trỏ được vài tuần
    Con trỏ có con trỏ địa phương và con trỏ toàn cục (em đọc trong sách của Nguyễn Doãn Phước)
    Con trỏ mà anh đang dùng là con trỏ địa phương
    cấu trúc con trỏ thì như hình
    Đính kèm 1323

    theo cái hình thì 3 bit cuối luôn là đỉa chỉ bít vì vậy cần dịch trái 3 bít thì mới thu được dữ liệu có cấu trúc của con trỏ như hình
    vì con trỏ của anh là con trỏ địa phương nên mới phải làm thế, còn nếu là con trỏ toàn cục thì k có
    con trỏ toàn cục theo em biết thì thường dụng lệnh L D [ARx,P#2.0] để lấy địa chỉ
    Hình như bạn có sự nhầm lẫn ở đây, SLW3 và LD[ARx,P#2.0] là 2 câu lện ra kết quả khác nhau và k cùng mục đích

    Chúc mọi người năm mới vui vẻ
    Nhận hợp tác lập trình các loại PLC và xử lý sự cố về hệ thống tự động hóa
    Gm: Hidden Content

  2. #12
    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
    L D[ARx,P#2.0]: lấy địa chỉ sau 2 byte từ byte đầu tiên của con trỏ, sau khi lấy thì cần slw3 nữa mới ra đúng--> cho nên 2 cái này khác nhau. K biết vậy đúng k, chờ anh em cho ý kiến
    Lần sửa cuối bởi Mechatronic_Hieu, ngày 01-25-2014 lúc 10:05 PM.
    Nhận hợp tác lập trình các loại PLC và xử lý sự cố về hệ thống tự động hóa
    Gm: Hidden Content

  3. #13
    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
    LB[ar p2.0] chi la tro no toi bit 23 cua pointer thoi, (con ban LD[p2.0] thi k biet lay dc cai gi nua)no se ra kq truoc khi slw3, k biet minh nghi vay co nham lan cho nao k, cho anh e cho y kien

    Xin loi moi nguoi vi dung MTB nen k biet viet dau
    anh chưa hiểu ý em, làm việc với con trỏ địa phương thì em mới dùng SLW3 còn nếu làm việc với con trỏ toàn cục thì em dung L D[ARx,P#2.0]

  4. #14
    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 em dùng L D[ARX,p#2.0] chứ không phải là L B[ARX,p#2.0] vì AR là thanh ghi 32 bít, em dùng L D vì em muốn data thu được sau lẹnh L D[ARX,p#2.0] em load nó vào lại AR

    ví dụ như em muốn pointer trỏ đến địa chỉ M100.0 thay vì mấy lệnh lằng nhằng ta có thể tính toán gán thẳng vào pointer luôn ví dụ như sau:
    L d#16#83000320
    LARx
    sau 2 lệnh này pointer đã trỏ tới M100.0
    Lần sửa cuối bởi nmh_bk, ngày 02-06-2014 lúc 03:43 PM.

  5. #15
    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
    L D[ARx,P#2.0]: lấy địa chỉ sau 2 byte từ byte đầu tiên của con trỏ, sau khi lấy thì cần slw3 nữa mới ra đúng--> cho nên 2 cái này khác nhau. K biết vậy đúng k, chờ anh em cho ý kiến
    theo em biết ví dụ với con trỏ toàn cục
    L p#m100.0
    LARx
    L D[ARx,P#2.0]
    nếu dùng con trỏ toàn cục thì không cần dịch thêm bít gì nữa, địa chỉ thu được đã đúng rồi

    còn với con trỏ địa phương kiểu như cái ví dụ của anh gì ở phần đầu bắt buộc phải dịch 3 bít để thu được địa chỉ chính xác
    ví dụ như sau ạ:
    L 100
    SLW 3
    LARx
    hoặc khỏi phải dịch, theo cấu trúc của pointer ta có tính và gán trục tiếp luôn, đoạn lệnh sau cho kết quả trùng với 3 lệnh trên
    L D#16#00000320
    LARx

    đó là em hiểu thế, có gì sai mong anh chỉ thêm

  6. #16
    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
    theo em biết ví dụ với con trỏ toàn cục
    L p#m100.0
    LARx
    L D[ARx,P#2.0]
    nếu dùng con trỏ toàn cục thì không cần dịch thêm bít gì nữa, địa chỉ thu được đã đúng rồi

    còn với con trỏ địa phương kiểu như cái ví dụ của anh gì ở phần đầu bắt buộc phải dịch 3 bít để thu được địa chỉ chính xác
    ví dụ như sau ạ:
    L 100
    SLW 3
    LARx
    hoặc khỏi phải dịch, theo cấu trúc của pointer ta có tính và gán trục tiếp luôn, đoạn lệnh sau cho kết quả trùng với 3 lệnh trên
    L D#16#00000320
    LARx

    đó là em hiểu thế, có gì sai mong anh chỉ thêm
    Chính xác, vấn đề là L 100 nó khác L #100.0 nên cần phải dịch
    Nhận hợp tác lập trình các loại PLC và xử lý sự cố về hệ thống tự động hóa
    Gm: Hidden Content

  7. #17
    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 nmh_bk Xem bài viết
    em thì mới tìm hiểu con trỏ được vài tuần
    Con trỏ có con trỏ địa phương và con trỏ toàn cục (em đọc trong sách của Nguyễn Doãn Phước)
    Con trỏ mà anh đang dùng là con trỏ địa phương
    cấu trúc con trỏ thì như hình
    Đính kèm 1323

    theo cái hình thì 3 bit cuối luôn là đỉa chỉ bít vì vậy cần dịch trái 3 bít thì mới thu được dữ liệu có cấu trúc của con trỏ như hình
    vì con trỏ của anh là con trỏ địa phương nên mới phải làm thế, còn nếu là con trỏ toàn cục thì k có
    con trỏ toàn cục theo em biết thì thường dụng lệnh L D [ARx,P#2.0] để lấy địa chỉ
    e đang tìm hiểu con trỏ thì tìm được topic này, e thấy câu hỏi bạn này có cấu trúc khai báo lệnh không chính xác thì phải, xin sửa lại như sau:
    L L#diachitruyxuat => sai ở chỗ này
    SLW 3
    LAR1
    L 100.0
    T MW [AR1 , P#0.0]

    p/s nmh_bk: sao phải dùng lệnh L D [ARx,P#2.0] để lấy địa chỉ con trỏ toàn cục, em nghĩ L D [ARx,P#0.0] hay offset giá trị khác cũng ok mà.
    xin mọi người cho ý kiến nha!

  8. #18
    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
    em xin đóng góp với topic này bằng tài liệu học stl của siemens: https://cache.industry.siemens.com/d...1/s7awl__b.pdf

  9. #19
    Thành viên cấp 3
    Ngày tham gia
    Dec 2014
    Đang ở
    Hà Nội
    Bài viết
    103
    Thanks
    3
    26 lượt trong 20 bài viết
    Nếu bạn có chương trình WinCC nữa thì bạn có thể truy ngược từ WinCC, những tag nào dùng rồi sau đó bạn vào PLC để tìm các tag đó nó nằm ở đâu. Kết hợp với chương trình WinCC thì bạn có thể giải quyết bài toán nhanh hơn, còn một cái nữa là khi mở chương trình PLC (300-400), muốn biết FB, FC nào không dùng thì bạn chọn cột bên trái và trỏ vào Call Structure. Những FB, FC nào có đánh dấu X thì những cái đó không được dùng tới, bạn sẽ ko cần quan tâm đến cái đó.

  10. #20
    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 minhhungspk Xem bài viết
    e đang tìm hiểu con trỏ thì tìm được topic này, e thấy câu hỏi bạn này có cấu trúc khai báo lệnh không chính xác thì phải, xin sửa lại như sau:
    L L#diachitruyxuat => sai ở chỗ này
    SLW 3
    LAR1
    L 100.0
    T MW [AR1 , P#0.0]

    p/s nmh_bk: sao phải dùng lệnh L D [ARx,P#2.0] để lấy địa chỉ con trỏ toàn cục, em nghĩ L D [ARx,P#0.0] hay offset giá trị khác cũng ok mà.
    xin mọi người cho ý kiến nha!
    bạn tìm hiểu lại nha, có mấy loại con trỏ, cái bạn bảo sai ở trên kia bạn xem lại xem ng ta dùng con tro nào, mình dùng L D [ARx,P#2.0] là có lý do mà, lý do là gì bạn xem lại kiểu dữ liệu pointer nhé,bạn có biết L D [ARx,P#2.0] mình dùng để lấy cái gì không, L D [ARx,P#0.0] sẽ lấy cái khác nha

Trang 2 của 3 Đầu tiênĐầu tiên 123 CuốiCuối

Tag của Chủ đề này

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