اطلاعیه

Collapse
No announcement yet.

آموزش کامل نحوه راه اندازی پروتکل سریال

Collapse
این موضوع برجسته شده است.
X
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    #16
    پاسخ : آموزش کامل نحوه راه اندازی پروتکل سریال

    گفتم شاید دوستان نرم افزار نصب ندارن عکس گرفتم بازم متشکرم از آقا فرشاد بابت این پست مفید
    چه یافت آنــکه تــو را گم کرد وچه گم کرد آنـکه تــو را یافت.

    دیدگاه


      #17
      پاسخ : آموزش کامل نحوه راه اندازی پروتکل سریال

      سلام من نی تونم پورتهای سریال تو لب ویو ببینم

      دیدگاه


        #18
        پاسخ : آموزش کامل نحوه راه اندازی پروتکل سریال

        نوشته اصلی توسط sadeghi pari
        سلام من نی تونم پورتهای سریال تو لب ویو ببینم
        ینی چی ؟ نمیتونی ببینی
        شاید از تنظیمات مادربرد غیرفعالش کردی
        چه یافت آنــکه تــو را گم کرد وچه گم کرد آنـکه تــو را یافت.

        دیدگاه


          #19
          پاسخ : آموزش کامل نحوه راه اندازی پروتکل سریال

          سلام. دلیل ندیدن پورت ها عدم نصب تولکیت VISA هست..
          در ضمن آقای ابراهیمی عزیز در برنامه ای که درست کردین برای سریال اصول رو رعایت نکردین..
          1 - تابع تنظیم باید فقط یکبار استفاده بشه و اون هم خارج از حلقه اصلی برنامه...
          2 - تابع close هم باید فقط یکبار استفاده بشه و اون هم خارج از حلقه اصلی برنامه...
          3 - تابع bytes at port رو قبل از تابع read بکار میبرن ...
          4 - ......

          قبل از شروع بکار مثال های خود لب ویو رو بررسی بفرمایید..
          البته ورژن 2013 لب ویو مثال های کاربردی تر و جامع تری برای استفاده از پورت سریال در حالت های مختلف آورده شده است.

          دیدگاه


            #20
            پاسخ : آموزش کامل نحوه راه اندازی پروتکل سریال

            سلام
            از بابت اطلاعاتی که گداشتید ممنون
            یه سوال داشتم :
            1-اطلاعاتی که لب ویو میفرسته رشته است. توی میکرو این رشته رو با ()gets باید خوند یا با ()getchar ؟
            من یه برنامه ساده نوشتم که وقتی عدد 22 رو از سریال میگری یه led روشن بشه با هر دوتا دستورم دریافت کردم ولی نشد.

            hi miami

            دیدگاه


              #21
              پاسخ : آموزش کامل نحوه راه اندازی پروتکل سریال

              سلام دوست عزیز
              اول اینکه توی میکرو از اینترراپت استفاده کن . و اطلاعاتی رو که از labview میاد رو با دستور input بخون .
              اگه مشکلت حل نشد بگو تا یک برنامه تست شده واست بزارم .
              موفق باشید.
              انجمن LABVIEW
              http://www.eca.ir/forum2/index.php?board=279.0
              اموزش میکروکنترلرهای AVR به زبان ساده
              http://www.eca.ir/forum2/index.php/topic,7070.0.html

              دیدگاه


                #22
                پاسخ : آموزش کامل نحوه راه اندازی پروتکل سریال

                نوشته اصلی توسط nex2004
                سلام دوست عزیز
                اول اینکه توی میکرو از اینترراپت استفاده کن . و اطلاعاتی رو که از labview میاد رو با دستور input بخون .
                اگه مشکلت حل نشد بگو تا یک برنامه تست شده واست بزارم .
                موفق باشید.
                تشکر می کنم از لطفتون دیشب روش کار کردم حل شد از اینتراپت استفاده نکردم از getchar استفاده کردم آخه مشکل از میکروه نه از لب ویو . لب ویو اون دیتای که من میخواسم به جای یه بایت یه رشته می داد. میکرو نمی تونست خوب رشته رو بگیره. پس اومدم همون تو لب ویو تبدیلش کرده به یک بایت بعد فرستادم میکرو هم خیلی خونسرد دیتارو گرفت :smile:
                hi miami

                دیدگاه


                  #23
                  پاسخ : آموزش کامل نحوه راه اندازی پروتکل سریال

                  سلام
                  من برد ECA Mini DAQ را از ECA.IR خریدم .
                  ولی هر کار انجام می دهم ار تباط بر قرار نمی شود (ارتباط برقرار میشود ولی دستورات اجرا نمی شود )
                  راهنمایی کنید مشکل کجا است.
                  برای کسب اطلاعت در باره برد به آدرس زیر مراجعه فرمایید . (انتهای صفحه)
                  blog.eca.ir/?page_id=445

                  دیدگاه


                    #24
                    پاسخ : آموزش کامل نحوه راه اندازی پروتکل سریال

                    نوشته اصلی توسط sadeghi pari
                    سلام من نی تونم پورتهای سریال تو لب ویو ببینم
                    برای رفع مشکل پیدا نکردن پورت سریال در LABVIEW 32/64 bit در ویندوز برنامه VISA Run-Time Engine را نصب کنید.

                    http://www.hlcgroup.ir/usb-daq-general/

                    دیدگاه


                      #25
                      پاسخ : آموزش کامل نحوه راه اندازی پروتکل سریال

                      سلام با تشکر از مطالب خوبتون من الان دارم با ft232 کار میکنم و در هر بار دریافت 4300 داده را در یافت میکنم مشکل من ایجاست که سرعت خواندن اطلاعات من در read پایین هست و نمیدونم چطور سرعتم را بالا ببرم درضمن در هر ثانیه من 10 بار دیتا دریافت میکنم ممنون میشم اگه بنده را راهنمایی کنید

                      دیدگاه


                        #26
                        پاسخ : آموزش کامل نحوه راه اندازی پروتکل سریال

                        تنها راه اینه که بود ریت رو ببری بالا اما برد کم میشه و با ید از کابل های شیلد دار استفاده کنی نهایتا از باد ریت 19200 بیشتر کشش نداره
                        چه یافت آنــکه تــو را گم کرد وچه گم کرد آنـکه تــو را یافت.

                        دیدگاه


                          #27
                          پاسخ : آموزش کامل نحوه راه اندازی پروتکل سریال


                          سلام من در حال انجام یک پروژه هستم و نیاز دارم ک ورودی از میکرو avr خونده بشه
                          اطلاعات ارسالی من نیز فقط یک عدد سادست که از 1تا8 تو یه حلقه جلو میره
                          ینی اینکه دندانه اره ای باید بشه اما تو بلوک دیاگرام لبویو وقتی از مبدل دسیمال به عدد برای نمایش فرودی استفاده میکنم شکل سوزنی هستش و من نمی تونم از عددی که میگیرم استفاده کنم
                          یه مقایسه ی ساده گذاشتم اینکه مثلا اگه عددی که خوندی 2 بود فلان چیزو اجرا کن اما انجام نمیده راهنمایی کنید لطفا

                          دیدگاه


                            #28
                            پاسخ : آموزش کامل نحوه راه اندازی پروتکل سریال

                            نوشته اصلی توسط حمید رضا حسین وردی
                            سلام.. بعد از مدتها تأخیر...

                            چند نکته در خصوص ارتباط سریال :
                            1 - پیکربندی پورت سریال و بستن اون تنها یکبار صورت بگیره...
                            2 - نیاز نیست وقتی یک رشته ارسال میشه و قراره که بلافاصله یه رشته دریافت بشه از توابع تأخیر استفاده بشه.. دلیلشم اینه که برنامه شما فقط شامل لحظه دریافت و ارسال نیست و قبل و بعدش در دستگاه خارجی و کامپیوتر اتفاقاتی میوفته که زمان بندی رو بهم میریزه.. بهترین کار استفاده از یک کاراکتر کنترلی از دستگاه خارجی هست.. به این صورت که بعد از ارسال رشته از لب ویو به دستگاه خارجی، برنامه خواندن رشته کنترلی فعال میشه که در یک حلقه بی نهایت قرار داره و شرط خروجش هم دریافت کاراکتر کنترلی هست که از دستگاه خارجی ارسال میشه و تا دریافت نشه حلقه ادامه داره. به محض دریافت کاراکتر کنترلی، برنامه اصلی خوندن رشته فعال میشه که البته همزمان رشته هم ارسال میشه..
                            3 - هر تابع read تنها برای یک سطز نیست. تابع read هر رشته ای ارسال بشه رو میخونه. مشکل از دستگاه خارجی هست همیشه.. یک رشته میتونه شامل enter , space , . .. باشه..

                            البته ما مخلص آقا فرشاد هم هستیم....
                            سلام دوست عزیز یه سوال کوچیک پرسیدم داخل لینک زیر میشه لطف کنی و به من جواب بدی؟
                            http://www.eca.ir/forum2/index.php?topic=97596.0
                            مرسییی

                            دیدگاه


                              #29
                              پاسخ : آموزش کامل نحوه راه اندازی پروتکل سریال

                              نوشته اصلی توسط فرشاد اکرمی
                              سلام به همگی
                              من تجربه کاریم در مورد لبویو اینقدری نیست، اگر این آموزش مشکلی داشت، دوستان حرفه ای بگند تا تصحیح کنیم
                              به 2 علت این تاپیک رو ایجاد کردم!
                              1- یک بار برای همیشه این سریال رو با تمامی قواعد آموزش بدیم ( با کمک دوستان) تا هرکسی مشکلی داشت مستقیم بیاد اینجا
                              2- کمتر شدن PM هایی که هر روز در مورد این سریال لبویو به بقیه ارسال میشه :biggrin:

                              مقاله و مطلب برای اینکه سردربیارید پروتکل سریال چجور کار می کنه توی اینترنت زیاده! من به علت کمبود اطلاعات خودم :redface: و خلاصه شدن موضوع، درست میرم سر اصل مطلب. هرکس علاقه داشت سردربیاره سریال کلاً چجور کار می کنه، یه گوگل بزنه کلی مطلب پیدا می کنه!

                              اول از همه و قبل اینکه کلا ادامه مطلب رو بخونید، باید visa رو نصب داشته باشید. اگر ندارید، از این لینک دانلود کنید http://www.ni.com/visa

                              همه می دونید که سریال یه پورت ارسال و یک پورت دریافت داره (rx و tx )
                              توی تمامی برنامه ها، کلاً برنامه سریال 2 قسمت میشه، یکی واسه دریافتش و یکی واسه ارسالش
                              لبویو هم مثل بقیه یک سری توابع واسه دریافت داره و یک سری توابع برای ارسال، که دونه دونه توضیح میدیم
                              توی قسمت بلوک دیاگرام، سریال کلــــــــی تابع داره که انشالله همشونو یاد میگیرید و به ما هم یاد میدید، ولی فعلا ما با چند جزء اصلی اون کار داریم
                              به آدرس instrument i/o و بعد serial برید

                              طبق عکس ، چند عدد تابع میبینید، که توابع اصلی هستند که ما قراره باهاشون کار کنید
                              من یه توضیحی درباره توابع اصلی بدم
                              configure port : واسه پیکربندی پورت سریال
                              write : ارسال اطلاعات ( بصورت رشته)
                              read : دریافت اطلاعات ( بصورت رشته)
                              close : بستن برنامه
                              byte at port : مشخص کردن تعداد کاراکتر دریافتی

                              حالا میریم سر اصول برنامه، شما توی لبویو، ابتدا از طریق configure port پورت سریال رو پیکر بندی می کنید، طبق دیتای دریافتی، از توابع خواندن و نوشتن استفاده می کنیم و وقتی کارمون تموم شد پورت سریال رو می بندیم
                              عکس زیر یک برنامه سریال ساده بدون هیچ تابع دریافت و ارسالیه

                              تابع configure کلی سیم از اینور اونورش زده بیرون که می تونید با یک نگاه سرسری به help و خوندن توضیحات از اونا سردربیارید، توی عکس فقط تنظیمات اصلی پورت سریال نوشته شدند.
                              توی این برنامه ساده ما پورت سریال رو باز می کنیم و میبندیم
                              الان یک تابع نوشتن بهش اضافه می کنیم

                              الان هرچی توی پالت write بنویسید ارسال میشه
                              حالا یک تابع خوندن میزاریم

                              برای تابع خوندن باید شما مشخص کنید که بافرتون چند کاراکتره! تعداد کارکتر دریافتی رو مشخص می کنید و هرتعداد که بنوسید همونقدر دریافت می کنید و توی پالت read مینویسه
                              اگر تعداد کاراکتر رو مشخص بکنید، همون اندازه میگیره و نشون میده ، ولی اگر کاراکتر ورودیتون متغیر باشه باید یک گره اطلاعاتی بزارید تا قبل از تابع خوندن تعداد کاراکتر مشخص بشه و همیشه اندازه همون نوشته دریافتیتون عدد بافر مشخص بشه و هر رشته ای رو کامل دریافت بکنید


                              این کل اصول دریافت و ارسال اطلاعات بود و این برنامه آخر که یک رشته رو ارسال و یک رشته رو دریافت می کنه

                              چند نکته خیلی مهم هست که اگر درست انجام ندید دچار مشکل میشید!
                              اول از همه اینکه، طبق ترتیب دریافت و ارسال اطلاعاتتون باید ترتیب این توابع رو بچینید، مثلاً این برنامه آخری که من نوشتم، اول یک رشته ارسال میشه و جواب اون توسط دستگاه گیرنده ارسال و باز توسط لبویو گرفته و چاپ میشه
                              بیشترین مشکل توی قسمت timeout وجود داره! این timeout یا همون سرریز یه چیز تو مایه های watch dog میکرو عمل می کنه و بعد از ارسال یا دریافت هر دستور یک تایمری شروع به کار می کنه و اگر تا پایان اون دستوری اجرا نشه یک خطا برای توقف برنامه میده. خیلی ها چون برای اولین بار با هیپرترمینال کار می کنند، زمان ارسال دستورشون پایین میشه و همش این خطا بهشون نشون داده میشه. شما برای شوع کار می تونید زمان timeout رو زیاد کنید تا دچار مشکل نشید.
                              تا اینجای کار ما یک برنامه ساده ساده سریال نوشتیم، ولی برای اینکه بخواین با میکرو یا دستگاه های دیگه کار بکنید، باید یک سری کارهای دیگه انجام بدید! اینا مشکلاتی هستند که من شدید درگیرشون بودم و بعد فهمیدم که مشکل کارم چیه و اینجا میگم تا دیگه شما دچار مشکل نشید
                              اول از همه اینکه بهتره توسط یک secuence به برنامتون ترتیب بدید تا این بده بستون اطلاعاتیتون یه سروسامانی بگیره و دریافت و ارسال اطلاعاتتون با ترتیب درست اجرا بشه

                              ولی باز هم برنامه درست کار نمی کنه بعضی وقت ها!! گیر اصلی اینه که سرعت کامپیوتر معمولاً خیلی بیشتر از بقیه سیستم ها هستش و وقتی شما یک رشته رو ارسال می کنید، تا اون دستگاه رشته رو بگیره و به خودش بیاد که چی به چیه، توی لبویو میره توی قسمت بعدی و اینجوری همه چی قاطی میشه و بده بستون اطلاعات درست از آب در نمیاد. تنها راه چاره اینه که یک تأخیر بعد از ارسال رشته بزارید.

                              همین تأخیر چند میلی ثانیه ای کلاً برنامه رو متحول می کنه !!! این تأخیر رو می تونید تست بکنید با سیستمتون و کمترین اندازه رو خودتون با سعی و خطا دربیارید. قسمت دریافت چون از طرف کامپیوتر هستش معمولاً احتیاجی به تأخیر نداره
                              الان شما می تونید طی چند مرحله، طبق برنامه ای که نوشتید، به تعداد مورد نیاز از این توابع خوندن و نوشتن استفاده بکنید و دقت داشته باشید که اینا باید هماهنگ باشه و اگر جایی باید تابع نوشتن بزارید تابع خوندن بزارید برنامه قاطی می کنه و میره روی خطا
                              یه نکته ظریفی هم هست که من بعد از مدت ها!!!!!!! تونستم بفهمم! یعنی پدرم در اومد تا بفهمم! بعضی وقت ها، رشته ای که دریافت می کنید، داخلش enter خورده و از چند سطر تشکیل شده! مثلاً جواب های ماژول sim900
                              اگر دستور ATI رو به SIM900 بفرستید، جوابی که ارسال می کنه اینجوریه
                              ATI
                              SIM900 REV11

                              OK
                              یعنی اول همون دستوری که ارسال کردید رو میفرسته، سطر دوم SIM900 REV11 و سطر سوم خالی و سطر چهارم هم OK
                              ولی چیزی که شما دریافت می کنید فقط ATI !!!!!!!
                              مشکل چیه ؟
                              اگر دقت کرده باشید شما فقط سطر اول رو دریافت کردید! یعنی بعد از خوردن ENTER دیگه اطلاعات از دست رفته !! سطر اول هر تعداد کاراکتری که می خواد باشه، ولی شما فقط تا جایی که ENTER خورده رو دارید.
                              بعدها فهمیدم که هر تابع READ واسه خوندن یک سطره !!! یعنی اگر دستورتون 4 سطره، شما باید 4 عدد تابع READ رو پشت سر هم بزارید و بعد کل اونارو با توابع رشته به هم متصل کنید و توی خروجی نشون بدید. اینجوری تمامی سطرها رو می تونید دریافت کنید.

                              من الان برفرض اطلاعات ورودیم توی 2 سطر نوشته شده، در نتیجه 2 بار پورت رو می خونم و در آخر اونارو به هم متصل می کنم و در خروجی نشون میدم
                              این اصولی که گفتم تمامی اطلاعات اولیه و تجربیاتی هستند که خودم در این زمینه باهاشون مواجه بودم، قسمت VISA توابع خیلی زیادی داره و می تونید با کمک help از کارشون سردربیارید
                              مثلاً بعضی مواقع لازم میشه کل اطلاعات موجود رو پاک کنیم! با یک تابع clear میشه این کار رو انجام داد !

                              توی این برنامه الان هرچی توی بافر باشه بعد از این تابع پاک میشه!

                              امیدوارم که این آموزش بتونه کمکتون بکنه و کارتون راه بیفته. اگر موردی داشت بگین، چون من هم مثل شما مبتدی هستم و بیشتر تفریحی با لبویو کار می کنم! اگر هم روشهای دیگه ای کشف کردین یا اینکه مشکلاتی مواجه شدین و حلش کردین اینجا بگین تا بتونه به بقیه هم کمک بکنه
                              همیشه گفتم، باز هم میگم، لبویو هیچ محدودیتی نداره و اگر چیزی درست کار نمی کنه همیشه از طرف ما هستش. اگر برنامه درست نوشته بشه بدون هیچ مشکلی کار می کنه
                              موفق باشید
                              سلام دوست عزیز من خیلی مشتاق به انجام این کار هستم ولی با یک خطا مواجه میشم, سوالمو در داخل لینک زیر قرار دادم لطفا کمکم کن ممنون
                              http://www.eca.ir/forum2/index.php?topic=97596.0

                              دیدگاه


                                #30
                                پاسخ : آموزش کامل نحوه راه اندازی پروتکل سریال

                                نوشته اصلی توسط فرشاد اکرمی
                                برای تابع خوندن باید شما مشخص کنید که بافرتون چند کاراکتره! تعداد کارکتر دریافتی رو مشخص می کنید و هرتعداد که بنوسید همونقدر دریافت می کنید و توی پالت read مینویسه
                                اگر تعداد کاراکتر رو مشخص بکنید، همون اندازه میگیره و نشون میده ، ولی اگر کاراکتر ورودیتون متغیر باشه باید یک گره اطلاعاتی بزارید تا قبل از تابع خوندن تعداد کاراکتر مشخص بشه و همیشه اندازه همون نوشته دریافتیتون عدد بافر مشخص بشه و هر رشته ای رو کامل دریافت بکنید

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

                                دیدگاه

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