Bu proje, Python ve PyQt6 kullanılarak geliştirilmiş, aynı anda birden fazla Modbus TCP sunucusunu (Slave cihaz) simüle etmenizi sağlayan bir araçtır. Endüstriyel otomasyon testleri, SCADA sistemleri ve PLC haberleşme denemeleri için tasarlanmıştır.

- Çoklu Sanal Cihaz: İstenilen sayıda sanal Modbus sunucusu oluşturabilirsiniz.
- Ağ Tarayıcı ve Otomatik IP Tanımlama: Ağdaki (örneğin Wi-Fi Hotspot) boş IP adreslerini tarar ve bunları bilgisayarınıza otomatik olarak ekler.
- Özelleştirilebilir Ağ Ayarları: Her sunucu için ayrı IP adresi ve Port numarası belirleyebilirsiniz.
- Gelişmiş Veri Simülasyonu (YENİ):
- Her sunucunun ilk 10 Holding Register'ı (Adres 0-9) için özel simülasyon kuralları tanımlayabilirsiniz.
- Toggle: Belirlenen sürede 0 ve 1 arasında geçiş yapar.
- Counter: Belirlenen sürede değeri sürekli artırır.
- Kullanıcı Dostu Arayüz: Sekmeli yapı ile sunucu yönetimi ve simülasyon ayarları kolayca yapılabilir.
Proje, MVC (Model-View-Controller) mimarisi ve Asyncio tabanlı asenkron yapı üzerine kurulmuştur.
Projenin çalışması için Python kurulu olmalıdır.
-
Gerekli kütüphaneleri yükleyin:
pip install -r requirements.txt
-
ÖNEMLİ: Ağ özelliklerini (IP tarama ve ekleme) kullanabilmek için uygulamayı Yönetici Olarak (Run as Administrator) çalıştırmanız gerekir.
# Terminali Yönetici olarak açın ve: python main.py
Bu yöntem, ağdaki boş IP'leri bulur ve sizin için ayarlar.
- Interface listesinden ağ kartınızı seçin (Örn:
Wi-Fi). - Start IP kısmına taramanın başlayacağı IP adresini yazın (Örn:
192.168.43.50). - Port kısmına sunucuların çalışacağı portu girin (Örn:
5020). - Count kısmına kaç adet sunucu istediğinizi yazın (Örn:
5). - Scan & Claim IPs butonuna tıklayın.
Eğer IP adreslerini kendiniz belirlemek istiyorsanız Manual Add bölümünü kullanın.
Bu sekmede, oluşturduğunuz sunucuların register değerlerini otomatik olarak değiştirecek kurallar tanımlayabilirsiniz.
- Select Server: İşlem yapmak istediğiniz sunucuyu seçin.
- Tablodan Seçim: Listeden kural uygulamak istediğiniz register'ları seçin (Örn: Holding Register 0). Çoklu seçim yapabilirsiniz.
- Kural Yapılandırma:
- Function:
Toggle (0/1)veyaCounterseçin. - Interval: Değişim sıklığını (saniye) girin.
- Function:
- Apply: Butona basarak kuralı uygulayın.
Ağdaki gerçek bir PLC'nin bu simülasyona bağlanabilmesi için:
- Doğru IP Kullanımı: Sunucuları
127.0.0.1yerine, ağdaki gerçek IP bloklarından (Örn:192.168.x.x) oluşturmalısınız. Otomatik kurulum bunu sizin için yapar. - Erişim: PLC ve Bilgisayar aynı ağda (örneğin aynı Wi-Fi veya Switch üzerinde) olmalıdır.
- Port: Varsayılan port
5020'dir. PLC ayarlarında bu portu kullanmayı unutmayın.