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.