S7 (S7comm)
S7 sürücüsü Siemens S7-300, S7-400, S7-1200 ve S7-1500 PLC'lerinin veri bloklarını, bayraklarını (merker), girişlerini ve çıkışlarını S7comm (ISO-on-TCP) üzerinden okur ve yazar. Tüm sürücülerin ortak yanları için bkz. Sürücüler nasıl çalışır.
Protokol ve rol
| Rol | İstemci. PLC'lere YTCC bağlanır. |
| Taşıma | ISO-on-TCP (RFC 1006), klasik S7comm |
| Varsayılan port | 102 |
| Sürücü başına cihaz | Sınırsız; her PLC'nin kendi bağlantısı vardır. |
| Sürücü tipi | S7 (s7) |
Sürücü klasik S7comm kullanır. PLC klasik erişime izin vermelidir.
PLC'de gerekenler
- S7-1200 ve S7-1500: CPU özelliklerinde Protection & Security › Connection mechanisms altında Permit access with PUT/GET communication from remote partner'ı işaretleyin.
- Veri blokları: YTCC'nin okuduğu ya da yazdığı her veri bloğunda Optimized block access'i kapatın ve bloktaki mutlak adresleri (ofsetleri) kullanın.
- Rack ve slot: S7-1200 ve S7-1500 genellikle rack 0, slot 1; S7-300 ve S7-400 genellikle rack 0, slot 2 kullanır.
Cihaz parametreleri
Bunları Drivers → devices görünümünde cihaz üzerinde ayarlayın (bkz. Sürücü ve cihaz ekleme). Boş kutu, içinde gösterilen varsayılanı kullanır.

| Parametre | Varsayılan | Aralık | Anlamı |
|---|---|---|---|
| Host | — (zorunlu) | IP adresi ya da host adı | PLC'nin adresi. |
| Port | 102 | 1–65535 | ISO-on-TCP portu. |
| Rack | 0 | 0–255 | CPU'nun rack numarası. |
| Slot | 1 | 0–255 | CPU'nun slot numarası. |
| Conn type (Bağlantı tipi) | 3 | 1, 2, 3 | PLC'nin gördüğü bağlantı tipi: 1 PG (programlama cihazı), 2 OP (operatör paneli), 3 S7 basic. |
| Timeout (ms) (Zaman aşımı) | 1000 | 1 ve üstü | Sürücünün bağlanırken ve her okuma ya da yazmada ne kadar beklediği. |
| Gap tolerance bytes (Boşluk toleransı) | 16 | 0–65535 | İki sinyal arasında, sürücü onları ayrı isteklerle okumadan önce kaç kullanılmayan bayt bulunabileceği. |
| Set invalid on disconnect (Kopunca geçersiz yap) | açık | açık / kapalı | Bağlantı kopunca PLC'nin tüm sinyallerini Bad · Not connected yapar. Kapalıyken sinyaller son değerini ve kalitesini korur. |
Host, Port, Rack, Slot, Conn type, Timeout (ms) ya da Set invalid on disconnect değişince o PLC yeniden bağlanır. Gap tolerance bytes ya da bir sinyal adresi değişikliği bağlantı kopmadan geçerli olur. Geçersiz ayarlı bir PLC bağlanmaz ve nedenini gösterir; sürücünün diğer PLC'leri çalışmaya devam eder.
Sinyal adresi
Adresi sinyalin Value source (Değer kaynağı) sekmesinde, Address — S7 altında ayarlayın. İçe aktarma dosyalarında da aynı söz dizimi kullanılır (bkz. Excel ya da CSV ile içe ve dışa aktarma). Boşluklar kaldırılır ve adres büyük harfle saklanır.

