Arduino Modbus RTU Haberleşmesi

can.berk

Üye
Katılım
11 May 2014
Mesajlar
1
Puanları
1
Yaş
30
Merhabalar,

Arduino mega kullanarak autonics in tx4s-b4r termostatından rs485 ile haberleştirip veri çekmeye çalışıyorum.
Ancak sürekli olarak 226 hatası alıyorum . 226 timeout hatasıdır.
Yanlışım yada eksiğim nerede yardımlarınızı bekliyorum.
Kodum aşağıda mevcuttur.

#include <ModbusMaster.h>
#define MAX485_DE 2
#define MAX485_RE 3

// ModbusMaster nesnesi

ModbusMaster node;
void preTransmission()
{
digitalWrite(MAX485_RE, 1);
digitalWrite(MAX485_DE, 1);
}
void postTransmission()
{
digitalWrite(MAX485_RE, 0);
digitalWrite(MAX485_DE, 0);
}
void setup() {

Serial.begin(9600); // Seri Monitör
Serial1.begin(9600); // RS485 haberleşmesi için Serial1 (TX1: 18, RX1: 19)

// DE ve RE pinlerini ayarla
pinMode(MAX485_RE, OUTPUT);
pinMode(MAX485_DE, OUTPUT);

digitalWrite(MAX485_RE, LOW); // Alım modu (RE = LOW)
digitalWrite(MAX485_DE, LOW); // Alım modu (DE = LOW)
Serial.println("Modbus Başlatılıyor...");

node.begin(1, Serial1); // 1: Slave ID (TX4S-B4R'yi kontrol edin)
node.preTransmission(preTransmission);
node.postTransmission(postTransmission);

}
void loop() {
uint8_t result;

result = node.readHoldingRegisters(0x03e8, 1);

// Alım moduna geç
digitalWrite(MAX485_RE, LOW); // Alım modu (RE = LOW)
digitalWrite(MAX485_DE, LOW); // Alım modu (DE = LOW)
if (result == node.ku8MBSuccess) {
uint16_t temperature = node.getResponseBuffer(0); // İlk buffer değerini al
Serial.print("Device found, temperature: ");
Serial.println(temperature / 10.0); // Ondalık sıcaklık değeri (10'a böl)
}
else {
Serial.print("ModBus Hata Kodu: ");
Serial.println(result);
}
delay(1000); // Bir sonraki okuma için bekleme
}
 
1 tane usb-485 dönüştürücü edinin. Önce usb 485i termostata bağlayın ve modbus poll üzerinden sorgu yapın. Programda aynı zamanda cihaza giden ve gelen mesajları görebiliyorsunuz. Ne yollayınca ne cevap aldığınız mesajı kaydedin bir yere.
Daha sonra arduino-termostat ve usb/485 çeviriciyi birbirine bağlayın. Arduino termostata soru sorsun. Bilgisayardan da giden gelen mesajları izleyin.
 

Forum istatistikleri

Konular
130,029
Mesajlar
932,300
Kullanıcılar
452,987
Son üye
Selahattindenizhan16

Yeni konular

Geri
Üst