ورود به حساب ثبت نام جدید فراموشی کلمه عبور
برای ورود به حساب کاربری خود، نام کاربری و کلمه عبورتان را در زیر وارد کرده و روی «ورود به سایت» کلیک کنید.





اگر فرم ورود برای شما نمایش داده نمیشود، اینجا را کلیک کنید.









اگر فرم ثبت نام برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.









اگر فرم بازیابی کلمه عبور برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.





کاربران برچسب زده شده

نمایش نتایج: از 1 به 8 از 8
  1. #1
    2008/02/18
    خراسان رضوى
    534
    0

    مشکل ارتباط سریال در سیمولینک

    سلام

    من میخام تو سیمولینک بتونم با پورت سریال تبادل دیتا داشته باشم .

    تو بخش تولباکس ها با Instrument Control Toolbox مشکلی نیس . هم میشه دیتا رو خوند و هم نوشت

    من برای مانیتور کردن از نرم افزار Eltima Serial Port Monitor استفاده می کنم

    مساله سر اینه که من در سیمولینک وقتی میخام با یک وسیله خارجی ارتباط بگیرم از کتابخونه Instrument Control بلاک To Instrument رو میارم می تونم به راحتی دیتا رو بفرستم اما نمی تونم با بلاک Query Instrument دیتا رو بخونم

    البته اگر بخام دیتایی رو که خودم با To Instrument می فرستم به پورت سریال رو با Query Instrument بخونم باید از یک سوکت به شکل زیر استفاده کرد . در این حالت دیتا رو می خونه





    ولی این Query Instrument لعنتی نمی دونم چرا از بیرون نمی تونه دیتایی رو دریافت کنه


  2. #2
    2007/10/14
    تهران
    1,335
    38

    پاسخ : مشکل ارتباط سریال در سیمولینک

    سلام.
    من یادمه که از بلوک های Serial Send و Serial Receive استفاده کرده بودم که مشکلی نداشت، الان متلب رو کامل نصب نکردم و این بلوک ها رو ندارم و نمیتونم مثال بذارم.
    لطفاً برای انجام پروژه های دانشجویی پیام خصوصی نفرستید.
    لطفاً سؤالاتی که در انجمن قابل طرح شدن هستند پیام خصوصی نکنید.
    با تمام وجود گناه کرديم اما نه نعمتش را از ما گرفت نه گناهان ما را فاش کرد اطاعتش کنيم چه مي کند؟"دکتر شريعتي"
    اگر جايي که ايستاده ايد را نمي پسنديد، عوضش کنيد شما درخت نيستيد!! "پاسكال"
    يا به اندازه ي آرزوهايت تلاش کن يا به اندازه تلاشت آرزو کن. "شکسپير"
  3. #3
    2008/02/18
    خراسان رضوى
    534
    0

    پاسخ : مشکل ارتباط سریال در سیمولینک

    نقل قول نوشته اصلی توسط هـادی
    سلام.
    من یادمه که از بلوک های Serial Send و Serial Receive استفاده کرده بودم که مشکلی نداشت، الان متلب رو کامل نصب نکردم و این بلوک ها رو ندارم و نمیتونم مثال بذارم.

    سلام

    می بخشید بدجور گیر کردم ! باید سریعا این پروژه رو تحویل بدم

    امکانش هست یه نمونه برنامه اگر دارید برام بزارید . نتونستم از این دو تا بلوکی که گفتید جواب بگیرم


    اگر نمونه کد هم تو محیط کامند دارید اون رو هم محبت کنید بزارید




    مرسی
  4. #4
    2007/10/14
    تهران
    1,335
    38

    پاسخ : مشکل ارتباط سریال در سیمولینک

    سلام. همون طور که قبلاً گفتم تولباکسی که بلوک های اشاره شده توش بوده نصب ندارم ولی یک نمونه کد متلب میذارم امیدوارم کارت راه بیفته.

    [code=matlab]s = serial('COM3'
    s.BaudRate = 115200;
    s.Parity = 'none';
    s.StopBit = 1.0;
    fopen(s)


    str = floor(255*rand(100,1));
    fwrite(s,str,'uint8','async&#039
    pause(1)
    fwrite(s,[1,2,3],'uint8','async&#039

    Inp = fread(s,s.BytesAvailable);

    pause(2)
    fclose(s)
    delete(s)
    clear s[/code]
    لطفاً برای انجام پروژه های دانشجویی پیام خصوصی نفرستید.
    لطفاً سؤالاتی که در انجمن قابل طرح شدن هستند پیام خصوصی نکنید.
    با تمام وجود گناه کرديم اما نه نعمتش را از ما گرفت نه گناهان ما را فاش کرد اطاعتش کنيم چه مي کند؟"دکتر شريعتي"
    اگر جايي که ايستاده ايد را نمي پسنديد، عوضش کنيد شما درخت نيستيد!! "پاسكال"
    يا به اندازه ي آرزوهايت تلاش کن يا به اندازه تلاشت آرزو کن. "شکسپير"
  5. #5
    2008/02/18
    خراسان رضوى
    534
    0

    پاسخ : مشکل ارتباط سریال در سیمولینک

    سلام مجدد

    ممنون از وقتی که گذاشتید



    می بخشید من تو کد نویسی متلب وارد نیستم . تا قبل از این فقط با سیمولینک کار کرده بودم . الان تو سیمولینک نتونستم جواب بگیرم

    کل قضیه اینه که میکرو داره سریال یه سری عدد پشت سر هم برام می فرسته که مقادیر چند تا پتانسیومتره و من باید با توجه به اونها در یک کنترلر فازی مقادیر موقعیت موتور رو به میکرو بفرستم .

    بازه اعداد بین 1000 تا 26000 هست مثلا یه رشته اینجوری میاد :

    2
    5400
    9510
    12480
    6

    اون 2 و 6 رو همین جوری واسه ابتدا و انتهای رشته در نظر گرفتم (می دونم که کار استانداردی نیس)


    حالا چیزی که تو ذهنم دارم اینه که یه آرایه a=[0,0,0]; اینجوری تعربف کنم و یه برنامه اینجوری بنویسیم :

    کد:
        if r==2
          x=1;
        elseif r==6
          x=0;
        end
    
        if (x==1 & r~=2 & r~=6)
          z=z+1;
          a(z)=r;
        elseif z==6
          z=0;
        end
    یعنی r که ورودیه بخونمش و اگر رشته کامل رو که بین 2 و 6 هست دارم دریافت می کنم تو خونه های a ذخیره کنم . بعد بدمش فازی و بعدش ارسال کنم به میکرو .



    شرمنده واقعا میشه یه راهنمایی بفرمایید . چون زیاد تو برنامه نویسی حرفه ای نیستم . با تشکر
  6. #6
    2008/02/18
    خراسان رضوى
    534
    0

    پاسخ : مشکل ارتباط سریال در سیمولینک

    راستی یادم رفت بگم .

    یه مشکلی که هست اینه که وقتی دیتاهای من با اینتر فرستاده میشه ، وقتی دستورات خوندن سریال رو می نویسم مثل اسکن اف یا گت اس ؛ عملا خروجی فقط 2 رو برمیگردونه . اما اگر رشته بدون اینتر باشه حدودا ده تا از این رشته ها رو می خونه .

    خوب حالا اگر من دیتاها رو بدون اینتر بفرستم چجوری باید اعداد رو از داخلش استخراج کنم ؟؟!!!
  7. #7
    2007/10/14
    تهران
    1,335
    38

    پاسخ : مشکل ارتباط سریال در سیمولینک

    برای خواندن دیتا از دستوری که در خط 13 برنامه نوشتم استفاده کن(بودن یا نبودن کاراکتر اینتر تأثیری نداره) . با این دستور کل دیتای بافر دریافت یکجا خوانده میشه و بعد میتونی دیتای بین header و footer رو استخراج کنی و هر کاری دوست داری باهاش انجام بدی. متلب محدودیت هایی در کار real-time داره به همین خاطر نمیشه در حالتی که مشغول کار دیگه ای هست دریافت دیتا رو بایت به بایت داشته باشی به همین خاطر مجبوری کل بافر رو بخونی، چون تایمر هم نمیشه تعریف کرد که مثلاً هر n میلی ثانیه بافر رو بخون و کارهای لازم رو انجام بده، باید با یک حلقه به بافر سر بزنی و استفاده از دستور pause تأخیر ایجاد کنی. در ضمن توجه کن که در صورتی که برنامه ی داخل حلقه زمان زیادی طول بکشه داده زیادی در بافر جمع میشه که نمیشه کار real-time انجام داد.
    لطفاً برای انجام پروژه های دانشجویی پیام خصوصی نفرستید.
    لطفاً سؤالاتی که در انجمن قابل طرح شدن هستند پیام خصوصی نکنید.
    با تمام وجود گناه کرديم اما نه نعمتش را از ما گرفت نه گناهان ما را فاش کرد اطاعتش کنيم چه مي کند؟"دکتر شريعتي"
    اگر جايي که ايستاده ايد را نمي پسنديد، عوضش کنيد شما درخت نيستيد!! "پاسكال"
    يا به اندازه ي آرزوهايت تلاش کن يا به اندازه تلاشت آرزو کن. "شکسپير"
  8. #8
    2008/02/18
    خراسان رضوى
    534
    0

    پاسخ : مشکل ارتباط سریال در سیمولینک

    سلام

    سپاس بابت وقتی که میزارید :job:


    خوب من تا یه جاهایی رفتم . دیتا رو از میکرو به این صورت ارسال می کنم :

    S 0000 1111 2222 3333 4444 E


    چهار تا عدد چهار رقمی که بین اس و ئی قرار دارن و اینم کدی که نوشتم :


    کد:
    clc;
    
      s=serial('com1');
      set(s,'BaudRate',9600,'StopBits',1,'Parity','none' ,'DataBits',8);
      fopen(s);
      
      
        
        x=fscanf(s);
        y=sscanf(x,'%*s %d %d %d %d %*s');
    
        UD=readfis('ud');
        LR=readfis('lr');
    
        OFud=evalfis([y(1),y(2)],UD); 
        OFlr=evalfis([y(3),y(4)],LR);
    
        oud=fix(OFud*100);
        olr=fix(OFlr*100);
      
      
        
      fclose(s);
      delete(s);
      clear s;

    دو تا مشکل دارم :


    1) هر چی از دستورات اف رایت و اف پرینت استفاده می کنم که دیتا رو ارسال کنم ظاهرن نمیشه ! میشه فرم صحیحش رو بهم بگید لطفا
    مثلا بخوام همچین چیزی رو بفرستم چی میشه ؟ S000111222E

    2) چجوری حلقه بی نهایت درست کنم ؟ ( بغیر از while 1 )
    میخام یجوریایی مثه سیمولینک وقتی ران میشه اجرا شه تا وقتی که استپ بزنیم . میشه چیزی نوشت که مثلا با زدن کلید Esc از برنامه خارج بشه ؟


    با تشکر
نمایش نتایج: از 1 به 8 از 8

موضوعات مشابه

  1. ارتباط سریال با سیمولینک
    توسط imannejaty در انجمن Matlab
    پاسخ: 2
    آخرين نوشته: 2015/06/28, 17:33
  2. مشکل در ارتباط سریال
    توسط davood11311 در انجمن میکروکنترلرهای AVR
    پاسخ: 12
    آخرين نوشته: 2015/03/16, 22:39
  3. مشکل ارتباط سریال
    توسط ghenaati_amir در انجمن میکروکنترلرهای AVR
    پاسخ: 10
    آخرين نوشته: 2014/06/14, 10:44
  4. مشکل در ارتباط سریال
    توسط javadamirpoor در انجمن میکروکنترلرهای AVR
    پاسخ: 3
    آخرين نوشته: 2012/07/09, 12:48
  5. مشکل در ارتباط سریال
    توسط hadi_sl66 در انجمن میکروکنترلرهای AVR
    پاسخ: 6
    آخرين نوشته: 2010/05/28, 09:56

کلمات کلیدی این موضوع

علاقه مندي ها (Bookmarks)

علاقه مندي ها (Bookmarks)

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •