Plc ile 2d yazıcı kontrolü

Katılım
18 May 2024
Mesajlar
3
Puanları
1
Yaş
24
Merhaba plc ve iki servo kullanarak 2d yazıcıya basit geometrik şekiller çizdirme yeteneği kazandırmak istediğim bir proje üzerine çalışıyorum. MC Moveabsolute komutları ile kare dikdörtgen çizimi mümkün fakat üçgen daire çizdirmek istediğimde tıkanıyorum. Bu sorunu nasıl aşabilirim ? İnterpolasyon işlemini tia portal kullanarak yapmam mümkün müdür?
 
Bunun için kullanmış olduğunuz plc'de nc desteği olmalı aklıma gelen yötnet dışarıdan g-code hazırlamak şeklinde.
 
TIA Portal’da interpolasyon komutlarını kullanmak için "Teknoloj Objesi Oluşturma" yı kullanmanız gerek.

Üçgen çizmek için

Başlangıç Noktası: Servo motorları başlangıç noktasına (örneğin (X1, Y1)) konumlandırın.

Lineer Hareket: PLC programında MC_MoveLinearAbsolute komutlarını kullanarak diğer köşe noktalarına (örneğin (X2, Y2) ve (X3, Y3)) lineer hareketler gerçekleştirin.

Şekil Tamamlama: Son köşe noktasından tekrar başlangıç noktasına dönerek şekli tamamlayın.

Örnek program:

// Başlangıç noktasına hareket
MC_MoveLinearAbsolute(Axis1, X1, Y1, Speed, Accel, Decel);

// İkinci köşeye hareket

MC_MoveLinearAbsolute(Axis1, X2, Y2, Speed, Accel, Decel);

// Üçüncü köşeye hareket
MC_MoveLinearAbsolute(Axis1, X3, Y3, Speed, Accel, Decel);

// Başlangıç noktasına dönüş
MC_MoveLinearAbsolute(Axis1, X1, Y1, Speed, Accel, Decel);

Daire çizmek için:

Daire Merkezi ve Yarıçap Belirleme: Çizmek istediğiniz dairenin merkezini ve yarıçapını belirleyin.

Dairesel Interpolasyon Komutları: TIA Portal'da MC_MoveCircularAbsolute komutlarını kullanarak dairesel hareketi tanımlayın. Bu komutlar, belirli bir merkez etrafında belirli bir yarıçap ile hareket etmeyi sağlar.

Başlangıç Noktası: Servoları daire üzerindeki başlangıç noktasına konumlandırın.

Tam Daire veya Yay: Tam daire çizmek için 360 derece, yay çizmek için ise gerekli açıyı belirterek komutu çalıştırın.

Örnek Program:

// Tam daire çizimi
MC_MoveCircularAbsolute(Axis1, CenterX, CenterY, Radius, 0, 360, Speed, Accel, Decel);
 
TIA Portal’da interpolasyon komutlarını kullanmak için "Teknoloj Objesi Oluşturma" yı kullanmanız gerek.

Üçgen çizmek için

Başlangıç Noktası: Servo motorları başlangıç noktasına (örneğin (X1, Y1)) konumlandırın.

Lineer Hareket: PLC programında MC_MoveLinearAbsolute komutlarını kullanarak diğer köşe noktalarına (örneğin (X2, Y2) ve (X3, Y3)) lineer hareketler gerçekleştirin.

Şekil Tamamlama: Son köşe noktasından tekrar başlangıç noktasına dönerek şekli tamamlayın.

Örnek program:

// Başlangıç noktasına hareket
MC_MoveLinearAbsolute(Axis1, X1, Y1, Speed, Accel, Decel);

// İkinci köşeye hareket

MC_MoveLinearAbsolute(Axis1, X2, Y2, Speed, Accel, Decel);

// Üçüncü köşeye hareket
MC_MoveLinearAbsolute(Axis1, X3, Y3, Speed, Accel, Decel);

// Başlangıç noktasına dönüş
MC_MoveLinearAbsolute(Axis1, X1, Y1, Speed, Accel, Decel);

Daire çizmek için:

Daire Merkezi ve Yarıçap Belirleme: Çizmek istediğiniz dairenin merkezini ve yarıçapını belirleyin.

Dairesel Interpolasyon Komutları: TIA Portal'da MC_MoveCircularAbsolute komutlarını kullanarak dairesel hareketi tanımlayın. Bu komutlar, belirli bir merkez etrafında belirli bir yarıçap ile hareket etmeyi sağlar.

