پاسخ : ارتباط سریال بین LabView & AVR
البته من قصد جسارت نداشتم واینکه گفتم برنامه رو براتون بنویسم قصدم آماده کردن لقمه جویده شده نبود منظورم این بود که من نمونه برنامه براتون آماده کنم تا شما بتونید خودتون اون رو ارتقا بدید چون من از کلیت کار شما گاه نیستم . ولی از اینکه خودم رو به چالش بکشم خوشم میاد . من خودم تا حالا زیاد با بلوک های رشته در لب ویو کار نکردم ولی دیدم برنامه شما جالبه نشستم و کار کار کردم ، چیزهای زیادی هم یاد گرفتم که جا داره ازتون تشکر کنم .
با لب ویو 2013 کار میکنم لینک فایل برنامه رو براتون گذاشتم میتونید دانلود کنید و اگه اینورتر دارید تست کنید که ایا در عمل هم کار میکنه بخش های برنامه رو هم به صورت تصویری براتون میذارم .
تصویر اول که مربوط به پنل کاربری هست .
قسمت مشخص شده 1 مربوط به نوشتن رشته ارسالی هست که از بلوک های رشته با عناوین مشخص شده تشکیل شده. طبق اون چیزی که شما گفتید و من برداشت کردم درست بودن و نبودنش رو نمیدونم :smile:
قسمت مشخص شده 2 مربوط به مقایسه کدهای ارسالی و دریافتی با هم هست . اگر کدها با هم برابر باشند LED های مقابل روشن و کادر رویروی آن خای می باشد . اگر کدی با مقدار دریافتی برابر نباشد LED مقابل آن خاموش و کد خوانده شده در کادر روبروی آن نمایش داده می شود این بخش رو تازه اضافه کردم در تصویری که قبلا فرستاده بودم نبود :biggrin:

تصویر دوم نحوه پیکربندی قسمت پورت سریال رو نمایش میده که فکر نکنم زیاد نیاز به توضیح باشه چون همه چیز مشخصه

تصویر سوم که بخش ارسال داده رو نمایش میده بلوکی که با رنک زرد مشخص شده (Concatenate Strings) وظیفه اتصال رشته ها بهم رو بعهده داره همونطور که میبینی علامت ":" و "YZ" به صورت پیش فرض به رشته ارسالی متصل میشه و نیاز به نوشتن ندارن (طبق گفته های خودتون که : نشان دهنده شروع رشته و YZ نشان دهنده پایان رشته هستند )
کادر قرمز رنگ نشان دهنده طول هر رشته است که بدرد بخش مقایسه میخوره
وهمه این قسمت ها داخل Case Structure قرار میگیرن

تصویر چهارم بخش مقایسه رو نشون میده که مهمترین بخش تو برنامه هست که از یک Stacked Sequence Structure تشکیل شده که اگه بخوام خیلی ساده بگم که کارش چیه : مثل یک کتاب میمونه که از صفحه های مختلفی تشکیل شده و به ترتیب از صفحه اول شروع به خوندن میکنه (دستورات رو انجام میده . هرچیزی که داخل کادر باشه ) وقتی تمام صفحه خونده شد به صفحه بعدی میره و الی آخر . که اینجا از 6 صفحه تشکیل شده (sequence) . که sequence به معنی پی درپی ، دنباله ، مسلسل وار هست .
خب حالا تازه کار ما شروع میشه در sequence1 ما ابتدا توسط بلوک Search and Replace Pattern عبارت ":" رو از داده دریافتی حذف میکنیم و مابقی رو به sequence2 میفرسته

بعد به sequence2 میریم توی این قسمت توسط بلوک String Subset داده اصلاح شده از sequence1 با توجه به اندازه تعداد کارکتر (تصویر شماره سوم کادر قرمز ) از داده جدا شده با مقدار ارسالی مقایسه شده و خروجی به بلوک LED و کادر نمایش خطا منتقل میشه . در ضمن تعداد کارکتر جدا شده از داده دریافتی حذف و به sequence بعدی منتقل میشه و همین روال برای مابقی sequence ها نیز برقراره

