OPC UA istemci
OPC UA istemci sürücüsü OPC UA sunucularının değerlerini okur ve yazar: OPC UA sunuculu PLC'ler, ağ geçitleri, diğer SCADA ve MES sistemleri. Tüm sürücülerin ortak yanları için bkz. Sürücüler nasıl çalışır.
Protokol ve rol
| Rol | İstemci. OPC UA sunucularına YTCC bağlanır. |
| Taşıma | OPC UA ikili (opc.tcp://) |
| Varsayılan port | 4840 (uç nokta adresinin parçası) |
| Sürücü başına cihaz | Sınırsız; her sunucunun kendi oturumu ve aboneliği vardır. |
| Sürücü tipi | OPC UA (opc_ua) |
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.

| Parametre | Varsayılan | Anlamı |
|---|---|---|
| Endpoint URL (Uç nokta adresi) | — (zorunlu) | Sunucunun adresi, örneğin opc.tcp://192.168.10.50:4840. |
| Security policy (Güvenlik politikası) | None | None, Basic256Sha256, Aes128Sha256RsaOaep ya da Aes256Sha256RsaPss. |
| Message security mode (İleti güvenlik kipi) | None | None, Sign ya da SignAndEncrypt. |
| Auth (Kimlik) | Anonymous | Anonymous (anonim) ya da Username (kullanıcı adı). |
| Username, Password | — | Username kimliği için kullanıcı. |
| Publishing interval (ms) (Yayın aralığı) | 500 | Sunucunun abonelik değişikliklerini ne sıklıkla gönderdiği. |
| Session timeout (ms) (Oturum zaman aşımı) | 60000 | Sunucudan istenen oturum zaman aşımı. |
| Reconnect (Yeniden bağlan) | açık | Açık bırakın. Kopan oturum kendiliğinden yeniden açılır; bkz. Yeniden bağlanma. |
| Set invalid on disconnect (Kopuşta geçersiz yap) | açık | Olduğu gibi bırakın. Bağlantı kopunca ne olduğu Yeniden bağlanma bölümündedir. |
| Trust server certs (Sunucu sertifikalarına güven) | yeni cihazda kapalı | Her sunucu sertifikasına denetlemeden güvenir. |
Güvenlik politikası ve kipi sunucunun sunduğu bir uç noktayla eşleşmelidir, yoksa bağlantı kurulamaz. Publishing interval (ms) değişikliği yalnız aboneliği yeniden kurar; diğer parametrelerin değişmesi o sunucuyu yeniden bağlar. Geçersiz bir cihaz başlamaz ve nedenini gösterir; sürücünün diğer sunucuları çalışmaya devam eder.
Sertifikalar ve kullanıcılar
- İstemci sertifikası. Sürücü ilk başladığında kendi uygulama sertifikasını (YTCC OPC-UA Client) oluşturur. Güvenli bağlantı için sunucu ona güvenmelidir: ilk denemeden sonra genellikle sunucunun reddedilenler listesindedir; güvenilenler listesine taşıyın.
- Sunucu sertifikası. Trust server certs kapalıyken sunucu sertifikası sürücünün güvenilenler klasöründe olmalıdır; tanınmayan bir sunucunun sertifikası reddedilenler klasörüne konur. Denetledikten sonra güvenilenler klasörüne taşıyın. Security policy None iken sertifika kullanılmaz.
- Kullanıcı. Username ile kullanıcıyı sunucuda oluşturun; düğümlerde okuma, YTCC'nin yazdığı düğümlerde yazma hakkı verin. Parola cihaz ayarlarında metin olarak saklanır; konfigürasyonu kimin düzenleyebileceğini sınırlayın.
Sinyal adresi
Adresi sinyalin Value source (Değer kaynağı) sekmesinde, Address — OPC UA altında ayarlayın:
| Alan | Anlamı |
|---|---|
| Namespace (ad alanı) | Ad alanı dizini, örneğin 2. |
| Id type (kimlik tipi) | s (metin) ya da i (sayısal). |
| Identifier (tanımlayıcı) | Tanımlayıcı, örneğin Pump4.Current ya da 2258. |
| Queue size (kuyruk boyu) | Sunucunun iki yayın arasında tuttuğu değer sayısı (varsayılan 1: yalnız sonuncusu). |
| Deadband (abs) (ölü bant, mutlak) | Sunucunun yeni değer göndermeden önce görmesi gereken değişim, düğümün biriminde. |
Sinyalin Scan class'ı sunucunun örnekleme aralığıdır. İçe aktarma dosyalarında düğüm kimliğini ns=2;s=Pump4.Current
ya da ns=0;i=2258 olarak yazın (bkz. Excel ya da CSV ile içe ve dışa aktarma). Noktalı virgülle ayrılmış bir CSV dosyasında adresi çift tırnak içine alın, örneğin "ns=2;s=Pump4.Current".
Düğüm kimliklerini sunucunun belgesinden ya da bir OPC UA tarayıcı aracından kopyalayın.
Okuma
Sürücü tarama değil abonelik kullanır. Her sinyal, tarama sınıfının örnekleme aralığı (varsayılan 1 sn), kuyruk boyu ve ölü bandıyla izlenen bir öğedir. Sunucu değişiklikleri cihazın Publishing interval (ms) aralığında gönderir. Sunucunun reddettiği bir düğüm, örneğin olmadığı için, Bad olur; diğerleri normal okunur.
Veri tipleri
| OPC UA tipi | YTCC'deki değer |
|---|---|
| Boolean | Açık ya da kapalı |
| SByte, Int16 | Int16 |
| Byte, UInt16 | UInt16 |
| Int32, UInt32, Int64, UInt64 | aynı |
| Float | Float32 |
| Double | Float64 |
| String | Metin |
Sinyalleri bu tablodaki tiplerde düğümlere bağlayın.
Yazma
Access'i Read / Write ya da Write only olan bir sinyal yazılabilir. Değer düğümün Value özniteliğine sinyalin tipiyle yazılır; bu yüzden sinyalin veri tipi düğümün tipiyle aynı olmalıdır, yoksa sunucu BadTypeMismatch döndürür.
| Sunucu durumu | Gösterilen |
|---|---|
| BadNotWritable, BadWriteNotSupported | Signal is not writable |
| BadTypeMismatch | Value type not suitable |
| BadOutOfRange | Value out of range |
| BadUserAccessDenied | Device does not allow writing |
| BadNodeIdUnknown | Signal not found |
| BadNotConnected | No device communication |
| BadTimeout, BadRequestTimeout, BadConnectionClosed | No response from device |
| diğer | Device returned an error |
Sürücü sunucuya bağlı değilken gönderilen komut No device communication ile reddedilir.
Sinyal yazdıktan sonra geri okumaya ayarlıysa sürücü başarılı yazmanın hemen ardından düğümü yeniden okur.
Durum kodları ve zaman damgaları
| OPC UA durumu | YTCC'deki kalite |
|---|---|
| Good | Good |
| Uncertain | Uncertain |
| BadNotConnected | Bad · Not connected |
| diğer Bad ya da durum yok | Bad |
Değerin zamanı sunucunun SourceTimestamp'idir (zaman kaynağı device); sunucu zaman damgası kullanılmaz. Kaynak zaman damgası yoksa ya da geliş zamanından 5 dakikadan fazla ileri ya da 7 günden fazla geriyse geliş zamanı kullanılır.
Yeniden bağlanma
İlk bağlantı kurulamazsa sürücü 1 saniye sonra yeniden dener ve bekleyişi 30 saniyeye kadar ikiye katlar. Açık bir oturum koparsa kendiliğinden yeniden açılır ve abonelik yeniden kurulur. Bağlantı kopunca cihaz not connected gösterir ve haberleşme alarmı gelir; sinyaller son değerlerini korur.
Tanılama
Value source sekmesindeki Read now düğümü açık oturum üzerinden bir kez okur:
| Metin | Anlamı |
|---|---|
| Bir değer | Sunucu cevap verdi |
| OPC UA BadNodeIdUnknown — ns=2;s=… | Düğüm sunucuda yok |
| OPC UA value type not supported — … | Düğümün tipi Veri tipleri tablosunda yok |
| Not connected — … ; … was not read | Sunucuyla oturum yok |
| Invalid node id '…' | Adres çözümlenemiyor |
| Belirti | Olası neden |
|---|---|
| Cihaz hiç bağlanmıyor | Yanlış uç nokta adresi; seçilen politika ve kipte uç nokta yok; güvenlik duvarı |
| Güvenli bağlantı reddediliyor | Sunucu YTCC sertifikasına güvenmiyor ya da YTCC sunucu sertifikasına güvenmiyor |
| Kullanıcı reddediliyor | Yanlış kullanıcı ya da parola, ya da sunucu kullanıcı adıyla girişe izin vermiyor |
| Bir sinyal Bad | Düğüm yok ya da kullanıcının okuma hakkı yok |
| Bir sinyal hiç değişmiyor | Değer değişmiyor ya da Deadband (abs) çok büyük |
| Düğümün değeri olduğu hâlde sinyal 0 gösteriyor | Düğüm tipi Veri tipleri tablosunda yok |
Desteklenen servisler
| Servis | Destek |
|---|---|
| Güvenli kanal ve oturum (dört politika, üç kip) | Evet |
| Anonim ve kullanıcı adı kimliği | Evet |
| Read | Evet (Read now, geri okuma) |
| Write (Value özniteliği) | Evet |
| Abonelikler ve izlenen öğeler, mutlak ölü bant | Evet |