1. sayfa (Toplam 2 sayfa)

HMI Haberleşme

Gönderilme zamanı: 16 Ağu 2025, 13:26
gönderen amasyalı
Konu: HMI Makro Komutlarının PLC Haberleşme Koptuğunda Çalışmaya Devam Etmesi Hakkında
Merhaba,
Bir projemizde Delta HMI panel ile bir adet PLC ve iki adet inverter arasında haberleşme kurduk. Sistem yapımız şu şekildedir:
• HMI ↔ PLC haberleşmesi: COM1(RS485 üzerinden) üzerinden (PLC Slave ID: 1)
• PLC ↔ İnverterler haberleşmesi: COM2 üzerinden RS-485 ile
o İnverter 1 → Slave ID: 2
o İnverter 2 → Slave ID: 3
İnverterleri kontrol etmek için HMI’da aşağıdaki şekilde makro komutları yazdık:
# 1. invertera ileri komutu
IF {Link1}1@M5 == ON
({Link2}2@RW-2000) = 18
ENDIF

# 1. invertera geri komutu
IF {Link1}1@M6 == ON
({Link2}2@RW-2000) = 34
ENDIF

# 1. invertera stop komutu
IF {Link1}1@M7 == ON
({Link2}2@RW-2000) = 1
ENDIF

# 2. invertera ileri komutu
IF {Link1}1@M4 == ON
({Link2}3@RW-2000) = 18
ENDIF

# 2. invertera geri komutu
IF {Link1}1@M3 == ON
({Link2}3@RW-2000) = 34
ENDIF

# 2. invertera stop komutu
IF {Link1}1@M2 == ON
({Link2}3@RW-2000) = 1
ENDIF
Yaşadığımız Sorun:
Eğer HMI ile PLC arasındaki haberleşme (COM1) kesilirse(RS485 çıkarırsak), bu makrolar kendi kendine çalışmaya devam ediyor. Bu durum kontrolsüz şekilde inverterlere komut gitmesine neden oluyor ve bizim için ciddi bir güvenlik ve sistemsel sorun oluşturuyor.
Sormak İstediğimiz:
1. HMI ile PLC arasındaki haberleşme koptuğunda, makroların çalışmasını engellemenin bir yolu var mı? Örneğin:
o PLC’den haberleşmenin sağlandığına dair bir bit (örneğin M1000 gibi) alıp, bu bit aktif değilse makroların hiçbirinin çalışmamasını sağlamak mümkün müdür?
o Haberleşme koptuğunda makro yürütmeyi durduracak bir kontrol mekanizması önerir misiniz?
2. Makro yerine tüm kontrolü PLC’ye aktarmak ve HMI üzerinden sadece buton sinyalleri göndermek (M bitleri) daha sağlıklı bir yöntem midir? Bu durumda PLC, inverterleri RS-485 üzerinden komutlarla kontrol edecek.
3. HMI tarafında yazdığımız bu makroların çalışma önceliği ya da zamanlaması hakkında bir dokümantasyon veya tavsiyeniz var mı?
Kısa Özetle:
• HMI-PLC haberleşmesi kesilince makroların kendi kendine çalışmasını engellemek istiyoruz.
• Bu durumda güvenli durma ya da hiçbir komut göndermeme gibi bir yapı oluşturmak istiyoruz.
• Gerekirse inverter kontrolünü tamamen PLC üzerinden yapmaya geçebiliriz, bu konuda da tavsiyelerinizi bekliyoruz.
Yardımcı olabilirseniz çok seviniriz.
Teşekkürler, iyi çalışmalar.
Not: konu HMI yi ilgilendirdiğini düşünerek 2,kez açılmıştır

Re: HMI Haberleşme

Gönderilme zamanı: 18 Ağu 2025, 10:46
gönderen İslam
Merhaba,

Aşağıdaki görselden HMI tarafında seri haberleşme için istasyon adresine göre kontrol sağlayabildiğiniz ve kontrol edebildiğiniz macroları görebilirsiniz. Sürücüler HMI'da olunca doğrudan HMI ile haberleşir, PLC olunca siz HMI'dan PLC'ye komut gönderecek sonra PLC'de kendi tarama döngüsü içerisinde sürücülere sorgu atacaktır. Macrolarla ilgili Macro Komutları Dokümanı'nı inceleyebilirsiniz.
istasyon.png

Re: HMI Haberleşme