البته من قصد جسارت نداشتم واینکه گفتم برنامه رو براتون بنویسم قصدم آماده کردن لقمه جویده شده نبود منظورم این بود که من نمونه برنامه براتون آماده کنم تا شما بتونید خودتون اون رو ارتقا بدید چون من از کلیت کار شما گاه نیستم . ولی از اینکه خودم رو به چالش بکشم خوشم میاد . من خودم تا حالا زیاد با بلوک های رشته در لب ویو کار نکردم ولی دیدم برنامه شما جالبه نشستم و کار کار کردم ، چیزهای زیادی هم یاد گرفتم که جا داره ازتون تشکر کنم .
با لب ویو 2013 کار میکنم لینک فایل برنامه رو براتون گذاشتم میتونید دانلود کنید و اگه اینورتر دارید تست کنید که ایا در عمل هم کار میکنه بخش های برنامه رو هم به صورت تصویری براتون میذارم .
تصویر اول که مربوط به پنل کاربری هست .
قسمت مشخص شده 1 مربوط به نوشتن رشته ارسالی هست که از بلوک های رشته با عناوین مشخص شده تشکیل شده. طبق اون چیزی که شما گفتید و من برداشت کردم درست بودن و نبودنش رو نمیدونم :smile:
قسمت مشخص شده 2 مربوط به مقایسه کدهای ارسالی و دریافتی با هم هست . اگر کدها با هم برابر باشند LED های مقابل روشن و کادر رویروی آن خای می باشد . اگر کدی با مقدار دریافتی برابر نباشد LED مقابل آن خاموش و کد خوانده شده در کادر روبروی آن نمایش داده می شود این بخش رو تازه اضافه کردم در تصویری که قبلا فرستاده بودم نبود :biggrin:

تصویر دوم نحوه پیکربندی قسمت پورت سریال رو نمایش میده که فکر نکنم زیاد نیاز به توضیح باشه چون همه چیز مشخصه

تصویر سوم که بخش ارسال داده رو نمایش میده بلوکی که با رنک زرد مشخص شده (Concatenate Strings) وظیفه اتصال رشته ها بهم رو بعهده داره همونطور که میبینی علامت ":" و "YZ" به صورت پیش فرض به رشته ارسالی متصل میشه و نیاز به نوشتن ندارن (طبق گفته های خودتون که : نشان دهنده شروع رشته و YZ نشان دهنده پایان رشته هستند )
کادر قرمز رنگ نشان دهنده طول هر رشته است که بدرد بخش مقایسه میخوره
وهمه این قسمت ها داخل Case Structure قرار میگیرن

تصویر چهارم بخش مقایسه رو نشون میده که مهمترین بخش تو برنامه هست که از یک Stacked Sequence Structure تشکیل شده که اگه بخوام خیلی ساده بگم که کارش چیه : مثل یک کتاب میمونه که از صفحه های مختلفی تشکیل شده و به ترتیب از صفحه اول شروع به خوندن میکنه (دستورات رو انجام میده . هرچیزی که داخل کادر باشه ) وقتی تمام صفحه خونده شد به صفحه بعدی میره و الی آخر . که اینجا از 6 صفحه تشکیل شده (sequence) . که sequence به معنی پی درپی ، دنباله ، مسلسل وار هست .
خب حالا تازه کار ما شروع میشه در sequence1 ما ابتدا توسط بلوک Search and Replace Pattern عبارت ":" رو از داده دریافتی حذف میکنیم و مابقی رو به sequence2 میفرسته

بعد به sequence2 میریم توی این قسمت توسط بلوک String Subset داده اصلاح شده از sequence1 با توجه به اندازه تعداد کارکتر (تصویر شماره سوم کادر قرمز ) از داده جدا شده با مقدار ارسالی مقایسه شده و خروجی به بلوک LED و کادر نمایش خطا منتقل میشه . در ضمن تعداد کارکتر جدا شده از داده دریافتی حذف و به sequence بعدی منتقل میشه و همین روال برای مابقی sequence ها نیز برقراره

دیدگاه