Ana içeriğe geç

Beckhoff ADS

ADS sürücüsü Beckhoff TwinCAT 2 ve TwinCAT 3 PLC'lerinin değişkenlerini sembol adlarıyla okur ve yazar. Doğrudan PLC'nin AMS yönlendiricisine bağlanır; YTCC sunucusunda TwinCAT kurulumu gerekmez. Tüm sürücülerin ortak yanları için bkz. Sürücüler nasıl çalışır.

Protokol ve rol​

RolADS istemcisi. PLC'ye YTCC bağlanır.
TaşımaTCP üzerinden ADS (AMS/TCP)
Varsayılan port48898
AMS hedefiPLC'nin NetId'si (örneğin 5.32.116.5.1.1) ve AMS portu: TwinCAT 3 PLC 1 için 851, PLC 2 için 852, TwinCAT 2 için 801
Sürücü başına cihazSınırsız ADS hedefi. Aynı PLC'deki tüm hedefler tek TCP bağlantısını paylaşır.
Sürücü tipiADS (ads)

PLC'de gerekenler​

  1. Bir route. PLC ADS'yi yalnız tanıdığı ortaklardan kabul eder. YTCC'nin NetId'sini seçin, tercihen Source net ID ayarlayarak (örneğin 192.168.0.5.1.1). TwinCAT XAE'de SYSTEM › Routes › Add Route altında bu AMS NetId, TCP/IP taşıma ve YTCC sunucusunun IP adresiyle bir route ekleyin. TwinCAT/BSD ve CE'de bunun yerine StaticRoutes.xml'e ekleyebilirsiniz.
  2. PLC'nin güvenlik duvarı TCP 48898'e izin vermelidir.
  3. PLC başına tek bağlantı. PLC bir ortaktan tek ADS bağlantısı kabul eder: ikincisi (örneğin YTCC sunucusundaki TwinCAT XAE ya da ikinci bir sürücü) ilkinin yerine geçer. Bir PLC'nin tüm hedeflerini aynı sürücüye koyun.

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. Her parametrenin yanındaki yardım işareti kısa bir açıklama gösterir.

Connect timeout (ms), Host, Poll interval (ms), Port, Request timeout (ms), Set invalid on disconnect, Source net ID, Source port, Sum chunk ve Target net ID alanlarına kaydırılmış, bir ADS cihazının New device formu.

ParametreVarsayılanAralıkAnlamı
Host— (zorunlu)IP adresi ya da host adıPLC'nin adresi.
Port488981–65535AMS/TCP portu.
Target net ID (Hedef NetId)— (zorunlu)0–255 arası altı sayıPLC'nin AMS NetId'si.
Target port (Hedef port)8511–65535PLC çalışma zamanının AMS portu.
Source net ID (Kaynak NetId)boş0–255 arası altı sayıYTCC'nin AMS NetId'si; PLC'deki route ile aynı olmalı. Boşsa sunucunun IP adresi artı .1.1 kullanılır.
Source port (Kaynak port)589131–65535YTCC'nin AMS portu, Source net ID ile kullanılır.
Connect timeout (ms) (Bağlanma zaman aşımı)3000100–60000Sürücünün bağlanırken ne kadar beklediği.
Request timeout (ms) (İstek zaman aşımı)2000100–60000Bir isteğin en uzun süresi; daha uzun bekleme bağlantı kopması sayılır.
Poll interval (ms) (Tarama aralığı)100010–3600000Kendi tarama sınıfı olmayan sinyallerin okuma periyodu. 100 ms altı önerilmez.
Sum chunk (Toplu okuma boyu)5001–500Tek toplu istekte okunan en çok değişken.
Cmd timeout (ms) (Komut zaman aşımı)5000100–600000Bir komutun eskimiş sayılmadan önce ne kadar bekleyebileceği.
Set invalid on disconnect (Kopunca geçersiz yap)açıkaçık / kapalıBağlantı kopunca hedefin tüm sinyallerini Bad · Not connected yapar.

Host, Port, kaynak ya da zaman aşımları değişince PLC yeniden bağlanır; diğer parametreler hemen geçerli olur. Aynı host ve porttaki hedeflerin kaynağı ve zaman aşımları aynı olmalıdır, yoksa sonraki hedef başlamaz.

Sinyal adresi​

Adresi sinyalin Value source (Değer kaynağı) sekmesinde, Address — ADS altında ayarlayın: Symbol (Sembol; PLC programındaki değişken adı), Data type (Veri tipi) ve metin için String length (Metin uzunluğu):

