SOFT PLC
Raspberry Pi PLC. Orange Pi PLC. Windows PLC. Bilgisayar PLC. Windows PLC.
Soft PLC, tüm modern işletim sistemlerinde yüksek performansla çalışır. Böylelikle bilgisayar, Raspberry Pi veya Orange Pi gibi donanımları saniyeler içinde tam teşekküllü bir PLC’ye dönüştürebilirsiniz. Üstelik cihazın GPIO’larını; dijital giriş-çıkış, PWM, seri port ve SPI olarak verimli bir şekilde kullanabilirsiniz. Sisteminize USB seri port veya karekod okuyucu gibi donanımları doğrudan entegre etmeniz de mümkündür. Ayrıca, Fulmatic PLC IO modüllerini Remote IO CPU’su ile kullanarak sisteminizi dilediğiniz gibi genişletebilirsiniz.
Donanım ve Yazılım Gereksinimleri
Soft PLC’nin stabil çalışması için platformunuza Microsoft .Net Core 8.0.4 Runtime (veya daha güncel bir sürüm) kurmalısınız. Yazılım güncellendikçe gerekli .Net Core versiyonu da farklılık gösterebilir. Bu nedenle, en güncel sürüm bilgilerini her zaman ‘Download‘ başlığı altından takip etmenizi öneririz.
Soft PLC Kurulum Rehberi
- Soft PLC kurulumu hakkında daha kapsamlı bilgilere Fulmatic SOFT Yardım Sayfaları üzerinden ulaşabilirsiniz. Henüz indirmediyseniz, Fulmatic SOFT’u buradan indirin.
- Soft PLC dosyalarını elde etmek için Fulmatic SOFT içerisindeki PLC penceresinin sağ üst köşesinde bulunan “Soft PLC dosyalarını kaydet” butonuna tıklayın ve dosyaları bilgisayarınıza aktarın.

Windows işletim sisteminde sorunsuz bir deneyim için bilgisayarınızda Microsoft .Net Core 8.0.4 Runtime yüklü olmalıdır. Gereken bu sürümü buradan güvenle indirebilirsiniz.
Kurulum Adımları:
- Yazılımı Başlatın: Kaydettiğiniz klasör içindeki
SoftPLC.exedosyasını çalıştırarak Soft PLC’yi başlatın. - Ağ Erişimi İzni Verin: Programı ilk kez çalıştırdığınızda Windows, TCP portu açılması için bir güvenlik uyarısı gösterir. Yazılımın ağ üzerinden haberleşebilmesi için bu uyarıya “Erişime İzin Ver” (Evet) diyerek onay verin.
- Seri Port Tanımlama: Bilgisayarınızdaki seri portları Soft PLC ile kullanmak istiyorsanız;
Projectklasörü içindekiConfig.txtdosyasını açın ve ilgili seri portları bu dosya üzerinden tanımlayın.
Serial Port:Name=COM0;BaudRate=115200;Parity=None;StopBits=1;DataBits=8;FlowControl=None; Serial Port:Name=COM1;BaudRate=115200;Parity=None;StopBits=1;DataBits=8;FlowControl=None;
Aşağıdaki işlemler Raspberry Pi PLC ve benzeri cihazlar içindir.
Raspberry Pi veya Orange Pi cihazlarınızda Soft PLC kurulumunu gerçekleştirmek için aşağıdaki adımları takip edebilirsiniz:
1. Klasör Oluşturma
Terminal ekranını açın ve Soft PLC dosyalarını barındıracak yeni bir dizin oluşturun.
Not: Örnekte kullanılan
/home/raspberrypidizini, kullandığınız cihazın kullanıcı adına göre (örneğin/home/orangepigibi) değişiklik gösterebilir.
mkdir SoftPLC

