Ö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

DOP-107EV

Kullanıcı avatarı
okannet
Mesajlar: 12
Kayıt: 09 Ara 2019, 16:43
İletişim:
Durum: Çevrimdışı

DOP-107EV

Mesaj gönderen okannet »

DOP-107EV serisi ekran ile RS232 üzerinden bilgi gönderen bir tartıyı okumak ve içindeki bilgiyi çekmek istiyorum. Tartı bilgisini PC ile okuduğumda aşağıdaki gibi bir bilgi geliyor.
Ancak bunu AS228T plc ile ya da hmi ile okumak için uygun bir örnek bulamadım. Amacım aşağıda gelen bilgi içindeki 7.002 agırlık değerini alıp bir karşılaştırma işlemine tabi tutmak.
Bu işlemi gerçekleştirebileceğim bir örnek yapmanız mümkün mü?
Gelen Bilgi: SUI 7.002 g
Açıklaması (SUI den sonra 7 boşluk-7.002-1 boşluk-g-2 boşluk-Enter)

Bu işlem için ekranın Initial makrosuna aşağıdaki kodları yazdım:

Kod: Tümünü seç

$40 = INITCOM(0, 0, 0, 0, 0, 6, 0)
SELECTCOM(0)
STATIONON($0, $1)
Backround makroya da aşağıdaki kodu yazdım ve Text elemanı üzerinden bu veriyi görmeye çalışıyorum ancak hiç bir tepki alamıyorum.

Kod: Tümünü seç

$41=GETCHARS($50,20,800)
Kullanıcı avatarı
Turhan
Mesajlar: 8440
Kayıt: 07 Mar 2018, 16:06
Konum: İstanbul
İletişim:
Durum: Çevrimdışı

Re: DOP-107EV

Mesaj gönderen Turhan »

Merhaba,

Aşağıdaki komut satırları 7,None,1,9600 ASCII haberleşme protokolü ile COM-1 arabirim üzerinden 800ms. zaman aşımı ile 20 adet karakteri okumaktadır. Okuma işlemi başarlılı sonuçlanır ise $41 datasının içeriği 1 olacaktır.
Okunacak karakter uzunluğu veya protokol farklı ise veriyi okuyamayabilirsiniz. Bu ayarlar ile birlikte bağlantıyıda gözden geçirerek yeninden haberleşmeyi deneyiniz.

#COM-1 7,N,1,9600
$40 = INITCOM(0, 0, 0, 0, 0, 6, 0)

#COMPORT SEÇİMİ (COM-1)
SELECTCOM(0)

#KARAKTER ALMA 20 KARAKTER 800ms ZAMAN AŞIMI İLE $50 DATASINA KAYDOLUR
$41=GETCHARS($50,20,800)

#COM-1 ALICI BUFFER'I TEMİZLE
CLEARCOMBUFFER(0, 0)

END
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ı
okannet
Mesajlar: 12
Kayıt: 09 Ara 2019, 16:43
İletişim:
Durum: Çevrimdışı

Re: DOP-107EV

Mesaj gönderen okannet »

Merhaba;
Önerdiğiniz kodu ekteki gibi denedim ancak yine bir sonuç alamadım. Veri sayısı farklıdır diye 15 ile 20 arasındaki tüm ihtimalleri de denedim.
Protokolü PC ile haberleştirerek teyit ettim, birebir aynı. Acaba başka bir ayar mı yapmam gerekiyor.
Alternatif olarak bilgiyi PLC üzerinden okuyup ethernet üzerinden ekrana da gönderebilirim ancak bunu nasıl yapacağımı da bilmiyorum. B planı olarak bu konuda fikir verebilirseniz çok memnun olurum.
Bu mesaja eklenen dosyaları görüntülemek için gerekli izinlere sahip değilsiniz.
En son okannet tarafından 07 Şub 2020, 10:51 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
Kullanıcı avatarı
Turhan
Mesajlar: 8440
Kayıt: 07 Mar 2018, 16:06
Konum: İstanbul
İletişim:
Durum: Çevrimdışı

Re: DOP-107EV

Mesaj gönderen Turhan »

PC ile okududuğunuz karakter dizisinin var ise Hex yada ASCII dizilimine ait ekran görüntüsünü mesaja ekleyebilirmisiniz?
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ı
okannet
Mesajlar: 12
Kayıt: 09 Ara 2019, 16:43
İletişim:
Durum: Çevrimdışı

Re: DOP-107EV

Mesaj gönderen okannet »

Ekran görüntülerini önceki mesaja ekledim.
DOP ekrandan PC ye veri göndermeye çalıştım onu da başaramadım. Yapmam gereken bir ayarı mı yapmıyorum acaba. Ekranın sistem menüsünden de gerekli protokolü ayarladım.
Kullanıcı avatarı
Turhan
Mesajlar: 8440
Kayıt: 07 Mar 2018, 16:06
Konum: İstanbul
İletişim:
Durum: Çevrimdışı

Re: DOP-107EV

Mesaj gönderen Turhan »

Merhaba,

Verdiğiniz bilgilere göre 7,EVEN,1,9600 ASCII ve HMI'nin COM-2 485 arabirimi ile bir test çalışması gerçekleştirdim. PLC tarafından "SUI______35.340_g___" verisini 500ms. periyodlar halinde gönderirken HMI tarfından da bu verileri okumaya çalıştım. (Boşluk karakteri yerine _ karakteri kullandım.)

