پروژه آردوینو, توصیه شده

راه اندازی مدباس توسط آردوینو

سنسور حرارت در شبکه مدباس

آشنایی با مدباس و جایگاه آن در اتوماسیون صنعتی

امروزه کاربرد شبکه‌های صنعتی نظیر مدباس بر کسی پوشیده نیست. در گذشته برای ارتباط بین دو دستگاه لازم بود سیگنال‌های کنترلی توسط سیم‌کشی یک به یک به هم متصل شوند (Hardwire)؛ حال اینکه امروزه به‌سادگی توسط یک زوج سیم یا فیبر نوری این ارتباط برقرار می‌شود. این ارتباط در سیستم‌های کنترل، مانیتورینگ و سیستم‌های کنترل نظارتی SCADA به‌وفور مشاهده می‌شود.

در صنعت از چند نوع شبکه استفاده می‌شود که برخی از آن‌ها بیشتر مورد‌استفاده هستند:

  • Industrial Ethernet
  • Profibus
  • Modbus
  • Foundation Fieldbus
  • ASI

در این قسمت از پروژه های آردوینو سعی داریم به زبان ساده و به‌دور از مباحث پیچیده‌ی شبکه و لایه‌های نرم‌افزاری، با آردوینو ارتباط modbus را پیاده‌سازی کنیم. پس با سیسوگ همراه باشید.

 

آیا می‌توان از آردوینو در صنعت استفاده کرد؟

از گذشته تا کنون هر زمان صحبت از طرح برد کنترلری در زمینه‌ی صنعت می‌شده است، PLC ها در اوج قله و تقریباً بدون هیچ رقیبی خود‌نمایی می‌کرده‌اند. البته این موفقیت بی‌دلیل هم نیست.

در نقطه‌ی مقابل، آردوینو یک برد ساده با امکانات محدود، که برای روی میز و کاربردهای آموزشی معرفی شده است. حتی فکر کردن به اینکه یک برد آردوینو بخواهد مثلاً یک کوره‌ی القایی را کنترل و یا مانیتور کند، کمی دور از ذهن است.

حال اگر بخواهیم این کار را بکنیم چطور عمل کنیم؟

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

سنسور حرارت

در این مقاله سعی می‌کنیم داده‌های یک سنسور درجه حرارت را توسط پروتکل مدباس در یک شبکه SCADA توسط آردوینو دریافت کنیم. رجیستر و داده‌های سنسور مطابق جدول زیر است:

Command NameCommand Number
Read Holding Register03
Write (Preset) Single Register06
Return Slave ID17

 

AddressBytesRangeDefaults
(°C /°F)
Register and Description
0 to 34Serial Number -4 byte value. Read-only
4 to 52Serial Version -2 byte value. Read-only
61255254ADDRESS. Modbus device address
10020-1000ROOM TEMPERATURE reading in DegF
10120-600ROOM TEMPERATURE reading in DegC
30420-1000Relative Humidity reading. Writing a humidity value to the register will do calibration.

شیلد توسعه‌ی RS232 و RS485 برای آردوینو

برای این‌که بتوان با یک آردوینو با شبکه مدباس ارتباط برقرار کرد می‌توان از یکی از شیلد‌هایی که بستر 232 و یا 485 را فراهم می‌کنند، استفاده کرد. ما در این پروژه از یک مبدل 485 استفاده کرده‌ایم.

شیلد RS-485 یرای آردوینو

برای این منظور از یک برد آردوینو UNO و یک شیلد توسعه و یک مبدل 485 استفاده شده است.

شیلد توسعه آردوینو

سنسور دما و برد آزدوینو و شیلد RS 485

برای سخت‌افزار 485 می‌توانید از شیلدها و مبدل‌های موجود در بازار استفاده کنید. در زیر یک شیلد و نقشه‌ی آن و یک مبدل 232 به 485 نشان داده شده است:

مبدل 232 به 485

شیلد RS 485

شماتیک شیلد RS 485

سورس برنامه‌ی آردوینو برای ارتباط با پروتکل مدباس

ماژول 485 و سنسور دمای انتخابی خود را متصل کنید و تمام.

 

می‌توانید کتابخانه‌ی RS485 را از لینک زیر دانلود کنید:

arduinoRS485-Modbus-library-v0_4.zip

 

انتشار مطالب با ذکر نام و آدرس وب سایت سیسوگ، بلامانع است.

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