Başlangıç Noktası: Servoları daire üzerindeki başlangıç noktasına konumlandırın.

Tam Daire veya Yay: Tam daire çizmek için 360 derece, yay çizmek için ise gerekli açıyı belirterek komutu çalıştırın.

Örnek Program:

// Tam daire çizimi
MC_MoveCircularAbsolute(Axis1, CenterX, CenterY, Radius, 0, 360, Speed, Accel, Decel);
Motion Control komutları içerisinde MC_MoveCircularAbsolute diye bir komut yok. s71200 olmasından mı kaynaklı acaba?
 

Ekli dosyalar

  • mckomuts.JPG
    mckomuts.JPG
    22.1 KB · Görüntüleme: 7
s71200 ile çalışıyorum
Üçgen çizmek için aşağıdakini bir deneyin sonra dairesel harekete geçelim

Lad
******************************************************
NETWORK 1 // Başlatma
// Başlatma butonu ile hareketi başlat
A I0.0 // Başlatma butonu
FP M0.0 // Pozitif kenar algılama
S M0.1 // Birinci hareketin aktif göstergesi

NETWORK 2 // Birinci Hareket: (X1, Y1) -> (X2, Y2)
// Birinci hareketin aktif olduğunu kontrol et
A M0.1
JC Network3 // İkinci harekete atla

// X ekseni hareketi
CALL "MC_MoveAbsolute"
Axis := "AxisX"
Position := 200.0 // X2
Velocity := 100.0
Acceleration := 10.0
Deceleration := 10.0
Execute := M0.1

// Y ekseni hareketi
CALL "MC_MoveAbsolute"
Axis := "AxisY"
Position := 100.0 // Y2
Velocity := 100.0
Acceleration := 10.0
Deceleration := 10.0
Execute := M0.1

// Hareket tamamlandığında
A MC_MoveAbsolute.Done
S M0.2 // İkinci hareketin aktif göstergesi
R M0.1 // Birinci hareketin aktif göstergesini sıfırla

NETWORK 3 // İkinci Hareket: (X2, Y2) -> (X3, Y3)
// İkinci hareketin aktif olduğunu kontrol et
A M0.2
JC Network4 // Üçüncü harekete atla

// X ekseni hareketi
CALL "MC_MoveAbsolute"
Axis := "AxisX"
Position := 150.0 // X3
Velocity := 100.0
Acceleration := 10.0
Deceleration := 10.0
Execute := M0.2

// Y ekseni hareketi
CALL "MC_MoveAbsolute"
Axis := "AxisY"
Position := 200.0 // Y3
Velocity := 100.0
Acceleration := 10.0
Deceleration := 10.0
Execute := M0.2

// Hareket tamamlandığında
A MC_MoveAbsolute.Done
S M0.3 // Üçüncü hareketin aktif göstergesi
R M0.2 // İkinci hareketin aktif göstergesini sıfırla

NETWORK 4 // Üçüncü Hareket: (X3, Y3) -> (X1, Y1)
// Üçüncü hareketin aktif olduğunu kontrol et
A M0.3

// X ekseni hareketi
CALL "MC_MoveAbsolute"
Axis := "AxisX"
Position := 100.0 // X1
Velocity := 100.0
Acceleration := 10.0
Deceleration := 10.0
Execute := M0.3

// Y ekseni hareketi
CALL "MC_MoveAbsolute"
Axis := "AxisY"
Position := 100.0 // Y1
Velocity := 100.0
Acceleration := 10.0
Deceleration := 10.0
Execute := M0.3

// Hareket tamamlandığında
A MC_MoveAbsolute.Done
R M0.3 // Üçüncü hareketin aktif göstergesini sıfırla
R M0.0 // Başlatma sinyalini sıfırla
*********************************************************

Açıklama:
NETWORK 1: Başlatma butonuna basıldığında birinci hareketi başlatır.

NETWORK 2: Birinci hareketi gerçekleştirir (X1, Y1) -> (X2, Y2).
Hareket tamamlandığında ikinci hareketi başlatır.

NETWORK 3: İkinci hareketi gerçekleştirir (X2, Y2) -> (X3, Y3).
Hareket tamamlandığında üçüncü hareketi başlatır.

NETWORK 4: Üçüncü hareketi gerçekleştirir (X3, Y3) -> (X1, Y1).
Hareket tamamlandığında programı sıfırlar.
 

Forum istatistikleri

Konular
130,116
Mesajlar
933,272
Kullanıcılar
453,179
Son üye
canerakdeniiz

Yeni konular

Çevrimiçi üyeler

Geri
Üst