s7-1200 PLC-PC VISUAL BASIC İLE TCP NATIVE HABERLEŞME

sinanco

Üye
Katılım
7 Eyl 2009
Mesajlar
37
Puanları
1
S7 1200 PLC ler ile pc arasında TCP IP haberleşmesi yapabilmek için visual basic ile yazılmış küçük bir program kullanıyoruz;
program kodları şöyle:
Public Class Form1
'FORM A 2 TEXTBOX, 2 BUTON, 1 WINSOCK NESNESİ EKLEYİN...

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Winsock1.RemoteHost = "140.80.120.3" 'PLC Adresini Belirtiyoruz
Winsock1.RemotePort = "2000" 'PLC nin Açılmış Port Numarasını Yazıyoruz
Label1.Text = Winsock1.LocalIP
Text2.Text = "HELLO"
End Sub
Private Sub winsock1_DataArrival(ByVal sender As Object, ByVal e As AxMSWinsockLib.DMSWinsockControlEvents_DataArrivalEvent) Handles Winsock1.DataArrival
Dim gelenveri As String
gelenveri = ""
Winsock1.GetData(gelenveri) 'winsock ile PLC den gelen veriyi alıyoruz ve gelenveri değişkenine atıyoruz
Text1.Text = Text1.Text & vbLf & gelenveri
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles button1.Click
Winsock1.Close()
Winsock1.Connect() ' bağlan emrini veriyoruz . . .
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim gidenveri As String
gidenveri = Text2.Text
Winsock1.SendData(gidenveri)
End Sub
Private Sub Winsock1_ConnectEvent(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Winsock1.ConnectEvent
End Sub
End Class
******************
programda kullanılan winsock nesnesi visual basic ile birlikte gelmiyor; bu nedenle internetden mswinsck.ocx dosyasını indirerek windows/system32 altına kopyalamalı ve başlat/çalıştırdan: regsvr32 mswinsck.ocx komutunu yönetici olarak çalıştırarak mswinsock nesnesini kurmalıyız.
ardından VB çalıştırılarak tools/chose Toolbox Items/com components den microsoft Winsock Control u seçerek işaretlemeliyiz.
bu durumda winsock nesnesi (2 aded PC görünümünde) toolboxda oluşacaktır.
bu tool u formumuza getirerek yukarıdki kodları çalıştırırsak PC tarafı TCP/IP haberleşmesine hazır olacaktır.
PLC tarafını da bilahere yazarız.
saygılarımla




 
PLC tarafında;
tcp/ip native haberleşme için s7 1200 plc de çalışacak bir program örneğini aşağıdaki linkden indirebilirsiniz; program TSEND ve TRCV bloklarını kullanıyor.
https://www.automation.siemens.com/...ow.aspx?HTTPS=REDIR&PostID=441098&language=en
örnek hyperterminal ile haberleşme için gereken ayarlamalara ilişkin bilgileri de içeriyor. ancak hyperterminalin windows7 de bulunmadığını da hatırlatmak isterim. hyperterminal kurmak isteyenler internetde programı bulabilirler.
PC_PLC haberleşmeyi yukarıdaki küçük VB programı ile yapabilirsiniz.
kolay gelsin.
 
Evet kodları incelememe rağmen gidenveri değerinin plc'nin hangi register adresine yazacağını ve gelenveri nin plc'nin hangi adresinden okuyacağımı göremedim.
 
Son düzenleme:
PC tarafındaki gelenveri string katarı PLC tarafından TSEND bloğu ile gönderilen DB2.DBX0.0 adresinden itibaren 10 byte dır.
gidenveri ise PLC tarafından TRCV bloğu ile alınıp DB2.DBX256 dan itibaren kaydedilir.
 
Son düzenleme:
dikkat: port 2000 in açık ve firewall tarafından bloke edilmediğinden emin olun: www.ip-adresi.net/araclar/acik-portlar
ayrıca ekli resimler de yardımcı olacaktır. (farketmemekle birlikte burada hyperterminal ile haberleşildiğine dikkat!)
CommContrl.jpgHyperTerminal_1.jpgOB1.jpgRCV.jpgSEND.jpg
 
ekli zip dosyada da -Siemens foruma üye olmayanlar için) programın kendisi var.
 

Ekli dosyalar

  • Comm TCP CPU-HyperTerminal.zip
    767.5 KB · Görüntüleme: 295
Merhaba arkadaşlar
visual basic ile plc yi haberleştirmede bir sorunum var sanırım 2000 nolu portu açamadığımdan dolayı haberleşemiyorum. 2000 nolu portu nasıl açabilirim ?
 

Yeni mesajlar

Forum istatistikleri

Konular
129,801
Mesajlar
930,219
Kullanıcılar
452,604
Son üye
cemocan44

Yeni konular

Geri
Üst