2. Dosyaların Cihaza Aktarılması
Bilgisayarınıza kaydettiğiniz Soft PLC dosyalarını bir USB bellek veya FTP (Filezilla) yöntemiyle cihazınıza taşımanız gerekir.
- İpucu: FTP kullanımı hakkında detaylı bilgiye buradan ulaşabilirsiniz.
- Kritik Adım: Filezilla üzerinden, bilgisayarınızdaki ARM klasörünün içindeki tüm dosyaları seçin ve cihazınızda oluşturduğunuz
SoftPLCklasörüne yükleyin.
(Soft PLC, yüksek performans için 32 bit ARMv7 işlemci mimarisiyle özel olarak derlenmiştir.)

3. Soft PLC’yi Çalıştırma
Dosya kopyalama işlemi tamamlandıktan sonra, sisteminizde .NET Runtime kurulu olduğundan emin olun. Soft PLC’yi başlatmak için terminale şu komutu yazın:
sudo dotnet /home/raspberrypi/SoftPLC/SoftPLC.dll
- Raspberry Pi için .Net Core Runtime 8.0.4’ı buradan indirebilirsiniz.
Versiyon uyumsuzluğu olduğunda terminal ekranında hata mesajı oluşacaktır. - Bilgisayarınızda indirdiğiniz dosyayı bir USB flash yardımıyla veya FileZilla gibi tranfer programlarıyla Raspberry Pi’ye taşıyın. FTP ile dosya taşıma hakkında bilgi almak için burayı ziyaret edin.
- İndirilen dosyayı /home/raspberrypi/Downloads dizinine taşıdık.
- Raspberry Pi’de terminali açarak /home/raspberrypi altında dotnet isimli bir klasör oluşturun.
Soft PLC’nin çalışması için gerekli olan .NET Core Runtime 8.0.4 sürümünü buradan indirebilirsiniz. Eğer sürüm uyumsuzluğu yaşarsanız, terminal ekranında bir hata mesajı ile karşılaşırsınız.
1. Dosya Hazırlığı ve Aktarımı
İndirdiğiniz kurulum dosyasını USB bellek veya FileZilla gibi bir FTP programı kullanarak cihazınıza taşıyın.
- Dosya Konumu: Bu rehberde dosyanın
/home/raspberrypi/Downloadsdizinine taşındığı varsayılmıştır. - FTP Yardımı: Dosya aktarımı konusunda desteğe ihtiyacınız varsa bu kılavuzu inceleyebilirsiniz.
2. Kurulum Adımları
Terminali açın ve aşağıdaki komutları sırasıyla uygulayarak .NET klasörünü oluşturup dosyaları çıkartın:
mkdir dotnet
- Downloads klasörüne gidin ve indirdiğiniz dosyayı dotnet klasörüne çıkartın.
- Buradaki dotnet-runtime-8.0.4-linux-arm.tar.gz indirilen dosya adıdır. Dosya adı indirdiğiniz sürüme göre farklılık gösterebilir
tar -xvf dotnet-runtime-8.0.4-linux-arm.tar.gz -C /home/raspberrypi/dotnet/
3. PATH (Yol) Tanımlaması
Sistemin dotnet komutunu her yerden tanıyabilmesi için PATH tanımlaması yapmalısınız. Bu işlem için aşağıdaki kodu yürütün.
sudo nano /home/raspberrypi/.bashrc
- Dosyanın en alt satırına şunları ekleyin.
export DOTNET_ROOT=/home/raspberrypi/dotnet/
export PATH=$PATH/home/raspberrypi/dotnet/

- Düzenlemeyi bitirdiğinizde, dosyayı kaydetmek için Ctrl + X tuşlarına basın. Ardından Y tuşuna ve Enter tuşuna basarak kaydetme işlemini onaylayın.
- Değişikliklerin hemen uygulanması için şu komutu çalıştırın:
source ~/.bashrc
4. Güvenli Yol (Secure Path) Ayarı
Dotnet’in sudo komutlarıyla da sorunsuz çalışması için şu adımı tamamlayın:
sudo visudo
Defaults secure_path="..."satırını bulun ve sonuna dotnet dizinini ekleyin:
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/home/raspberrypi/dotnet"
- Düzenlemeyi bitirdiğinizde, dosyayı kaydedin ve kapatın.
- Bu işlemlerden sonra Dotnet kurulumu tamamlanmış oldu.

