1. sayfa (Toplam 1 sayfa)

Okunan Adresin Taşması

Gönderilme zamanı: 11 May 2019, 11:24
gönderen İlkerrr
Merhabalar herkese, pulse/dir 2 servoyu sv28 plc ile sürüyorum. D1336 D1338 datalarından servonun pulse çıkışını okuyor ardından bu değeri kendi katsayıma bölerek mevcut mm değerini elde ediyorum. 160-170 mm arasında okuduğum değer 32767 değerini geçiyor ve eksi değer olarak saymaya başlıyor. Özetle değer pozitif yönden taşıyor. Çalışma aralığım 300x350 mm aralığında olucak. Ben bu değeri nasıl 0-65536 arası tanımlayabilirim? Yardımcı olursanız çok sevinirim. Kolay gelsin.

Re: Okunan Adresin Taşması

Gönderilme zamanı: 13 May 2019, 09:28
gönderen Turhan
Pozisyon gösterge registeri olan D1336 ve D1338 dataları 32Bit'lik veri alanları olduğu için kullanacağınız aritmatik işlemler de 32Bit tabanda olması gerekemektedir. 16Bit işlem yapmanız durumunda belirttiğiniz sorunları yaşarsınız.

--------------------|DIV D1336 K5 D0| 16Bit bölme komutu

--------------------|DDIV D1336 K5 D0| 32Bit bölme komutu

Re: Okunan Adresin Taşması

Gönderilme zamanı: 14 May 2019, 08:21
gönderen Ciseotomasyon
Hocam plc register datalarının kendine özel 16 bit 32 bit diye özellikleri varmı yok sa plc tarafında bizmi belirliyoruz yazarken

Re: Okunan Adresin Taşması

Gönderilme zamanı: 14 May 2019, 09:01
gönderen Turhan
Aksi bir durum belirtilmedikçe adresler 16Bitlik işaretli decimal tabandan oluşmaktadır. Fakat kullandığınız komut yapısı Doubleword tabanında ise sayı biçmi otomatik olarak 32Bit işaretli desimal olmaktadır ve data alanı olarak komut içerisinde belirttiğiniz data adresi bir sonraki data registeri ile beraber kullanılmaktadır.