# Siemens S7 Write

Bu fonksiyon bloğu, verileri bir Siemens S7 PLC'nin Data Block'una yazmak için kullanılır. Senaryonuzdan doğrudan sayılar, boolean'lar, metinler ve desteklenen diğer türleri PLC adresine göndermek için kullanın.

## 📥 Girdiler <a href="#inputs" id="inputs"></a>

`Enable` Yazmaya izin vermek için TRUE sağlayın. FALSE veya boş ise yazma gerçekleşmez.

`Data` PLC'ye yazılacak değer. Seçilen `DB Data Type`'a bağlı olarak sayısal, boolean, metin veya karmaşık veri kabul eder.

`[Optional] Data on Stop` Sağlanırsa, senaryo veya blok durdurulduğunda/çıkarıldığında bu değer bir kez yazılır.

`S7 Client` Blokun PLC'ye ulaşabilmesi için bir bağlantı bloğundan (örneğin `Siemens S7 Connect`) bağlantı referansı sağlayın.

## 📤 Çıktılar <a href="#outputs" id="outputs"></a>

Bu fonksiyon bloğu çıktı üretmez.

## 🕹️ Kontroller <a href="#controls" id="controls"></a>

`DB Number` PLC'de yazılacak Data Block numarası.

`DB Byte Address` Değerin yazılacağı seçilen DB içindeki başlangıç byte adresi.

`Bit Position` Yalnızca boolean yazımları için kullanın; hedef byte içindeki hangi bitin ayarlanacağını seçer.

`DB Data Type` Yazılacak veri türünü seçin (örnekler: Boolean, Int, Real, String, Time, vb.). Seçim, giriş değerinin PLC tarafında nasıl kodlanacağını kontrol eder.

`Connection Type` `Async` veya `Sync` seçin. `Async` yazmayı arka plan işçisine planlar; `Sync` yazmayı hemen gerçekleştirir.

## 🎯 Özellikler <a href="#features" id="features"></a>

* Sayısal türler, boolean ve stringler dahil geniş bir PLC veri türü aralığına yazma.
* Blok veya senaryo durdurulduğunda PLC'ye gönderilecek isteğe bağlı "write on stop" değeri.
* Eşzamanlı (Sync) ve eşzamanlı olmayan (Async) olmak üzere iki bağlantı modu: ana akışı engellemeden yüksek verim için arka planda yazma veya anında yazma.
* Sağlanan istemci adresi değiştiğinde otomatik yeniden bağlanma desteği (bağlantıların yeniden düzenlenmesi sırasında yararlı).
* DB, byte adresi ve bit pozisyonu için basit UI kontrolleri — kodlama gerekmez.

## ⚙️ Çalışma Mekanizması <a href="#how-it-works" id="how-it-works"></a>

* `Enable` TRUE ve geçerli bir `S7 Client` sağlandığında, blok seçilen DB ve byte adresine `DB Data Type` kullanarak `Data` değerini yazmayı dener.
* `Connection Type` `Async` ise yazma, ana senaryonun gecikmemesi için bir arka plan işçisine planlanır.
* `Connection Type` `Sync` ise yazma mevcut yürütme adımının bir parçası olarak hemen gerçekleştirilir.
* `[Optional] Data on Stop` içinde bir değer sağlandıysa, blok durdurulduğunda veya kaldırıldığında bu değer otomatik olarak yazılır.
* Başarı durumunda bilgilendirici mesajlar, PLC/istemci meşgulse uyarılar ve yazma başarısız olduğunda veya parametreler geçersizse hata mesajları kaydedilir.

## 📝 Kullanım Talimatları <a href="#usage" id="usage"></a>

1. `Siemens S7 Connect` gibi bir bağlantı bloğu ekleyin ve PLC adresini yapılandırın.
2. O bağlantıyı bu bloğun `S7 Client` girişine bağlayın.
3. `DB Number`, `DB Byte Address` ve boolean yazıyorsanız `Bit Position` değerlerini ayarlayın.
4. Yazacağınız değere uygun `DB Data Type` seçin.
5. `Connection Type` seçin:
   * Az sayıda yazma veya anında yazma gerektiğinde `Sync` kullanın.
   * Sık veya yavaş yazmaları arka plana almak için `Async` kullanın.
6. `Data` girişine bir değer sağlayın (manuel giriş için `Number Input` veya `String Input` gibi blokları kullanabilirsiniz).
7. Yazmayı gerçekleştirmek için `Enable` girişine TRUE vererek bloğu etkinleştirin.
8. İsteğe bağlı olarak, blok durduğunda yazılacak bir değer sağlamak için `[Optional] Data on Stop` kullanın.

## 💡 İpuçları ve Püf Noktaları <a href="#tips-and-tricks" id="tips-and-tricks"></a>

* PLC bağlantısını yönetmek ve `S7 Client` girişini sağlamak için `Siemens S7 Connect` ile birlikte kullanın.
* Yazma işlemlerinden sonra beklenen DB içeriğini doğrulamak için `Siemens S7 Read` ile değerleri kontrol edin.
* Manuel tetiklemeler için `Logic Input` veya `Number Input` ile birlikte kullanarak yazma zamanlamasını kontrol edin.
* Metinsel değerler yazarken, kodlamanın beklendiği biçimde olmasını sağlamak için metni `String Input` üzerinden besleyin.
* Değerleri daha sonra saklamak veya birden fazla bloğu koordine etmek için `Data Write Local` / `Data Read Local` veya `Data Write Global` / `Data Read Global` ile kombine etmeyi düşünün.
* Göndermeden önce değerleri kaydetmek veya incelemek için `Debug Input` kullanın.
* Aynı bytes'lara birden fazla bloğun yazması gerekiyorsa, yarış durumlarını azaltmak için `Sync` modunu tercih edin. Yazmalar bağımsızsa daha yüksek verim için `Async` kullanın.

## 🛠️ Sorun Giderme <a href="#troubleshooting" id="troubleshooting"></a>

* Bağlantı hataları veya "yazılamıyor" mesajları:
  * `S7 Client` girişinin bağlı olduğundan ve bağlantı bloğunun doğru PLC adresiyle yapılandırılmış ve aktif olduğundan emin olun.
  * Bağlantıyı bağlantı bloğundan yeniden kurmayı deneyin.
* PLC'de yanlış görünen değerler:
  * Hedef değişken için `DB Number`, `DB Byte Address` ve `Bit Position` değerlerinin doğru olduğunu doğrulayın.
  * Seçilen `DB Data Type`'ın PLC değişken türüyle eşleştiğinden emin olun (ör. bir float'ı integer türüyle yazmak yanlış değerler üretebilir).
* Metin yazımları kesiliyor veya bozuluyor:
  * PLC tarafının uzunluk baytı veya sabit boyutlu bir tampon bekleyip beklemediğini kontrol edin. Metin uzunluğunu buna göre sınırlayın.
* Yazma çok yavaş veya senaryoyu engelliyor:
  * Yazma işlemlerinin arka planda yapılması için `Connection Type`'ı `Async` olarak değiştirin.
* Aynı adrese birden fazla yazar çakışma yaratıyor:
  * Aynı DB/byte'lara yazan bloklar için `Sync` modunu kullanın veya yazmaları tek bir merkezi yazar bloğunda toplayın.

Sorunlar devam ederse, PLC üzerindeki adres eşlemesini tekrar kontrol edin ve sonraki yazmalara güvenmeden önce bir okuma işlemiyle doğrulayın (örneğin `Siemens S7 Read` kullanarak).


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.augelab.com/turkish/fonksiyon-bloklari/input-output/communication/siemens-s7-write.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
