SOFT PLC

SOFT PLC

Raspberry Pi PLC. Orange Pi PLC. Windows PLC. Bilgisayar PLC. Windows PLC.

Soft PLC her işletim sisteminde çalışır. Bilgisayar, Raspberry Pi veya Orange Pi benzeri cihazları PLC’ye dönüştürebilirsiniz. GPIO’ları dijital giriş, dijital çıkış, pwm, seri port ve SPI olarak kullanabilirsiniz. USB seri port, seri port özellikli kare kod okuyucu ve benzeri cihazları kullanabilirsiniz. Fulmatic PLC IO modüllerini remote IO CPU’su ile birlikte kullanabilirsiniz. Lisans satın almadan 60 dakika çalıştırabilirsiniz. Lisans ücreti cihaz başına 25 USD’dir.

Soft PLC Tüm işletim sistemlerinde çalışır. Soft PLC’nin çalışacağı platformda Microsoft .Net Core 8.0.4 Runtime olmak zorundadır. Bu versiyon gelecek güncellemelerle sürekli değişebilir. Güncel versiyon Soft PLC’nin hangi .Net Core versiyonu ile çalıştığını buradan “Download” başlığının altında görebilirsiniz.

Soft PLC Kurulumu

  • Soft PLC’nin kurulumu Fulmatic SOFT’un yardım sayfalarında daha detaylı olarak anlatılmıştır. Fulmatic SOFT’u buradan indirebilirsiniz.
  • Soft PLC dosyalarına erişmek için Fulmatic Soft’un PLC penceresinin sağ üstündeki “Soft PLC dosyalarını kaydet” butonuna basarak dosyaları bilgisayarınıza kaydedin.

Windows'a Soft PLC Kurulumu

  • Soft PLC’nin çalışması için Microsoft .Net Core 8.0.4 yüklü olmalıdır. .Net Core Runtime 8.0.4’ı buradan indirebilirsiniz.
  • Soft PLC dosyalarını kaydettiğiniz klasör içerisindeki SoftPLC.exe ile Soft PLC’yi bilgisayarınızda başlatabilirsiniz.
  • İlk çalıştırdığınızda Windows bu programın ağda TCP portu açması için erişim izin ister. Evet olarak cevaplanmalıdır.
  • Bilgisayarınızdaki seri portların Soft PLC ile kullanılabilmesi için Project klasörü içerisindeki Config.txt dosyasında seri portları tanımlamalısınız.

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.

Rasberry Pi/Orange Pi ve Benzeri Platformalara Soft PLC Kurulumu

  • Raspberry Pi’de terminali açarak /home/raspberrypi altında SoftPLC isimli bir klasör oluşturun. Burada /home/raspberrypi dizini cihazınıza ve kullanıcı adınıza göre değişiklik gösterebilir.
    mkdir SoftPLC
  • Kaydettiğiniz Soft PLC dosyalarını bir USB flash yardımıyla veya FTP (Filezilla) yöntemiyle cihazınıza taşıyın. FTP ile dosya taşıma hakkında bilgi almak için burayı ziyaret edin.
  • Filezilla’da bilgisayarımıza kaydettiğimiz Soft PLC dosyalarını seçip, Raspberry Pi’deki oluşturduğunuz SoftPLC klasörüne yükleyin.
  • Soft PLC dosyalarının kopyalanması bu işlemle tamamlanmış oldu.
  • Dotnet kurulu durumda olduğunda Soft PLC’yi çalıştırmak için terminalinize aşağıdaki satırı yazın.
    sudo dotnet /home/raspberrypi/SoftPLC/SoftPLC.dll

Rasberry Pi/Orange Pi ve Benzeri Platformalara Dotnet Kurulumu

  • 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.
    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. İndirdiğiniz dosyaya göre düzenlemeniz gerekir.
    tar -xvf dotnet-runtime-8.0.4-linux-arm.tar.gz -C /home/raspberrypi/dotnet/
  • Tar dosyasından çıkarma işlemi tamamlandıktan sonra dotnet için PATH tanımlaması yapacağız. Bu işlem için aşağıdaki kodu yürütün.
    sudo nano /home/raspberrypi/.bashrc
  • Dosyanın en alt kısmına aşağıdaki satırları 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 kapat/aç yapmadan etkili olması için aşağıdaki komutu yürütün.
    source ~/.bashrc
  • Dotnet’in yolunu varsayılan güvenli yol olarak kaydetmek için aşağıdaki kodu yürütün.
    sudo visudo
  • Dosya içerisinde aşağıdaki satırı görseldeki gibi mevcut “Default secure path” satırının altına yapıştırın.
    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.

