> For the complete documentation index, see [llms.txt](https://docs.augelab.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.augelab.com/turkish/fonksiyon-bloklari/blocks-reference/input-output/communication/siemens-s7-read.md).

# Siemens S7 Read

Bu fonksiyon bloğu, bir Siemens S7 PLC veritabanı (DB) içinden veri okur ve senaryonuzun diğer yerlerinde kullanılmak üzere değeri çıktılar. Yaygın PLC veri tiplerini destekler ve DB numarası, byte adresi ve veri tipini tanımlamak için basit bir kullanıcı arayüzü sunar. Okumaları tetiklemek için `Enable` girişini kullanın ve bağlantı nesnesi olarak bir `S7 Client` sağlayın (genellikle bir `Siemens S7 Connect` bloğu tarafından üretilir).

## 📥 Girdiler

* `Enable` — Okumayı açıp kapamak için kullanılan giriş soketi. Okumaların ne zaman yapılacağını kontrol etmek için boolean bir sinyal sağlayın (ör. bir `Logic Input` bloğundan).
* `S7 Client` — Bir client/bağlantı nesnesi kabul eden giriş soketi (genellikle `Siemens S7 Connect` bloğu tarafından sağlanır). Bu, bloğa hangi PLC/servere bağlanacağını bildirir.

## 📤 Çıktılar

* `Data` — PLC'den okunan değeri sağlayan çıkış soketi. Dönen değer, seçilen veri tipine göre değişir (sayı, string, boolean listesi vb.).

## 🕹️ Kontroller

* `DB Number` — Okunacak DB (data block) numarasını girin.
* `DB Byte Address` — İstenen değerin başladığı DB içindeki byte offset'ini girin.
* `DB Data Type` — Okunacak veri tipini seçmek için açılır menü (örnekler: Boolean, Int, DInt, Real, String, Word, DWord, Time, ...).
* `Connection Type` — Bağlantı modunu seçmek için açılır menü (örnekler: Sync veya Async). Bu, bloğun PLC ile diğer bloklarla paylaşım şeklini kontrol eder.

## ⚙️ Nasıl çalışır

* `Enable` girişi aktif olduğunda, blok yapılandırılmış `DB Number` ve `DB Byte Address` konumundan seçilen `DB Data Type` ile değeri okur ve hemen `Data` çıkışına verir.
* Blokun girişine bağlı bir `S7 Client` olması beklenir. Client bağlı değilse blok bir bağlantı hatası raporlar ve veri çıkışı sağlamaz.
* `Connection Type` ayarı, bloğun PLC ile etkileşimde paylaşılan (senkron) bir bağlantı mı yoksa özel/asenkron bir bağlantı mı kullanacağını belirler. Kurulumunuza uygun modu seçin (İpuçları bölümüne bakınız).

## 🎯 Temel özellikler

* Yaygın PLC veri tiplerini destekler: Boolean dizileri, tamsayılar (SInt/Int/DInt), işaretsiz tipler, noktalı sayılar (Real/LReal), stringler, word/dword ve zaman tipleri.
* DB numarası / byte adresi ve veri tipi seçimi için basit kullanıcı arayüzü kontrolleri.
* Birden fazla bloğun aynı PLC'ye eriştiği senaryolarda uyum sağlamak için bağlantı modu seçimi.
* Diğer bloklar tarafından hemen kullanılabilecek masaüstü-dostu formatta veri döner.

## 📝 Kullanım talimatları

1. Bir `Siemens S7 Connect` bloğu ekleyin ve PLC adresi ile bağlantı parametrelerini orada yapılandırın.
2. `Siemens S7 Connect` bloğunun çıktısını bu bloğun `S7 Client` girişine bağlayın.
3. Kontrollerden hedef `DB Number` ve `DB Byte Address` değerlerini ayarlayın.
4. Okumak istediğiniz PLC değişkenine uygun `DB Data Type` seçeneğini belirleyin.
5. Okumaların ne zaman gerçekleşeceğini kontrol etmek için `Enable` girişine bir `Logic Input` veya başka bir boolean sinyal verin.
6. `Data` çıkışını görselleştirme, loglama veya karar blokları ile kullanın.

## 💡 İpuçları ve Püf Noktaları

* PLC bağlantısını merkezileştirmek için `Siemens S7 Connect` ile birleştirin — bu blok, bu bloğun `S7 Client` girişinin beklediği client nesnesini sağlar.
* Periyodik okumaları etkinleştirmek/devre dışı bırakmak veya talebe dayalı okuma uygulamak için `Logic Input` kullanın.
* Sayısal eğilimleri görselleştirmek isterseniz, sayısal `Data` çıkışını canlı çizim için bir `Scope` bloğuna bağlayın.
* Okumaları daha sonra analiz etmek üzere kaydetmek için `Data` çıktısını `Data to JSON` ve `CSV Export` bloklarına gönderin.
* Telemetri göndermek için `Data`yı `MQTT Publish`e bağlayarak bulut izleme veya uyarılar için yapılandırılmış mesajlarla `Send Mail` kullanın.
* Okunan sonuçları senaryo genelinde paylaşmak için `Data Write Global` / `Data Read Global` veya yerel bellek bloklarını kullanın; böylece sistemin diğer bölümleri PLC'yi tekrar okumadan tepki verebilir.
* Hata ayıklama için `Debug Input` kullanarak çıkış değerini kaydedin ve adres ile veri tipi ayarlarını doğrulayın.
* Birden çok blok aynı DB alanını okuyup/çıkarıyorsa, eşzamanlılık sorunlarını önlemek için `Connection Type`ı `Sync` olarak değiştirmeyi deneyin.
* Metin alanlarını okurken PLC tarafındaki string uzunluğu ve kodlamaya dikkat edin. Beklenen uzunluğu doğrulayın, aksi halde sonuçlar kırpılabilir.

(hint: Birlikte kullanılması faydalı bloklar: `Siemens S7 Connect`, `Logic Input`, `Number Input`, `Data to JSON`, `CSV Export`, `MQTT Publish`, `Scope`, `Debug Input`, `Data Write Global`)

## 🛠️ Sorun Giderme

* Veri yok veya bağlantı hatası: PLC'ye erişilebilir olduğundan ve `Siemens S7 Connect` bloğunun başarılı bir bağlantı gösterdiğinden emin olun. Ağ adreslerini, firewall ayarlarını ve PLC durumunu kontrol edin.
* Yanlış değer dönüyor: Doğru `DB Number`, `DB Byte Address` ve `DB Data Type` değerlerinin PLC DB içindeki değişken düzeni ile eşleştiğini doğrulayın. Byte offset hataları veya yanlış veri tipi seçimi geçersiz sonuçlara yol açar.
* Kısmi veya kesilmiş string: PLC tarafındaki string uzunluğunun beklentilerle eşleştiğinden emin olun. Bir string kesiliyorsa PLC'deki yapılandırılmış uzunluğu kontrol edin.
* Aralıklı okumalar veya "busy server" uyarıları: PLC çok sayıda istek işliyorsa, koordineli erişim için `Sync` bağlantı modunu kullanmayı veya okuma sıklığını azaltmayı deneyin.
* Beklenmeyen boolean sonucu: Bazı boolean okumalar bit grupları halinde döner — gerektiğinde bunları boolean koleksiyonu olarak ele alın.

Sorunlar devam ederse, ham dönen değerleri görmek için bir `Debug Input` bloğu ekleyin ve başarısız vakaları analiz etmek üzere sonuçları loglama veya export bloklarına yönlendirin.
