اطلاعیه

Collapse
No announcement yet.

یه مشکل تو دریافت دیتا از پورت com ؟

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

    یه مشکل تو دریافت دیتا از پورت com ؟

    سلام
    من با میکرو یه سری اطلاعاتو دارم میفرسم رو پورت com از جمله یکیش دما هست که با نشان دهنده Thermometer دارم نشون میدم تا اینجا مشکلی نیست
    فقط یه مشکلی که هست اینکه من هر 200ms دیتا رو برای برنامه میفرستم و هر موقعی که هیچ چیزی رو پورت نباشه Thermometer هم دما رو صفر نشون میده
    در اصل Thermometer دائم 0 و مثلا 23 درجه میشه هر 200ms حالا میخوام ببینم ایا یه بافری چیز ی تو LabView هست تا داده ها رو تو خودش نگه داره تا هنگام رسیدن دمای جدید همون دمای قبلی رو نشون بده و صفر نشون نده اینم بگم از شیف ریجیستر هم استفاده کردم نشد :cry: البته شاید درست استفاده نکردم...
    ذکات علم یاد دادنه ....

    #2
    پاسخ : یه مشکل تو دریافت دیتا از پورت com ؟

    یه راهش همون شیفت رجستره. از متغیر های محلی هم میتونی استفاده کنی. یه راه دیگه هم اینه که پدیت شدن نشاندهنده ترموکوپل رو بذاری داخل یه کیس که وقتی داده از پوردت میاد فعال بشه.
    راستش این مشکل من هم هست. تمام این روشهایی که گفتم به نظر خودمم نامعقول میاد. یه مشکلی که تو لب ویو دیدم همین پدیت کردن نشاندهنده ها با مقادیر فعلی هست مثلا اگه یه تکست باکس داخل یه حلقه باشه هر وقت داده جدیدی میاد، نوشته های قبلی روی تکست باکس پاک میشن. نتونستم بفهمم که ایا راه روتینی برای جلوگیری از این عمل وجود داره یا نه؟

    دیدگاه


      #3
      پاسخ : یه مشکل تو دریافت دیتا از پورت com ؟

      نوشته اصلی توسط majid.4206
      سلام
      من با میکرو یه سری اطلاعاتو دارم میفرسم رو پورت com از جمله یکیش دما هست که با نشان دهنده Thermometer دارم نشون میدم تا اینجا مشکلی نیست
      فقط یه مشکلی که هست اینکه من هر 200ms دیتا رو برای برنامه میفرستم و هر موقعی که هیچ چیزی رو پورت نباشه Thermometer هم دما رو صفر نشون میده
      در اصل Thermometer دائم 0 و مثلا 23 درجه میشه هر 200ms حالا میخوام ببینم ایا یه بافری چیز ی تو LabView هست تا داده ها رو تو خودش نگه داره تا هنگام رسیدن دمای جدید همون دمای قبلی رو نشون بده و صفر نشون نده اینم بگم از شیف ریجیستر هم استفاده کردم نشد :cry: البته شاید درست استفاده نکردم...
      نشان دهنده رو که نباید همینطوری بزارید درون حلقه. برنامه باید کنترل شده باشه.
      با همون شیفت رجیستر هم مشکل حل میشه.
      اما راه بهتر همونطور که دوستمون گفت با استفاده از خصوصیت Bytes at port تعداد بایت هایی که تو پورت در حال حاضر وجود دارند رو میخونی اگه همونی بود که حاوی اطلاعات بروز رسانی مقدار دما هستش حالا تو نشان دهنده مینویسی.
      یا اول استرینگی که از میکرو میاد یه چیزی میزاری و تو لبویو هر وقت اون کاراکتر رو اول دریافت کردی با اطلاعات بعدی که تو همون رشته هستند نشان دهنده رو پدیت میکنی.

      دیدگاه


        #4
        پاسخ : یه مشکل تو دریافت دیتا از پورت com ؟

        نوشته اصلی توسط mojalan
        یه راهش همون شیفت رجستره. از متغیر های محلی هم میتونی استفاده کنی. یه راه دیگه هم اینه که پدیت شدن نشاندهنده ترموکوپل رو بذاری داخل یه کیس که وقتی داده از پوردت میاد فعال بشه.
        راستش این مشکل من هم هست. تمام این روشهایی که گفتم به نظر خودمم نامعقول میاد. یه مشکلی که تو لب ویو دیدم همین پدیت کردن نشاندهنده ها با مقادیر فعلی هست مثلا اگه یه تکست باکس داخل یه حلقه باشه هر وقت داده جدیدی میاد، نوشته های قبلی روی تکست باکس پاک میشن. نتونستم بفهمم که ایا راه روتینی برای جلوگیری از این عمل وجود داره یا نه؟
        خب این موضوع به هیچ وجه نامعقول نیستش. اتفاقا خیلی منطقی هم هست. اگه اینطوری نبود مطمئنا کار خیلی مشکل میشد. یعنی انتظار دارید لبویو پاک نکنه مقدار فعلی رو ؟
        همونطور که میدونید برای این منظور شما باید داده ی جدید رو با داده های قبلی append کنی. وقتی تو یه حلقه هستیم با دستور چسبوندن استرینگ ها و یه شیفت رجیستر رشته های جدید به رشته های قبلی میچسبند.

        دیدگاه


          #5
          پاسخ : یه مشکل تو دریافت دیتا از پورت com ؟

          اما راه بهتر همونطور که دوستمون گفت با استفاده از خصوصیت Bytes at port تعداد بایت هایی که تو پورت در حال حاضر وجود دارند رو میخونی اگه همونی بود که حاوی اطلاعات بروز رسانی مقدار دما هستش حالا تو نشان دهنده مینویسی.
          دقیقا من همین کار میکنم...
          مشکلی با جدا سازی دما از بقیه قسمتا ندارم مشکلم همین صفر شدن دما تو موقعی که دیتا نمیاد هست یعنی تابعی هست که مقداری تو خودش ذخیره کنه تا هنگام رسیدن دیتای بعدی همون قبلی رو نشون بده و همینکه دیتای جدید رسید update بشه؟
          ذکات علم یاد دادنه ....

          دیدگاه


            #6
            پاسخ : یه مشکل تو دریافت دیتا از پورت com ؟

            نوشته اصلی توسط majid.4206
            دقیقا من همین کار میکنم...
            مشکلی با جدا سازی دما از بقیه قسمتا ندارم مشکلم همین صفر شدن دما تو موقعی که دیتا نمیاد هست یعنی تابعی هست که مقداری تو خودش ذخیره کنه تا هنگام رسیدن دیتای بعدی همون قبلی رو نشون بده و همینکه دیتای جدید رسید update بشه؟
            تابع ؟ مطلقا نه. این یه موضوع برنامه نویسی هستش که به نحوه کنترل برنامه و بروز رسانی نشان دهنده ها برمیگرده.

            دیدگاه


              #7
              پاسخ : یه مشکل تو دریافت دیتا از پورت com ؟

              میتونی متد برنامت رو یکم تغییر بدی و زمانی که قراره تو صفحه ای که دما نمایش داده بشه برسی اونموقه ابتدا LabView یک بایت ثابت رو که با میکرو هماهنگ کردی براش بفرسته و میکرو هم زمانی که تو وقفه دریافت سریالش این بایت رو دید , دما رو برای LabView بفرسته

              با این کار تنها زمانی که LabView این بایت رو فرستاد به زیر برنامه رفته و بافر رو که حتما عددی توش هست میخونه و نمایش میده

              معمولا در اکثر اوقات سعی مبشه LabView به صورت Master باشه و میکرو یا PLC به صورت Slave باشه.

              خواستی بگو تا یه نمونه برنامه برات بزارم

              البته برنامه ای که دارم برای کنترل یک کوره بزرگ با کلی پیچیدگی هستش و کمی سنگینه

              دیدگاه


                #8
                پاسخ : یه مشکل تو دریافت دیتا از پورت com ؟

                میتونی متد برنامت رو یکم تغییر بدی و زمانی که قراره تو صفحه ای که دما نمایش داده بشه برسی اونموقه ابتدا LabView یک بایت ثابت رو که با میکرو هماهنگ کردی براش بفرسته و میکرو هم زمانی که تو وقفه دریافت سریالش این بایت رو دید , دما رو برای LabView بفرسته

                با این کار تنها زمانی که LabView این بایت رو فرستاد به زیر برنامه رفته و بافر رو که حتما عددی توش هست میخونه و نمایش میده

                معمولا در اکثر اوقات سعی مبشه LabView به صورت Master باشه و میکرو یا PLC به صورت Slave باشه.
                اتفاقا این روشم امتحان کردم دما مشکلش حل شد یعنی دیگه صفر نیست ولی چون یه چنتا گراف هم هست که دارن نمودار میکشن وقتی یه تاخیر مثلا 200ms تو ارسال فرمان برای میکرو میدم دوباره همون مشکل قبلی پیش میاد
                اگه تاخیر ندم مشکل حل میشه ولی دیگه گراف خیلی سریع کشیده میشه که اصلا خوب نیست...
                ذکات علم یاد دادنه ....

                دیدگاه


                  #9
                  پاسخ : یه مشکل تو دریافت دیتا از پورت com ؟

                  نوشته اصلی توسط majid.4206
                  اتفاقا این روشم امتحان کردم دما مشکلش حل شد یعنی دیگه صفر نیست ولی چون یه چنتا گراف هم هست که دارن نمودار میکشن وقتی یه تاخیر مثلا 200ms تو ارسال فرمان برای میکرو میدم دوباره همون مشکل قبلی پیش میاد
                  اگه تاخیر ندم مشکل حل میشه ولی دیگه گراف خیلی سریع کشیده میشه که اصلا خوب نیست...
                  مگه از چه ابزاری برای رسم گراف استفاده میآ‌کنی؟
                  حدس میزنم اگه این کار رو انجام بدی مشکلت حل بشه
                  تو هر 200ms که یک بایت رو برای میکرو میفرستی و دما رو ازش میآ‌آ‌خونی علاوه به نمایش ، عدد رو به یک آرایه اضافه میکنی و تو همون case مقدارش رو روی گراف نمایش میدی
                  قبلش گراف رو پاک کن و دوباره کل آرایه رو بریز رو گراف.
                  اینطوری عدد صفر تو گراف حذف میشه

                  اگه برنامت کمی کند شد time out ارتباط سریالت رو تا 2 ثانیه هم اضافه کنی مشکلی پیش نمیاد.

                  تست کن جوابشو بده

                  دیدگاه


                    #10
                    پاسخ : یه مشکل تو دریافت دیتا از پورت com ؟

                    ببخشید معذرت میخوام منظورم chart بود نه گراف :redface:

                    ذکات علم یاد دادنه ....

                    دیدگاه


                      #11
                      پاسخ : یه مشکل تو دریافت دیتا از پورت com ؟

                      Chart با گراف از لحاظ پر کردن با آرایه ای که در بالا توضیح دادم فرقی نداره

                      کمی تو Propety Node هاشون دقت کنی مشکلی پیش نمیاد.

                      دیدگاه


                        #12
                        پاسخ : یه مشکل تو دریافت دیتا از پورت com ؟

                        سلام
                        من از نمونه برنامه خود لب ویو برای خوندن پورت سریال استفاده کردم ولی همش این Error رو میده و چیزی نمایش نمی ده




                        کسی می دونه این ارور برای چی هست ؟

                        ممنون
                        موفق باشید :smile:
                        [left][move][b][color=green][size=11pt]ما می توانیم .
                        ، همین ... *. * * *. * * * [color=re

                        دیدگاه


                          #13
                          پاسخ : یه مشکل تو دریافت دیتا از پورت com ؟



                          سلام
                          فکر کنم شما هم مثله من که دفعه اول میخواستم با سریال کار کنم مشکل نصب نکردم VISA
                          تو قسمت Measurement & Automation برین ببینید پورتا رو میشناسه یا نه
                          ذکات علم یاد دادنه ....

                          دیدگاه


                            #14
                            پاسخ : یه مشکل تو دریافت دیتا از پورت com ؟

                            نوشته اصلی توسط majid.4206

                            سلام
                            فکر کنم شما هم مثله من که دفعه اول میخواستم با سریال کار کنم مشکل نصب نکردم VISA
                            تو قسمت Measurement & Automation برین ببینید پورتا رو میشناسه یا نه
                            سلام
                            نه نمیشناسه :sad:
                            من Toolkit ها رو هم نصب کردم ولی نشد !!


                            موفق باشید :smile:
                            باید چیکار کنم ؟؟
                            [left][move][b][color=green][size=11pt]ما می توانیم .
                            ، همین ... *. * * *. * * * [color=re

                            دیدگاه


                              #15
                              پاسخ : یه مشکل تو دریافت دیتا از پورت com ؟

                              سلام
                              بعد از نصب
                              این ها رو داره

                              موفق باشید :smile:
                              [left][move][b][color=green][size=11pt]ما می توانیم .
                              ، همین ... *. * * *. * * * [color=re

                              دیدگاه

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