Delta ASDA A2 Servo sürücüde Modbus çoklu data gönderiminde hata

Başlatan Mucit23, 01 Ocak 2024, 15:29:57

Mucit23

Selamlar

Delta ASDA A2 Servo sürücüye modbus üzerinden bir takım işlemler yaptırıyorum. Bu sürücün 63 adet pozisyon hafıza değeri var. Bu hafıza değerleri 32 bitlik register'lardan oluşuyor. Her bir Register ardışık adreslerden oluştuğu için sıralı yazma yaparak en az 10 adet pozisyon registerini istediğim değerler ile doldurmak istiyorum.

Şöyle bir sorun yaşıyorum. Simplymodbus Sitesinde Modbus Fonksiyon 16'nın yapısına baktığımızda aşağıdaki gibi bir yapısı var.

Alıntı Yap11 10 0001 0002 04 000A 0102 C6F0

11: The Slave Address (11 hex = address17 )
10: The Function Code 16 (Preset Multiple Registers, 10 hex - 16 )
0001: The Data Address of the first register.
            ( 0001 hex = 1 , + 40001 offset = register #40002 )
0002: The number of registers to write
04: The number of data bytes to follow (2 registers x 2 bytes each = 4 bytes)
000A: The value to write to register 40002
0102: The value to write to register 40003
C6F0: The CRC (cyclic redundancy check) for error checking.

Ben buradaki kurallara uyarak 8 registerin verisini bu fonksiyon ile güncelleyebiliyorum. Fakat peş peşe yazmış olduğum register sayısı 9-10 veya daha fazla olduğunda sürücüden 0x04 Exception(Slave device failure) hatası alıyorum.

Haberleşme hızım 57600bps. Badurate Değerini 9600 yaptım hızı düşürdüm sorun yine aynı

Bu sorun neden olur anlayamıyorum. Sürücünün yapısı ile mi alakalı.

Okan AKÇA


Mucit23

Sürücü Modbus RTU da FC16 ile max 8 word yazmayı destekliyormuş. 9 olsa hata veriyor. Yapacağım birşey yok.

CAN Open haberleşmesinin daha hızlı olduğunu söylediler. Can Open'i PC tarafında uart gibi kullanabilir miyim?

Daha önce hiç kullanmadım. USB arayüzü nasıl olması gerekiyor?

fide



USB can adaptör kullanabilirsiniz. Can modbustan çok farklı bir yapıya sahip.
Her birimiz, geride bıraktığımız eserler kadar ölümsüzüz. Evlat gibi, talebe gibi, icatlar gibi...   http://fidenetgaraj.blogspot.com

Mucit23

Alıntı yapılan: fide - 02 Ocak 2024, 22:02:28(Resim gizlendi görmek için tıklayın.)

USB can adaptör kullanabilirsiniz. Can modbustan çok farklı bir yapıya sahip.

Hocam bu tarz modülleri kendi sistemimize nasıl gömeriz? Örneğin Daha önce Peak Systems'in PCAN USB analizatörünü kullanmıştım. Bu modülün kendi yazılımı vardı Fakat benim kendi yazmış olduğum C# uygulamasında kullanmam pek mümkün değildi.

Piyasada bolca USB CAN dönüştürücü var. Bunlar aynı comport kullanır gibi kendi uygulamama gömebilirmiyim?

fide

Elimde yok. Bu yüzden kullanımı hk bilgim yok ama alternatif yöntem olarak ara devre yapabilirsiniz.
Eğer STM32 de USB ve CAN-BUS yazacak bilginiz varsa USB-CanBus dönüştürücüyü kendiniz yazın. Bu sayede USB-HID gibi bir kütüphane ile donanıma erişme şansınız olur. Bu devrelerin illaki SDK sı vardır. Ona bakın alternatif olarak.
Her birimiz, geride bıraktığımız eserler kadar ölümsüzüz. Evlat gibi, talebe gibi, icatlar gibi...   http://fidenetgaraj.blogspot.com

triyak

Alıntı yapılan: Mucit23 - 03 Ocak 2024, 12:09:42Hocam bu tarz modülleri kendi sistemimize nasıl gömeriz? Örneğin Daha önce Peak Systems'in PCAN USB analizatörünü kullanmıştım. Bu modülün kendi yazılımı vardı Fakat benim kendi yazmış olduğum C# uygulamasında kullanmam pek mümkün değildi.

Piyasada bolca USB CAN dönüştürücü var. Bunlar aynı comport kullanır gibi kendi uygulamama gömebilirmiyim?

pcan uygulamaya gömülebiliyor diye biliyorum. Bu resimdekiler de pcan in çakması. Nette şema kod vs mevcut


Edit:
https://www.sonsivri.to/forum/index.php?topic=69028.0