TRIFAZ Bağlantı Kontrolü + MCU

Başlatan eqooo, 03 Mayıs 2014, 10:50:02

eqooo

  Arkadaşlar bana yardımcı olursanız sevinirim bir çıkış yolu bulamadım. Mikroişlemci ile Trifaz bağlantı kontrol etmek istiyorum, yani R,S ve T uçları doğru yerlere mi bağlandı diye kontrol etmek istiyorum. Doğru bağlanıp bağlanmadığını nasıl anlayabilirim ???

kimlenbu

#1
Faz geçişlerini bulman gerekiyor. her faz arasında 120 derece vardır. Dalga 50Hz olduğu için periyotlarından gidip doğru sırayla geçiş yapıyorlar mı tespit edebilirsin.

Ekleme : Ayrıca ödev/proje falan değilse faz tespit için pano elemanları var, hiç uğraşmana gerek kalmaz. Faz sırasını da kontrol ediyor, fazlardan birisi yoksa onu da tespit ediyor

eqooo

Teşekkür ediyorum cevabınız için. 120 derece faz farkını biliyorum ama MCU kısmında nasıl bir yorum getireceğim orada kafam karıştı. Dediğinizin üzerine biraz yoğunlaşacağım.
Diğer taraftan da maliyetin artmamasını istiyorum o yüzden 2. seçenekler en son tercih olacak gibi görünüyor.
Teşekkürler.

z

Bir faz icin sifir gecis dedektoru yap.

Bu dedektor pals verdiginde bu fazin pozitif mi negatif mi olduguna bak.

Negatif ise bir sey yapma. (Asagidaki kuralin benzerini de uygulayabilirsin ama gerek yok)

Pozitif ise

Diger fazlarin ikisini de oku.

Birisi pozitif digeri negatif olacaktir.

Dogru faz siralamasini bir kez tespit et ve hangisi pozitif hangisi negatif bunu koda gom.

Kodundaki kabul ile olcum uyusuyorsa siralama dogru aksi durumda yanlis siralama olacaktir.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

eqooo

#4
Devremde köprü diyottan geçirip oradan da optokuplörden geçirerek devreme giriyor. Bu durumda hep pozitif gibi mi okurum ?
Biraz açıklar mısınız ?

mesaj birleştirme:: 03 Mayıs 2014, 15:34:11

Devrem  böyle;



malpaslan1979

#5

z

#6


3 faz sinyallerin altindaki R S T ile gosterilen kirmizi ve mavi bolgeler o fazin pozitif (kirmizi) yada negatif (mavi) oldugunu gosteriyor.

Onun altindaki RS, ST ve TR ise

Rnin pozitif S nin negatif oldugu bolgeyi
Snin pozitif T nin negatif oldugu bolgeyi
T nin pozitif R nin negatif oldugu bolgeyi

gosteriyor.

Yani ledlerin ne zaman yanacagini gosteriyor.

En alttaki A B C ise optolarin ledlerinin yandigi yani transistorlerin iletime gectigi bolgeleri goruyoruz.

Bu durumda R ucu referans faz kabul edilirse

A 0 den bire cikarken B ve C ye bakmak yeterli.

Opto led direnclerinden dolayi ledlerin yeterli parlakliga ulasmasi gecikebilir ve cikis tarafinda fazda kayikliga neden olabilir. Bu nedenle A dan alinan faz gecis sinyalinden sonra B ve C yi okumak icin bir sure beklemek gerekebilir.

Bana e^st de diyebilirsiniz.   www.cncdesigner.com

eqooo

Gönderdiğiniz faydalı döküman ve önerilerle işlemlerimi hızlandıracağım. Her hangi bir sıkıntı olduğunda yine bu sayfayı rahatsız edeceğim... Teşekkürler

F493

Selam,

   Öncelikle sinüs işaretini kare dalgaya dönüştürmen gerekli. ___|-----|___|-----|___ şeklinde. Daha sonra 3 faz kare dalga şeklini capture'e gir.
Her yükselen kenarı yeni bir period başlangıcı kabul edebilirsin. İki yükselen kenar arasındaki süre frekans(period) dur. 50Hz için 20ms.
fazlar arasında 120 derece faz farkı oldugunu biliyoruz.
R fazı capture1
S fazı capture 2
T fazı capture 3' e bağlanmalı.
Biliyoruz ki R,S,T arası 120 derece ardışık olarak.
Yani capture1 yükselen kenarı aldı ve sen bir diziye bunları yazmaya başladın. Şöyleki.