Gönderilme zamanı: 18 Ağu 2025, 14:10
gönderen amasyalı
Önerdiğiniz gibi makro komutlarını kullanarak PLC'den gelen sinyale göre COM2 üzerinden sürücü bağlantısını kontrol etmeye çalıştım. Ancak denediğim makrolar beklediğim şekilde çalışmadı. Aşağıda kullandığım iki farklı denemeyi paylaşıyorum:

1. Deneme:

IF {Link1}1@M4 == OFF
STATIONON(1, 1)
ELSE
STATIONOFF(1, 1)
ENDIF


2. Deneme:

IF {Link1}1@M4 == OFF
STATIONON(2, 1)
ELSE
STATIONOFF(2, 1)
ENDIF

Yanlışımız nerede anlayamadım.

Re: HMI Haberleşme

Gönderilme zamanı: 19 Ağu 2025, 09:25
gönderen İslam
Kullandığınız macrolar haberleşmeyi aktif/pasif etmeye yarıyor. PLC bağlantısının olup olmadığına bakmak için STATIONCHECK macrosunu kullanın. Geri dönüş yoksa sürücülerle ilgili aksiyonu ozaman alacak macro satırlarını yazabilirsiniz.

Re: HMI Haberleşme

Gönderilme zamanı: 19 Ağu 2025, 10:47
gönderen amasyalı
İslam yazdı: 19 Ağu 2025, 09:25 Kullandığınız macrolar haberleşmeyi aktif/pasif etmeye yarıyor. PLC bağlantısının olup olmadığına bakmak için STATIONCHECK macrosunu kullanın. Geri dönüş yoksa sürücülerle ilgili aksiyonu ozaman alacak macro satırlarını yazabilirsiniz.
Bizim yazdığımız makroya göre bir örnek yazabilirmisini

Re: HMI Haberleşme

Gönderilme zamanı: 19 Ağu 2025, 11:08
gönderen İslam
$0 = STATIONCHK(1, 1) macro satırına göre;

COM1 portuna bağlı "1" nolu istasyona sahip cihazla haberleşme varsa $0 datasının içerisi "1" olacak, haberleşme yoksa "0" olacak. Artık sonrası algoritmanız doğrultusunda sizin yazacağınız komut satırlarına bakacaktır.

Re: HMI Haberleşme

Gönderilme zamanı: 19 Ağu 2025, 11:40
gönderen amasyalı
$0 = STATIONCHK(1,1)
IF $0.0 == on
STATIONON(2, 1)
BITON ({Link1}1@Y1)
ELSE
BITON ({Link1}1@Y2)
STATIONOFF(2,1)
ENDIF

Olarak yazdım "IF $0.0 == on" Olarak denersem y2 çekili kalıyor. "IF $0.0 == OFF" Olarak denersem Y1 Çekil Kalıyor. İnvertarda ki ileri-geri- durma devam ediyor sürekli yapıyor.

Re: HMI Haberleşme

Gönderilme zamanı: 19 Ağu 2025, 13:41
gönderen İslam
Sadece SET şartı yazmışsınız, RESET şartını yazmadığınız sürece SET olarak kalması gayet normal.

Re: HMI Haberleşme

Gönderilme zamanı: 19 Ağu 2025, 14:30
gönderen amasyalı
İşin Aslı ben komutun çalışıp çalışmadığını görmek için Y bobinlerinin çıkışlarını verdim. Komutu yazdıkdan sonra plc rs485 ucunu söktüm ve inverter ile bağlantı com2 bağlantısnı kapatamadım? nerde yanlış yapıyorum anlamadım siz bir makro yazabilirmisiniz ?

Re: HMI Haberleşme

Gönderilme zamanı: 19 Ağu 2025, 17:11
gönderen amasyalı
$0 = STATIONCHK(0,1)

IF $0.0 == ON
STATIONON(1,2)
BITOFF ({Link1}1@Y1)
BITON $1.0
ENDIF
IF $0.0 == OFF
STATIONOFF(1,2)
BITON ({Link1}1@Y1)
BITOFF $1.0
ENDIF


"$0 = STATIONCHK(0,1)" 0 yazdığımda com1 gördü sanırım 0 com1 1 ise com2 portunu işaret ediyor yanlışlık burada gibi geldi. Şuan sürücü ile deneyemedim fakat yarın deneyeceğim. bağlantı koptuğu an tüm saykıl makrolarını taramaya devam edermi eder ise onlara gelmeden direk bağlantıyı kapata bileceğimiz bir komut varmı yada alt makro gibi bir yere yazsak daha avantajlı olurmu ?