yeris Oluşturuldu: 31 Ağustos, 2020 Share Oluşturuldu: 31 Ağustos, 2020 Merhaba , Modbus pool'dan gelen double verisini PLC'den okuyamadım. Yardımcı olur musunuz ? Alıntı Yorum bağlantısı Sitelerde Paylaş More sharing options...
Emre 1 Eylül, 2020 gönderildi Share 1 Eylül, 2020 gönderildi Merhabalar; 1. PLC'den Modbus Master kısmını aktif edin. 2. Haberleştiğiniz cihazın haberleşme ayarlarını doğru girdiğinizden emin olun.(Baudrate,Databit vs.) 3. Modbus Pool'dan okuduğunuz değere 40001 ekleyin. (Örn: Register adresinizin Decimal değeri 210 ise PLC programında 40211 yazmalısınız.) 4. Cihazınızın ID değerinin PLC ile uyumlu olduğuna emin olun. 5. PLC üzerinde okuduğunuz Değişken ismini belirleyin. İyi Çalışmalar Kolay Gelsin Alıntı Yorum bağlantısı Sitelerde Paylaş More sharing options...
yeris 1 Eylül, 2020 gönderildi Yazar Share 1 Eylül, 2020 gönderildi Merhaba Emre Bey , Okumaya çalıştığım adresler. Alıntı Yorum bağlantısı Sitelerde Paylaş More sharing options...
Catutigernos 4 Eylül, 2020 gönderildi Share 4 Eylül, 2020 gönderildi Merhaba, Değer mi okuyamıyorsunuz yoksa hatalı değer mi okuyorsunuz? Alıntı Yorum bağlantısı Sitelerde Paylaş More sharing options...
yeris 8 Eylül, 2020 gönderildi Yazar Share 8 Eylül, 2020 gönderildi Merhaba, Okumak istediğim adresler 30002 , 30008 , 30012. 30008 i okumak için double word seçtim fakat integer olarak görünüyor. (Sorunum bu olabilir) Aldığım değerler sayaç değerlerini karşılamıyor. örneğin 4824.539 gibi bir değere ulaşmam gerekiyor. Teşekkürler Alıntı Yorum bağlantısı Sitelerde Paylaş More sharing options...
Catutigernos 9 Eylül, 2020 gönderildi Share 9 Eylül, 2020 gönderildi Merhaba, ModbusPoll için Double BADCFEHG seçerseniz sorununuz çözülecektir. K30008 ismi verdiğiniz yerler veri durumunu gösterir. Veri okundu mu, timeout hatası ya da crc hatası olup olmadığını yani kısacası veri düzgün bir şekilde okundu mu okunmadı mı size bunu söyler. PLC adresi ise o verilerin yani 30008 olarak eklediğiniz registerın PLC'deki adress etiketidir. yani pv2_4 isimli etiketi kullanmanız lazım, eğer gene integer sorunu yaşıyorsanız ki yaşayacaksınız, Double Word olarak aldığınız değeri kendi oluşturduğunuz Real bir registera atarsanız otomatik 4 bytelık ondalıklı sayıya(Float)'a çevirecektir. Alıntı Yorum bağlantısı Sitelerde Paylaş More sharing options...
yeris 21 Eylül, 2020 gönderildi Yazar Share 21 Eylül, 2020 gönderildi Merhaba , S1,S2,S3,S4 değerlerine ulaştım. S1,S2,S3,S4 değerlerini birleştirip double'a nasıl çevirebilirim. Yardımcı olur musunuz ? Alıntı Yorum bağlantısı Sitelerde Paylaş More sharing options...
Catutigernos 22 Eylül, 2020 gönderildi Share 22 Eylül, 2020 gönderildi yeris, 21.09.2020 - 14:30 yazdı: Merhaba , S1,S2,S3,S4 değerlerine ulaştım. S1,S2,S3,S4 değerlerini birleştirip double'a nasıl çevirebilirim. Yardımcı olur musunuz ? Birleştirmekten kastınız tam olarak nedir? Her bir değişken word yani iki bytetan oluşuyorsa 4 değişken 8 byte yapar. Double değişken tipi 8 bytettır ama plc de sadece float yani 4 bytelık real sayı tanımlayabilirsiniz. Tam olarak yapmaya çalıştığınızı anlatırsanız belki daha net bir cevap verebilirim. Alıntı Yorum bağlantısı Sitelerde Paylaş More sharing options...
yeris 22 Eylül, 2020 gönderildi Yazar Share 22 Eylül, 2020 gönderildi Tam olarak yapmaya çalıştığım şey 4943,530 değerine ulaşmak. Float , int , long değerlerine bir şekilde ulaştım. fakat double olarak okuyamadım. Alıntı Yorum bağlantısı Sitelerde Paylaş More sharing options...
Catutigernos 22 Eylül, 2020 gönderildi Share 22 Eylül, 2020 gönderildi yeris, 26 dakika önce yazdı: Tam olarak yapmaya çalıştığım şey 4943,530 değerine ulaşmak. Float , int , long değerlerine bir şekilde ulaştım. fakat double olarak okuyamadım. PLC tarafında double olarak yapamazsınız, double sayının bytetan çevrilmesi ile float'un byte'dan çevrilmesi farklı bir hesaplama gerektirir. PLC 'de sadece 4 byte'lık bir float değişken tanımlayabilirsiniz ki ulaşmaya çalıştığınız sayı float olarak yani 4 byte ile gösterilebilecek bir sayı ulaşmak istediğiniz değere byteları yan yana koyarak mı yoksa matematiksel hesaplama ile mi erişmek istiyorsunuz yani önceki sorum hala geçerli Birleştirmekten kastınız tam olarak nedir? matematiksel hesaplama ise her bir 2 bytelık ya da 4 bytelık değişkeni real(float) bir registera atıp ordan float olarak kullanabilirsiniz. Otomatik çevirme yapmış olursunuz ya da c makro yazıp deneyebilirsiniz. Tam olarak yapmaya çalıştığınızı hala anlamadım açıkçası o yüzden sadece fikir yürütüyorum. Alıntı Yorum bağlantısı Sitelerde Paylaş More sharing options...