merhaba arkadaslar.
bir haftadır ugrastıgım bı konuyu cozemedıgım ıcın sızlerın yardımına ıhtıyacım var.
sorunum su d100 datasını rs485 uzerinden ardinyoya yollıyarak sayıları dotmatrix bir ekrana yansıtmam gerekıyor ne yaptı ısem ekrana yazı gelmedı bunun uzerıne ardınyo da haberlesmenınmı gelmedıgını yoksa datanınmı yanlıs gelıdgını kontrol eden bır kod yazarak bu sorunun plc den data gelmedıgını tespıt ettım. daha oncedende bahsettıgım gıbı ben profosyonel bır yazılımcı degılım ve haberlesme komutları ıle ınternette buldugum butun ıslemlerı denedım. ama bır turlu plc nın 485 uzerınden datayı yollamasını saglıyamadım. yardımcı olursanız cok sevınırım.d100 datası bır counter sayıcı ve 0 ile 99 arası saymasını ıstıyorum.
Önemli Bilgilendirme!
Forum sayfamızdan sınırsız faydalanmak için kullanıcı kaydı oluşturup giriş yapmalısınız. Özellikle mesaj eklentileri, linkler kullanıcı girişi yapmazsanız görüntülenmeyecektir. Aşağıdaki linke tıklayarak üye değilseniz kullanıcı oluşturabilirsiniz.
https://destek.delta-turkey.com/ucp.php?mode=register
Forum sayfamızdan sınırsız faydalanmak için kullanıcı kaydı oluşturup giriş yapmalısınız. Özellikle mesaj eklentileri, linkler kullanıcı girişi yapmazsanız görüntülenmeyecektir. Aşağıdaki linke tıklayarak üye değilseniz kullanıcı oluşturabilirsiniz.
https://destek.delta-turkey.com/ucp.php?mode=register
ardinyo ile dvp 14ss2 haberlesme
- t-a-n-e-r
- Mesajlar: 20
- Kayıt: 16 Şub 2022, 15:26
- İletişim:
- Durum: Çevrimdışı
- Uğur
- Mesaj Panosu Yöneticisi
- Mesajlar: 9507
- Kayıt: 06 Mar 2018, 10:37
- Konum: İstanbul
- İletişim:
- Durum: Çevrimdışı
Re: ardinyo ile dvp 14ss2 haberlesme
RS komutu ile bir porta veri gönderebilir portan gelen veriyi dinleyebilirsiniz. Manuelde detaylı uygulama örnekleri anlatılmıştır. Aşağıdaki dokümanı inceleyiniz.
Bu mesaja eklenen dosyaları görüntülemek için gerekli izinlere sahip değilsiniz.
Uğur Birdal - Technical Support Team Manager - DELTA Electronics Turkiye
Bildirimler İçin Whatsapp Kanalımıza Katılın
Whatsapp Kanal
https://www.linkedin.com/in/ugurbirdal
Bildirimler İçin Whatsapp Kanalımıza Katılın
Whatsapp Kanal
https://www.linkedin.com/in/ugurbirdal
- t-a-n-e-r
- Mesajlar: 20
- Kayıt: 16 Şub 2022, 15:26
- İletişim:
- Durum: Çevrimdışı
Re: ardinyo ile dvp 14ss2 haberlesme
ugur bey merhaba
cok degerlı paylasımınız ıcın tesekkur ederım forumda benzer konuları arastırır ıken bı kac forum baslıgını degısık kullanımlarla haberlesme sorununu cozdum sımdıkı sorunum sa su ekte vermıs oldugum dosyada x0 ve x1 on oldugunda datayı aktasıyor ama x1 on of yatıgımda artan degerı aktaramıyorum. x0 ı on of yaptıgımda artan degerı aktarıyorum. buna nasıl bı kontak uygulamalıyımkı bu serıyı bana sureklı aktarsın.
ardinyoda kullandıgım kodlar ıse aşagıdaki gibidir. lazım olan veya yardımcı ola bılecekler olursa bilgi paylastıkca buyur.
cok degerlı paylasımınız ıcın tesekkur ederım forumda benzer konuları arastırır ıken bı kac forum baslıgını degısık kullanımlarla haberlesme sorununu cozdum sımdıkı sorunum sa su ekte vermıs oldugum dosyada x0 ve x1 on oldugunda datayı aktasıyor ama x1 on of yatıgımda artan degerı aktaramıyorum. x0 ı on of yaptıgımda artan degerı aktarıyorum. buna nasıl bı kontak uygulamalıyımkı bu serıyı bana sureklı aktarsın.
ardinyoda kullandıgım kodlar ıse aşagıdaki gibidir. lazım olan veya yardımcı ola bılecekler olursa bilgi paylastıkca buyur.
Kod: Tümünü seç
#include <ModbusRTUSlave.h> // Modbus Slave Kütüphanesi
#include <SoftwareSerial.h> // Yazılım Seri Port
#include <LedControl.h> // MAX7219 Dot Matrix Kütüphanesi
// 📌 RS485 için Yazılım Seri Portu
#define RX_PIN 0 // RS485 Modülü RO pini (Arduino RX)
#define TX_PIN 1 // RS485 Modülü DI pini (Arduino TX)
#define DE_RE 2 // RS485 Modülü DE/RE pini
SoftwareSerial modbusSerial(RX_PIN, TX_PIN); // Yazılım Seri Portu
ModbusRTUSlave slave(modbusSerial, DE_RE); // Modbus Slave nesnesi
// 📌 MAX7219 Dot Matrix Bağlantıları
#define DIN_PIN 11 // Data In
#define CS_PIN 10 // Chip Select
#define CLK_PIN 13 // Clock
LedControl matrix = LedControl(DIN_PIN, CLK_PIN, CS_PIN, 4); // 4'lü Dot Matrix bağlı
// 📌 Modbus Registerları (16-bit)
uint16_t holdingRegisters[5]; // **5 adet register** (H1000 için yeterli)
void setup() {
Serial.begin(9600); // Seri Monitör
modbusSerial.begin(9600); // Yazılım seri portu başlat
// 📌 Modbus Slave Başlatma (Slave ID = 1, Baudrate = 9600, 8N1 formatında)
slave.begin(2, 9600, SERIAL_7N1);
slave.configureHoldingRegisters(holdingRegisters, 5); // **5 register kullanılıyor**
// 📌 MAX7219 Başlatma
for (int i = 0; i < 4; i++) {
matrix.shutdown(i, false); // Gücü aç
matrix.setIntensity(i, 5); // Parlaklık ayarla (0-15)
matrix.clearDisplay(i); // Ekranı temizle
}
}
void loop() {
slave.poll(); // Modbus haberleşmesini çalıştır
int value = holdingRegisters[0]; // **📌 H1000 (4096) register'ını oku**
Serial.print("H1000: "); // **Seri port ile gelen değeri kontrol et**
Serial.println(value);
if (value >= 1 && value <= 99) {
displayNumber(value); // 📌 01-99 arası ise ekrana yazdır
} else {
clearMatrix(); // 📌 Geçersiz değer geldiğinde ekranı temizle
}
delay(1000);
}
// 📌 2 Basamaklı Sayıyı Dot Matrix'e Yazdırma
void displayNumber(int num) {
int tens = num / 10; // Onlar basamağı
int ones = num % 10; // Birler basamağı
byte digits[10][8] = {
{0x3E, 0x51, 0x49, 0x45, 0x3E, 0x00, 0x00, 0x00}, // 0
{0x00, 0x42, 0x7F, 0x40, 0x00, 0x00, 0x00, 0x00}, // 1
{0x62, 0x51, 0x49, 0x49, 0x46, 0x00, 0x00, 0x00}, // 2
{0x22, 0x49, 0x49, 0x49, 0x36, 0x00, 0x00, 0x00}, // 3
{0x18, 0x14, 0x12, 0x7F, 0x10, 0x00, 0x00, 0x00}, // 4
{0x2F, 0x49, 0x49, 0x49, 0x31, 0x00, 0x00, 0x00}, // 5
{0x3E, 0x49, 0x49, 0x49, 0x32, 0x00, 0x00, 0x00}, // 6
{0x01, 0x71, 0x09, 0x05, 0x03, 0x00, 0x00, 0x00}, // 7
{0x36, 0x49, 0x49, 0x49, 0x36, 0x00, 0x00, 0x00}, // 8
{0x26, 0x49, 0x49, 0x49, 0x3E, 0x00, 0x00, 0x00} // 9
};
for (int i = 0; i < 8; i++) {
matrix.setRow(2, i, digits[tens][i]); // 3. Matris (Onlar basamağı)
matrix.setRow(3, i, digits[ones][i]); // 4. Matris (Birler basamağı)
}
}
// 📌 MAX7219 Ekranı Temizleme
void clearMatrix() {
for (int i = 0; i < 4; i++) {
matrix.clearDisplay(i);
}
}
Bu mesaja eklenen dosyaları görüntülemek için gerekli izinlere sahip değilsiniz.
- Uğur
- Mesaj Panosu Yöneticisi
- Mesajlar: 9507
- Kayıt: 06 Mar 2018, 10:37
- Konum: İstanbul
- İletişim:
- Durum: Çevrimdışı
Re: ardinyo ile dvp 14ss2 haberlesme
X0 ile D0 içeriğini gönderiyor. Bunu X0 yükselen kenarında yapıyor. X0 yerine 2 yerdede M1013 yazarsanız D0 içeriğini saniyede bir gönderir.
Bu mesaja eklenen dosyaları görüntülemek için gerekli izinlere sahip değilsiniz.
Uğur Birdal - Technical Support Team Manager - DELTA Electronics Turkiye
Bildirimler İçin Whatsapp Kanalımıza Katılın
Whatsapp Kanal
https://www.linkedin.com/in/ugurbirdal
Bildirimler İçin Whatsapp Kanalımıza Katılın
Whatsapp Kanal
https://www.linkedin.com/in/ugurbirdal
- t-a-n-e-r
- Mesajlar: 20
- Kayıt: 16 Şub 2022, 15:26
- İletişim:
- Durum: Çevrimdışı
Re: ardinyo ile dvp 14ss2 haberlesme
ugur bey yardımlarınız ıcın cok tesekkur ederım. şimdi progamı counter ıle sayma ıslemıne donusturerek en son halı ıle paylasıcagım umarım baska arkadaslarında ısıne yarıyacaktır.
iyi çalışmalar dilerim
iyi çalışmalar dilerim