ASDA-A2 RS232 İle Modbus Haberleşme

Cevapla
Kullanıcı avatarı
kucuked
Mesajlar: 2
Kayıt: 13 Ağu 2018, 21:33
İletişim:
Durum: Çevrimdışı

ASDA-A2 RS232 İle Modbus Haberleşme

Mesaj gönderen kucuked »

Merhaba,

Elimde ASDA-A2 servo sürücü var ve RS-232 üzerinden encoder okuma işlemi yapmak istiyorum. Forumdaki dökümanları inceleyerek CN3 konnektörüne FireWire kablo ile RS232 üzerinden haberleşebilmek için gerekli olan bağlantıları yaptım. (1- GND, 2-TX, 4-RX olacak şekilde). Karşılığındaki uçları FTDI (FT232-RL çipine sahip USB-RS232 çevirici) kartına bağlayarak USB üzerinden PC'den encoder okuma işlemini denedim, fakat başaramadım. Sürekli checksum hatası alıyorum.

Parametre ayarlarım şu şekildedir:
P3-01 : 5 = 115200 bps
P3-02 : 6 = 8,N,2 Modbus, RTU
P3-03 : 1
P3-04 : 0
P3-05 : 0
P3-06 : 0

Okuma yaptığım adres : 0x520 = P5-16 parametresi

Deneme için kullandığım python kodu:

Kod: Tümünü seç

import minimalmodbus
import serial
import time
import sys

servo_x_addr = int("0x71",0)

instrument = minimalmodbus.Instrument('COM7', servo_x_addr)

instrument.serial.baudrate = 115200
instrument.serial.bytesize = 8
instrument.serial.parity   = serial.PARITY_NONE
instrument.serial.stopbits = 2
instrument.serial.timeout  = 0.2
instrument.mode = minimalmodbus.MODE_RTU

while True:
	encoder_read = instrument.read_registers(int("0x520", 0), 2) # Registernumber, number of decimals
	encoder_val = encoder_read[1]   #HIGH BIT
	encoder_val <<= 16
	encoder_val |= encoder_read[0]  #LOW BIT
	print "Encoder: ", encoder_val
	time.sleep(2)
Hata ise şu şekilde:

Kod: Tümünü seç

Traceback (most recent call last):
  File "ppdeneme.py", line 18, in <module>
    encoder_read = instrument.read_registers(int("0x520", 0), 2) # Registernumber, number of decimals
  File "C:\Python27\lib\site-packages\minimalmodbus.py", line 498, in read_registers
    numberOfRegisters=numberOfRegisters, payloadformat='registers')
  File "C:\Python27\lib\site-packages\minimalmodbus.py", line 697, in _genericCommand
    payloadFromSlave = self._performCommand(functioncode, payloadToSlave)
  File "C:\Python27\lib\site-packages\minimalmodbus.py", line 798, in _performCommand
    payloadFromSlave = _extractPayload(response, self.address, self.mode, functioncode)
  File "C:\Python27\lib\site-packages\minimalmodbus.py", line 1075, in _extractPayload
    raise ValueError(text)
ValueError: Checksum error in rtu mode: '\x00\x00' instead of '\x1b\x00' . The response is: '\x00\x00\x00\x00\x00\x00\x00\x00\x00' (plain response: '\x00\x00\x00\x00\x00\x00\x00\x00\x00')
Kullanıcı avatarı
Uğur
Mesaj Panosu Yöneticisi
Mesajlar: 8885
Kayıt: 06 Mar 2018, 10:37
Konum: İstanbul
İletişim:
Durum: Çevrimiçi

Re: ASDA-A2 RS232 İle Modbus Haberleşme

Mesaj gönderen Uğur »

Encoder değerini okumak için 12H adresini 32 bit olarak okuyun. Haberleşme ayarı şuan için çok yüksek ön testlerde 9600 hızını kullanarak olumlu sonuç aldıktan sonra hız yükseltmeyi adım adım gerçekleştirin. Yüksek hız gürültüden daha fazla etkilenmeye neden olacaktır.
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
Kullanıcı avatarı
kucuked
Mesajlar: 2
Kayıt: 13 Ağu 2018, 21:33
İletişim:
Durum: Çevrimdışı

Re: ASDA-A2 RS232 İle Modbus Haberleşme

Mesaj gönderen kucuked »

Baudrate'i düşürünce problem çözüldü fakat 9600 hızı yaptıracağım işlemlerden dolayı yetersiz kalıyordu. Çıkabildiğim son hız 38400 oldu, ama bu da bazı problemlere yol açtı. Örneğin 500-600 okumadan sonra arada checksum hatası geliyor. Bu durumu düzeltmek için öneriniz var mıdır?
Kullanıcı avatarı
Uğur
Mesaj Panosu Yöneticisi
Mesajlar: 8885
Kayıt: 06 Mar 2018, 10:37
Konum: İstanbul
İletişim:
Durum: Çevrimiçi

