راه اندازی مدباس توسط آردوینو
آشنایی با مدباس و جایگاه آن در اتوماسیون صنعتی
امروزه کاربرد شبکههای صنعتی نظیر مدباس بر کسی پوشیده نیست. در گذشته برای ارتباط بین دو دستگاه لازم بود سیگنالهای کنترلی توسط سیمکشی یک به یک به هم متصل شوند (Hardwire)؛ حال اینکه امروزه بهسادگی توسط یک زوج سیم یا فیبر نوری این ارتباط برقرار میشود. این ارتباط در سیستمهای کنترل، مانیتورینگ و سیستمهای کنترل نظارتی SCADA بهوفور مشاهده میشود.
در صنعت از چند نوع شبکه استفاده میشود که برخی از آنها بیشتر مورداستفاده هستند:
- Industrial Ethernet
- Profibus
- Modbus
- Foundation Fieldbus
- ASI
در این مقاله سعی داریم به زبان ساده و بهدور از مباحث پیچیدهی شبکه و لایههای نرمافزاری، با آردوینو ارتباط modbus را پیادهسازی کنیم.
آیا میتوان از آردوینو در صنعت استفاده کرد؟
از گذشته تا کنون هر زمان صحبت از طرح برد کنترلری در زمینهی صنعت میشده است، PLC ها در اوج قله و تقریباً بدون هیچ رقیبی خودنمایی میکردهاند. البته این موفقیت بیدلیل هم نیست.
در نقطهی مقابل، آردوینو یک برد ساده با امکانات محدود، که برای روی میز و کاربردهای آموزشی معرفی شده است. حتی فکر کردن به اینکه یک برد آردوینو بخواهد مثلاً یک کورهی القایی را کنترل و یا مانیتور کند، کمی دور از ذهن است.
حال اگر بخواهیم این کار را بکنیم چطور عمل کنیم؟
در اینجاست که پروتکل مدباس اهمیت خود را نشان میدهد. شاید نتوان به این سادگیها از یک برد آردوینو بهعنوان قلب یک کورهی القایی در توانهای بالا استفاده کرد ولی بهسادگی میتوان از آن در کارهای دیگری مثل مانیتور کردن استفاده کرد.
در این مقاله سعی میکنیم دادههای یک سنسور درجه حرارت را توسط پروتکل مدباس در یک شبکه SCADA توسط آردوینو دریافت کنیم. رجیستر و دادههای سنسور مطابق جدول زیر است:
شیلد توسعهی RS232 و RS485 برای آردوینو
برای اینکه بتوان با یک آردوینو با شبکه مدباس ارتباط برقرار کرد میتوان از یکی از شیلدهایی که بستر 232 و یا 485 را فراهم میکنند، استفاده کرد. ما در این پروژه از یک مبدل 485 استفاده کردهایم.
برای این منظور از یک برد آردوینو UNO و یک شیلد توسعه و یک مبدل 485 استفاده شده است.
برای سختافزار 485 میتوانید از شیلدها و مبدلهای موجود در بازار استفاده کنید. در زیر یک شیلد و نقشهی آن و یک مبدل 232 به 485 نشان داده شده است:
سورس برنامهی آردوینو برای ارتباط با پروتکل مدباس
ماژول 485 و سنسور دمای انتخابی خود را متصل کنید و تمام.
#include <Wire.h> // Cooking API libraries #include <arduinoUtils.h> // Include these libraries for using the RS-485 and Modbus functions #include <arduinoRS485.h> #include <ModbusMaster485.h> #include <SPI.h> // Instantiate ModbusMaster object as slave ID 254 ModbusMaster485 node(254); // Define one address for reading #define address 101 // Define the number of bits to read #define bitQty 2 void setup() { // Power on the USB for viewing data in the serial monitor Serial.begin(115200); // Initialize Modbus communication baud rate // Only allowed in SOCKET1 node.begin(9600); // Print hello message Serial.println("Modbus communication over RS-485"); delay(100); } void loop() { // This variable will store the result of the communication // result = 0 : no errors // result = 1 : error occurred int result = node.readCoils(address,bitQty); if (result != 0) { // If no response from the slave, print an error message Serial.println("Communication error"); delay(1000); } else { // If all OK Serial.print("Read value : "); // Print the read data from the slave Serial.print(node.getResponseBuffer(0)); delay(1000); } Serial.print("\n"); delay(1000); // Clear the response buffer node.clearResponseBuffer(); }
سلام و خسته نباشید
شیلدهای موجود در این آموزش رو چگونه میتونیم تهیه کنیم؟ در وبسایتتون ندیدم
شیلد توسعهی RS232 رو نیاز دارم، یا هر ماژول و شیلدی که یک پورت RS232 بهم ارائه بده از Arduino uno،
این شیلد رو از کجا میتونم تهیه کنم؟
ممنون
سلام
به فروشگاه مراجعه کنید: https://eshop.eca.ir/229-%D8%A8%D8%B1%D8%AF%D9%87%D8%A7%DB%8C-%D8%AE%D8%A7%D9%86%D9%88%D8%A7%D8%AF%D9%87-%D8%A2%D8%B1%D8%AF%D9%88%DB%8C%D9%86%D9%88-arduino