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









FULTEK MODBUS RTU SERVER

S7 Ppi 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 / V x.x - Vb x -
Vw x - Vd x / S x.x - Sb x - Sw x - Sd x / Sm x.x - Smb x - Smw x - Smd x / AQw x / AIw x / T / C
Boolean,Usigned int8,Signed int8,Usigned int16,Signed int16,Usigned int32,Signed int32
Floatpoint, Bcd.

S7 Ppi ActiveX kullanım kılavuzu
Ppi 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
Plc Visual Basic
S7 .net
S7 Vb.
S7 Visualbasic
S7 Ppi 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:

PpiServer1.AutoStart_ = True

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

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

PpiServer1.Value_(1) = 100

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

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

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

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

PpiServer1.Connect_ = True

Aşağıdaki satırla kesilebilir.

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



Property PcPpiAdress_() As UInt16:

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

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

str = PpiServer1.PcPpiAdress_

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

PpiServer1.PcPpiAdress_ = 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 = PpiServer1.PcBaudrate_

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

PpiServer1.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 = PpiServer1.ComPort_

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

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

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

PpiServer1.PollTime_ = i



Property StationAdress_(ByVal StationName As String) As UInt16:

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

Aşağıdaki satır "st_name" isimli değişkenin belirttiği istasyonun adres numarasını "i" değişkeninin içerdiği numarayla değiştirir.

PpiServer1.StationAdress_(st_name) = i

Aşağıdaki satır "st_name" isimli değişkenin belirttiği istasyonun adres numarasını "i" değişkenine atar.

i = PpiServer1.StationAdress_(st_name)



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 = PpiServer1.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 PpiServer1.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 Ppi 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.

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

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

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

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

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

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

PpiServer1.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 200 ACTIVEX