| Alan | Bit | Bayt | Word (2 bayt) | Double word (4 bayt) |
|---|---|---|---|---|
| Veri bloğu | DB10.DBX4.3 | DB10.DBB4 | DB10.DBW4 | DB10.DBD4 |
| Bayraklar (merker) | M10.0 | MB10 | MW10 | MD10 |
| Girişler | I0.1 (ya da E0.1) | IB0 | IW0 | ID0 |
| Çıkışlar | Q0.0 (ya da A0.0) | QB0 | QW0 | QD0 |
Bayt numarası alandaki ofsettir; bit numarası 0–7'dir.
Veri tipleri
Tipi adres genişliği belirler:
| Adres | S7 tipi | YTCC'deki değer |
|---|---|---|
Bit (DBX, M10.0 …) | BOOL | Açık ya da kapalı |
Bayt (DBB, MB …) | BYTE | İşaretsiz sayı 0–255 |
Word (DBW, MW …) | INT | İşaretli 16 bit tamsayı |
Double word (DBD, MD …) | REAL | 32 bit kayan noktalı sayı |
Başka bir tip için Advanced: raw params (JSON) içine
"s7_type" ekleyin, örneğin {"s7_type": "dint"}. Tipler: bool, byte, sint, char, word, int, dword,
dint, real, lreal, lint, ulint, lword, string, wchar ve wstring. string ya da wstring için ayrıca
String length (Metin uzunluğu) gerekir: string için en çok 220, wstring için 109 karakter.
S7 değerleri big-endian'dır. Sinyalde ayarlı ölçek ve ofset okumadan sonra uygulanır; Filter and deadband her sürücüde olduğu gibi çalışır.
Okuma
Sürücü tarama yapar. Bir PLC'nin sinyallerini alana, veri bloğuna ve tarama periyoduna göre gruplar, komşu baytları tek istekle okur; hiçbir boşluk Gap tolerance bytes'tan büyük olmadıkça ve istek PLC'nin PDU'suna sığdıkça. Bağlantı açılınca her bloğu bir kez okur; sonra her blok tarama sınıfının periyodunda okunur (bkz. Değerler ne sıklıkla okunur). Her PLC aynı anda tek istekle okunur.
Bir istek tek bir hatalı adres yüzünden başarısız olursa sürücü o adresi bulana kadar isteği böler. Hatalı sinyal Bad olur; diğerleri normal okunur.
Yazma
Access'i Read / Write ya da Write only olan bir sinyal yazılabilir. Yukarıdaki tüm tipler yazılabilir; bir bit, bayttaki diğer bitler değişmeden yazılır, metin ayrılan uzunluğa tamamlanır.
- PLC bağlı değilse komut hemen reddedilir. Bağlantı koptuğunda bekleyen komut iptal edilir, sonra gönderilmez.
- Her PLC en çok 4 bekleyen komut kabul eder; fazlası Previous command in progress olarak reddedilir.
- PLC nesneyi reddederse, örneğin PUT/GET kapalıysa, komut Device returned an error ile reddedilir.
- Sinyal yazdıktan sonra geri okumaya ayarlıysa sürücü başarılı yazmanın hemen ardından adresi yeniden okur.
Operatörlerin komutu nasıl gönderip onayladığı için bkz. Komut gönderme.
Kalite eşlemesi
| Durum | Sinyallerin kalitesi |
|---|---|
| Okuma başarılı | Good |
| PLC nesneyi reddediyor (dönüş kodu 01, 03, 05, 06, 07, 0A) | O sinyal için Bad; bağlantı sürer |
| Değer çevrilemiyor | Sinyal güncellenmez; hata günlüğe yazılır |
| Zaman aşımı, bağlantı hatası | Bağlantı kapatılıp yeniden açılır; Set invalid on disconnect açıksa PLC'nin tüm sinyalleri Bad · Not connected |
Değeri kalitesiyle birlikte okuyun. Kalitesi Bad ya da Bad · Not connected olan değeri kullanmayın.
Yeniden bağlanma
S7 sürücüsü kendi yeniden bağlanma zamanlamasını kullanır: 50 ms sonra yeniden dener ve bekleyişi 5 saniyeye kadar ikiye katlar, deneme sayısı sınırı yoktur. Sonradan açılan bir PLC'ye yaklaşık 5 saniye içinde bağlanılır.
Zaman damgaları
S7 bir değerin zamanını taşımaz. Her iki zaman damgası için değerin YTCC'ye geliş zamanı kullanılır.
Tanılama
Value source sekmesindeki Read now adresi bir kez okur ve sonucu ya da hatayı gösterir:
| Metin | Anlamı |
|---|---|
| S7 item error 0x03 — Access to object not allowed | PUT/GET'e izin verilmiyor ya da alan korumalı |
| S7 item error 0x05 — Address out of range | Ofset veri bloğunun sonunu aşıyor |
| S7 item error 0x0A — Object does not exist | Veri bloğu yok ya da optimize blok erişimi açık |
| Not connected — … was not read | PLC bağlı değil |
| Timeout — no response from … within … ms | PLC Timeout (ms) içinde cevap vermiyor |
| Invalid S7 address '…' | Adres çözümlenemiyor |
| Belirti | Olası neden |
|---|---|
| Tüm sinyaller Bad · Not connected, cihaz bağlanmıyor | Yanlış host, port, rack, slot ya da bağlantı tipi; PLC kapalı; güvenlik duvarı |
| Bir sinyal Bad, diğerleri iyi | Yanlış veri bloğu ya da ofset, ya da o blokta optimize blok erişimi açık |
| Bağlı olduğu hâlde bir S7-1200/1500'ün tüm sinyalleri Bad | PUT/GET'e izin verilmemiş |
| Değer yanlış görünüyor | Adres için tip yanlış; raw params'ta s7_type ayarlayın |
| Komut Signal not found ile reddediliyor | Sinyal yazılabilir değil; sinyalde Access'i rw yapın |
Haberleşme alarmı ve cihaz durumu her sürücüde olduğu gibi çalışır; bkz. Sürücüler nasıl çalışır.
Desteklenen işlevler
| İşlev | Destek |
|---|---|
| Bağlantı kurma (COTP, S7 setup communication) | Evet |
| Değişken okuma, istek başına bir nesne | Evet |
| Değişken yazma, istek başına bir nesne (bit yazma dahil) | Evet |
| DB, M, I, Q alanları | Evet |
| BOOL, BYTE, SINT, CHAR, WORD, INT, DWORD, DINT, REAL, LREAL, LINT, ULINT, LWORD, STRING, WCHAR, WSTRING tipleri | Evet |