Bir çok otomasyon projesinde Profinet ile haberleşme gereksinimi ortaya çıkar. Profinet haberleşme interface’i olarak kullanabileceğiniz. Profinet esnek yapısı ile projelerinizde kullanabilirsiniz. Lisans sahipleri bu activeX'i her hangi bir sınır olmaksızın kullanabilirler. Lisans alıcaklar için ücretli veya ücretsiz activeX kodunda değişiklik yapılabilir. Profinet ActiveX .Net frame work 3.5 kullanılmıştır.
ActiveX kullanıcılarının programlarına kolaylıkla ekleyebilmeleri ve programın muhtemel diğer ihtiyaçlarının kolaylıkla karşılanabilmesi düşünülerek hazırlanmıştır. Bu amaçla sıradan ActiveX'lerde olmayan proje kayıt,kayıt getirme fonksiyonları dahi ActiveX'e eklenmiştir. Böylece projenizin Profinet ile alakalı tüm işlemlerini bir kaç dakikada bitirebilirsiniz.









Profinet Vb 6 - .Net 2005-2008 Example Project.
Lisans Fiyatı: 300 Usd.
M x.x - Mb x - Mw x - Md x / I x.x - Ib x - Iw x - Id x / Q x.x - Qb x - Qw x - Qd x / Data Block value
Boolean,Usigned int8,Signed int8,Usigned int16,Signed int16,Usigned int32,Signed int32
Floatpoint,Counter,Simatic Time,Time,Time Of Day,Date
S7 1200 Activex
Siemens ActiveX
Plc ActiveX
Profinet ActiveX
S7Profinet
Mpi ActiveX
S7 Ppi ActiveX
S7Ppi ActiveX
Ppi ActiveX
Plc .Net
Plc Vb.
Plc VisualBasic
Plc Visual Basic
S7 .net
Profinet ActiveX
Profinet S7 1200

S7 Ppi ActiveX kullanım kılavuzu
Public AutoStart_ As Boolean:

PLC kapalı olduğunda veya başka sebeplerden dolayı PLC bağlantısı sağlanamadığında haberleşme başlatılamayacaktır. Bu özellik True yapıldığında komponent sürekli bağlanmayı deneyecektir ve PLC hazır olduğunda haberleşme başlayacaktır. False ise otomatik bağlanma özelliğini pasif yapacaktır.

Örneğin aşağıdaki satır komponentin Auto Start özelliğini True yapacaktır:

Profinet1.AutoStart_ = True

Aşağıdaki satır ise komponentin Auto Start özellik değerini "i" değişkenine atar:

i = Profinet1.AutoStart_



Property Value_(ByVal TagId As UInt32) As String:

Set değeri yazmak veya aktuel değeri okumak için kullanılan property dir. TagId, Tag listesindeki satır numarasıdır.

Örneğin aşağıdaki satır Tag listesinin 1. satırındaki Tag'a 100 değerini atar:

Profinet1.Value_(1) = 100

Aşağıdaki satır ise 1. satırdaki Tag degerini program içerisindeki i değişkenine atar:

i = Profinet1.Value_(1)


Public FileName_ As String:

Aktif olan özelliklerin kayıtlı bulunduğu dosya adını verir.

Örneğin aşağıdaki satır, bu dosyanın ismini görüntüler:

MsgBox(Profinet1.FileName_)


Property LoadSettings_() As String:

Daha önceden kaydedilmiş olan özellik dosyasının içerdiği ayarları komponente yükler. Bu property'nin dönen değeri dosya yoludur.

Örneğin aşağıdaki satır, "path" değişkeninin içerdiği yolda bulunan dosyadaki ayarları komponente yükler.

Profinet1.LoadSettings_ = path


Public Sub SaveSettings_(ByVal value As String):

Mevcut bağlantı ayarlarını verilen dosya adıyla kaydeder. Dosya adı dosya yolunu da içermelidir.

Örneğin aşağıdaki satır, komponent ayarlarını "path" değişkeninin içerdiği yoldaki dosyaya kaydeder.

Profinet1.SaveSettings_(path)


Property Connect_() As Boolean:

Bu property True olduğunda komponent PLC'ye bağlanır. False yapıldığında bağlantıyı keser. Bağlantı durumu da bu property'den sorgulanabilir. Komponent, PLC'ye bağlanmaya çalışırken de bu property True olarak sonuç bildirecektir. Gerçek durum connection property'sinden öğrenilebilir.

