1. sayfa (Toplam 2 sayfa)

ST ile DPLSV komutu sürme

Gönderilme zamanı: 08 Mar 2021, 15:15
gönderen DeisS
Merhabalar.
Delta PLC ile yeni çalışmıyorum ve ST dilini yeni öğreniyorum.
Resimde görülen DPLSV komutunu ST ile sürmeye çalıştığımda ilk sürüşte sorun olmuyor ama komutu ikinci defa aktif ettiğimde DPLSV komutu çalışmıyor.
Hatamın nerede olduğunu bulamadım yardımcı olurmusunuz?
Bu arada elimde gerçek PLC olmadığı için bu işlemleri simulasyonda deniyorum.
Screenshot_2.jpg
Screenshot_3.jpg

Re: ST ile DPLSV komutu sürme

Gönderilme zamanı: 08 Mar 2021, 15:17
gönderen DeisS

Kod: Tümünü seç


m_ayHiz_Tersleme := hmi_m_ayHiz * -1 ;
m_igHiz_Tersleme := hmi_m_igHiz * -1 ;

IF NOT(Otomatik) AND NOT(Home_Basla) THEN

IF hmi_mIleri_S1 AND NOT(hmi_mGeri_S1) AND NOT(xİleriSensor_R1) THEN
          DPLSV( hmi_m_igHiz , yPals_S1 , yYon_S1 );
END_IF; 

IF hmi_mGeri_S1 AND NOT(hmi_mIleri_S1) AND NOT(xGeriSensor_R1) THEN
          DPLSV( m_igHiz_Tersleme[0] , yPals_S1 , yYon_S1 );
END_IF;

IF hmi_mAsagi_S2 AND NOT(hmi_mYukari_S2) AND NOT(xAsagiSensor_R1) THEN
          DPLSV( hmi_m_ayHiz , yPals_S2 , yYon_S2 );   
END_IF;

IF hmi_mYukari_S2 AND NOT(hmi_mAsagi_S2) AND NOT(xYukariSensor_R1) THEN
          DPLSV( m_ayHiz_Tersleme[0] , yPals_S2 , yYon_S2 );
END_IF;

IF NOT(hmi_mIleri_S1) AND NOT(hmi_mGeri_S1) THEN
          yPals_S1 := FALSE ;
          yYon_S1 := FALSE ;  
END_IF;

IF NOT(hmi_mYukari_S2) AND NOT(hmi_mAsagi_S2) THEN
          yPals_S2 := FALSE ;
          yYon_S2 := FALSE ;  
END_IF;
END_IF;






Re: ST ile DPLSV komutu sürme

Gönderilme zamanı: 08 Mar 2021, 15:36
gönderen DeisS
DeisS yazdı: 08 Mar 2021, 15:15 Merhabalar.
Delta PLC ile yeni çalışmıyorum ve ST dilini yeni öğreniyorum.
Burayı yanlış yazmışım.
Delta PLC ile yeni çalışıyorum olacaktı kusura bakmayın

Re: ST ile DPLSV komutu sürme

Gönderilme zamanı: 09 Mar 2021, 19:14
gönderen Coşkun
Merhaba,

Çalışan kod örneğini aşağıda paylaşıyorum.

DPLSV_ST_Programing.png

Kod: Tümünü seç

m_ayHiz_Tersleme := hmi_m_ayHiz * -1 ;
m_igHiz_Tersleme := hmi_m_igHiz * -1 ;

IF hmi_mIleri_S1 AND NOT(hmi_mGeri_S1) AND NOT(xİleriSensor_R1) THEN
          DPLSV( hmi_m_igHiz , yPals_S1 , yYon_S1 );
ELSIF hmi_mGeri_S1 AND NOT(hmi_mIleri_S1) AND NOT(xGeriSensor_R1) THEN
          DPLSV( m_igHiz_Tersleme , yPals_S1 , yYon_S1 );
ELSE
            SM470 := TRUE;  //Output completion auto-reset Y0.0
END_IF;

IF hmi_mAsagi_S2 AND NOT(hmi_mYukari_S2) AND NOT(xAsagiSensor_R1) THEN
          DPLSV( hmi_m_ayHiz , yPals_S2 , yYon_S2 );   
ELSIF hmi_mYukari_S2 AND NOT(hmi_mAsagi_S2) AND NOT(xYukariSensor_R1) THEN
          DPLSV( m_ayHiz_Tersleme , yPals_S2 , yYon_S2 );
ELSE
            SM490 := TRUE;  //Output completion auto-reset Y0.2
END_IF;

//SM470 := TRUE;  //Output completion auto-reset Y0.0
//SM490 := TRUE;  //Output completion auto-reset Y0.2
//SM510 := TRUE;  //Output completion auto-reset Y0.4
//SM530 := TRUE;  //Output completion auto-reset Y0.6
//SM550 := TRUE;  //Output completion auto-reset Y0.8
//SM570 := TRUE;  //Output completion auto-reset Y0.10


İyi çalışmalar dilerim.

Re: ST ile DPLSV komutu sürme

