Codesys 3.5 PLC Programlama (Temel Seviye)
Sıfırdan başlamak isteyenler için temel PLC programlama.
TEMELSEVIYE11_2026
Konu detayları, medya içerikleri ve yanıtlar
Modbus nedir? Modbus; PLC, HMI, frekans inverteri, enerji analizörü, sıcaklık kontrol cihazı ve uzak giriş-çıkış (I/O) modülleri gibi endüstriyel cihazların birbiriyle veri alışverişi yapmasını sağlayan haberleşme protokolüdür. Bir cihazın tuttuğu dijital durumlar veya sayısal veriler, başka bir cihaz tarafından standart komutlarla okunabilir ve uygun izin varsa yazılabilir.

Modbus ilk olarak 1979 yılında Modicon tarafından geliştirilmiştir. Bugün seri hat üzerinde Modbus RTU, Ethernet ağı üzerinde ise Modbus TCP yaygın kullanılır. Bu rehberde çalışma mantığını, RTU ve TCP farklarını, RS485 bağlantısının rolünü, register adreslerini ve bir PLC ile haberleşmeye başlamanın temel adımlarını açıklıyoruz.
Modbus, temel olarak istek–yanıt (request–response) mantığıyla çalışır. İsteği başlatan cihaz, karşı tarafa belirli bir adres ve işlem koduyla başvurur. Karşı cihaz isteği destekliyorsa istenen veriyi veya işlemin sonucunu yanıt olarak döndürür.
Örneğin PLC, sürücünün anlık çıkış frekansını okumak istediğinde sürücünün dokümanında belirtilen register adresine okuma isteği gönderir. Sürücü de o adreste sakladığı veriyi yanıtlar. Veriyi anlamlandırmak için register adresinin yanında veri tipi ve ölçekleme bilgisi de gerekir.
Seri haberleşme uygulamalarında geleneksel olarak Master (istek gönderen) ve Slave (isteğe yanıt veren) terimleri kullanılır. Modern Modbus belgelerinde Client ve Server terimlerine de rastlanır; Modbus TCP’de yaygın kullanım bu şekildedir. Modbus RTU’da genellikle bir master, aynı seri hat üzerindeki adreslenmiş cihazlarla sırayla haberleşir.
Modbus TCP’de bir PLC client, bir enerji analizörü server olabilir. Bir cihazın rolü modeline, firmware’ine ve yapılandırmasına göre değişebilir; her PLC her iki rolü de desteklemek zorunda değildir.
Modbus nedir sorusunun yanıtı, belirli bir kablo veya portla sınırlı değildir. Protokol aynı temel okuma-yazma kurallarını farklı iletişim altyapıları üzerinde kullanabilir.
Modbus RTU, Modbus mesajlarının seri iletişim hattı üzerinden ikili (binary) biçimde taşındığı haberleşme yöntemidir. Endüstride sıklıkla RS485 fiziksel arayüzüyle kullanılır. RTU çerçevesi cihaz adresi, fonksiyon kodu, veri alanı ve hata denetimi için CRC içerir.
Haberleşmenin çalışabilmesi için cihazların baud rate, parity ve stop bit ayarlarının uyumlu olması; her yanıt veren cihaz için uygun bir Slave ID tanımlanması gerekir. Veri iletim hızını artırmak her zaman en güvenilir sonucu vermez; kablo uzunluğu, parazit ve cihazların desteklediği haberleşme ayarları birlikte değerlendirilmelidir.
En çok karıştırılan konulardan biri budur: RS485 bir elektriksel fiziksel katman standardıdır; Modbus ise veri alışverişinin kurallarını tanımlayan protokoldür. RS485 kablosu üzerinden Modbus RTU kullanılabilir, ancak RS485 kullanan her sistem Modbus konuşmaz. Benzer şekilde Modbus TCP, RS485 yerine Ethernet/TCP/IP üzerinden çalışır.
RS485 uygulamasında A/B hat isimleri üreticiler arasında farklı gösterilebildiğinden bağlantı mutlaka cihazların klemens ve polarite açıklamalarına göre yapılmalıdır. Hat topolojisi, uygun sonlandırma ve ortak referanslama da fiziksel haberleşme kalitesini etkiler.
Modbus TCP, Modbus komutlarının TCP/IP ağı üzerinden iletilmesidir. PLC, HMI, SCADA veya ölçüm cihazları Ethernet altyapısı üzerinden haberleşebilir. Yaygın varsayılan Modbus TCP portu 502‘dir; yine de cihaz ayarları ve ağ güvenliği politikası kontrol edilmelidir.
Modbus TCP mesajlarında işlem kimliği gibi alanları taşıyan MBAP başlığı bulunur. Seri RTU çerçevesindeki CRC alanı, Modbus TCP uygulama mesajında kullanılmaz. Bir RTU cihazıyla TCP cihazını bağlamak için bazı sistemlerde Modbus TCP–RTU gateway gerekir.
| Özellik | Modbus RTU | Modbus TCP |
|---|---|---|
| Yaygın altyapı | Seri hat, çoğunlukla RS485 | Ethernet / TCP/IP |
| Cihaz tanımlama | Slave ID / cihaz adresi | IP adresi ve TCP portu; bazı yapılarda Unit ID |
| Temel parametreler | Baud rate, parity, stop bit, ID | IP, ağ erişimi, TCP portu |
| Çerçeve kontrolü | RTU CRC | TCP/IP mekanizmaları; Modbus RTU CRC’si yok |
| Yaygın kullanım | Sürücü, sayaç, seri bağlı saha cihazları | PLC, HMI, SCADA ve Ethernet cihazları |
İki yöntem de aynı temel Modbus veri modelini ve birçok ortak fonksiyon kodunu kullanır. Hangisinin uygun olduğu, cihazın desteklediği arayüze ve tesisin haberleşme altyapısına bağlıdır.
Bir cihazdan veri okumak veya cihaza komut yazmak için üreticinin hazırladığı Modbus register tablosuna (register map) bakılır. Modbus veri modeli dört temel veri alanı tanımlar:
Önemli: Bir register’ın gerçekten yazılabilir olup olmadığı, protokol ailesi kadar cihazın kendi yazılımına ve izinlerine de bağlıdır. Her holding register’ın yazılabileceği varsayılmamalıdır.
Üretici kılavuzlarında 40001 gibi gösterilen ilk holding register, bazı yazılımlarda 0 başlangıç adresiyle temsil edilir. Çünkü Modbus PDU içindeki adres alanı sıfır tabanlıdır; ancak dokümanlarda 4xxxx gösterimi bir veri türünü ve referans numarasını belirtebilir.
Örneğin kılavuz ilk holding register’ı 40001 olarak gösteriyorsa birçok client yazılımında FC03 + başlangıç adresi 0 kullanılması gerekir. Fakat tüm yazılımlar aynı adres girişi biçimini kullanmaz. 40001’i doğrudan sayısal başlangıç adresi olarak yazmadan önce hem yazılımın adresleme seçeneğini hem cihazın register map açıklamasını kontrol edin.
Bir Modbus register’ı 16 bittir. Ancak akım, enerji veya sıcaklık gibi bazı değerler iki register’ı birleştiren 32 bit integer veya float biçiminde tutulabilir. Bu durumda register sırası (word order), işaretli/işaretsiz veri türü ve ölçekleme katsayısı önem taşır.
Örneğin cihaz dokümanında frekans değeri 0,01 Hz çözünürlüğünde saklanıyorsa okunan ham değer 5000, gerçek değer 50,00 Hz olabilir. Bu yalnızca örnektir; gerçek katsayı mutlaka üretici dokümanından alınmalıdır.
Fonksiyon kodu, karşı cihazdan istenen işlemi belirtir. Sık kullanılan komutlar şunlardır:
Bir komutun standartta tanımlanması, her cihazda uygulanmış olduğu anlamına gelmez. Okuma veya yazma işleminden önce cihazın fonksiyon kodu desteği, veri erişim yetkileri ve izin verilen değer aralığı incelenmelidir.
Temel bir örnek düşünelim: PLC, bir frekans inverterinden anlık frekans ve arıza kodu okuyacak. Herhangi bir marka/modelden bağımsız olarak izlenecek mantık şöyledir:
Örnek değerler cihazdan cihaza değiştiğinden burada uydurma register adresi vermiyoruz. Gerçek uygulamada doğru adresleri üretici kılavuzundan seçmek, çalışmayan bir örneği kopyalamaktan daha güvenilirdir.
Uygulamalı bir örnek görmek isterseniz forumumuzdaki Codesys Modbus RTU Register Okuma ve Yazma Testi konusunu inceleyebilirsiniz. PLC’nin temel çalışma mantığına yeni başlıyorsanız önce PLC Nedir? Ne İşe Yarar? rehberini okuyabilirsiniz.
Önce cihazın enerjili ve haberleşmeye hazır olduğundan emin olun. RTU için hat bağlantısı, seri port, Slave ID ve baud/parity ayarlarını; TCP için IP erişimi, portu ve ağ kurallarını inceleyin. Yanlış A/B bağlantısı veya sonlandırma sorunları da seri iletişimi bozabilir.
Bu tür exception response mesajları; cihazın komutu desteklemediğini, istenen adresin tanımlı olmadığını veya ilgili adres aralığının uygun olmadığını gösterebilir. Önce fonksiyon kodunu ve register map’i doğrulayın; ardından adresin 0 tabanlı mı 1 tabanlı mı girildiğine bakın.
Veri türü, signed/unsigned seçimi, 16/32 bit uzunluk, iki register’ın sırası ve ölçekleme katsayısı kontrol edilmelidir. Örneğin 32 bitlik bir değerin tek register olarak okunması anlamsız sayılar üretebilir.
Klasik Modbus RTU ve Modbus TCP, kendi başlarına modern kimlik doğrulama ve şifreleme mekanizmaları sunmaz. Özellikle Modbus TCP cihazlarını doğrudan internete açmak yerine endüstriyel ağ segmentasyonu, erişim kontrolü ve güvenli uzaktan erişim yöntemleri tercih edilmelidir. Modbus Organization ayrıca TLS tabanlı ayrı bir Modbus Security spesifikasyonu da yayımlamaktadır; bunun desteklenmesi cihaza ve sisteme bağlıdır.
Makine güvenliği notu: Acil durdurma, güvenli tork kapama ve benzeri emniyet işlevleri yalnızca standart Modbus mesajlarına bağlanmamalıdır. Güvenlikle ilgili kontrol fonksiyonları, ilgili emniyet standartları ve cihazın sertifikalı güvenlik çözümleri çerçevesinde tasarlanmalıdır.
Endüstriyel cihazların durum ve sayısal verilerini standart komutlarla okuyup yazabilmesini sağlayan haberleşme protokolüdür. Örneğin PLC ile bir enerji analizörü veya frekans inverteri arasında veri alışverişinde kullanılır.
Temel Modbus veri modeli ve fonksiyon kodları ortaktır; taşıma yöntemleri farklıdır. RTU seri hatlarda, TCP ise TCP/IP ağında çalışır. Ağ parametreleri ve mesaj çerçeveleri de farklılık gösterir.
Modbus RTU, yaygın olarak uygun RS485 kablolaması üzerinden kullanılır. Modbus TCP ise Ethernet ağı üzerinden taşınır. Ancak kablo ve bağlantı ayrıntıları cihaz üreticisinin bağlantı şemasına uygun seçilmelidir.
Yaygın 4xxxx gösteriminde ilk holding register’ı ifade eder. Modbus PDU’da bunun sıfır tabanlı adresi 0’dır; fakat kullanılan yazılımın adresleme gösterimi farklı olabileceği için dokümantasyon kontrol edilmelidir.
Modbus nedir, hangi cihazlarla çalışır ve bir uygulama nereden başlar? Öncelikle veri modelini ve cihaz dokümanlarını doğru okumayı öğrenmek gerekir.
Önce veri modeli ve request–response mantığını öğrenin. Ardından RTU için seri haberleşme parametrelerini, TCP için ağ ayarlarını ve register okuma işlemlerini test edin. Daha sonra marka/modelinize uygun bir PLC–sürücü veya PLC–enerji analizörü uygulaması geliştirin.
Modbus RTU’nun RS485 bağlantısını ve Modbus TCP’nin PLC üzerindeki kurulumunu sonraki rehberlerimizde daha ayrıntılı işleyeceğiz. Sorunuz varsa kullandığınız cihaz modelini, bağlantı tipini, fonksiyon kodunu ve hata mesajını bu konuya yanıt olarak paylaşabilirsiniz.
Teknik kaynak: Modbus Organization – Resmî Spesifikasyonlar ve Uygulama Kılavuzları.
Codesys Eğitim Portalı
Güncel kupon dönemi: 11.2026
Kurs seviyeleri hakkında: Orta Seviye kursumuz, Temel Seviye'den başlayarak orta düzeye kadar olan tüm dersleri kapsar. İleri Seviye kursumuz ise Temel Seviye'den başlar, Orta Seviye ile devam eder ve İleri Seviye dersleriyle tamamlanır. Dolayısıyla Orta veya İleri Seviye kurslarına katılmak için önceden o düzeyde bilgi sahibi olmanız gerekmez. Kurs seviyeleri, eğitime başlamak için gereken bilgi düzeyini değil, eğitim sonunda ulaşacağınız seviyeyi ifade eder.
Sıfırdan başlamak isteyenler için temel PLC programlama.
TEMELSEVIYE11_2026
Temel seviyeden başlar; temel ve orta seviye derslerini kapsar.
ORTASEVIYE11_2026
ÖNEMLİ: Ön bilgi gerekmez. Sıfırdan başlar; temel, orta ve ileri seviyelerin tüm derslerini kapsar.
ILERISEVIYE11_2026
Structured Text programlama dili için uygulamalı eğitim.
CODESYSST11_2026
Yapay zeka ve Codesys kullanarak PLC projesi geliştirme.
YAPAYZEKA11_2026
İndirimli kurs bağlantıları hakkında: “Kursa Git” butonları, indirim kodu önceden uygulanmış Udemy bağlantılarına yönlendirir. Bu nedenle açılan sayfada indirimli fiyatı doğrudan görebilir, ayrıca kod girmenize gerek kalmadan satın alma işlemini tamamlayabilirsiniz. Ancak farklı bir sayfaya yönlendirilmeniz veya indirimli bağlantıdan ayrılmanız durumunda, ödeme öncesinde belirtilen indirim kodunu kullanabilirsiniz.