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 RTU nedir? Modbus RTU; PLC, frekans inverteri, enerji analizörü ve uzak I/O gibi cihazların seri hat üzerinden haberleşmesini sağlayan Modbus iletim biçimidir. Endüstride çoğunlukla RS485 kullanılır. Doğru kablolama, aynı seri port ayarları ve doğru cihaz adresi olmadan haberleşme kurulamaz.
Bu rehberde RS485 A/B uçlarının nasıl ele alınacağını, baud rate ve parity ayarlarını, Slave ID kullanımını, Modbus register okumayı ve en sık karşılaşılan hata mesajlarını uygulama mantığıyla inceleyeceğiz. Genel protokol bilgilerini tekrarlamak yerine Modbus RTU bağlantısını sahada çalıştırmaya odaklanacağız.

Modbus RTU, Modbus isteğini ve yanıtını ikili (binary) seri çerçeveler hâlinde taşır. Geleneksel bir Modbus RTU hattında master cihaz sorguyu başlatır; adreslenen slave cihaz geçerli isteğe yanıt verir. Slave cihazlar normalde kendiliğinden veri göndermez ve doğrudan birbirleriyle konuşmaz.
Örneğin bir PLC aynı RS485 hattındaki Slave ID 1 adresli sürücüden frekans değeri, Slave ID 2 adresli enerji analizöründen ise gerilim bilgisi okuyabilir. PLC bu cihazlara sırayla sorgu gönderir. Cihazın hangi register’ında ne bulunduğu her zaman üreticinin register tablosundan öğrenilir.
RS485, Modbus’un kendisi değil, elektriksel seri haberleşme arayüzüdür. İki telli yarı çift yönlü (half-duplex) RS485, Modbus RTU uygulamalarında çok yaygındır. Verici ve alıcılar ortak bir diferansiyel veri hattını paylaşır; bağlantı düzeni ve cihazın elektriksel referansı önemlidir.
RS485 cihazlarında A/B, D+/D−, +/− veya benzeri işaretlerle karşılaşabilirsiniz. Üreticiler A ve B adlandırmasını her zaman aynı polarite için kullanmayabilir. Bu nedenle yalnızca harfleri eşleştirerek kablo bağlamak yerine her iki cihazın haberleşme kılavuzunda belirtilen sinyal polaritesini kontrol edin. Yanlış bağlantı iletişimi engelleyebilir.
Örnek bir kurulumda PLC’nin diferansiyel hat çifti, sürücü ve enerji analizörünün ilgili RS485 veri terminalleri boyunca devam eder. Ayrıca cihaz kılavuzunun gerektirdiği signal common / referans bağlantısı ve izolasyon şartları göz önünde bulundurulmalıdır. Koruma topraklaması ile haberleşme referansı aynı amaçla kullanılan uçlar değildir.
Çoklu RS485 cihazlarını bağlarken ana hat boyunca zincir (bus/line) topoloji tercih edilir. Uzun yıldız bağlantılar ve gereksiz uzun yan kollar yansıma ve haberleşme hatalarını artırabilir. Uygun kablo, ekranlama, bağlantı uzunluğu ve düğüm sayısı üretici dokümanına göre seçilmelidir.
RS485 kablosunun karakteristik empedansı yaklaşık 120 Ω olduğunda hattın iki fiziksel ucunda uygun sonlandırma direnci kullanılabilir. Birçok cihazda bu direnç dahili ve anahtarlıdır. Hattın ortasındaki her cihaza ayrıca 120 Ω direnç bağlamak doğru değildir. Kısa bir bağlantıda gereklilik değişebilir; her zaman cihaz ve kablo dokümanını esas alın.
Hatta kimse veri göndermiyorken alıcı girişlerinin kararsız kalmasını önlemek amacıyla uygun bias/fail-safe düzeni gerekebilir. Bu düzen bazı cihazlarda zaten bulunur. Hat boyunca farklı noktalarda gelişigüzel bias eklemek yerine sistemin RS485 tasarımını kontrol edin. Ekranlı bükümlü çift kablo ve üreticinin önerdiği ekran/topraklama yöntemi, elektriksel parazitin yoğun olduğu panolarda özellikle önemlidir.
Modbus RTU hattındaki cihazların seri iletişim parametrelerinin uyumlu olması gerekir. Aşağıdaki değerler örnek bir eğitim düzeni içindir; her cihazda varsayılan oldukları anlamına gelmez.
| Ayar | Örnek değer | Açıklama |
|---|---|---|
| Baud rate | 9600 | İletişim hızı; iki cihazda aynı olmalı |
| Data bits | 8 | RTU veri karakteri |
| Parity | Even (E) | Desteklenen eşlik denetimi seçimi |
| Stop bits | 1 | Bu örnekteki 8E1 çerçevesinin parçası |
| Slave ID | 1 (sürücü), 2 (analizör) | Aynı hatta benzersiz adresler |
| Timeout | Örn. 500 ms | Örnek bekleme süresi; sistem gereğine göre ayarlanır |
9600/8E1; saniyede 9600 bitlik hat hızı, 8 veri biti, even parity ve 1 stop biti anlamına gelir. Bazı cihazlar 8N1 veya parity kullanılmadığında iki stop biti gibi farklı kombinasyonları destekleyebilir. 8E1 tüm cihazlar için zorunlu veya tek geçerli ayar değildir. İki tarafta aynı, üreticinin desteklediği yapı seçilmelidir.
Tek cihazla test için sıklıkla 1 kullanılır. Birden fazla cihaz bağlandığında her birine farklı ID verilir. Yanlış ID seçildiğinde master sorgu gönderse de doğru cihaz yanıt vermeyebilir. Aynı hatta iki slave’e aynı ID verilmesi çakışmaya neden olabilir.
Master yanıtı beklemek için yeterli süre tanımalıdır. Bir sorgudan sonra yanıt gelmediğinde ne kadar bekleyeceği timeout, sorgular arasında ne sıklıkla yeni istek göndereceği ise polling düzeniyle ilgilidir. Çok kısa timeout değerleri gereksiz iletişim hatası üretirken, çok sık sorgu göndermek hattın ve cihazların yükünü artırabilir. Sorgu sırası, yanıt süresi ve tekrar denemeler birlikte ayarlanmalıdır.
Bir RTU mesajı dört ana bölümden oluşur: Slave adresi + fonksiyon kodu + veri + CRC16. CRC, iletilen çerçevedeki hataları algılamak için kullanılır; veri güvenliği veya şifreleme sağlamaz. RTU CRC alanında düşük anlamlı bayt önce iletilir.
Aşağıdaki eğitim örneğinde PLC (master), Slave ID 1 adresindeki cihazdan 0 tabanlı 0 başlangıç adresinden iki holding register okumak istiyor. İstek çerçevesi şöyledir:
01 03 00 00 00 02 C4 0B
Cihazın ilk register’ında 250, ikinci register’ında 0 olduğunu varsayarsak örnek yanıt şu biçimde olabilir:
01 03 04 00 FA 00 00 DA 02
Burada 04 veri baytı sayısını, 00 FA onluk 250 değerini temsil eder. Bu sayı 25,0 Hz olarak ancak ilgili cihazın kılavuzu 0,1 Hz ölçekleme tanımlıyorsa yorumlanabilir. Adresler ve ölçüm değerleri gerçek bir sürücüye ait değildir; örnek, çerçeve mantığını göstermek içindir.
Bazı cihaz kılavuzları ilk holding register’ı 40001 biçiminde gösterir. Modbus protokolündeki PDU adresleme ise 0’dan başlar. Bu nedenle bazı yazılımlarda 40001 referansının karşılığı başlangıç adresi 0’dır. Ancak her yazılımın adres kutusu aynı gösterimi kullanmaz; 0 tabanlı adresleme seçeneğini kontrol etmeden 40001 sayısını doğrudan girmeyin.
Örnek sistemde bir PLC’nin RS485 portu master, frekans inverteri slave olarak çalışacaktır. Amaç motoru çalıştırmak değil, önce inverterin anlık frekansını güvenli biçimde okumaktır. Bunun için şu adımları takip edin:
Güvenlik: Haberleşme testlerinde uzaktan start/stop veya frekans referansı yazma komutlarını, makinenin emniyet koşulları ve yetkili devreye alma prosedürleri sağlanmadan denemeyin. Standart Modbus, emniyet fonksiyonlarının yerine geçmez.
Fiziksel PLC olmadan da bir RS485 cihazını test edebilirsiniz. Bilgisayara uygun USB–RS485 dönüştürücü bağlayın; doğru seri portu (COM), baud rate, parity, stop biti, Slave ID, fonksiyon kodu ve başlangıç register adresini Modbus RTU master test yazılımına girin.
İlk denemede yalnızca okuma yapın. Dönüştürücünün sürücüsünün kurulu olması ve işletim sisteminde COM portunun görünmesi tek başına Modbus iletişiminin kurulduğunu kanıtlamaz; haberleşme için cihazın da doğru yanıt vermesi gerekir.
Yanıt yoksa sırasıyla güç durumu, doğru COM portu, uygun RS485 dönüştürücü, polarite, Slave ID, baud/parity/stop bit uyumu ve RS485 hat topolojisini kontrol edin. Cihazın seri haberleşme fonksiyonunun ayrıca etkinleştirilmesi gerekip gerekmediğine bakın.
CRC hataları; hat paraziti, yanlış seri parametreler, kötü bağlantı, hat yansıması veya cihaz zamanlaması nedeniyle görülebilir. Kablo güzergâhı, ekranlama, hat sonlandırma ve ortak referansı değerlendirin. Yalnızca baud rate düşürmek her durumda yeterli çözüm değildir.
Slave yanıt veriyor ama hata mesajı dönüyorsa fiziksel iletişim en azından belirli ölçüde çalışıyor olabilir. Illegal Function (01) cihazın fonksiyon kodunu desteklememesine, Illegal Data Address (02) ise istenen register adresi veya aralığının geçersiz olmasına işaret edebilir. Register map ve fonksiyon kodunu yeniden kontrol edin.
Ham değer ile mühendislik birimi farklı olabilir. Signed/unsigned seçimi, 16/32 bit veri tipi, iki register’ın word order’ı ve ölçekleme katsayısını kontrol edin. Sürücünün ekranında 50,0 Hz görürken yazılımda 500 veya 5000 okunması, üreticinin veri formatına bağlı olarak normal olabilir.
Modbus RTU, çoğunlukla RS485 seri hat üzerinde baud rate, parity ve Slave ID ile yapılandırılır. Modbus TCP ise Ethernet/TCP/IP bağlantısı üzerinden IP adresi ve genellikle 502 numaralı portla çalışır. Ortak Modbus veri modeline sahip olmaları, iki haberleşme türünün doğrudan birbirine bağlanabileceği anlamına gelmez; gereken durumda uygun bir RTU–TCP gateway kullanılır.
Genel protokol kavramları, dört veri türü ve RTU/TCP karşılaştırması için forumumuzdaki ilk Modbus Nedir? rehberine de göz atabilirsiniz.
Hayır. Modbus RTU seri veri mesajlarının çerçevelenme biçimini tanımlar; RS485 ise bu mesajların iletilebildiği elektriksel haberleşme arayüzüdür.
Genellikle geçerli veri okunamaz. Fakat A/B adlandırma alışkanlıkları üreticiye göre değiştiğinden bağlantı, cihazların polarite açıklamalarına göre doğrulanmalıdır.
Hayır. Uygun RS485 hattında sonlandırma, çoğunlukla ana hattın iki fiziksel ucunda değerlendirilir; ara cihazların her birine sonlandırma eklenmez. Dahili direnç olup olmadığı kontrol edilmelidir.
Modbus adresleme bireysel slave için 1–247 aralığı sunsa da fiziksel RS485 hatta bağlanabilen cihaz sayısı transceiver yüküne, kablolamaya, mesafeye ve kullanılan donanıma bağlıdır. Adres sayısı tek başına fiziksel bağlantı kapasitesi değildir.
Modbus RTU nedir? Seri iletişim üzerinden endüstriyel cihazlardan veri okumayı ve desteklenen veri alanlarına kontrollü erişimi sağlayan yaygın Modbus iletim biçimidir. Sağlam bir uygulamanın temeli doğru RS485 kablolaması, eşleşen seri port ayarları, benzersiz Slave ID ve üretici register tablosudur.
Önce tek slave cihazla FC03 gibi basit bir okuma işlemini doğrulayın. Çalışan örneği çoklu cihazlara genişletirken adres, polling süresi ve fiziksel hat düzenini ayrıca kontrol edin. Teknik bir sorunuz varsa cihaz marka/modelini, seri ayarlarını, fonksiyon kodunu ve tam hata mesajını paylaşarak bu konuya yanıt yazabilirsiniz.
Kaynaklar: Modbus Organization – Resmî protokol spesifikasyonları · Modbus Serial Line V1.02 kılavuzu. Temel PLC kavramları için PLC Nedir? rehberimizi inceleyebilirsiniz.
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.