Delta HMI üzerinden VESC bilgilerini UART dan okuma

mrkulla

Üye
Katılım
4 Ocak 2024
Mesajlar
1
Puanları
1
Yaş
34
Selam, elimde Delta HMI 103BQ var ve buradan VESC 75/300 sürücüsündeki verileri UART üzerinden okumak istiyorum ancak buradaki işlemler tam olarak neler bilmediğim için tıkandım.

Daha öncesinde bu VESC den veri okumuştum ancak bir mikrodenetleyici ile yapmıştım bu işlemi, şimdi bu ekran üzerinden nasıl okuyabilirim yardımcı olabilir misiniz?

Önce VESC ye 6 bit yollamamız lazım
yollanması gereken bitler bunlar.
2 1 4 64 132 3
Daha sonrasında bana 59 byte lık bir ver paketi yolluyor bunun içinde voltaj bilgisi, amper bilgisi gibi bilgiler var.

Sorularım tam olarak şunlar:
1-) Bu bitleri VESC ye UART üzerinden nasıl yollayabilirim?
2-) Bana döndüğü verileri nasıl ekranda gösterebilirim?


Şuanda Delta HMI daki LUA üzerinden belirli bir aşamaya kadar geldim

-- Add initial code here (run once) com_num = 1 -- COM1 interface = "RS232" databits = 8 parity = "EVEN" stopbits = 1 baudrate = 19200 flowcontrol = "OFF" ret = com.Open(com_num, interface, databits, parity, stopbits, baudrate, flowcontrol) function equal (val_1,val_2) if val_1 == val_2 then return 1 else return 0 end end while true do len = 6 -- 6 bytes timeout = 1000 -- ms bytes_read, buffer = com.ReadChars(com_num, len, timeout) if ret ~= 1 then value_string_1 = "Bulunamadi" mem.inter.WriteAscii(51,value_string_1,string.len(value_string_1)) else value_string_2 = "Bulundu" mem.inter.WriteAscii(51,value_string_2,string.len(value_string_2)) end if bytes_read == 0 then value_string_3 = "Okunamadi" mem.inter.WriteAscii(30,value_string_3,string.len(value_string_3)) else if bytes_read ~= 0 then value_string_4= "Okundu" mem.inter.WriteAscii(30,value_string_4,string.len(value_string_4)) end end check_1 = mem.inter.Read(40) check_2 = mem.inter.Read(41) isEqual = equal(check_1, check_1) if equal(check_1, check_2) == 1 then mem.inter.Write(22, 1) else if equal(check_1, check_1) == 1 then mem.inter.Write(22, 0) end end value_bool=true value_integer=11 value_double = 13.6 value_string = "test123" mem.inter.Read() v1 = mem.inter.Read(21) v2 = v1 + 1 mem.inter.Write(20,value_integer,string.len(value_integer)) mem.inter.Write(21, v2) end


Ancak işe yaramıyor.

Nasıl bir şey önerirsiniz?
 
Yazımızda endüstrinin can damarı sayılabilecek PLC’yi inceleyeceğiz.
KNX Standardı, küçük bir rezidansın içerisindeki aydınlatma, perde panjur, klima kontrolünden, Dünya’nın en büyük havalimanlarındaki aydınlatma otomasyonu gibi çözümler için tercih edilen bir Dünya standardıdır.

Forum istatistikleri

Konular
128,191
Mesajlar
915,734
Kullanıcılar
449,965
Son üye
Pentium55

Yeni konular

Geri
Üst