RS232

Kullanıcı avatarı
nebusta
Mesajlar: 90
Kayıt: 16 May 2018, 09:43
İletişim:
Durum: Çevrimdışı

RS232

Mesaj gönderen nebusta »

İyi günlere

Ekranım Dop107EV Plc ise SV2,
Keyence Sensör ile RS232 üzerinden haberleşmem gerekiyor. COM1 poru üzerinden yapacağımız haberleşmede veri almak ve göndermek için bir örnek verebilir misiniz sensörün manualini ekte paylaştım?
Daha önce TM-3000 ile yapılmaya çalışılmış ama buradaki komutların ne olduğunu hakim olmadığımdan hangisini değiştirmem gerekiyor bilemiyorum.

$0 = INITCOM(0, 0, 1, 0, 0, 6, 0)
SELECTCOM(0)
FILLASC($200, "MA")
$201 = 0D0DH
$10 = PUTCHARS($200, 4, 300)
$30 = GETCHARS($100, 50, 500)


Şimdiden teşekkür eder iyi çalışmamalar dilerim.
Bu mesaja eklenen dosyaları görüntülemek için gerekli izinlere sahip değilsiniz.
Kullanıcı avatarı
Uğur
Mesaj Panosu Yöneticisi
Mesajlar: 8888
Kayıt: 06 Mar 2018, 10:37
Konum: İstanbul
İletişim:
Durum: Çevrimdışı

Re: RS232

Mesaj gönderen Uğur »

Aşağıdaki açıklamaya çalıştığım şekilde sensörün gereksinimi olan değişiklikleri yaparak adaptasyonunu yapabilirsiniz.


$0 = INITCOM(0, 0, 1, 0, 0, 6, 0) ---> COM1 portu 9600-8-None-1 olarak ayarlanır (makro sihirbazında açtığınızda karşılığı ayarlanacaktır)
SELECTCOM(0) ---> Haberleşme için COM1 portu seçilir
FILLASC($200, "MA") ---> $200 den itibaren ASCII olarak MA karakteri yazılır (Bu sensörün veri göndermesi için beklediği karakter olması sebebiyle)
$201 = 0D0DH ---> $200 e MA yazıldıktan sonra verinin sonuna enter satırbaşınının karşılığı olan 0D0A eklenir
$10 = PUTCHARS($200, 4, 300) ---> Tüm hazırlık yapıldıktan sonra bu 4 byte 2 word veri COM1 portundan gönderilir
$30 = GETCHARS($100, 50, 500) ---> Gönderdiğimiz yukarıdaki sorguya sensörden gelen cevap $100 den itibaren datalara yazılı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ı
nebusta
Mesajlar: 90
Kayıt: 16 May 2018, 09:43
İletişim:
Durum: Çevrimdışı

Re: RS232

Mesaj gönderen nebusta »

Teşekkürler Uğur bey,

$0, $10, $30 atamalarının bir anlamı nedir yani onlardan herhangi bir veriyi kontrol edebilir miyim ? Birde kırmızı ile işaretlediğim 300 ve 500 anlamı nedir?

$0= INITCOM(0, 0, 1, 0, 0, 6, 0)
FILLASC($200, "MA")
$10 = PUTCHARS($200, 4, 300)
$30 = GETCHARS($100, 50, 500)
Kullanıcı avatarı
Uğur
Mesaj Panosu Yöneticisi
Mesajlar: 8888
Kayıt: 06 Mar 2018, 10:37
Konum: İstanbul
İletişim:
Durum: Çevrimdışı

Re: RS232

Mesaj gönderen Uğur »

Evet komutun sonucuna dair 0 yada 1 şeklinde değer üretirler genelde.
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ı
nebusta
Mesajlar: 90
Kayıt: 16 May 2018, 09:43
İletişim:
Durum: Çevrimdışı

Re: RS232

Mesaj gönderen nebusta »

iyi günler

örnekteki komut kümesini yazdığım zaman anlamsız cevaplar geliyor nedeni ne olabilir ?
Bu mesaja eklenen dosyaları görüntülemek için gerekli izinlere sahip değilsiniz.
Kullanıcı avatarı
Uğur
Mesaj Panosu Yöneticisi
Mesajlar: 8888
Kayıt: 06 Mar 2018, 10:37
Konum: İstanbul
İletişim:
Durum: Çevrimdışı

Re: RS232

Mesaj gönderen Uğur »

Burada çalışma şekli uyumsuzluğuda olabilir. Yani cihaz sizden komut beklemeden sürekli ver basma modunda olabilir ve sizde o an komut gönderdiğinizde veriyi bozuyor olabilirsiniz. Protokol ve haberleşme hızı ile alakalı uyumsuzluk olabilir buda anlamsız karakterleri ortaya çıkarı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ı
nebusta
Mesajlar: 90
Kayıt: 16 May 2018, 09:43
İletişim:
Durum: Çevrimdışı

Re: RS232

Mesaj gönderen nebusta »

İyi günler

farklı tetiklemer ile farklı komutlar göndermek istiyorum.
Her tetikleme durumunda $0 = INITCOM(0, 0, 1, 0, 0, 6, 0), SELECTCOM(0) yazmalımıyım. Birde her farklı komutta farklı adresler mi kullanmalımıyım ? örneğin buradaki kırmızı adresler. FILLASC($200, "S0") $201 = 0D0DH $10 = PUTCHARS($200, 4, 300) $30 = GETCHARS($100, 50, 500)
Örnek olarak $5 tetiklenince "DC,C" biginisini
$6 tetiklenince "S2" bilgisini
$7 tetiklenince "M11110000"
bilgisini gönderen programı paylaşabilir misiniz?

Şimdiden teşekkürler...
Kullanıcı avatarı
Uğur
Mesaj Panosu Yöneticisi
Mesajlar: 8888
Kayıt: 06 Mar 2018, 10:37
Konum: İstanbul
İletişim:
Durum: Çevrimdışı

Re: RS232

Mesaj gönderen Uğur »

Hangi komutun önce verileceği bilinmiyorsa INITCOM her zaman olmalıdır. Bu makroları ayrı ayrı butonlara ON makroda yazarak sadece içerisindeki değişkenleri değiştirip gerçekleştirebilirsiniz.
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ı
nebusta
Mesajlar: 90
Kayıt: 16 May 2018, 09:43
İletişim:
Durum: Çevrimdışı

Re: RS232

Mesaj gönderen nebusta »

Dediğiniz gibi adresleri değiştirerek bu şekilde denedim komutun uzunluğuyla alakalı hata geliyor. burada $300 den başlayarak kaçıncı registera kadar dolduruyor. Yani $301 de mi olmalı sonlandırma komutu ?

$0 = INITCOM(0, 0, 1, 0, 0, 6, 0)
SELECTCOM(0)
FILLASC($300, "M11110000")
$301 = 0D0DH
$15 = PUTCHARS($300, 4, 300)
$35 = GETCHARS($150, 50, 500)
Kullanıcı avatarı
Uğur
Mesaj Panosu Yöneticisi
Mesajlar: 8888
Kayıt: 06 Mar 2018, 10:37
Konum: İstanbul
İletişim:
Durum: Çevrimdışı

Re: RS232

Mesaj gönderen Uğur »

M11110000

Her 2 karekter bir word işgal eder.

$300 = M1
$301 = 11
$302 = 10
$303 = 00
$304 = 0
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
Cevapla

“HMI Forum” sayfasına dön