R fazı geldiğinde dizinin 0. indeksine 1 yaz.
S fazı geldiğinde dizinin 1. indeksine 2 yaz.
T fazı geldiğinde dizinin 2. indeksine 3 yaz.
ve bunu yaklaşık 100. indekse kadar yaz. Bu bir ups ise ilk start anında yap. 100 örnekten sonra testi bitir ve bir for döngüsüyle diziyi dolaş
Arada hatalar olabilir. Sen 90 adet doğru değer alırsan örneğin test başarılı ve faz sırası doğru kabul edersin.

Kolay gelsin.




eqooo

Alıntı YapR fazı geldiğinde dizinin 0. indeksine 1 yaz.
S fazı geldiğinde dizinin 1. indeksine 2 yaz.
T fazı geldiğinde dizinin 2. indeksine 3 yaz.

@F439

Senin dediğin gibi düşündüm; R S T ye ait her bir capture yakaladığımda dizilerde 1 2 3 1 2 3 ... sıralaması olmakta. Fakat kişi gelip capture pinlerine düzgün bağlantı yapmadığında, kombinelerin biri hariç sıkıntı yok. Eğer gelip R S T nin bağlanacağı yere T R S yi bağlarsa yine dizide 1 2 3 1 2 3 ... gibi görecek. Yanlış düşündüğüm yer varsa düzeltin. Bu durumda ne yapmalıyım?

F493

#10
Selam,

   Dizinin 0. elemanı 1 olmak zorunda, eğer kontrolü böyle yaparsanız hiçbir sıkıntı olmaz. Şayet T-R-S  diye bağlanırsa ozaman 3-1-2-3-1-2  şeklinde olacagından faz sırası ters deriz.  Burada önemli olan faz sırasını kontrol etmeye başlama noktası. Şöyle ki; Kontrolün Cap1 yani R fazi girişinden başlayacagını bir flag yardımı ile garanti edecegiz ve daha sonra sıralamayi diziye yazacagiz. Cap1 den sonra kesinlikle 2 gelmeli sonra 3 sonra bir.

-----------------GLOBAL ALAN-------------------
unsigned int FazKontrolStartFlag = 1;
unsigned int g_FazSiraKontrol = 0, fazIdx = 0;
unsigned int PhaseOrderArray[100] = {0};

----------------------- R FAZI CAPTURE 1 --------------------------------
if (FazKontrolStartFlag)
{
	g_FazSiraKontrol = 1;
        FazKontrolStartFlag = 0;
}

// 100 eleman oluncaya kadar diziye verileri yazıyoruz.
if (fazIdx < 100)
{
	PhaseOrderArray[fazIdx++] = 1;
}
else
{
	if (g_FazSiraKontrol)
	{
		fazIdx = 0;
		fazSirasiTers = 0;
		g_FazSiraKontrol = 0;
		FazKontrolStarFlag = 0;
	
		for (i = 0; i < 100; i++)
		{
			if (fazSirasi[fazIdx++] == 1 && fazSirasi[fazIdx++] == 2 && fazSirasi[fazIdx++] == 3)
			{
				
			}
			else
			{
				++fazSirasiTers;
			}
		}
		
               // 3 den fazla hata varsa faz sirasi ters diyoruz.
		if (fazSirasiTers > 3)
			fazSirasiTersBaglanmis = 1;
		else
			fazSirasiTersBaglanmis = 0;
	}		
}

----------------------S FAZI CAPTURE 3 -----------------------------------
if (g_FazSiraKontrol)
{
        // 100 eleman oluncaya kadar diziye verileri yazıyoruz.
	if (fazIdx < 100)
		PhaseOrderArray[fazIdx++] = 2;
}	

----------------------T FAZI CAPTURE 3 -----------------------------------

if (g_FazSiraKontrol)
{
        // 100 eleman oluncaya kadar diziye verileri yazıyoruz.
	if (fazIdx < 100)
		PhaseOrderArray[fazIdx++] = 3;
}

Yapın çalışır.

Esen kalın.