RS232
- nebusta
- Mesajlar: 90
- Kayıt: 16 May 2018, 09:43
- İletişim:
- Durum: Çevrimdışı
RS232
İ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.
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.
- Uğur
- Mesaj Panosu Yöneticisi
- Mesajlar: 8888
- Kayıt: 06 Mar 2018, 10:37
- Konum: İstanbul
- İletişim:
- Durum: Çevrimdışı
Re: RS232
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.
$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
Bildirimler İçin Whatsapp Kanalımıza Katılın
Whatsapp Kanal
https://www.linkedin.com/in/ugurbirdal
- nebusta
- Mesajlar: 90
- Kayıt: 16 May 2018, 09:43
- İletişim:
- Durum: Çevrimdışı
Re: RS232
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)
$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)
- Uğur
- Mesaj Panosu Yöneticisi
- Mesajlar: 8888
- Kayıt: 06 Mar 2018, 10:37
- Konum: İstanbul
- İletişim:
- Durum: Çevrimdışı
Re: RS232
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
Bildirimler İçin Whatsapp Kanalımıza Katılın
Whatsapp Kanal
https://www.linkedin.com/in/ugurbirdal
- Uğur
- Mesaj Panosu Yöneticisi
- Mesajlar: 8888
- Kayıt: 06 Mar 2018, 10:37
- Konum: İstanbul
- İletişim:
- Durum: Çevrimdışı
Re: RS232
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
Bildirimler İçin Whatsapp Kanalımıza Katılın
Whatsapp Kanal
https://www.linkedin.com/in/ugurbirdal
- nebusta
- Mesajlar: 90
- Kayıt: 16 May 2018, 09:43
- İletişim:
- Durum: Çevrimdışı
Re: RS232
İ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...
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...
- Uğur
- Mesaj Panosu Yöneticisi
- Mesajlar: 8888
- Kayıt: 06 Mar 2018, 10:37
- Konum: İstanbul
- İletişim:
- Durum: Çevrimdışı
Re: RS232
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
Bildirimler İçin Whatsapp Kanalımıza Katılın
Whatsapp Kanal
https://www.linkedin.com/in/ugurbirdal
- nebusta
- Mesajlar: 90
- Kayıt: 16 May 2018, 09:43
- İletişim:
- Durum: Çevrimdışı
Re: RS232
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)
$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)
- Uğur
- Mesaj Panosu Yöneticisi
- Mesajlar: 8888
- Kayıt: 06 Mar 2018, 10:37
- Konum: İstanbul
- İletişim:
- Durum: Çevrimdışı
Re: RS232
M11110000
Her 2 karekter bir word işgal eder.
$300 = M1
$301 = 11
$302 = 10
$303 = 00
$304 = 0
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
Bildirimler İçin Whatsapp Kanalımıza Katılın
Whatsapp Kanal
https://www.linkedin.com/in/ugurbirdal