SembolAnlamı
MAIN.fTemperatureMAIN programının değişkeni
GVL.aValues[3]Genel değişken listesindeki bir dizinin elemanı
MAIN.stMotor.bRunBir yapının üyesi

Sembol adları büyük/küçük harfe duyarlı değildir ve boşluk içermez. Sürücü her sembolün adresini bağlanırken, ayrıca PLC programında çevrimiçi değişiklik ya da yükleme sonrasında yeniden bulur.

Veri tipleri​

Veri tipiBoyutYTCC'deki değer
BOOL1 baytAçık ya da kapalı
BYTE, USINT1 baytUInt16
SINT1 baytInt16
WORD, UINT2 baytUInt16
INT2 baytInt16
DWORD, UDINT4 baytUInt32
DINT4 baytInt32
LWORD, ULINT8 baytUInt64
LINT8 baytInt64
REAL4 baytFloat32
LREAL8 baytFloat64
STRING(n)n + 1 baytMetin (n 1–255, varsayılan 80)

Sembolün PLC'deki boyutu veri tipiyle aynı olmalıdır; yoksa sinyal Bad olur. Bir yapıyı ya da diziyi okumak için her üyeyi ya da elemanı ayrı sinyal olarak bağlayın.

Okuma​

Sürücü toplu okumalarla tarar: tek istekte en çok Sum chunk değişken (ve 64 KB). Her tur PLC'nin sembol sürümünü de okur; değiştiyse (çevrimiçi değişiklik, yükleme) değerler kullanılmadan önce adresler yeniden bulunur. Bulunamayan bir sembol Bad olur ve her 30 saniyede bir yeniden denenir. PLC toplu okumayı desteklemiyorsa sürücü değişkenleri tek tek okur.

Sürücü ayrıca her 10 saniyede bir PLC'nin RUN'da olup olmadığını denetler. Başka bir durumda değerler okunmaya devam eder ama değişmeyebilir; cihaz durumu PLC'nin RUN'da olmadığını söyler.

Yazma​

Access'i Read / Write ya da Write only olan bir sinyal yazılabilir. Değer veri tipine çevrilir: tamsayılar aralıklarına göre denetlenir, tamsayı tipine kesirli değer reddedilir, BOOL 0 ya da 1 alır, metin metin uzunluğuna sığmalıdır. Yazmalar hiç yinelenmez; yazma sırasında bağlantı koparsa PLC değeri almış ya da almamış olabilir.

Operatörlerin komutu nasıl gönderip onayladığı için bkz. Komut gönderme.

Kalite​

DurumKalite
Değişken okunduGood
Sembol bulunamadı, boyut uyuşmazlığı, okuma hatasıBad; son değer kalır
Bağlantı koptu ya da AMS hedefi cevap vermiyorBad · Not connected (Set invalid on disconnect ile); son değer kalır

Bir değerin zamanı okunduğu andır; PLC zaman damgası göndermez.

Yeniden bağlanma​

Bağlantı kopunca sürücü 100 ms sonra yeniden dener ve bekleyişi 20 saniyeye kadar ikiye katlar. Bekleme ancak PLC cevap verdikten sonra yeniden 100 ms'den başlar; böylece route'u olmayan bir PLC denemelerle boğulmaz.

Tanılama​

Value source sekmesindeki Read now sembolü mevcut bağlantı üzerinden bir kez okur ve değeri ve ham baytları gösterir:

MetinAnlamı
No connection to ads://…PLC bağlı değil
Timeout — no response from … within 2000 msPLC cevap vermedi
Symbol is missingSembol girilmedi
ADS error — … (symbol …, device …)PLC okumayı reddetti, örneğin Symbol not found
Size mismatch — symbol … is … bytes, the data type needs …Data type ya da String length değişkenle uyuşmuyor
ADS target is not answering …Yanlış Target net ID ya da Target port, ya da çalışma zamanı çalışmıyor
BelirtiOlası neden
PLC bağlantıyı hemen kapatıyorPLC'de route yok ya da route'un NetId'si Source net ID'den farklı
Bağlı, tüm sinyaller Bad · Not connectedYanlış Target net ID ya da Target port
Değerler değişmiyorPLC RUN'da değil
Bir sinyal BadSembol yanlış yazılmış ya da programda yok; Data type yanlış
Bağlantı birkaç saniyede bir kopuyorAynı PLC'ye ikinci bir ADS ortağı (TwinCAT XAE, başka bir sürücü) bağlanıyor

Desteklenen ADS komutları​

KomutDestek
ReadEvet
WriteEvet
ReadWrite (sembol bulma)Evet
ReadStateEvet
Toplu okuma, toplu okuma-yazmaEvet