Re: ASDA-A2 RS232 İle Modbus Haberleşme

Mesaj gönderen Uğur »

Bu durumda sonlandırma direnci 120 ohm direnç kullanın. Kabloyu blendajlayarak topraklayın. Oluşan gürültüyü hatta ulaşmadan toprağa akıtmanın yolunu aramalısınız.
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
Kullanıcı avatarı
mekatronikmuh
Mesajlar: 4
Kayıt: 29 Ara 2020, 07:46
İletişim:
Durum: Çevrimdışı

Re: ASDA-A2 RS232 İle Modbus Haberleşme

Mesaj gönderen mekatronikmuh »

Merhaba yukarıdaki örnekte olduğu gibi python kodunu yazdım. Modbus parametrelerini girdim(Baudrate:9600). Encoder değerini 12H adresinden 32 bit olarak okumaya çalışıyorum fakat aynı hatayı alıyorum.
Uğur yazdı: 20 Eyl 2018, 12:05 Encoder değerini okumak için 12H adresini 32 bit olarak okuyun. Haberleşme ayarı şuan için çok yüksek ön testlerde 9600 hızını kullanarak olumlu sonuç aldıktan sonra hız yükseltmeyi adım adım gerçekleştirin. Yüksek hız gürültüden daha fazla etkilenmeye neden olacaktır.
Kullanıcı avatarı
Turhan
Mesajlar: 7787
Kayıt: 07 Mar 2018, 16:06
Konum: İstanbul
İletişim:
Durum: Çevrimdışı

Re: ASDA-A2 RS232 İle Modbus Haberleşme

Mesaj gönderen Turhan »

Bir önceki mesajlaşmalarda sürücü ayarları RS232 arabirimi için örneklenmiştir. Belirtilmeyen 03-00 parametresi ise sürücü'nün istasyon numarasıdır. Varsayılan ayarlarda bu parametre 007F yani 127 numaralı istasyon numarasına sahiptir.

Bu ayarlarda belirtilen protokollerde sürücüye erişim sağlayabiliyor olmalısınız. Aksi bir durumda bağlantı hızınızı düşürerek haberleşmeyi deneyin ve fiziksel bağlantınızı mutlaka doğrulayınız.
(RX ve TX pinlerinin çapraz GND pinlerinin birebir bağlı olması gerekmektedir.)
.
Bu mesaja eklenen dosyaları görüntülemek için gerekli izinlere sahip değilsiniz.
DELTA Electronics Turkey

Forum mesajlarınız, kullandığınız ürünlere ait tam model kodları ve detaylı teknik açıklamalar içermelidir.
Kullanıcı avatarı
Raparn
Mesajlar: 2
Kayıt: 31 May 2020, 01:09
İletişim:
Durum: Çevrimdışı

Re: ASDA-A2 RS232 İle Modbus Haberleşme

Mesaj gönderen Raparn »

MERHABALAR ASDA A2 İLE DOP 107EV DAHILI POZISYONLAMA İÇİN RS232 PROTOKULUNDE NASIL BIR AYAR YAPMAM GEREKIYOR HMI ILE A2 SÜRÜCÜ ARASINDA BAGLANTI KURAMIYORUM
Kullanıcı avatarı
Turhan
Mesajlar: 7787
Kayıt: 07 Mar 2018, 16:06
Konum: İstanbul
İletişim:
Durum: Çevrimdışı

Re: ASDA-A2 RS232 İle Modbus Haberleşme

Mesaj gönderen Turhan »

Sürücü haberleşme ayarlarının aşağıdaki gibi olduğunu varsayarsak HMI haberleşme ayarları resimdeki gibi olması yeterlidir. (HMI yazma adresi P6-03 parametresine veri yazmak için örneklenmiştir.)

P3-00: 0001 (İstasyon Numarası)
P3-01: 0003 (38400 Bps)
P3-02: 0006 (8,N,2, RTU)
P3-05: 0000 (RS232 Haberleşme seçimi)

.
Bu mesaja eklenen dosyaları görüntülemek için gerekli izinlere sahip değilsiniz.
DELTA Electronics Turkey

Forum mesajlarınız, kullandığınız ürünlere ait tam model kodları ve detaylı teknik açıklamalar içermelidir.
Kullanıcı avatarı
Raparn
Mesajlar: 2
Kayıt: 31 May 2020, 01:09
İletişim:
Durum: Çevrimdışı

Re: ASDA-A2 RS232 İle Modbus Haberleşme

Mesaj gönderen Raparn »

Cevabiniz icin tesekkur ederim dediginiz gibi yaptim haberlesme kuruluyor birde dijital girisleri hmi uzerinden kontrol etmek icin neler yapmam gerekiyor ve adresleri nasil tanimlama yapabilirim
Cevapla

“Servo Forum” sayfasına dön