Bir çok otomasyon projesinde S7 Plc ile haberleşme gereksinimi ortaya çıkar. S7 Mpi Haberleşme interface’i olarak kullanabileceğiniz. S7 Mpi ActiveX 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. S7 Mpi 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 Mpi haberleşme ile alakalı tüm işlemlerini bir kaç dakikada bitirebilirsiniz.










S7 Mpi Vb 6 - .Net 2005-2008 Example Project.
Lisans Fiyatı: 100 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 Mpi ActiveX kullanım kılavuzu
Mpi Library
S7 Activex
Siemens ActiveX
Plc ActiveX
S7 Mpi ActiveX
S7Mpi Activex
Mpi ActiveX
S7 Ppi ActiveX
S7Ppi ActiveX
Ppi ActiveX
Plc .Net
Plc Vb.
Plc VisualBasic
S7 Mpi ActiveX
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:

MpiServer1.AutoStart_ = True

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

i = MpiServer1.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:

MpiServer1.Value_(1) = 100

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

i = MpiServer1.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(MpiServer1.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.

MpiServer1.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.

MpiServer1.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:

MpiServer1.Connect_ = True

Aşağıdaki satırla kesilebilir.

MpiServer1.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= MpiServer1.Connection_



Property PcMpiAdress_() As UInt16:

PC MPI Network adresi bu özellik ile sorgulanıp değiştirilebilir.

Aşağıdaki satır, komponentin PC MPI Network değerini "str" değişkenine atayacaktır.

str = MpiServer1.PcMpiAdress_

Aşağıdaki satır, "str" değişkeninin içerdiği değeri komponente PC MPI Network değeri olarak atayacaktır.

MpiServer1.PcMpiAdress_ = str


Property PcBaudrate_() As UInt32:

PC Baudrate değeri bu özellik ile sorgulanıp değiştirilebilir.

Aşağıdaki satır, komponentin PC Baudrate değerini "str" değişkenine atayacaktır.

str = MpiServer1.PcBaudrate_

Aşağıdaki satır, "str" değişkeninin içerdiği değeri komponente PC Baudrate değeri olarak atayacaktır.

MpiServer1.PcBaudrate_ = str


Property ComPort_() As String:

Komponentin kullandığı Seri Port adı sorgulanıp değiştirilebilir.

Aşağıdaki satır, komponentin kullandığı Seri Port ismini "str" değişkenine atayacaktır.

str = MpiServer1.ComPort_

Aşağıdaki satır, komponentin kullandığı seri portu "str" değişkeninin içerdiği isimdeki seri port ile değiştirecektir.

MpiServer1.ComPort_ = str



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 = MpiServer1.PollTime_

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

MpiServer1.PollTime_ = i


Property PlcBaudrate_() As UInt32:

PLC Baudrate değeri bu özellik ile sorgulanıp değiştirilebilir. (19200 veya 187500 olabilir.)

Aşağıdaki satır, komponentin PLC Baudrate değerini "str" değişkenine atayacaktır.

str = MpiServer1.PlcBaudrate_

Aşağıdaki satır, "str" değişkeninin içerdiği değeri komponente PLC Baudrate değeri olarak atayacaktır.

MpiServer1.PlcBaudrate_ = str

Property StationAdress_(ByVal StationName As String) As UInt16:

PLC MPI adresi sorgulanıp değiştirilebilir.

Aşağıdaki satır komponentin bağlanacağı adres numarasını "i" değişkeninin içerdiği numarayla değiştirir.

MpiServer1.StationAdress_ = i

Aşağıdaki satır komponentin bağlandığı istasyonun adres numarasını "i" değişkenine atar.

i = MpiServer1.StationAdress_



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 = MpiServer1.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 MpiServer1.TagListErr_ = False Then
            MsgBox("Tag table found error!")
       Exit Sub
End If


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

Projede birden çok Mpi 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" )


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.

MpiServer1.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 = MpiServer1.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.

MpiServer1.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.

MpiServer1.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.

MpiServer1.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.

MpiServer1.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.

MpiServer1.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.

MpiServer1.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.
S7 300 ACTIVEX - S7 400 ACTIVEX