Bağlantı aşağıdaki satırla aktifleştirilebilir:

Profinet1.Connect_ = True

Bağlantı, aşağıdaki satırla kesilebilir.

Profinet1.Connect_ = False


Public Connection_ As Boolean:

Bağlantı durumu bu variable'dan okunabilir. Bağlantı sağlandıktan sonra True değerini dönecektir.

Aşağıdaki satır, bağlantı durumunu "str" değişkenine atayacaktır.

str= Profinet1.Connection_


Property PlcName_() As String:

Bağlanılacak PLC'ye verilen isim sorgulanıp değiştirilebilir.

Aşağıdaki satır, bağlanılacak PLC ismini "str" değişkenine atayacaktır.

str = Profinet1.PlcName_

Aşağıdaki satır str değişkeninin içerdiği değeri bağlanılacak PLC ismi olarak atar.

Profinet1.PlcName_ = str


Property PlcIpAddress__() As String:

Bağlanılacak PLC nin IP adresi sorgulanıp değiştirilebilir.

Aşağıdaki satır, bağlanılacak PLC adresini "str" değişkenine atayacaktır.

str = Profinet1.PlcIpAddress__

Aşağıdaki satır str değişkeninin içerdiği değeri komponente bağlanılacak PLC nin adresi olarak atar.

Profinet1.PlcIpAddress__ = str


Property PlcPortAddress__()  As UInt16:

Bağlanılacak PLC port numarası sorgulanıp değiştirilebilir.

Aşağıdaki satır, bağlanılacak PLC'nin port numarfasını "i" değişkenine atayacaktır.

i = Profinet1.PlcPortAddress__

Aşağıdaki satır i değişkeninin içerdiği değeri komponente bağlanılacak PLC port numarası olarak atar.

Profinet1.PlcPortAddress__ = i


Property PollInterval_() As UInt16:

Poll.Interval değeri sorgulanıp değiştirilebilir.

Aşağıdaki satır komponentin poll interval süresini "i" değişkenine atar.

i = Profinet1.PollTime_

Aşağıdaki satır i değişkeninin içerdiği değeri komponentin poll interval süresi olarak ayarlar.

Profinet1.PollTime_ = i


Public Sub NotAvailableTagName(ByVal TagName As Array):
(COM Komponenti için: Public Sub NotAvailableTagName(ByVal TagName As string))

Projede birden çok Profinet komponenti kullanıldığında veya bu komponent haricinde taglar bulunuyorsa mevcut tag listesi bu fonksiyon ile komponente yazılabilir. Böylece komponent kendi içindeki tag'ların adını kontrol ederken bu listeyi de kontrol eder. Böylece tag isimlerinin benzersiz olması hem bu listede hemde diğer taglar ile kontrol edilmiş olur.
Bu metoda verilen parametre kullanılan komponentin NET ve COM oluşuna göre farklılık gösterir.
NET komponentlerinde tag isimleri bir array değişken içerisinde verilmelidir.
COM komponentinde ise TagName parametresi string tipindedir. Tag isimleri aralarında chr(20) karakteri bulunacak şekilde bu metoda verilmelidir. (Tagname as string ="Tag_1 & chr(20) & Tag_2" )


Function TagList_():

Tag listesinin tamamını Array olarak döndürür.

Aşağıdaki satır, Tag listesini TagArray isimli dizi değişkene atar.

TagArray = Profinet1.TagList_


Function TagListErr_():

Tag listesinde hatalı değer varsa False, yoksa True sonucunu döndürür.

Eğer Tag Listesinde hatalı değer varsa, kullanıcıya aşağıdaki şekilde bildirilebilir.

If Profinet1.TagListErr_ = False Then
            MsgBox("Tag table found error!")
       Exit Sub
End If

Property GroupCycle_(ByVal GroupName As String) As UInt16:

Adı girilen grubun cycle değerini döndürür veya değiştirir.

Aşağıdaki satır "gr_name" isimli değişkenin belirttiği grubun Cycle değerini "i" değişkeninin içerdiği sayı ile değiştirir.

Profinet1.GroupCycle_(gr_name) = i

