پاسخ به : مشکل در لاگ گرفتن

#477
modir
سرپرست کل

طول فریمی ای که برای خواندن از/نوشتن در یک دستگاه در شبکه (اترنت و سریال) استفاده می کنیم بر حسب بایت می باشد نه word یا long و … و آدرسی هم که برای انتقال از/به آن نقطه در تابع وارد کنیم آدرس بایتی آن نقطه از حافظه است.
بنابراین برای خوانده مثلا 110 عدد word از slave باید طول فریم را 220 وارد کنید.

نوع داده ای که برای طول فریم در بلوک های مربوط به شبکه سریال استفاده می کنید هم بایتی است بنابراین شما می توانید در یکبار خواندن/نوشتن به اندازه 255 بایت داده انتقال دهید و برای بیشتر از این مقدار باید از چند فریم استفاده کنید.

دقت کنید که آدرس هایی که باید در بلوک های read/wrie سریال وارد کنید یکی کمتر از آدرسی است که در symbol editor می بینید.

مثال: می خواهید 110 متغیر word را از یک دستگاه slave که ID آن 2 است توسط یک دستگاه master بخوانید. فرض کنید متغیر word اول در خانه 27 word حافظه slave است که آدرس بایتی آن می شود 53 و مقادیر خوانده شده بایستی در 110 ورد از حافظه master قرار بگیرند که آدرس word اول در حافظه master هست 12 که معدل بایتی آن می شود 23. برای این کار تنظیمات تابع read from pac به صورت زیر خواهید بود:
ID: 2
Des: 22
Scr: 52
Len: 220
پس کافی است به شکل زیر عمل کنید:
خواندن از دستگاه slave