Soft PLC, donanım pinlerini (GPIO) kontrol etmek için WiringPi kütüphanesini kullanır. Raspberry Pi üzerinde GPIO birimlerini aktif etmek için bu kütüphaneyi kurmanız şarttır.
# Gerekli araçları yükleyin ve kaynak kodunu indirin
sudo apt install git
sudo git clone https://github.com/WiringPi/WiringPi.git
# Kurulum dizinine gidin ve derleme işlemini başlatın
cd WiringPi
sudo ./build
Not: Bu adımlar Raspberry Pi için standarttır. Diğer platformlarda (Orange Pi vb.) kurulum yöntemi farklılık gösterebilir. WiringPi hakkında daha detaylı teknik bilgiye resmi sayfasından ulaşabilirsiniz.
Soft PLC’nin donanım özelliklerini kullanabilmek için Project klasörü içindeki Config.txt dosyasını düzenlemeniz gerekir. Yapılandırma sırasında dikkat etmeniz gereken temel kurallar şunlardır:
- Sadelik: Kullanmadığınız özellikleri (örneğin dijital giriş yoksa) dosyaya eklemeyin.
- Sıralama: Donanım (Hardware) PWM, Yazılım (Software) PWM ve Seri Portlar alt alta listelenmelidir.
- Doğruluk: Donanımınıza ait fiziksel pin numaralarını kullandığınızdan emin olun.
Örnek Config.txt İçeriği
Shutdown Detect:29U;
Digital Inputs:33D;35U;36;37U;
Digital Outputs:38;40;
Hardware PWM:Pin=12;Clock=100000;Range=100;
Software PWM:Pin=16;Range=100;
Serial Port:Name=/dev/ttyS1;BaudRate=115200;Parity=None;StopBits=1;DataBits=8;FlowControl=None;EnablePin=32;
Serial Port:Name=/dev/ttyS2;BaudRate=115200;Parity=None;StopBits=1;DataBits=8;FlowControl=None;EnablePin=7;
1. Kapanış Algılama (Shutdown Detect)
Elektrik kesintilerinde verilerin güvenle kaydedilmesi için kullanılır.
- Hafıza Yönetimi: Soft PLC 256 kB hafızaya sahiptir ancak sadece kullanılan kısım diske yazılır. Bu sayede küçük kondansatörlerle (min. 3300uf tavsiye edilir) veri güvenliği sağlanır. Kapanış için gerekli zaman yetersiz gelirse ilave kondansatörler eklenmelidir.
- Performans:
Ctrl + Cile programı kapattığınızda, terminalde kaydedilme süresini görebilirsiniz (Örn:PLC_Code.bin saving time: 70 ms). Bu süre donanım hızına ve yazılmış PLC kod büyüklüğüne bağlıdır.
Shutdown Detect:29U;
Aşağıdaki şemada, standart bir kapanış algılama devresi (SD Detect) örneğini inceleyebilirsiniz:

