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 haberleşme, PLC, HMI, frekans inverteri, enerji analizörü ve uzak I/O gibi endüstriyel cihazlar arasında veri okumak ve gerektiğinde veri yazmak için kullanılan yaygın bir iletişim yöntemidir. Ancak haberleşmeyi çalıştırmak için yalnızca kabloyu bağlamak yeterli değildir. Cihazın desteklediği protokol, bağlantı ayarları, cihaz adresi, fonksiyon kodu ve register tablosu doğru seçilmelidir.
Bu uygulama rehberinde PLC ile Modbus haberleşme nasıl yapılır? sorusuna cevap veriyoruz. Önce bir cihazdan güvenli şekilde register okuyor, sonra Modbus RTU ve TCP bağlantı adımlarını inceliyor, en sık karşılaşılan arızaları sistematik biçimde teşhis ediyoruz. Aşağıdaki register adresleri gerçek bir sürücüye değil, eğitim amaçlı temsili bir cihaza aittir.

Modbus haberleşme kurulumuna geçmeden önce cihazın kullanım kılavuzundaki communication parameters ve Modbus register map bölümlerini açın. Aynı marka ve seride bile model veya firmware sürümü nedeniyle adresler ve desteklenen fonksiyonlar farklı olabilir.
Seri Modbus RTU uygulamalarında geleneksel adlandırma master/slave, Modbus TCP tarafında ise client/server şeklindedir. Bu yazıda örnek PLC, isteği gönderen cihaz olarak kullanılacaktır. Fakat her PLC’nin otomatik olarak her rolü desteklediği varsayılmamalıdır; cihazın programlama kütüphanesi ve haberleşme sürücüsü kontrol edilmelidir.
Güvenlik: İlk testleri eğitim setinde, simülatörde veya üretimden ayrılmış bir deneme düzeneğinde yapın. Çalışan bir makinede yazma komutları motorun beklenmedik hareket etmesine yol açabilir. Gerçek ekipmana parametre ya da çalıştırma komutu göndermeden önce yetkili personel tarafından risk değerlendirmesi yapılmalıdır.
Uygulama mantığını netleştirmek için temsili bir server/slave cihazımızın holding register haritasını şöyle düşünelim. Bu adresler herhangi bir ticari inverterin gerçek register listesi değildir.
| Doküman adresi | Örnek değişken | Ham değer |
|---|---|---|
| 40001 | Frekans geri bildirimi | 500 |
| 40002 | Durum kodu | 0 |
| 40003 | Simülasyon set değeri | 300 |
Varsayalım ki frekansın çözünürlüğü 0,1 Hz olsun. PLC, 40001 referansındaki değeri okuduğunda 500 sonucunu alır; ölçekleme yapınca 50,0 Hz görür. Aynı register 0,01 Hz çözünürlükle tanımlansaydı sonuç değişirdi. Bu nedenle ölçekleme, mutlaka cihaz dokümanına göre uygulanmalıdır.
40001 ile 0 aynı giriş biçimi değildir: 40001 yaygın doküman referans gösterimidir; Modbus PDU adresi sıfır tabanlıdır. Kullanılan yazılım bazı alanlarda 40001, bazı alanlarda ise 0 ister. Yazılımın adresleme seçeneği kontrol edilmeden rastgele 40001 girilmemelidir.
Modbus register’ları 16 bitliktir. FLOAT veya 32 bit INTEGER değerleri çoğu zaman iki register içinde taşınır. Bu nedenle verinin signed/unsigned türünü, register sayısını ve word order sırasını doğru seçin. İki register’lık bir değeri yalnızca bir register gibi okumak veya yanlış kelime sırasıyla birleştirmek hatalı sonuç üretir.
FC06 tek bir holding register’a, FC16 ise birden fazla holding register’a yazma işlemi için kullanılır. Ancak hedef cihazın bu fonksiyonları ve ilgili adresin yazılmasını desteklemesi gerekir.
Örneğin yalnızca simülatördeki 40003 referanslı eğitim register’ına 300 değeri yazıldığını düşünelim. Bu değerin anlamı, simülatör için hazırlanan register tablosuna göre belirlenir. Gerçek sürücüde 40003 adresinin hız referansı veya güvenli bir yazma alanı olduğu varsayılamaz.
Modbus RTU bağlantısında RS485 haberleşme portunun varlığı, kendi başına Modbus RTU desteği bulunduğunu kanıtlamaz. PLC ve sürücü kılavuzunda protokol ve rol desteğini doğrulayın.
RTU cihaz adresleri genellikle 1–247 aralığındadır. Sıfır adresi broadcast için ayrılmıştır ve normal bir bireysel yanıt beklemek amacıyla kullanılmaz. Hattın elektriksel referansı, ekranlama ve izolasyon tasarımı için cihazın kablolama kılavuzu esas alınmalıdır.
Modbus TCP haberleşme kurulumunda iki cihazın IP ağı üzerinden birbirine erişebildiğinden emin olun. Varsayılan Modbus TCP portu 502‘dir; cihaz ve ağ politikası farklı bir ayar gerektirebilir.
Modbus TCP’de doğrudan IP adresiyle erişilen server için Unit ID çoğu zaman yönlendirme amacı taşımaz; ancak TCP–RTU gateway kullanılıyorsa Unit ID, gateway arkasındaki seri cihazın adresini belirtmek için önemli olabilir. Davranış kullanılan gateway ve server modeline göre kontrol edilmelidir.
Evet. Gerçek PLC olmadan da bir Modbus client programı ile bir server simülatörü arasında iletişim mantığını deneyebilirsiniz. Bu çalışma özellikle register adresleme, fonksiyon kodları ve veri tiplerini öğrenmek için yararlıdır.
Modbus Poll, RTU/TCP bağlantı ve register okuma-yazma özellikleri sunan test yazılımlarından biridir. Ürün özellikleri ve lisans koşulları değişebileceği için güncel sayfasını kontrol edin. Bir portun bağlantı kabul etmesi, hedef cihazın tüm register’larının doğru olduğu anlamına gelmez.
Önce bağlantı türünü doğrulayın. RTU için COM portu, baud/parity, Slave ID, kablo polaritesi ve hat sonlandırmasına; TCP için IP, TCP portu, ağ erişimi ve server servisinin açık olmasına bakın. Timeout, tek başına yanlış register adresi anlamına gelmez.
Hedef server istenen fonksiyon kodunu desteklemiyor veya mevcut durumunda işlemi kabul etmiyor olabilir. FC03 yerine cihaz dokümanında FC04 gerekiyorsa doğru komutu seçin.
Başlangıç adresi veya istenen register aralığı hedef cihaz için geçerli olmayabilir. 40001/0 tabanlı adres gösterimini, register sayısını ve cihazın gerçek haritasını karşılaştırın.
Ham değerin signed/unsigned oluşu, ölçekleme, 16/32 bit uzunluk, word/byte sırası ve ölçümün gerçek fiziksel birimi kontrol edilmelidir. Örneğin ham 500 değeri, ölçeğe bağlı olarak 50,0 veya 5,00 gösterebilir.
RTU hattında yansıma, parazit, yanlış sonlandırma, ortak referans veya aşırı sorgu sıklığı; TCP ağında bağlantı zaman aşımı, ağ yoğunluğu veya server kapasitesi etkili olabilir. Hata sayacı ve zaman damgalarıyla sistematik kayıt tutun.
Codesys tabanlı örnek görmek isterseniz Codesys Modbus RTU Register Okuma ve Yazma Testi konusunu inceleyebilirsiniz. PLC kavramına yeniyseniz PLC Nedir? Ne İşe Yarar ve Nasıl Çalışır? rehberi de yararlı olacaktır.
Önce cihazların desteklediği Modbus türünü ve rollerini seçin. Ardından RTU için seri port, TCP için IP/port ayarlarını eşleştirin; cihazın register tablosundaki adresi doğru fonksiyon koduyla okuyun ve sonucu ölçekleyin.
Hayır. RS485 fiziksel arayüzdür. Cihazların Modbus RTU protokolünü, aynı seri parametreleri ve doğru Slave ID ayarını desteklemesi gerekir.
Yanlış register adresi, fonksiyon kodu, Unit ID/gateway ayarı, erişim izni veya server tarafı protokol desteği sorunu olabilir. TCP bağlantısını kurmak ile doğru Modbus verisini okumak farklı aşamalardır.
40001 yaygın bir holding register referans gösterimidir; ne içerdiği, hangi değerleri kabul ettiği ve yazılabilir olup olmadığı cihazın kendi register tablosuna bağlıdır. Gerçek donanımda belgesiz yazma işlemi yapmayın.
Modbus haberleşme uygulamasında başarılı sonuca ulaşmak için kablo, haberleşme parametresi, fonksiyon kodu, adres ve veri türünü ayrı ayrı doğrulayın. İlk çalışmayı mutlaka okuma ağırlıklı ve güvenli bir test düzeneğinde yapın. Ardından hata sayaçlarını takip ederek sistemi gerçek donanıma uyarlayın.
Bu rehber uygulamalı bağlantı ve arıza giderme adımlarına odaklanır. Modbus’un temel mantığını öğrenmek için yayımladığımız Modbus Nedir? yazısına, seri hat ayrıntıları için Modbus RTU Nedir? rehberine de göz atabilirsiniz. Bu iki konunun gerçek URL’leri doğrulandığında aralarına karşılıklı bağlantı ekleyebilirsiniz.
Kaynak: Modbus Organization – Resmî protokol belgeleri.
Siz hangi PLC veya cihazla haberleşme kuruyorsunuz? Sorunuzda marka/model, RTU/TCP türü, bağlantı ayarları, fonksiyon kodu, register adresi ve hata mesajını paylaşırsanız daha net teknik değerlendirme yapılabilir.
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.