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ı 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 yuva 2'dir.
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.
- Raf ve yuvayı öğrenin
S7-1200 / 1500'de CPU raf
0, yuva1'dedir. S7-300'de yuva2'dir. S7-400'de CPU'nun takılı olduğu raf ve yuvayı 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. - Raf ve yuva
Denetçi'de Raf (rack) (0 – 7) ve Yuva (slot) (0 – 31) alanlarını girin. Yuva ipucu: CPU'nun takılı olduğu yuva: 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.
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 |
|---|---|---|---|
| Raf (rack) | sayı (0 – 7) | 0 | |
| Yuva (slot) | sayı (0 – 31) | 1 | CPU'nun takılı olduğu yuva: S7-300 için 2, S7-1200 / 1500 için 1. |
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 |
|---|---|---|---|
| Raf (rack) | sayı (0 – 7) | 0 | |
| Yuva (slot) | sayı (0 – 31) | 2 | CPU'nun takılı olduğu yuva: S7-300 için 2, S7-1200 / 1500 için 1. |
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ı (…, raf 0 / yuva 1): … CPU tipini, raf / yuva 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), raf / yuva ve PUT/GET izni yanlış. |
[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. |