19 دیدگاه در “راه اندازی مدباس توسط آردوینو

  1. Avatar for اوستان اوستان گفت:

    موردی که در شماتیک توجه مرا جلب کرد استفاده از ترانزیستور 8050 جهت قرار دادن آی سی 485 در حالت سند یا ریسیو بدون نیاز به اشغال پایه اضافی میکرو بود
    آیا همیشه میشه از این سیمبندی استفاده کرد یا مختص همین کتابخانه هست ؟

  2. بازتاب: ارتباط آردوینو با HMI (نمایشگرهای صنعتی) - سیسوگ - Sisoog
  3. بازتاب: شبیه سازی مدباس به صورت مجازی روی کامپیوتر - سیسوگ - Sisoog
  4. Avatar for محمد محمد گفت:

    سلام من می خواهم با استفاده از محیط آردوینو برای stm32 برنامه بنویسم و پروتکل مودباس را راه اندازی کنم، چه جوری می تونم از این نمونه کد استفاده کنم؟
    آیا امکانش هست؟

    1. Avatar for زئوس Zeus زئوس Zeus گفت:

      سلام دوست عزیز
      امکان که بله قطعا هست ؛ برای این کار تنها نیازه مقداری از برنامه نویسی C++ سر در بیاورید و توابع مروبط به صفر و یک کردن خروجی را تغییر دهید هم چنین روال های ارسال و دریافت داده سریال را جایگذین کنید.
      به همین سادگی 🙂

  5. Avatar for HOSI HOSI گفت:

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

    1. Avatar for زئوس Zeus زئوس Zeus گفت:

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

  6. Avatar for محمد محمد گفت:

    سلام
    کتابخانه spi ایراد دارد در برنامه

    1. Avatar for زئوس Zeus زئوس Zeus گفت:

      سلام دوست عزیز
      متوجه منظورتون نمیشه ، فکر کنم کتابخانه spi از کتابخانه های خود Arduino است.
      میشه بگید چه مشکلی داره یا چه خطایی دریافت می کنید.

      1. Avatar for علیرضا علیرضا گفت:

        سلام کتابخانه modbusRS485 کلا مشکل داره و run نمیشه…حتی مثال هاشم اجرا نمیشه.

        1. Avatar for زئوس Zeus زئوس Zeus گفت:

          اگه بگید چه خطایی دریافت میکنید بهتر میشه کمک کرد.

          1. Avatar for علیرضا علیرضا گفت:

            error library SPI mide k mige mojod nist dar soraty k hast…

          2. Avatar for زئوس Zeus زئوس Zeus گفت:

            سلام
            احتمال این که به دلیل آپدیت های جدید آردوینو این مشکل پیش اومده باشه هست
            باید بررسی کنیم ببینیم مشکل دقیقا چیه
            متشکر برای اطلاع رسانی شما

          3. Avatar for علیرضا علیرضا گفت:

            یه سوال اینکه من مدباسو با یه کد دیگه نوشتم روش حل شد الان که فانکشن وصل میکنم که فرکانس رو بخونم تو فرکانس های پایین 3hz و تو فرکانس های بالا(2khz) اختلاف چیزی که می خونم تا 30hz هم میرسه نمیدونید مشکل کجاست؟؟؟
            حتی روی سریال خود آردوینو ینو که تست می کنم همین مشکل و دارم.
            حتی کد خواندن فرکانس رو با کانتر نوشتم باز همین مشکل هست.

          4. Avatar for زئوس Zeus زئوس Zeus گفت:

            ببخشید متوجه نشدم فرکانس رو به کجا وصل میکنید ؟ چون که مودباس همون سریال خودمون هست یا نهایتا روی شبکه باشه در هر حال نمیتونید بهش فرکناس وصل کنید
            پس احتمالا یه ترانسدیوسر برای تبدیل فرکانس به پروتکل مودباس باید داشته باشید.

  7. Avatar for علی علی گفت:

    واقعا جای همچین مطلب بسیار مفید و کاربردی ای در سایت فوق العاده شما خالی بود

    احسنت.

    1. Avatar photo Paradise Electronic گفت:

      سلام
      تشکر بابت حسن توجه شما

  8. Avatar for حامد رشیدی حامد رشیدی گفت:

    مطالبتون واقعا ناب و بدردبخور هستند‌.
    با تشکر از زحماتتون

    1. Avatar photo Paradise Electronic گفت:

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

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *