Ana içeriğe geç

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şımaISO-on-TCP (RFC 1006), klasik S7comm
Varsayılan port102
Sürücü başına cihazSınırsız; her PLC'nin kendi bağlantısı vardır.
Sürücü tipiS7 (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.

Device key, Name, Description, Conn type, Gap tolerance bytes, Host, Port, Rack, Set invalid on disconnect, Slot ve Timeout (ms) ile S7 cihazının New device formu.

ParametreVarsayılanAralıkAnlamı
Host— (zorunlu)IP adresi ya da host adıPLC'nin adresi.
Port1021–65535ISO-on-TCP portu.
Rack00–255CPU'nun rack numarası.
Slot10–255CPU'nun slot numarası.
Conn type (Bağlantı tipi)31, 2, 3PLC'nin gördüğü bağlantı tipi: 1 PG (programlama cihazı), 2 OP (operatör paneli), 3 S7 basic.
Timeout (ms) (Zaman aşımı)10001 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ı)160–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çıkaçı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.

Address — S7 altında Device plc2_main ve Address DB10.DBD4 ile Line2.Speed sinyalinin Value source sekmesi.

AlanBitBaytWord (2 bayt)Double word (4 bayt)
Veri bloğuDB10.DBX4.3DB10.DBB4DB10.DBW4DB10.DBD4
Bayraklar (merker)M10.0MB10MW10MD10
GirişlerI0.1 (ya da E0.1)IB0IW0ID0
ÇıkışlarQ0.0 (ya da A0.0)QB0QW0QD0

Bayt numarası alandaki ofsettir; bit numarası 0–7'dir.

Veri tipleri​

Tipi adres genişliği belirler:

AdresS7 tipiYTCC'deki değer
Bit (DBX, M10.0 …)BOOLAçık ya da kapalı
Bayt (DBB, MB …)BYTEİşaretsiz sayı 0–255
Word (DBW, MW …)INTİşaretli 16 bit tamsayı
Double word (DBD, MD …)REAL32 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​

DurumSinyallerin 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 çevrilemiyorSinyal 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:

MetinAnlamı
S7 item error 0x03 — Access to object not allowedPUT/GET'e izin verilmiyor ya da alan korumalı
S7 item error 0x05 — Address out of rangeOfset veri bloğunun sonunu aşıyor
S7 item error 0x0A — Object does not existVeri bloğu yok ya da optimize blok erişimi açık
Not connected — … was not readPLC bağlı değil
Timeout — no response from … within … msPLC Timeout (ms) içinde cevap vermiyor
Invalid S7 address '…'Adres çözümlenemiyor
BelirtiOlası neden
Tüm sinyaller Bad · Not connected, cihaz bağlanmıyorYanlış host, port, rack, slot ya da bağlantı tipi; PLC kapalı; güvenlik duvarı
Bir sinyal Bad, diğerleri iyiYanlış 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 BadPUT/GET'e izin verilmemiş
Değer yanlış görünüyorAdres için tip yanlış; raw params'ta s7_type ayarlayın
Komut Signal not found ile reddediliyorSinyal 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​

İşlevDestek
Bağlantı kurma (COTP, S7 setup communication)Evet
Değişken okuma, istek başına bir nesneEvet
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 tipleriEvet