![Trích dẫn](images/styles/lifeSpace/misc/quote_icon.png)
Gửi bởi
minhhungspk
nmh_bk:
1. Ở đây bạn thanhke_auto dùng con trỏ AR1, em xin trích nguyên văn câu hỏi này:
"Em có cái thắc mắc này muốn hỏi. tại sao khi dùng con trỏ ARn trong STL hay có cái đoạn như sau:
L #diachitruyxuat
SLW 3
LAR1
L 100.0
T MW [AR1 , P#0.0]
vd địa chỉ truyền thông của m bắt đầu là 3000. thì biến truyền vào #diachitruyxuat sẽ là 3000 trong chương trình gọi nó. nhưng tại sao lại luôn có dòng lệnh SLW 3"
cái sai ở đây là cách khai báo lệnh Load một giá trị vào ACCU1:
L #diachitruysuat => sai
L L#diachitruysuat => đúng
ví dụ:
L L#3000 => ghi giá trị 3000 vào thanh ghi ACCU1(32bit nhé),sau đó tiếp lệnh
SLW 3 => dịch chuyển 3 bit trong ACCU1 về bên trái, mục đích để trùng với cấu trúc của con trỏ AR1 mới thu về giá trị đúng.
....
2. xin trích câu trả lời của bạn nmh_bk nha: "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ỉ"
- lệnh L D [ARx,P#2.0] của bạn để load địa chỉ một bit trong vùng nào đó của plc bằng cách sử dụng con trỏ ARx, còn P#2.0 chỉ là giá trị offset tùy vào bit bạn muốn load. Do đó, tùy vào mục đích người dùng là lệnh thay đổi chứ không phải "con trỏ toàn cục thì thường dụng lệnh L D [ARx,P#2.0] để lấy địa chỉ"
mọi người cho ý kiến thêm nhé!
Đánh dấu