Aşağıdaki satır "gr_name" isimli değişkenin belirttiği grubun Cycle değerini "i" değişkenine atar.

i = Profinet1.GroupCycle_(gr_name)
  

Property FileMenu_() As Boolean:

File menü butonlarının görünür görünmez durumları ayarlanır veya öğrenilir.

Aşağıdaki satır File Menü butonlarını görünmez yapar.

Profinet1.FileMenu_ = False


Property ConnectButton_() As Boolean:

Connect ve Disconnect butonlarının görünür görünmez durumları ayarlanır veya öğrenilir.

Aşağıdaki satır Connection butonlarını görünmez yapar.

Profinet1.ConnectButton_ = False


Property ToolStrip_() As Boolean:

ToolStrip görünür görünmez durumları ayarlanır veya öğrenilir.

Aşağıdaki satır ToolStrip'i görünmez yapar.

Profinet1.ToolStrip_ = False


Property StatusStrip_() As Boolean:

StatusStrip görünür görünmez durumları ayarlanır veya öğrenilir.

Aşağıdaki satır StatusStrip'i görünmez yapar.

Profinet1.StatusStrip_ = False


Property TreeviewMenu_() As Boolean:

Network ağaç görüntüsünde mouse sağ click ile açılan menüleri aktif-pasif yapar.

Aşağıdaki satır Network TreeView'de sağ mouse tuş menüsünü pasif yapar.

Profinet1.TreeviewMenu_ = False


Property DataGridMenu_() As Boolean:

Tag listesinde mouse sağ click ile açılan menüleri aktif-pasif yapar.

Aşağıdaki satır Tag Listesinde sağ mouse tuş menüsünü pasif yapar.

Profinet1.DataGridMenu_ = False



Komponent Event'ları:

COM Komponentdeki ismi
.NET Komponentdeki ismi
Açıklama

Event MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs)

Event MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs)

Komponent üzerinde mouse butonuna basıldığında tetiklenen olaydır.

Event MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs)



Event MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs)

Komponent üzerinde mouse hareket ettiğinde tetiklenen olaydır.

Event MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs)



Event MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs):

Komponent üzerinde mouse butonu kalktığında tetiklenen olaydır.

Event KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs)



Event KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs):


Komponent üzerinde klavyeden bir tuşa basıldığında tetiklenen olaydır.

Event Connectedcom(ByVal sender As Object, ByVal Status As Boolean)




Event Connected_(ByVal sender As Object, ByVal Status As Boolean)


Bağlantı sağlandığında ve bağlantı kesildiğinde interrupt olarak tetiklenen olaydır.

Event ReadValuecom(ByVal sender As Object, ByVal TagId As UInt32, ByVal Value As String)





Event ReadValue_(ByVal sender As Object, ByVal TagId As UInt32, ByVal Value As String)

PLC'den okuma gerçekleştiğinde okunan değer önceki değerden farklı ise bu interrupt ana programa Tag listesindeki sıra numarası(Tag_Id) ile birlikte Tag değerini gönderir. Haberleşme ilk başlatıldığında tüm tag değerleri bir kez gönderilir.


Event ReadErrcom(ByVal sender As Object, ByVal TagId As UInt32)


Event ReadErr_(ByVal sender As Object, ByVal TagId As UInt32)


PLC'den yapılan okuma işlemlerinde oluşan hatalar tag listesindeki satır numarası(TagId) ile ana programa bildirilir.


Event SetErrcom(ByVal sender As Object, ByVal TagId As UInt32)




Event SetErr_(ByVal sender As Object, ByVal TagId As UInt32)


Set değerleri uygun olmadığı veya PLC'ye yazılamadığı durumlarda hata tag listesindeki satır numarası(TagId) ile ana programa bildirilir.


Event TimeOutcom(ByVal sender As Object, ByVal StationName As String)



Event TimeOut_(ByVal sender As Object, ByVal StationName As String)


PLC ile bağlantı sağlanamadığı durumda timeout olan komponent durumunu ana programa bildirir.

Event GenericErrcom(ByVal sender As Object, ByVal Message As String)


Event GenericErr_(ByVal sender As Object, ByVal Message As String)

Bir çok hata durumu bu interrupt ile ana programa bildirilir. Bu interrupt hata mesajınıda içerir.
PROFINET ACTIVEX