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

#482
modir
سرپرست کل

محسن
1392/9/19 7:14 PM

دستگاه اسلیو شما از محصولات فراروپایاست؟
تا زمانی که ارتباط قطع نشده مقدار داده ها را به درستی می خوانید؟

پیشنهاد من به شما این است که یک برنامه ساده مانند برنامه ای که در تاپیک قبل ذکر شد در دستگاه 6400 نوشته و نتیجه آن را اعلام کنید. یعنی یک برنامه که با فواصل زمانی مثلا 1 ثانیه تعداد 110 متغیر ورد را از اسلیو بخواند. البته اگر تعداد وردهای شما 130 عدد باشد باید در دو فریم این کار را انجام دهید چون طول مجاز فریم 255 بایت است.

تحلیل برنامه شما کمی دشوار است! به نظر می آید بعد از اینکه متغیرها را از اسلیو می خوانید، همان متغیرها یا متغیرهای دیگری را از مستر در همان آدرس ها و در اسلیو می نویسید؟!

لطفا برنامه خود را کمی ساخت یافته بنویسید! با این کار تحلیل و عیب یابی برنامه برای شما و مخصوصا افراد دیگر راحت تر خواهد بود.
یعنی از متغیرهای مناسب استفاده کرده و به جای استفاده از تعداد زیادی بیت برای تغییر وضعیت به صورت مرحله ای این کار را انجام دهید. مثال های بخش برنامه نویسی ساخت یافته که در سایت قرار داده شده است کمک زیادی به شما خواهد کرد.
برای نمونه به جای استفاده از w1 و w2 و w3 و w و R می توانید یک متغیر تعریف کنید که وقتی مقدار آن 1 است عملیات خواندن، وقتی 2 است عملیات نوشتن، وقتی 3 و 4 و … است وظایف دیگری را انجام دهد. با این کار دیگر لازم نیست برای سوییچ کردن بین چند وضعیت مثل خواندن و نوشتن دو یا چند بیت را تغییر دهید که هم امکان اشتباه و فراموشی بیشتر شود و هم تداخل خواندن و نوشتن به وجود آید چون در هر مرحله مطمینا یک کار انجام خواهد شد.

نکته دیگر اینکه برای خواندن تعداد زیادی داده و نوشتن آن ها در فایل لزومی به تعریف متغیر برای همه آنها نیست و کافی است فضای حافظه مورد نیاز خود را رزرو کنید. یعنی برای 130 متغیر ورد مثلا آدرس 101 تا 230 وردی حافظه را در نظر بگیرید و متغیر دیگری در این محدوده تعریف نکنید. با این کار هم در وقت خود صرفه جویی می کنید و هم جستجو، ویرایش و بررسی متغیرهای دیگر در symbol editor راحت تر خواهد بود.