Siemens S7 sürücüsü
S7-1500, S7-1200 ve S7-300 / 400 CPU'larına PUT/GET ile bağlanıp mutlak adreslerle (DB, M, I, Q) tag okuyup yazmak için PLC ayarları, bağlantı adımları, yedek PLC'ye otomatik geçiş ve sık hatalar.
Ne zaman kullanılır
Üç sürücü (Siemens S7-1500, Siemens S7-1200, Siemens S7-300 / 400) aynı protokolü kullanır: S7 iletişimi, PUT/GET, TCP port 102. Tag'ler mutlak adresle verilir (DB1.DBX0.0, MW20). S7-1500 ve S7-1200 sürücüleri aynı parametre, adres ve veri tipi kümesini taşır; yalnızca kimlikleri farklıdır (s7-1500, s7-1200). S7-300 / 400 sürücüsünde LReal ve SInt tipleri yoktur ve varsayılan slot 2'dir.
İki CPU'lu yedekli sistemlerde bağlantı, master olan CPU ile haberleşecek biçimde kurulabilir (Yedek PLC'ye otomatik geçiş).
Veri bloğu Optimize blok erişimi açık (sembolik) ise ya da güvenli iletişim istiyorsanız bu sürücü uygun değildir; OPC UA sürücüsünü kullanın.
PLC tarafında ön koşullar
- PUT/GET erişimine izin verin
CPU özelliklerinde uzak partnerin PUT/GET iletişimiyle erişimine izin verilmelidir (TIA Portal'da CPU özellikleri › Koruma ve güvenlik › Bağlantı mekanizmaları; menü adları TIA sürümüne göre değişebilir). Kapalıysa CPU istekleri reddeder ve Live PUT/GET hatası bildirir.
- Veri bloğunda Optimize blok erişimini kapatın
Okuyacağınız her veri bloğunun özelliklerinde Optimize blok erişimi işaretsiz olmalı; böylece değişkenlerin bayt adresleri sabit olur. Bloğu yeniden derleyip CPU'ya yükleyin. Bit, bayt ve word adreslerini bloğun Offset kolonundan alın.
- Rack ve slot numarasını öğrenin
S7-1200 / 1500'de CPU rack
0, slot1'dedir. S7-300'de slot2'dir. S7-400'de CPU'nun takılı olduğu rack ve slot numarasını donanım yapılandırmasından alın. - Ağ erişimi
Live bilgisayarı ile PLC aynı ağda olmalı, aradaki güvenlik duvarı TCP
102portuna izin vermelidir.
Bağlantı kurma
- Bağlantı ekleyin
Bağlantılar bölümünde Ekle'ye tıklayın, Haberleşme sürücüsü olarak CPU'nuza uygun S7 sürücüsünü seçin.
- Adres ve port
IP adresi / bilgisayar adı hücresine CPU'nun IP adresini yazın. Port
102olarak kalır. - Rack ve slot
Denetçi'de Rack (0 – 7) ve Slot (0 – 31) alanlarını girin. Slot ipucu: CPU'nun takılı olduğu slot: S7-300 için 2, S7-1200 / 1500 için 1.
- Tag ekleyin
HMI Tag'leri bölümünde bu bağlantıya bağlı tag'ler oluşturun. Adres hücresi, siz yazarken adresi doğrular ve çözümünü hücrenin altında gösterir (Tag adresleri).
1234PLC_Proses bağlantısının tag'leri: bit, word ve double word adresleri tipine göre yazılır; seçili tag'in adres çözümü Denetçi'de görünür. - Bağlantı — tag'in bağlı olduğu PLC bağlantısı.
- Veri tipi — adresin boyut harfini belirler.
- Adres — S7 mutlak adresi (DB30.DBD2).
- Adres Çözümü — adresin çözümü ya da hata.
- Sınayın
Çevrimiçi›Bağlantıları sına… yalnızca TCP
102portunun açık olduğunu gösterir; S7 oturumu ve PUT/GET izni ancak Live'da, tag okunurken denenir (Bağlantı tanılama).
Adres ve veri tipi notları
- Boyut harfi tipe uymalıdır:
Bool→DBX/M10.3,ByteveSInt→DBB/MB,IntveUInt→DBW/MW,DInt,UDIntveReal→DBD/MD. - Uzun tipler (
LReal,String,WString,DateTime) boyut harfi almaz; başlangıç baytıDB1.DBX24.0biçiminde verilir (DBBde kabul edilir). Bu tipler yalnızca veri bloğunda ve merker alanında tutulabilir. StringPLC'dekiSTRING[n]biçimindedir (2 bayt başlık + n karakter, Windows-1254 kodlaması). Tag'in Uzunluk alanı okunacak en çok karakterdir (varsayılan 32, en çok 254); PLC'deki tanımla aynı olmalıdır. PLC'deki en çok uzunluğu aşan metin yazılamaz.WStringUTF-16 olarak2n + 4bayt yer tutar.DateTimeS7-1200 / 1500'deDTL(12 bayt), S7-300 / 400'deDATE_AND_TIME(8 bayt) olarak okunur.- Adres büyük / küçük harfe duyarlı değildir, başında
%olabilir;E(giriş) veA(çıkış) Almanca yazımları da kabul edilir. - Birbirine yakın tag'ler (aynı alanda en çok 32 bayt boşlukla) tek istekte okunur; okuma, PLC'nin anlaştığı PDU boyuna göre çok değişkenli isteklere bölünür.
Yedek PLC'ye otomatik geçiş
Üç S7 sürücüsünde bir bağlantıya ikinci bir CPU adresi verilebilir. Live iki CPU'ya da bağlanır, okuma ve yazmayı yalnız master olan CPU ile yapar ve master değişince ya da etkin CPU'nun bağlantısı kopunca öteki CPU'ya kendiliğinden geçer. Kullanım: her CPU'su kendi IP adresine sahip yedekli sistemler (S7-1500R/H) ya da PLC programının eş tuttuğu iki ayrı PLC. Bu özellik başka sürücülerde yoktur. Live bilgisayarının yedekliliği ayrı bir konudur: Yedekli sunucu çifti.
Ön koşullar
- İki CPU'da aynı veri blokları aynı adreslerde bulunmalı; ikisinde de PUT/GET izni açık, optimize blok erişimi kapalı olmalıdır.
- Port, rack, slot ve CPU tipi iki CPU için aynıdır (bağlantının değerleri kullanılır).
- Live yalnız master CPU'ya yazar. Yedek CPU'nun verisini eş tutmak PLC'nin işidir: S7-1500R/H'de işletim sistemi yapar; iki ayrı PLC'de PLC programınız yapmalıdır.
Ayarlar
- Yedek PLC'yi açın
Bağlantı seçiliyken Denetçi'deki parametre kartında Yedek PLC (otomatik geçiş)'i açın.
- Yedek CPU'nun adresini yazın
Yedek PLC IP adresi: ikinci CPU'nun IP adresi ya da bilgisayar adı. Ana adresle aynı olamaz.
- Master bilgisinin nasıl okunacağını seçin
Master bilgisi ve Master bilgisi adresi (varsayılan
DB1.DBX0.0); seçenekler aşağıdaki tabloda. - Denetim aralığını girin
Master denetim aralığı (sn) 1 – 60 (varsayılan
2): master bilgisi bu aralıkla yeniden okunur ve ulaşılamayan CPU'ya yeniden bağlanılmaya çalışılır.
123456Yedek PLC açık bir S7-1500 bağlantısı: yedek adres, master biti ve Hedef kartında iki adres. - Yedek PLC (otomatik geçiş) — açıkken iki CPU'ya da bağlanılır.
- Yedek PLC IP adresi — ikinci CPU; port, rack ve slot ana PLC ile aynı.
- Master bilgisi — hangi CPU'nun master olduğu nasıl anlaşılır.
- Master bilgisi adresi — bit kipinde Bool, numara kipinde Int.
- Master denetim aralığı (sn) — master bilgisinin yeniden okunma aralığı.
- Hedef — ana adres ve yedek adres birlikte.
| Master bilgisi | Nasıl çalışır |
|---|---|
| Master biti (her iki PLC'de okunur) | İki CPU'da aynı adresteki Bool okunur; değeri 1 olan master'dır. İkisi de 1 ise Live o anki CPU'da kalır (iki PLC de master bildiriyor), ikisi de 0 ise yine o anki CPU'da kalır (hiçbir PLC master değil). |
| Birincil CPU numarası (1 = ana, 2 = yedek) | Bir Int okunur: 1 ise bağlantının adresindeki CPU (ana), 2 ise yedek adresteki CPU master'dır. S7-1500R/H'de RH_GetPrimaryID komutunun çıkışını PLC programında bu adrese yazın ve CPU numaralarının IP adresleriyle eşleştiğini denetleyin. Değer önce etkin CPU'dan, okunamazsa ötekinden okunur; 1 ve 2 dışındaki değer master numarası geçersiz sayılır. |
| Yalnız erişilebilirlik (ana PLC öncelikli) | Master bilgisi okunmaz, adres kullanılmaz. Ana CPU'ya ulaşılabildikçe o kullanılır; ulaşılamazsa yedeğe geçilir. Yedekteyken ana CPU iki ardışık denetimde yanıt verirse ana CPU'ya dönülür. |
Geçiş sırasında ne olur
- İki CPU'nun bağlantısı da açık tutulur; kapalı olan arka planda yeniden açılır ve etkin CPU'nun okumasını geciktirmez.
- İki CPU'ya da ulaşılırken master değişirse Live bağlantıyı koparmadan öteki CPU'dan okumaya başlar. İki CPU'nun PDU boyu farklıysa bağlantı kısa süre yeniden kurulur.
- Etkin CPU'nun bağlantısı koparsa bağlantı kısa süre Bağlantı yok görünür, olağan yeniden bağlanma (1 sn sonra) ulaşılabilen CPU'yu seçer. O anda kuyrukta bekleyen yazmalar reddedilir, tag'ler kısa süre kalitesiz olur.
- Master bilinmiyorsa ya da master CPU'ya ulaşılamıyorsa Live o anki CPU'da kalır (yoksa ana, o da yoksa yedek) ve nedeni bilgi satırına yazar (— master PLC'ye ulaşılamıyor, — master bilgisi okunamadı).
Live'da izleme
Sistem menüsünün Bağlantılar bölümünde, bağlı yedekli bağlantının altında hangi CPU ile haberleşildiği yazar. Bu bilgi yalnız Live'ın kendi sistem menüsünde görünür; tarayıcı izleyicisinde ve PLC Bağlantı Durumu nesnesinde yoktur.

CPU değişince olay günlüğüne sistem kaydı yazılır: PLC_Proses: yedek PLC'ye geçildi (192.168.10.22) ya da … ana PLC'ye geçildi (…); aynı CPU'da bir uyarı çıkarsa (iki PLC de master bildiriyor gibi) o da yazılır. Programın günlüğüne (logs\Live_yyyyMMdd.log) S7 yedek PLC (PLC_Proses): … satırları düşer.
Studio'da Hedef kartı iki adresi birlikte gösterir. Çevrimiçi›Bağlantıları sına… yalnız ana adresi dener.
Sürücü başvurusu
Aşağıdaki parametre, adres biçimi ve örnek tabloları Studio'daki sürücü tanımından üretilmiştir. S7-1200 için S7-1500 bölümü geçerlidir.
Siemens S7-1500
CPU'da "PUT/GET erişimine izin ver" açık olmalı; veri bloğunda "Optimize blok erişimi" kapalı olmalıdır. Optimize (sembolik) bloklara OPC UA sürücüsüyle erişilir.
- Sürücü kimliği
s7-1500(proje dosyasındaki ad)- Bağlantı
- IP adresi / bilgisayar adı ve port gerekir (varsayılan port
102) - Veri tipleri
BoolByteSIntIntUIntDIntUDIntRealLRealStringWStringDateTime
Bağlantı parametreleri
Bağlantı seçiliyken Denetçi penceresinde görünür.
| Parametre | Tür | Varsayılan | Açıklama |
|---|---|---|---|
| Rack | sayı (0 – 7) | 0 | |
| Slot | sayı (0 – 31) | 1 | CPU'nun takılı olduğu slot: S7-300 için 2, S7-1200 / 1500 için 1. |
| Yedek PLC (otomatik geçiş) | açma / kapama | kapalı | İki CPU'ya da bağlanılır, hangisi master ise onunla haberleşilir. Master değişince ya da bağlantı kopunca diğerine kendiliğinden geçilir. |
| Yedek PLC IP adresi | metin | — | İkinci CPU'nun IP adresi. Port, rack ve slot ana PLC ile aynıdır. |
| Master bilgisi | seçim | Master biti (her iki PLC'de okunur) | Master biti: iki PLC'de aynı adresteki bit; değeri 1 olan master. Birincil CPU numarası: S7-1500R/H'de RH_GetPrimaryID çıkışının yazıldığı Int. Yalnız erişilebilirlik: ana PLC'ye bağlanılır, ulaşılamazsa yedeğe; ana dönünce ona geçilir. Master biti (her iki PLC'de okunur) · Birincil CPU numarası (1 = ana, 2 = yedek) · Yalnız erişilebilirlik (ana PLC öncelikli) |
| Master bilgisi adresi | metin | DB1.DBX0.0 | Master biti için Bool (DB1.DBX0.0, M10.0), birincil CPU numarası için Int (DB1.DBW0). "Yalnız erişilebilirlik" seçiliyse kullanılmaz. |
| Master denetim aralığı (sn) | sayı (1 – 60) | 2 | Master bilgisi bu aralıkla yeniden okunur; ulaşılamayan CPU'ya yeniden bağlanılmaya çalışılır. |
| Hakem adresi (Int) | metin | — | Yedekli sunucu çiftinde master bu adrese her saniye artan bir sayaç yazar. PLC programında başka işte kullanılmayan, yazılabilir bir Int adresi olmalı. Boş = bu PLC hakem değil. |
Adres biçimleri
| Biçim | Anlamı |
|---|---|
DBn.DBXb.i | Veri bloğu biti — Bool |
DBn.DBBb | Bayt — Byte, SInt |
DBn.DBWb | Word — Int, UInt |
DBn.DBDb | Double word — DInt, UDInt, Real |
DBn.DBXb.0 | Uzun tipler (LReal, String, WString, DateTime): başlangıç baytı |
Mb.i MBb MWb MDb | Merker |
Ib.i IBb IWb IDb | Giriş (E de yazılabilir) |
Qb.i QBb QWb QDb | Çıkış (A da yazılabilir) |
Örnek adresler
| Veri tipi | Örnekler |
|---|---|
Bool | DB1.DBX0.0 M10.3 I0.0 Q4.1 |
Byte | DB1.DBB2 MB10 IB0 QB4 |
SInt | DB1.DBB3 MB11 |
Int | DB1.DBW4 MW20 IW64 QW80 |
UInt | DB1.DBW4 MW20 IW64 QW80 |
DInt | DB1.DBD8 MD30 |
UDInt | DB1.DBD8 MD30 |
Real | DB1.DBD12 MD40 |
LReal | DB1.DBX16.0 |
String | DB1.DBX24.0 |
WString | DB1.DBX280.0 |
DateTime | DB1.DBX60.0 |
Siemens S7-300 / 400
S7-300 / 400 ailesinde LReal tipi yoktur.
- Sürücü kimliği
s7-300(proje dosyasındaki ad)- Bağlantı
- IP adresi / bilgisayar adı ve port gerekir (varsayılan port
102) - Veri tipleri
BoolByteIntUIntDIntUDIntRealStringDateTime
Bağlantı parametreleri
Bağlantı seçiliyken Denetçi penceresinde görünür.
| Parametre | Tür | Varsayılan | Açıklama |
|---|---|---|---|
| Rack | sayı (0 – 7) | 0 | |
| Slot | sayı (0 – 31) | 2 | CPU'nun takılı olduğu slot: S7-300 için 2, S7-1200 / 1500 için 1. |
| Yedek PLC (otomatik geçiş) | açma / kapama | kapalı | İki CPU'ya da bağlanılır, hangisi master ise onunla haberleşilir. Master değişince ya da bağlantı kopunca diğerine kendiliğinden geçilir. |
| Yedek PLC IP adresi | metin | — | İkinci CPU'nun IP adresi. Port, rack ve slot ana PLC ile aynıdır. |
| Master bilgisi | seçim | Master biti (her iki PLC'de okunur) | Master biti: iki PLC'de aynı adresteki bit; değeri 1 olan master. Birincil CPU numarası: S7-1500R/H'de RH_GetPrimaryID çıkışının yazıldığı Int. Yalnız erişilebilirlik: ana PLC'ye bağlanılır, ulaşılamazsa yedeğe; ana dönünce ona geçilir. Master biti (her iki PLC'de okunur) · Birincil CPU numarası (1 = ana, 2 = yedek) · Yalnız erişilebilirlik (ana PLC öncelikli) |
| Master bilgisi adresi | metin | DB1.DBX0.0 | Master biti için Bool (DB1.DBX0.0, M10.0), birincil CPU numarası için Int (DB1.DBW0). "Yalnız erişilebilirlik" seçiliyse kullanılmaz. |
| Master denetim aralığı (sn) | sayı (1 – 60) | 2 | Master bilgisi bu aralıkla yeniden okunur; ulaşılamayan CPU'ya yeniden bağlanılmaya çalışılır. |
| Hakem adresi (Int) | metin | — | Yedekli sunucu çiftinde master bu adrese her saniye artan bir sayaç yazar. PLC programında başka işte kullanılmayan, yazılabilir bir Int adresi olmalı. Boş = bu PLC hakem değil. |
Adres biçimleri
| Biçim | Anlamı |
|---|---|
DBn.DBXb.i | Veri bloğu biti — Bool |
DBn.DBBb | Bayt — Byte, SInt |
DBn.DBWb | Word — Int, UInt |
DBn.DBDb | Double word — DInt, UDInt, Real |
DBn.DBXb.0 | Uzun tipler (LReal, String, WString, DateTime): başlangıç baytı |
Mb.i MBb MWb MDb | Merker |
Ib.i IBb IWb IDb | Giriş (E de yazılabilir) |
Qb.i QBb QWb QDb | Çıkış (A da yazılabilir) |
Örnek adresler
| Veri tipi | Örnekler |
|---|---|
Bool | DB1.DBX0.0 M10.3 I0.0 Q4.1 |
Byte | DB1.DBB2 MB10 IB0 QB4 |
SInt | DB1.DBB3 MB11 |
Int | DB1.DBW4 MW20 IW64 QW80 |
UInt | DB1.DBW4 MW20 IW64 QW80 |
DInt | DB1.DBD8 MD30 |
UDInt | DB1.DBD8 MD30 |
Real | DB1.DBD12 MD40 |
LReal | DB1.DBX16.0 |
String | DB1.DBX24.0 |
WString | DB1.DBX280.0 |
DateTime | DB1.DBX60.0 |
Sık hatalar
Her satırın başındaki işaret, iletinin Live'da nerede görüneceğini söyler: [bağlantı] sistem menüsünün Bağlantılar bölümünde; [yazma] yazmayı yapan operatöre bildirim penceresinde; [Studio] Studio'daki adres hücresinde görünür. [tag] okuma sırasındaki tag hatasıdır: tag kalitesiz kalır, iletinin metni bu sürümde Live'da gösterilmez (Tag hataları); metni nedeni anlamak için okuyun.
| İleti | Neden ve çözüm |
|---|---|
[bağlantı] Cihaz 2000 ms içinde yanıt vermedi (192.168.10.20:102). IP adresini ve ağ bağlantısını kontrol edin. | Porta TCP bağlantısı kurulamıyor: IP adresi, ağ, kablo ya da güvenlik duvarı. |
[bağlantı] S7 bağlantısı açılamadı (…, rack 0 / slot 1): … CPU tipini, rack / slot numarasını ve CPU'da PUT/GET erişim iznini kontrol edin. | CPU'ya ulaşıldı ama S7 oturumu açılmadı: sürücü (CPU tipi), rack / slot ya da PUT/GET izni yanlış. |
[bağlantı] Ana PLC'ye de yedek PLC'ye de bağlanılamadı. Ana PLC: … Yedek PLC: … | Yedek PLC açık ve iki CPU'ya da ulaşılamıyor; her CPU'nun kendi nedeni iletide yazar. |
[bağlantı] Yedek PLC: master bilgisi adresi "…" geçersiz. … | Master bilgisi adresi kipe uymuyor (bit kipinde Bool, numara kipinde Int). |
[Studio] Yedek PLC açık ama yedek PLC'nin IP adresi yazılmamış (bağlantı parametreleri › Yedek PLC IP adresi). · Yedek PLC'nin IP adresi ana PLC ile aynı (…). İkinci CPU'nun adresini yazın. | Sorunlar listesi. Live bu durumda bağlantıyı tek PLC gibi çalıştırır. |
[tag] PLC isteği reddetti: CPU'da "PUT/GET erişimine izin ver" açılmamış. ve PLC isteği reddetti (CPU'da PUT/GET erişim izni kapalı olabilir). | PUT/GET izni kapalı. CPU ayarını açıp CPU'ya yükleyin. |
[tag] PLC erişime izin vermedi (CPU'da PUT/GET izni açık, blokta "Optimize blok erişimi" kapalı olmalı). | Veri bloğu optimize erişimli. Optimize erişimi kapatın ya da OPC UA kullanın. |
[tag] Veri bloğu PLC'de yok. | Adresteki DB numarası PLC'de bulunmuyor. |
[tag] Adres alanın dışında (PLC'deki veri bloğu daha kısa). | Bayt adresi veri bloğunun uzunluğundan büyük. |
[bağlantı] PLC yanıt vermedi (zaman aşımı). / PLC ile bağlantı koptu (ağ, kablo ya da PLC kapalı olabilir). | Bağlantı kuruldu ama koptu; sürücü kendiliğinden yeniden dener. |
[yazma] Metin PLC'deki STRING[32] alanına sığmıyor (40 karakter). | Yazılan metin PLC'deki dizeden uzun. |
[Studio] Int tipi word (2 bayt) adresi ister; "DB1.DBX0.0" bir bit adresidir. | Studio'da adres tipe uymuyor; adres hücresi bu iletiyi verir ve değeri kabul etmez. |