Giriş
Fabrika yazılımları gerçek makine verisi okuyabildiğinde çok daha değerli hâle gelir. Siemens S7-1500 PLC ile çalışıyor ve bir C# uygulamasından veri almak istiyorsanız, S7.NET bu iş için oldukça pratik bir başlangıç sunar.
Bu rehberin odağı ilk çalışan köprüdür: PLC’yi hazırlamak, erişim ayarlarını doğru yapmak ve C# projesinden basit bir değeri başarıyla okumak.
1. Başlamadan önce gerekenler
PLC tarafında şunları hazırlayın:
- Bir Siemens
S7-1500PLC veya simülatör TIA Portal- Geliştirme makineniz ile PLC arasında ağ erişimi
Yazılım tarafında ise şunlar gerekli:
- Visual Studio
- Bir C# projesi, örneğin console app
- NuGet üzerinden kurulu
S7.NETpaketi
Bu temel parçalar hazır olduğunda kalan işin büyük bölümü doğru yapılandırma ve doğru adreslemedir.
2. PLC’yi dış erişime açın
S7-1500 varsayılan olarak dış istemcilere veri vermeye hazır değildir. Bu yüzden en kritik hazırlık adımı, ihtiyaç duyduğunuz haberleşme türünü etkinleştirmektir.
PUT/GET iletişimini açın
TIA Portal içinde:
- PLC yapılandırmasını açın.
- Güvenlik veya koruma ayarlarına gidin.
PUT/GETüzerinden uzaktan erişimi etkinleştirin.- Güncel ayarları PLC’ye yükleyin.
Bu ayar açılmamışsa, kodunuz doğru olsa bile haberleşme başarısız olabilir.
3. Basit bir test DB’si oluşturun
İlk okuma için PLC tarafını bilinçli olarak sade tutun.
Önerilen kurulum
DB1oluşturun.TestValuegibi tek bir değişken ekleyin.- Tipini
INTolarak belirleyin. - Adres düzeninin öngörülebilir olduğundan emin olun.
İlk denemelerde, adresler sabit kalsın ve eşleme kolay olsun diye optimized block access’i kapatmak çoğu zaman en temiz yaklaşımdır.
4. Bağlantı parametrelerini anlayın
Plc nesnesinin hedef cihaz hakkında birkaç temel bilgiye ihtiyacı vardır:
- CPU tipi
- PLC IP adresi
- Rack
- Slot
Tipik bir S7-1500 için rack ve slot çoğu zaman 0 ve 1 olur; ancak IP adresinin cihazınızla tam eşleşmesi gerekir.
using S7.Net;
var plc = new Plc(
CpuType.S71500,
"192.168.0.1",
0,
1
);
IP adresi yanlışsa, diğer tüm ayarlar doğru olsa bile bağlantı kurulmaz.
5. Bağlantıyı açın ve bir değer okuyun
İlk hedef büyük bir mimari kurmak değil, uygulamanın PLC ile konuşabildiğini ve tek bir alanı doğru okuyabildiğini doğrulamaktır.
using S7.Net;
using System;
class Program
{
static void Main()
{
var plc = new Plc(CpuType.S71500, "192.168.0.1", 0, 1);
try
{
plc.Open();
if (!plc.IsConnected)
{
Console.WriteLine("Bağlantı kurulamadı.");
return;
}
short testValue = (short)plc.Read("DB1.DBW0");
Console.WriteLine($"PLC değeri: {testValue}");
}
catch (Exception ex)
{
Console.WriteLine($"PLC hatası: {ex.Message}");
}
finally
{
if (plc.IsConnected)
{
plc.Close();
}
}
}
}
Bu ilk başarılı okuma size şu alanlarda güven verir:
- cihaz erişilebilirliği,
- PLC güvenlik ayarları,
- adres doğruluğu,
- kütüphane kullanımının temel akışı.
6. Sorun giderme kontrol listesi
Okuma başarısız olursa şu maddeleri sırayla kontrol edin:
- PLC ağa gerçekten açık mı?
- IP adresi doğru mu?
PUT/GETerişimi açık mı?- DB adresi doğru mu?
- DB optimized durumda olduğu için adres bazlı okuma bozuluyor olabilir mi?
- Rack ve slot değerleri hedef cihaz için doğru mu?
İlk endüstriyel entegrasyonlarda sorunların büyük kısmı koddan değil, konfigürasyondan kaynaklanır.
7. Sonraki adım ne olmalı?
Basit okuma çalıştıktan sonra doğal ilerleme şunlardır:
- birden fazla ilişkili değeri okumak,
- blokları C# modellerine eşlemek,
- status word ve alarm alanlarını işlemek,
- polling veya event-driven veri akışları kurmak,
- üretim yükü için performansı iyileştirmek.
Tam bu noktada yapısal okuma yaklaşımı çok daha değerli hâle gelir.
Sonuç
Bir Siemens S7-1500 ile C# uygulamasını konuşturmak karmaşık olmak zorunda değil. Küçük bir DB ile başlayın, PLC haberleşme ayarlarını doğru yapın, adres düzenini doğrulayın ve tek bir değeri uçtan uca başarıyla okuyun.
Bu ilk başarılı okuma; dashboard, makine izleme, endüstriyel API ve daha geniş OT/IT entegrasyonu çalışmalarının temelidir.