PLC haberleşmesi

Herkese merhaba,

Plc haberleşmesi ile alakalı sormak istediğim bir kaç soru var. Python ile PLC haberleşmesini ve iki bilgisayar arası haberleşmeyi hangi kütüphanelerle sağlayabilirim? Bununla alakalı kaynak önerebilir misiniz? Biraz araştırma yaptım ve pymodbus, pycomm3 gibi kütüphaneler var fakat dökümanları çok açık değil bunları nasıl öğrenebilirim. Aynı zamanda iki bilgisayar arası haberleşmeyi nasıl sağlayabilirim. ben bir bilgisayara nasıl input gönderebilirim, socket modülü benim işimi görür mü? umarım anlatabilmişimdir, teşekkürler.

Arada bir katman eksik—PLC python’in calistigi bilgisayarla nasil haberlesiyor?

Bir de hangi PLC’den bahsediyoruz? Yoksa “PLC” dedigimiz seyin bir standardi mi var? (Baktim, yokmus gibi gozukuyor.)

Hangi amacla?
Web sayfasi sunmak istiyorsan baska, vidyo stream etmek istiyorsan baska kutuphaneler (ve aletler) var.

Nasil bir input?

Bir bilgisayarin ekranini acarak veya mouse’una dokunarak ona bir input gonderebilirsin.

pymodbus kütüphaneseini kullanarak TCP/IP üzerinden bağlanıyorum.

Lenze, Schneider, Omron gibi plclerle çalışıyoruz.

basitçe şöyle anlatayım ben şuan görüntü işleme üzerine çalışıyorum, kendi tanımladığım objeleri tanıtıyorum. örneğin kalem üzerine nesne tanıma yaptım, kamera kalemi gördüğü zaman ben başka bir bilgisayara true ya da false diye bir boolean göndericem o bilgisayarda bu inputu (True) aldığı zaman motor harekete başlayacak.

socket modülünün birçok haberleşme modülünün içinde bulunduğunu gördüm. Kendim deneyince bir web sitesi açıp web ile socketi haberleşmeyi denedim. İnternetten get metodunun yazısını buldum. Socketle isteği gönderince başarılı bir şekilde içeriğin geldiğini gördüm. Bunlara dayanarak diyorum ki bence işini görür ama daha özelleşmiş bir kütüphane varsa socketle uğraşmaya değmeye bilir.

önerebileceğin bir kaynak vs var mıdır ?

Modbus anladigim kadariyla transport layer’indan (TCP/IP) bagimsiz calisiyor. Surada yazdigina gore 1 ve 16 bit’lik salt-okuma ve okuma-yazma register’lariyla islem yapmaya izin veriyor. Dort islemin de en basit ornegi olarak sunu tavsiye edebilirim. Bunlarin otesi python’in, pymodbus’in ve hatta modbus’in kapsami disinda.

(Yaygin kullanilan ve de facto standart olmus oldugunu tahmin ettigim bir takim modbus deyimleri de bir alttaki “Ext” orneginde var. Fakat hangi register’in nasil kullaninca ne yaptigi bilgisi yine buradan cok kullanilan spesifik aletin keyfine bagli gibi. Onlarin manuelini okuman, veya en azindan internetlere sorarken “modbus” sorman faydali olabilir.)

Gercek zamanli kontrol icin ne var bilmiyorum fakat beklentiler o kadar yuksek degilse OSC gayet yaygin ve basit. Modbus da olabilir, hali hazirda baska is icin kullaniliyor olacak zaten. Bu kadar basit bir gereksinimi herhangi bir kutuphane halledebilir aslinda, yan gereksinimleri cikartmak lazim. (Paket kaybi, timeout durumunda ne olacak, vs.) Paralel bir evdende ZeroMQ diyebilirdim fakat kurcalamaya saatlerimi verdigim halde duzgun anladigimi dusunmuyorum. Yine de denenebilir. Yine, bu detaylarla birlikte buraya tekrar sorabilirsin; duz soket kutuphanesi kullanan da, uzerine basit bir katman arayan da baya var.

ben modbus dedim ama sadece kütüphanenin adı modbus yani illa modbusla haberleşmek zorunda değilim. hızı yüksek olan, parazit yapmayacak bir protokol de olur ki bizim işimizi tcp/ip görüyor.benim aslında sıkıntım var olan kütüphaneleri nasıl öğrenebilirim. çünkü döküman var var ama hiç açıklayıcı değil sadece kodlar paylaşılmış, nasıl öğrenileceğine dair herhangi bir açıklama vs yapılmamış varsa bile çok yetersiz. mesela Keras veya sklearn gibi kütüphanelerin dökümanları harika, inanılmaz örnekler verilmiş sitede dolaşarak çok rahat bir şekilde öğreniliyor. bu tarz önerebileceğiniz kaynaklar var mı ya da siz nasıl öğrendiniz?.

Haberlesilecek protokolleri en kisitli cihaz olan PLC belirliyor. Spesifik aleti veya standardi sormamin nedeni de buydu: baska hangi protokolleri kullanmak mumkun?

Once var olan kutuphanelerin ne olduklarini ogrenmek gerekmiyor mu?

Bir de, benim deneyimimde, bir kutuphanenin yazilma sebebi olan protokolun nasil calistigini bilince, kutuphaneyi ogrenmek feci kolaylasiyor / gereksiz hale geliyor.

Dun hic dokumentasyonu olmayan 3 kutuphaneye denk geldim. Iki tanesini kullanmaya baslamak icin paketin icindeki example.py yetti.

1 Beğeni