1. sayfa (Toplam 1 sayfa)

ASDA-A2 RS232 İle Modbus Haberleşme

Gönderilme zamanı: 20 Eyl 2018, 11:52
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')

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

Gönderilme zamanı: 20 Eyl 2018, 12:05
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.

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

Gönderilme zamanı: 20 Eyl 2018, 15:09
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?

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

Gönderilme zamanı: 20 Eyl 2018, 15:31
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.

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

Gönderilme zamanı: 31 Ara 2020, 11:24
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.

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

Gönderilme zamanı: 31 Ara 2020, 12:41
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.)
.

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

Gönderilme zamanı: 07 Oca 2021, 15:04
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

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

Gönderilme zamanı: 07 Oca 2021, 15:28
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)

.

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

Gönderilme zamanı: 09 Oca 2021, 14:13
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