İpucu: Devre tasarımı ve bağlantı detayları hakkında daha derinlemesine bilgi edinmek için buraya göz atabilirsiniz.
2. Dijital Giriş (DI) Yapılandırması
- Djital giriş olarak kullanılacak pin numaraları sırasıyla yazılır.
- Girişler için U (Pull Up) veya D (Pull Down) modlarını belirtebilir ya da boş bırakabilirsiniz.
- Bazı sistemlerde yazılımsal Pull Up/Down özelliği desteklenmeyebilir. Bu durumda işletim sistemi ayarlarını manuel yapın veya harici dirençler kullanın.
- Yazdığınız ilk pin numarası, Soft PLC içerisindeki dijital giriş adresinin ilk bitine (Örn: I 0.0) karşılık gelir.
- Yan yana eklediğiniz her pin, başlangıç adresinden itibaren bir sonraki bit adresini temsil eder.
Aşağıdaki örnek satırları inceleyerek adresleme mantığını kavrayabilirsiniz:
Digital Inputs:33D;35U;36;37U;
33D - I 0.0
35U - I 0.1
3. Dijital Çıkış(DQ) Yapılandırması
- Çıkış pinlerini sırasıyla yazın. Girişlerin aksine, çıkışlarda U veya D gibi mod tanımlamaları kullanmayın.
- Listeye eklediğiniz her yeni pin, bir sonraki Soft PLC bit adresine (Q 0.0, Q 0.1…) otomatik olarak atanır.
Aşağıdaki örnek satırları inceleyerek adresleme mantığını kavrayabilirsiniz:
Digital Outputs:38;40;
38 - Q 0.0
40 - Q 0.1
4. PWM (Sinyal Genişlik Modülasyonu)
- PWM yapılandırması için
Config.txtdosyasında Clock ve Range değerlerini sabit olarak belirleyin. - Fulmatic SOFT’ta ilk PWM çıkışı, belirlediğiniz Analog Çıkış (QW) adresinden başlar (Örn: QW 100).
- Sistem önce Hardware (Donanımsal) PWM‘leri, ardından Software (Yazılımsal) PWM‘leri adresler.
- PWM aralığını (range) en fazla 1024 olarak tanımlayın ve hiçbir alanda virgüllü sayı kullanmayın.
Hardware PWM
Her cihaz için hardware PWM’nin pin numaraları farklı olabilir. Burada örnek kullanımı gösterilmiştir.
Hardware PWM:Pin=12;Clock=100000;Range=100;
Pin=Hardware PWM pin numarası 12 (GPIO18-PWM0)
Clock=PWM frekansı
Range=PWM aralığı (0 ile 1024 arasında)
Software PWM
Software PWM kullanarak boştaki bir GPIO pini üzerinde PWM sinyali oluşturulabilir.
Software PWM:Pin=12;Range=100;
Pin=Software PWM pin numarası
Range= PWM aralığı
Frekans formülü: Frequency Hz. = 1.000.000 / (PWM Range x 100us)
Range 100 olduğunda: frekans Frequency Hz. = 1.000.000 / (100 x 100us) = 100 Hz
5. Seri Port Yapılandırması
- RS232, RS485 veya USB-Seri dönüştürücüler için kullanılır.
- Eğer RS485 entegresi kullanıyorsanız, yön kontrolü için
EnablePinparametresini tanımlamanız şarttır. USB çeviricilerde ve RS232 entegresinde bu satıra gerek yoktur.
Serial Port:Name=/dev/ttyS1;BaudRate=115200;Parity=None;StopBits=1;DataBits=8;FlowControl=None;EnablePin=32;
Serial Port:Name=/dev/ttyS2;BaudRate=115200;Parity=None;StopBits=1;DataBits=8;FlowControl=None;EnablePin=7;
#Name=Kendi donanımınıza göre yazmalısınız.
#BaudRate=Kullanabileceğiniz baudrate (iletişim hızı), cihazınızın modeline ve işletim sistemine bağlı olarak değişebilir.
#Parity=None, Even, Odd, Mark, Space olarak yazılabilir.
#StopBits=0, 1, 2 yazılabilir.
#DataBits=7, 8, 9 yazılabilir. Modbus için 8 olmak zorundadır.
#FlowControl=None, RequestToSend, RequestToSendXOnXOff, XOnXOff şeklinde yazılabilir.
#EnablePin=Seri port haberleşmesi RS485 entegresi yardımıyla sağlanacaksa, GPIO pin'lerinde birisini Enable pin olarak kullanılır.