PLC Tarafından gönderilen veri: "SUI______35.340_g___"

SUI (3) + Boşluk (6) + 35.340 (6) + Boşluk (1) + g (1) + Boşluk (2) + tanımsız karakter (1) = 20 karakter dizisi (+2 gönderme komutunu da eklerseniz 22 karakterlik dizi oluşacaktır.)

HMI makro komutları:

$0 = INITCOM(1, 2, 0, 2, 0, 6, 0)
SELECTCOM(1)
$10 = GETCHARS($100, 22, 400)
IF 1 == $10
BMOV($200, $100, 20)
CLEARCOMBUFFER(1, 1)
$10 = 0
$20 = $20 + 1
ENDIF
END


Haberleşme portu ve Protokol ayarlarını haberleşeceğiniz cihaza göre konfigüre ederek aynı komutları kullanınız. GETCHARS makro komutunda okunacak karakter sayısını karakter dizisi +2 olarak revize etmeyi unutmayınız.

Karakter_Okuma_.jpg
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ı
okannet
Mesajlar: 12
Kayıt: 09 Ara 2019, 16:43
İletişim:
Durum: Çevrimdışı

Re: DOP-107EV

Mesaj gönderen okannet »

Desteğiniz için teşekkür ederim. Sonunda ekranda veriyi gördüm.
Ancak ilk veriyi doğru olarak aldıktan sonra yeni veri geldiğinde karakter gostergesindeki bilgi değişmiyor ama doğru veri geldi sayacı artıyor. Bunu nasıl düzeltebilirim.
Kullanıcı avatarı
Turhan
Mesajlar: 8440
Kayıt: 07 Mar 2018, 16:06
Konum: İstanbul
İletişim:
Durum: Çevrimdışı

Re: DOP-107EV

Mesaj gönderen Turhan »

Birinci veriyi okuduktan sonra CLEARCOMBUFFER komutu ile alıcı bufferını temizlemelisiniz. COM-1 portuna ait alıcı buffer'ı temizlemek için yukarıdaki makro komutundan farklı olarak CLEARCOMBUFFER(0, 1) komutunu kullanmalısınız. Komutu bu şekilde mi kullandınız?

Clearcombuffer.jpg
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ı
okannet
Mesajlar: 12
Kayıt: 09 Ara 2019, 16:43
İletişim:
Durum: Çevrimdışı

Re: DOP-107EV

Mesaj gönderen okannet »

CLEARCOMBUFFER(0, 0) ile bufferı temizleyince verileri de güncellemeye başladı. Son bir problem kaldı. Ekrandaki veriler sağa sola kayıyor. Sanırım adres dizisinin içindeki veriler de kayıyor.
Gelen bilgi içinden ağırlığı (örneğin 160.183 ya da 68.157) çekerek bunu word ya da float tipine dönüştürmem ve birtakım karşılaştırma işlemleri yapmam gerekiyor.
Ekte görülen programda Seçilen Veri kısmındaki veri de sürekli değişiyor dolayısıyla ascii verileri sayıya çeviremiyorum. Makro içinde yazdığım kodlar aşağıdadır.

Kod: Tümünü seç

$0 = INITCOM(0, 0, 1, 0, 0, 6, 0)
SELECTCOM(0)
$10 = GETCHARS($100, 21, 400)
IF 1 == $10
#BMOV($200, $100, 19)
BMOV($200, $100, 19)
BMOV($600, $208, 7)
$410 = TOHEX($600)
$411 = TOHEX($604)
$500 = BIN($410) (DW)
CLEARCOMBUFFER(0, 0)
$10 = 0
$20 = $20 + 1
ENDIF
END
Bu mesaja eklenen dosyaları görüntülemek için gerekli izinlere sahip değilsiniz.
Kullanıcı avatarı
Turhan
Mesajlar: 8440
Kayıt: 07 Mar 2018, 16:06
Konum: İstanbul
İletişim:
Durum: Çevrimdışı

Re: DOP-107EV

Mesaj gönderen Turhan »

Verilerin sağa yada sola kayması muhtemelen okunan verinin karakter uzunluğu ile alakalı bir durum.

Okunan ağırlık değeri 160.183 için 7 karakter okunurken, 68.157 için 5 karakter okunmakta. Okunan veri 68.157 değil 068.157 biçİminde gelseydi okunan verinin boyutu sabit olacağı için bu karakter dizisini Floating Point tabana çevirmek daha kolay olacaktı.

Terazi tarafından gönderilen "SUI______35.340_g___" verisinde SUI karakterinden sonra sabit 6 adet boşluk karakteri mi bulunmakta? Farklı ağırlıklarda okunan veriler için için bunu tespit edebilirmisiniz (Örneğin: 1.123g / 10,123g / 100.123g için)

SUI (3) + Boşluk (6) + 35.340 (6) + Boşluk (1) + g (1) + Boşluk (2) + tanımsız karakter (1) = 20 karakter dizisi
DELTA Electronics Turkey

Forum mesajlarınız, kullandığınız ürünlere ait tam model kodları ve detaylı teknik açıklamalar içermelidir.
Cevapla

“HMI Forum” sayfasına dön