Gönderilme zamanı: 10 Mar 2021, 14:01
gönderen DeisS
Coşkun Bey öncelikle teşekkürler.
Aklıma takılan birşey daha sormak istiyorum.
Bu şekilde sistem doğru ve güzel çalışıyor.
Peki ben programın başka bir yerinde ilgili çıkışları DDRVA,DDRVI,DZRN gibi farklı komutlarıda çalıştırmak istediğimde buradaki ELSE şartı bu çalışmayı engelleyecek.
Bunun önüne geçmek için ne yapabilirim?
Teşekkür ederim.

Re: ST ile DPLSV komutu sürme

Gönderilme zamanı: 10 Mar 2021, 16:34
gönderen Coşkun
Merhaba,

Tamamen tüm IF koşullarını bir başka IF koşulu içerisine alabilirsiniz. Örneğin bu manuel için bir çalışma olur ve manuel şartı kalkınca ELSE şartı da çalışmaz.

Yada aşağıdaki gibi bir ELSIF yapabilirsiniz.

DPLSV_ST_Programing_v2.png

Kod: Tümünü seç

m_ayHiz_Tersleme := hmi_m_ayHiz * -1 ;
m_igHiz_Tersleme := hmi_m_igHiz * -1 ;

IF hmi_mIleri_S1 AND NOT(hmi_mGeri_S1) AND NOT(xİleriSensor_R1) THEN
          DPLSV( hmi_m_igHiz , yPals_S1 , yYon_S1 );
          Komut_Aktif_1 := TRUE;
ELSIF hmi_mGeri_S1 AND NOT(hmi_mIleri_S1) AND NOT(xGeriSensor_R1) THEN
          DPLSV( m_igHiz_Tersleme , yPals_S1 , yYon_S1 );
          Komut_Aktif_1 := TRUE;
ELSIF NOT(hmi_mIleri_S1) AND NOT(hmi_mGeri_S1) AND Komut_Aktif_1 THEN
          SM470 := TRUE;  //Output completion auto-reset Y0.0
          Komut_Aktif_1 := FALSE;
END_IF;

IF hmi_mAsagi_S2 AND NOT(hmi_mYukari_S2) AND NOT(xAsagiSensor_R1) THEN
          DPLSV( hmi_m_ayHiz , yPals_S2 , yYon_S2 );
          Komut_Aktif_2 := TRUE;   
ELSIF hmi_mYukari_S2 AND NOT(hmi_mAsagi_S2) AND NOT(xYukariSensor_R1) THEN
          DPLSV( m_ayHiz_Tersleme , yPals_S2 , yYon_S2 );
          Komut_Aktif_2 := TRUE;
ELSIF NOT(hmi_mYukari_S2) AND NOT(hmi_mAsagi_S2) AND Komut_Aktif_2 THEN
          SM490 := TRUE;  //Output completion auto-reset Y0.2
          Komut_Aktif_2 := FALSE;
END_IF;

//SM470 := TRUE;  //Output completion auto-reset Y0.0
//SM490 := TRUE;  //Output completion auto-reset Y0.2
//SM510 := TRUE;  //Output completion auto-reset Y0.4
//SM530 := TRUE;  //Output completion auto-reset Y0.6
//SM550 := TRUE;  //Output completion auto-reset Y0.8
//SM570 := TRUE;  //Output completion auto-reset Y0.10

Özel bitler ve komutların kullanımı için daha detaylı bilgiye ulaşmak isterseniz aşağıdaki linkte bulunan "AS Series Programming Manual" dokümanından faydalanabilirsiniz.

AS PLC Manuals




İyi çalışmalar dilerim

Re: ST ile DPLSV komutu sürme

Gönderilme zamanı: 27 Nis 2021, 11:55
gönderen DeisS
Coşkun Bey;
Merhabalar.
DZRN komutunu görseldeki şekilde kullanmaya çalıştığımda
Vermiş olduğunuz CASE kullanım örneğinden yola çıkarak DZRN komutu ilk seferde çalışıyor ama daha sonrasında PLC stop-run konumunu değiştirmeden veya yeniden enerjilenmeden ikinci defa çalışmıyor.
Buradaki hata veya eksik nedir acaba?
AS plc manuelinde DZRN ile ilgili ST kullanım örneğine yer verilmemiş.
Screenshot_1.jpg

Re: ST ile DPLSV komutu sürme

Gönderilme zamanı: 12 Tem 2021, 14:57
gönderen Coşkun
Merhaba,

Konu ile ilgili gerekli bildirimler yapılmıştır. Sorunun çözümü için bir gelişme olduğunda sizi buradan bilgilendireceğim.



Saygılarımla, İyi çalışmalar dilerim.

Re: ST ile DPLSV komutu sürme

Gönderilme zamanı: 09 Ağu 2021, 09:58
gönderen Coşkun
Merhaba,

Şu an için DZRN ve DZRN2 komutları ST programlama dilini desteklememektedir.

Aşağıdaki resimde "Auto Reset" bayrağının desteklendiği komutlar gösterilmektedir.

auto-reset flag.jpg


Saygılarımla, iyi çalışmalar dilerim.

Re: ST ile DPLSV komutu sürme

Gönderilme zamanı: 23 Kas 2021, 10:21
gönderen Coşkun
Merhaba,

DZRN ve DZRN2 komutları, AS200 FW 1.10.30 ve sonrasındaki FW' lerde, ST programlama dili tarafından desteklenmektedir.



Saygılarımla, iyi çalışmalar dilerim.