اطلاعیه

Collapse
No announcement yet.

ارتباط سریال بین LabView & AVR

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    #31
    پاسخ : ارتباط سریال بین 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 ها نیز برقراره


    چشم ها را باید شست ، جور دیگر باید دید . . .

    دیدگاه


      #32
      پاسخ : ارتباط سریال بین LabView & AVR

      سوء تفاهم نشه دوست عزیز، منظور بنده هم فقط این بود که نمیخوام وقت شما رو زیاد بگیرم و اگه فقط راهنمایی هم بکنید کافیه، به هرحال جاداره از لطف شما تشکر کنم
      خودمم امشب دوباره شروع کردم با لب ویو کارکردن و یه قسمت هایی از برنامه که مربوط به محاسبه checksum و .. بود رو با توجه به همون استارتی که برام زدید نوشتم و جواب گرفتم اما انجام عملیات روی اعداد تو این نرم افزار در مقایسه با زبان های برنامه نویسی واقعا اعصاب خورد کن هستش
      حالا اون بخش رو باید با برنامه ای که الان شما زحمت کشیدید ترکیب کنم و نتیجه رو تست کنم

      اون کامنت دوم رو جواب ندادید، درایورهای پورت سریال رو از کجا بگیرم؟

      دیدگاه


        #33
        پاسخ : ارتباط سریال بین LabView & AVR

        لینک دانلود برنامه رو هم من ندارم یا شما فراموش کردید؟

        دیدگاه


          #34
          پاسخ : ارتباط سریال بین LabView & AVR

          اینم لینک برنامه که فراموش شده بود
          http://cld.persiangig.com/download/L...ingWork.rar/dl
          درایور پورت سریال یا همون NI-VISA رو می بایست از سایت اصلی دانلود کرد ولی به دلیل قضیه تحریم به راحتی نمیشه دانلود کرد و باید فیلتر شکن داشته باشید . من الان سایتی رو که ازش دانلود کرده بودم رو نتونستم پیدا کنم اگر صبر کنید فردا خودم پلود میکنم بهتون لینک میدم
          چشم ها را باید شست ، جور دیگر باید دید . . .

          دیدگاه


            #35
            پاسخ : ارتباط سریال بین LabView & AVR

            اگر این کار رو بکنید که خیلی ممنون میشم، به نظرم لینک دانلود رو توی کامنت اول این پست همراه با یه توضیح کوچک بذارید تا دیگران هم راحت بتونند پیداش کنند، ضمن اینکه ممکنه خیلی ها ندونند که برای کار با پورت سریال نیاز به درایور جداگانه هست.
            راستش خودمم الان اینترنت درست و حسابی ندارم، پس منتظر لینک شما هستم.

            دیدگاه


              #36
              پاسخ : ارتباط سریال بین LabView & AVR

              لینک دانلود درایور NI-VISA جهت برقراری ارتباط لب ویو و پورت سریال .

              http://freeupload.ir/2558vhk2kzt2/vi...ntime.exe.html
              چشم ها را باید شست ، جور دیگر باید دید . . .

              دیدگاه


                #37
                پاسخ : ارتباط سریال بین LabView & AVR

                سلام
                من برنامه ی ارتباط یا اینورتر رو تست کردم و بدون مشکل خاصی جواب داد، اما تو این تست فقط یه رشته ارسال و دریافت کردم، حالا اگه بخوام تعداد رشته ها رو افزایش بدم مثلا قرار باشه 10 تا رشته مختلف به ترتیب ارسال بشه و به ازای هرکدوم یه جواب خاص خودش دریافت بشه به نظرتون بهترین روش برای انحام این کار چیه؟ استفاده از sequence structure یا روش دیگه؟

                دیدگاه


                  #38
                  پاسخ : ارتباط سریال بین LabView & AVR

                  با سلام و عرض خسته نباشید و عرض تبریک سال جدید
                  راستش منم بی نهایت علاقمندبه لب ویو هستم و مخصوصا ارتباطش با میکرو وتجهیزات.
                  من الان دارم روی ارتباط میکرو با لب ویو از طریق اترنت کار میکنم و دیدم خیلی با صبروشکیبایی ج این دوستمونو میدادین منم وسوسه شدم که بلکه شاید کمکم کنید :nice: :wow:
                  در مورد ارتباط اترنت با همون TCP/IP در لب ویو میتونید کمکم کنید؟؟
                  اگه آره بگید که سوالمو مطرح کنم
                  مچکررررررم

                  دیدگاه


                    #39
                    پاسخ : ارتباط سریال بین LabView & AVR

                    نوشته اصلی توسط akamseda
                    سلام
                    من برنامه ی ارتباط یا اینورتر رو تست کردم و بدون مشکل خاصی جواب داد، اما تو این تست فقط یه رشته ارسال و دریافت کردم، حالا اگه بخوام تعداد رشته ها رو افزایش بدم مثلا قرار باشه 10 تا رشته مختلف به ترتیب ارسال بشه و به ازای هرکدوم یه جواب خاص خودش دریافت بشه به نظرتون بهترین روش برای انحام این کار چیه؟ استفاده از sequence structure یا روش دیگه؟
                    سلام
                    این که گفتید پشت سر هم یعنی به صورت خودکار بفرسته یا خودتون یکی یکی بفرستید ؟ اگه خودتون قراره بفرستید ، خب کار راحته اما اگه به صورت خودکار برنامه بخواد اینکار رو انجام بده کمی پیچیده میشه . به نظرم به دو روش میتونید اینکار رو انجام بدید یا رشته هاتون رو به صورت آرایه در بیارید (Array) یا اینکه از بلوک های I/O استفاده کنید . یعنی داده ها رو ذخیره کنید بعد بخونیدش
                    چشم ها را باید شست ، جور دیگر باید دید . . .

                    دیدگاه


                      #40
                      پاسخ : ارتباط سریال بین LabView & AVR

                      نوشته اصلی توسط ali ES
                      با سلام و عرض خسته نباشید و عرض تبریک سال جدید
                      راستش منم بی نهایت علاقمندبه لب ویو هستم و مخصوصا ارتباطش با میکرو وتجهیزات.
                      من الان دارم روی ارتباط میکرو با لب ویو از طریق اترنت کار میکنم و دیدم خیلی با صبروشکیبایی ج این دوستمونو میدادین منم وسوسه شدم که بلکه شاید کمکم کنید :nice: :wow:
                      در مورد ارتباط اترنت با همون TCP/IP در لب ویو میتونید کمکم کنید؟؟
                      اگه آره بگید که سوالمو مطرح کنم
                      مچکررررررم
                      سلام عید شما هم مبارک
                      متاسفانه کلا با پروتکل TCP/IP کار نکردم (به دلیل کمبود امکانات :biggrin: ) و اطلاع زیادی در باره برقراری ارتباطش با تجهیزات ندارم ولی توی لب ویو روش کار پروتکل های ارتباطی به یک شکل انجام میشه (تقریبا ) یعنی توی همه اونها اول نیاز به پیکربندی ارتباط هست مثلا توی ارتباط سریال ما باید نام پورت و Baud Rate رو تعیین کنیم (حداقل لازمه ارتباط) توی ارتباط اترنت فکر کنم یکی مهمترین پارامترها ID Address باشه که باید تعیین بشه بعد از اون کار بلوک های Read/Write که مشخصه آخر ارتباط ها هم که از بلوک Close استفاده میشه :rolleyes:
                      چشم ها را باید شست ، جور دیگر باید دید . . .

                      دیدگاه


                        #41
                        پاسخ : ارتباط سریال بین LabView & AVR

                        نوشته اصلی توسط hassantorabi
                        سلام
                        این که گفتید پشت سر هم یعنی به صورت خودکار بفرسته یا خودتون یکی یکی بفرستید ؟ اگه خودتون قراره بفرستید ، خب کار راحته اما اگه به صورت خودکار برنامه بخواد اینکار رو انجام بده کمی پیچیده میشه . به نظرم به دو روش میتونید اینکار رو انجام بدید یا رشته هاتون رو به صورت آرایه در بیارید (Array) یا اینکه از بلوک های I/O استفاده کنید . یعنی داده ها رو ذخیره کنید بعد بخونیدش
                        نه دیگه طبیعتا باید به صورت خودکار ارسال بشه، همون مثال فرکانس درایو رو به خاطر بیارید، دو حالت خواندن و نوشتن داشتیم، برای نوشتن روش استاندارد اینه که وقتی ما فرکانس درایو رو تغییر میدیم و نتیجتا رشته ارسالی تغییر میکنه این رشته فقط یک بار به صورت موفقیت آمیز ارسال بشه (یعنی پاسخ هم از درایو دریافت بشه) و بعد از اون تا تغییر دوباره فرکانس رشته مربوطه ارسال نمیشه البته این کار برای کم شدن حجم ترافیک شبکه هست وگرنه میشه اون رو متناوب هم ارسال بشه. در مورد عملیات خواندن باید رشته مربوطه دائما ارسال بشه و پاسخش دریافت بشه، حالا فرض کنید ما 10 تا اینورتر یا slave با آدرس های مختلف مثلا 01و02و... داریم و قراره از طریق یک باس مقدار فرکانس رو بهشون بدیم و یه سری اطلاعات مثل کد خطا و.. رو ازشون بخونیم، این یعنی اینکه ما ده ها رشته متفاوت رو دائما ارسال کنیم، بعد از ارسال هر رشته صبر کنیم تا پاسخ ارسال بشه و بعد رشته بعدی بنابراین روش آرایه فکر نمی کنم جواب بده چون احتمالا همه رشته رو یک جا ارسال میکنه. البته برای رشته های دریافتی نیازی نیست بدونیم که این رشته بعد از ارسال چه رشته ای دریافت شده و با بررسی خود اون میتونیم بفهمیم حاوی چه اطلاعاتی هست.
                        حالا اون روش بلوکIO چیه؟ میتونید بشتر توضیح بدید یا روش دیگه ای اگه با توجه به توضیحاتم مد نظر دارید.

                        دیدگاه


                          #42
                          پاسخ : ارتباط سریال بین LabView & AVR

                          برای اینکه اطلاعات فقط یکبار ارسال بشه از Case Structure به همراه Push Button استفاده کنید تا فقط با یک بار فشار کلید دستور ارسال بشه . گفتم از بلوک Array استفاده کنی تا مثلا اگه قراره 4 تا رشته پشت سرهم ارسال بشه (با فاصله زمانی ) به این صورت باید عمل کنی که اول اون اطلاعتی که قراره فرستاده بشه رو وارد کنی (یکی یکی ) بعد به آرایه تبدیل کنی بعد دوباره یکی یکی از آرایه استخراج کنی (توسط برنامه ) و ارسال کنی مثل شکل زیر

                          چشم ها را باید شست ، جور دیگر باید دید . . .

                          دیدگاه

                          لطفا صبر کنید...
                          X