Python-snap7, Siemens S7 PLC'ler (Programlanabilir Mantık Denetleyicileri) ile arayüz oluşturmak için bir iletişim kitaplığı olan snap7 kitaplığı için bir Python paketleyicisidir. Siemens S7 iletişim protokolünü kullanarak bir ağ üzerinden PLC ile veri okumanıza/PLC'den veri yazmanıza ve onunla iletişim kurmanıza olanak tanır. Kütüphane, bir Python uygulaması ile PLC arasında veri alışverişi için işlevler sağlayarak PLC'yi otomasyon sistemlerine entegre etmeyi mümkün kılar.
Python-snap7 kütüphanesi hakkında ve bağlantı kurma kodu hakkında bir örnek sunuyorum:
import snap7
plc = snap7.client.Client()
plc.connect('192.168.1.1', 0, 1)
if plc.get_connected():
print("PLC'ye başarıyla bağlandı.")
else:
print("PLC'ye bağlantı başarısız.")
plc.disconnect()
Bu örnekte, snap7 kütüphanesinin Client nesnesi oluşturulur ve connect yöntemi ile IP adresi 192.168.1.1, rack 0 ve slot 1 olan PLC'ye bağlantı kurulur. Bağlantı durumunu kontrol etmek için get_connected yöntemi kullanılır ve bağlantı başarılıysa, PLC'ye başarıyla bağlandı mesajı yazdırılır. Son olarak, disconnect yöntemi ile bağlantı kapatılır. Bu sadece temel bir örnektir ve PLC'nin belirli bilgilerine (örneğin IP adresi, rack ve slot) sahip olmanız ve veri okuma / yazma işlemleri için ek kod gerekir. Python-snap7 kütüphanesi farklı veri türlerine (örneğin bit, byte, word, integer, float, vb.) ve farklı veri yapılarına (örneğin DB, input, output) erişmek için birçok fonksiyon sunar.
Python-snap7 ile veri okuma ve yazma işlemi
import snap7
plc = snap7.client.Client()
plc.connect('192.168.1.1', 0, 1)
if plc.get_connected():
# Read a Boolean value from the PLC's input area
input_byte = plc.read_area(snap7.types.areas.MK, 0, 0, 1)
input_bool = snap7.util.get_bool(input_byte, 0, 0)
print("Read input value:", input_bool)
# Write a Boolean value to the PLC's output area
output_byte = snap7.util.build_byte(output_bool, 0)
plc.write_area(snap7.types.areas.PK, 0, 0, output_byte)
print("Wrote output value:", output_bool)
else:
print("Connection to PLC failed.")
plc.disconnect()
Bu örnekte, read_area yöntemi ile PLC'nin girdi bölgesinden bir Boolean değeri okunur ve get_bool fonksiyonu ile değerin doğru şekilde okunup okunmadığı kontrol edilir. Daha sonra, write_area yöntemi ile PLC'nin çıkış bölgesine bir Boolean değeri yazılır. Not: MK ve PK değerleri örnek olarak verilmiştir ve bu değerlerin PLC'ninizdeki adreslere uygun olması gerekir. Aynı şekilde, 0, 0, ve 1 değerleri de örnek verilmiştir ve bu değerlerin PLC'ninizdeki verilere uygun olması gerekir.