GPIO'ların kullanılabilmesi için WiringPi kütüphanesi kurulu olmalıdır.

  • WiringPi, Raspberry Pi ve benzeri platformlar için geliştirilmiş bir GPIO kütüphanesidir.
  • Bu kütüphane, Raspberry Pi’nin GPIO pinlerini kolay ve etkili bir şekilde kontrol etmenizi sağlar.
  • Soft PLC’de de GPIO’ların kullanımı için WiringPi kütüphanesi kullanılmıştır. Bu sebeple Soft PLC’nin Raspberry Pi çalışması için cihazınızda WiringPi’nin kurulu olması gerekir.
  • WiringPi kurulumu için terminalde aşağıdaki satırları sırasıyla yürütün. (RaspberryPi için geçerlidir. Diğer platformlar için farklı olabilir.)
    sudo apt install git
    sudo git clone https://github.com/WiringPi/WiringPi.git
    cd WiringPi
    sudo ./build
  • WiringPi hakkında daha fazla bilgi almak için burayı ziyaret edebilirsiniz.

GPIO ve Seri port kullanımı için Project klasörü içerisindeki Config.txt dosyasında tanımlamalar yapılmalıdır.

  • GPIO ve Seri port kullanımı için düzenlenebilir.
  • Kullanılmayacak özellikler için satır oluşturulmamalıdır. Örneğin DI yoksa o satır hiç eklenmemelidir.
  • Hardware PWM, Software PWM ve seri port alt alta kaç tane varsa yazılmalıdır.
  • GPIO fiziksel pin numaralarını kendi donanımınıza göre ayarlamayı unutmayın.
  • Örnek Config.txt dosyası
    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;

  • Shutdown Detect
  • Kapanış algılama devreniz için kullanılacak pin. Aşağıdaki görselde kapanış algılama devresi (SD Detect) örneği bulunmaktadır. Ayrıca burayı da inceleyebilirsiniz.
  • Soft PLC 256 kB hafızaya sahiptir. Diske sadece hafızanın kullanılan kısmı kaydedilir. Bu sayede kapanış algılama devresinde kullanılacak kondansatör boyutu küçültülmüş olur.
  • Ctrl + C ile program kapatıldığında kapanış için gereken zaman terminal ekranında görünür. “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.
  • Kapanış için gerekli zaman yetersiz gelirse ilave kondansatörler eklenmelidir. Başlangıç için 3300uf tavsiye ediyoruz.
    Shutdown Detect:29U;

  • Digital Inputs
  • Djital giriş olarak kullanılacak pin numaraları sırasıyla yazılmalıdır.
  • U- Pull Up, D-Pull Down için kullanılır veya boş bırakılabilir.
  • U ve D bazı sistemlerde çalışmayabilir. İşletim sisteminden manuel olarak yapın veya harici pull up-down dirençleri ekleyin.
  • Yazılan ilk pin numarası Soft PLC’de dijital giriş başlangıç adresinin ilk bit’ini temsil eder.
  • Yan yana yazılan her pin numarası başlangıç adresinden itibaren sonraki gelen pinleri temsil eder.
  • Örnek dosyadaki pinleri ele alırsak;
    Digital Inputs:33D;35U;36;37U;
    33D - I 0.0
    35U - I 0.1

  • Digital Outputs
  • Djital çıkış olarak kullanılacak pin numaraları yazılmalıdır.
  • Pinler sırasıyla yazılmalıdır ve dijital girişlerdeki gibi U,D şeklinde yazılamaz.
  • Yazılan ilk pin numarası Soft PLC’de dijital çıkış başlangıç adresinin ilk bit’ini temsil eder.
  • Yan yana yazılan her pin numarası başlangıç adresinden itibaren sonraki gelen pinleri temsil eder.
  • Örnek dosyadaki pinleri ele alırsak;
    Digital Outputs:38;40;
    38 - Q 0.0
    40 - Q 0.1

  • PWM
  • Clock ve Periyot sabit olarak Config.txt dosyası içinde yazılır.
  • Fulmatic SOFT’ta Analog çıkış adresi ilk PWM’in çıkış değeridir. Bu değer 0 ila set edilen periyot arasında olmalıdır.
  • PWM aralığı (range) en fazla 1024 olarak yazılır.
  • Eğer analog çıkış adresini 100 olarak yazdıysanız, UINT16 tipinde QW 100 ilk PWM olacaktır. Diğer PWM’ler sırasıyla QW 102, QW 104 şeklinde devam eder.
  • İlk önce Hardware PWM’ler daha sonra Software PWM’ler adreslenir.
  • Hiçbir yerde virgüllü sayı kullanılmaz.

  • 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

  • Seri port
  • Seri port haberleşme USB çevirici veya RS232 çipi ile yapılacaksa EnablePin parametresini yazmanıza gerek yoktur. Yalnızca RS485 entegresi kullanıldığında EnablePin seçilmelidir.
    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.

Leave a Reply