مقدمه
در محیطهای صنعتی مثل نیروگاههای خورشیدی، نویزهای الکترومغناطیسی (EMI) به شدت بالاست. استفاده از کابلهای معمولی برای انتقال داده در فواصل طولانی عملاً غیرممکن است. به همین دلیل ما در سامانه رایا به سراغ استاندارد RS485 رفتیم.
چالشهای پیادهسازی
بزرگترین چالش ما، تبدیل بستههای همزمان و هگزادسیمال (Hex) پروتکل مادباس به فرمت مدرن و سبک MQTT بود. اینורترهایی مثل Sungrow رجیسترهای بسیار پیچیدهای دارند.
// نمونه کد شبیهسازی شده FSM
void loop() {
switch(state) {
case REQUEST_DATA:
sendModbusRequest();
break;
case WAIT_RESPONSE:
if(Serial.available()) readBuffer();
break;
}
}
void loop() {
switch(state) {
case REQUEST_DATA:
sendModbusRequest();
break;
case WAIT_RESPONSE:
if(Serial.available()) readBuffer();
break;
}
}
نتیجهگیری
با پیادهسازی ماشین حالت (FSM)، پردازنده هرگز برای دریافت پاسخ مسدود (Block) نمیشود و سیستم با پایداری کامل به کار خود ادامه میدهد.
