C# & S7300 ile C# Ethernet Haberleşmesi

bana mpi ile yapılmış ufak bir örnek atabilrsen çok makbüle geçer, yüksek lisans çalışmasının bir parçası olarak kullanmak istiyorum,
Aşağıdaki belge Rs 232 ile çalışan ve LibNoDave tarafından örnek olarak verilen örnektir. Bilgisayarınız comport ve haberleştiğiniz plc nin haberleşme bilgileri ile birlikte okumak ve yazmak istediğiniz birkaç data registeri yazarsanız sanırım size yardımcı olabilirim.


Kod:
Using System;
class test {
    static libnodave.daveOSserialType fds;
    static libnodave.daveInterface di;
    static libnodave.daveConnection dc;
    static int localMPI=0;
    static int plcMPI=2;
    public static int Main (string[] args)
    {
    int i,a=0,j,res,b=0,c=0;
    float d=0;

        fds.rfd=libnodave.setPort(args[0],"38400",'O');
    fds.wfd=fds.rfd;
        if (fds.rfd>0) { 
        di =new libnodave.daveInterface(fds, "IF1", localMPI, libnodave.daveProtoMPI, libnodave.daveSpeed187k);
            di.setTimeout(1000000);
        res=di.initAdapter();
        if(res==0) {
        dc = new libnodave.daveConnection(di,plcMPI, 0, 0);
        if (0==dc.connectPLC()) {
            res=dc.readBytes(libnodave.daveFlags, 0, 0, 16, null);
            if (res==0) {
                a=dc.getS32();    
                b=dc.getS32();
                c=dc.getS32();
            d=dc.getFloat();
            Console.WriteLine("FD0: " + a);
            Console.WriteLine("FD4: " + b);
            Console.WriteLine("FD8: " + c);
            Console.WriteLine("FD12: " + d);
            } else 
            Console.WriteLine("error "+res+" "+libnodave.daveStrerror(res));
        }
        dc.disconnectPLC();
        }        
        di.disconnectAdapter();
        libnodave.closePort(fds.rfd);
    } else {
        Console.WriteLine("Couldn't open serial port "+args[0]);
        return -1;
    }    
    return 0;
    }
}
 
Moderatör tarafında düzenlendi:
bana mpi ile yapılmış ufak bir örnek atabilrsen çok makbüle geçer, yüksek lisans çalışmasının bir parçası olarak kullanmak istiyorum,

Kusura bakma sinancak yukarıda bir önceki mesajını şimdi farkettim. Usb mpi ile zaten bağlantıyı halletmişsin. bende Ethernet ile denemeler yapıyorum çalışması gayet sağlıksı. Istersen takıldığın yeri sor bende elimden geldiğince yardımcı olayım.
 
çok teşekkürler uğraşlarınız için, usb -mpi kablo ile testS7online.exe test programı ile bağlanabiliyorum commant prompt üzerinden denemeleri yapabiliyorum, yannız C# ile yazıp bağlanmayı paşaramadım, notlarda sizinde vermiş olduğunuz gibi rs232 -mpi için örnek verilmiş yalnız usb ile mpi kablo denediğimde örnek çalışmıyor ne değiştirmek gerekiyor çözemedim ,

sizin ile bilgilerimizi paylaşmak isterim,
 
Usb-MPI kablo ile Connectin olayını çözdüğünüzü düşünmüştüm. Ben dediğim dibi sadece Ethernet TCP/IP üzerinden testler yapma imkanım oldu açıkçası makinaların üzerinde çaşmak adamı deli ediyor yağ ve pislik içerisinde. MPI kablo ile bir uygulama yapmaya çalışırım fakat test etmediğimden sonucun ne olduğunu bilemem. Okumak veya yazmak istediiniz adresleri söylerseniz size ufak bir demo yapabilirim.
 
hocam ben PLC konusunda yeniyim C# ile PLC bağlantısı oluşturmak ve TCP ip ile haberleştirmek istiyorum bunu libnodave ile yapabilirmiyiz... sürekli seriport üzerinden anlatılmış makaleler okudum ve biraz kafam karıştı
 
daha önce bir örnek yayınlamıştım vs 2008 C# ve libnodave ile basit bir örnek.
kaynak kodları da vardı sanırım içinde.
inceleyin. işinize yarayabilir.


iyi çalışmalar.
 

Ekli dosyalar

  • 51_Data_View_Demo..rar
    2 MB · Görüntüleme: 111
arkadaşlar bende küçük bir yazılımla plc ye bağlı olan bir sistemi kontrol etmek istiyorum. bunu nasıl yapabilirim. başarabilen arkadaşlar olduğunu görüyorum bunları paylaşabilirmisiniz. bitirme projem için lazım C# ya da ASP.NET te olabilir. yardımlarınız için şimdiden teşekürler
 
Ahmet hocam Could not connect to PLC hatası neden olabilir
 
Ahmet hocam Could not connect to PLC hatası neden olabilir

settings.JPG

ayarları resimdeki gibi yaptıysanız ve plc ip adresini (cp x43-1) adresini dogru girdiyseniz baglanabilmeniz lazım.

ayrıca ilgili ayarlarda gözüken datablok yada sizin yuklediğiniz herhangi bir datablock plc ye yuklenmiş olmalıdır.

yoksa olmayan bir datayı okuyamazsınız.

bir de 102 nolu portun kullanılmıyor olması lazım.


Siemens iepg adlı(ismi bunun gibi birşey) bir servis var onu gecici olarak (eger çalışıyorsa) durdurmalısınız.


iyi çalışmalar.
 
Moderatör tarafında düzenlendi:
paylaşımınız için çok teşekkürler ancak biraz karışık incelemeye daha basit bir örnekten başlamalıyım, ama ilerledikce işme yarayacağına eminim
 

Forum istatistikleri

Konular
129,898
Mesajlar
931,133
Kullanıcılar
452,784
Son üye
caglayancag

Yeni konular

Geri
Üst