Arkadaşlar iyi çalışmalar. bir projede CAS weight transmitter ile s7-1200 plcyi rs485 üzerinden haberleştirip veri okuyup veri yazmam gerekiyor. Siemens CM1241 modülü ile transmittere bağlandım. Tx ve Rx ışıkları turuncu şekilde yanıyor. Bunun için MB_COMM_LOAD ve MB_MASTER bağlantı proseslerini kullandım. fakat cihazdan bir türlü değer alamıyorum. aşağıdaki Status kodunu alıyorum. oluşturduğum data blokla ilgili sorun var ama çözemedim. ek olarak cihazın manualini de yüklüyorum. inceleyip bana yardımcı olabilecek bir arkadaş olursa minnettar olurum.
Değer okumayı başardım lakin nedense okuduğum tüm değerler 65539 sayısının katları şeklinde oluyor. ayrıca eksi ya da artı değer kavramı yok. mesela -4 de 262156 olarak gözüküyor 4 de 262156 olarak gözüküyor
Merhabalar
Hangi veriyi okuyorsunuz ekli manuel de modbus register verileri çoğu doubleword formatında siz kaç numaralı gegisterden okuma yapacaksınız,o frgistir çıkış formatına bakmak gerekebilir
Armendy Tekrar Merhabalar;
Eklediğin manuele göre 40010 registeri net ağırlık verisinin Hihg word kısmı 40011 ise low word kısmı siz bu ikisini beraber doubleword olarak 32 bit okumanız lazım. 40010 tek okursanız saçma bir değer alabilirsiniz.Cevap biraz gecikti forma ancak bakabildim,kusura bakmayın.
Armendy Tekrar Merhabalar;
Eklediğin manuele göre 40010 registeri net ağırlık verisinin Hihg word kısmı 40011 ise low word kısmı siz bu ikisini beraber doubleword olarak 32 bit okumanız lazım. 40010 tek okursanız saçma bir değer alabilirsiniz.Cevap biraz gecikti forma ancak bakabildim,kusura bakmayın.
Merhaba.Resimde görünün kısımda okuma işlemi yapılmaktadır.Pulse Elektroniğe ait transmitterdan bu şekilde ağırlık bilgisini okuyabiliyorum.Sizin işlemdeki sıkıntı okunacak adres sayısının yanlış girilmesi gibi duruyor.Okuyacağınız sayı DINT olması gerekiyor.Bu örnekteki gibi Data length değerini 6 yapabilirsiniz.Eksi değere geçtiğinizde okumanız için bu olmalı.Aksi takdirde eksi değer geldiğinde 65536 değeri okunur.DataLength değeri çok yüksek gibi duruyor. 16#8383 hatasıda yanlış adres veya data uzunluğunun hatalı olduğunu gösteriyor.Birde okuma işlemlerinde Req girişini sürekli aktif bırakmayınız.Ben işlem yaparken done ve error sinyallerini kullanıyorum.Okuma işlemi bitmeden tekrar okuma isteği yapıldığında modbus evap veremeyebilir.Aynı zamanda bir kaç cihaz ile haberleşeceksenizde bu yöntemi kullanmanızı tavsiye ederim.
İyi Akşamlar Armendy;
İlk mesajdapaylaştığınız program bloğuna göre 40008 başlayarak 22 word weri okumanız gerekmekte ve DB2 yazmaktasınız, DB2 de ilkk değişkenden itibaren 11 adet DW değişken tanımlarsanız,zaten pointer kullandığınız için DB2 deki ilk değişkenden itibaren 11 adet doubleword veriyi alırsınız.