Orhan Oluşturuldu: 8 Haziran, 2019 Share Oluşturuldu: 8 Haziran, 2019 Operandlar bölümünde bir değişken tanımladığımızda bunu c alt programında bir if bloğu içinde kullanamamamız bir bug mı? şu konudaki mesele olabilir diye yeni bir proje oluşturdum. Operandlar bölümünde sadece bit türünde if_param ve if_ici ve int türünde ornek_int değişkenleri oluşturdum. if_ici ve ornek_int değişkenlerini blok dışında kullandığımda sorun yok. ancak if(if_param) { ornek_int; if_ici; } gibi bir kullanımda Quote ladder.c:1525: error: `if_ici' undeclared (first use in this function) ladder.c:1525: error: (Each undeclared identifier is reported only once ladder.c:1525: error: for each function it appears in.) hatası alıyorum. extern tanımı da işe yaramıyor. burada başka bir ayar, bildirim vs. mi yapılması gerekiyor? Alıntı Yorum bağlantısı Sitelerde Paylaş More sharing options...
Hansem 8 Haziran, 2019 gönderildi Share 8 Haziran, 2019 gönderildi Operantlar da tanımladığınız değişkenleri C alt programında istediğiniz yerlerde kullanabilirsiniz. Paylaştığınız kodun amacı nedir? "if_param" true olunca değişkenler ne olacak? Alıntı Yorum bağlantısı Sitelerde Paylaş More sharing options...
Orhan 8 Haziran, 2019 gönderildi Yazar Share 8 Haziran, 2019 gönderildi Amacım olan kod bu değil. bu sadece bir test. siz isterseniz şunu da kullanabilirsiniz: if(bit_var_1 == 1) { bit_var_2 = 1; int_var = 123; } /* ladder.c:1525: error: `bit_var_2' undeclared (first use in this function) */ /* ladder.c:1525: error: (Each undeclared identifier is reported only once */ /* ladder.c:1525: error: for each function it appears in.) */ /* ladder.c:1526: error: `int_var' undeclared (first use in this function) */ mesele blok içindeki değişkenlerin undeclared hatası vermesi. sanki bir scope problemi var. Alıntı Yorum bağlantısı Sitelerde Paylaş More sharing options...
Hanifi 8 Haziran, 2019 gönderildi Share 8 Haziran, 2019 gönderildi Yeni proje açtığınızda benzer hata oluyor mu? Denemelerinizi offline mı deniyorsunuz? Lütfen hata aldığınız programı ekleyin GMTSuite versiyonunuz kaç gözüküyor? Belirttiğiniz kod çalışıyor Alıntı Yorum bağlantısı Sitelerde Paylaş More sharing options...
Orhan 8 Haziran, 2019 gönderildi Yazar Share 8 Haziran, 2019 gönderildi Hem eski projede hem de yeni tamamen test amaçlı sıfırdan oluşturduğum projede aynı hatayı alıyorum. Hem offline hem de PLC'ye yüklemeye çalışırken hata veriyor. Zaten sorun compile time hatası. Derleme yapılmadığı için PLC'ye yüklenmiyor. Hata aldığım program ektedir. GMTSuite versiyonu 0.9.8.6 Çalıştırdığınız kodu ekler misiniz. undeclared_hatasi.rar Alıntı Yorum bağlantısı Sitelerde Paylaş More sharing options...
DEMİR 8 Haziran, 2019 gönderildi Share 8 Haziran, 2019 gönderildi if (bit_var_1 == 1){bit_var_2=0;int_var=123;} Kodunuzu bu şekilde yazdığınızda çalışıyor. Kolay gelsin... 1 Alıntı Yorum bağlantısı Sitelerde Paylaş More sharing options...
Orhan 9 Haziran, 2019 gönderildi Yazar Share 9 Haziran, 2019 gönderildi Teşekkür ederim. Komik olan aslında tab karakterinin bu hataya yol açması.Yüksek ihtimalle kodların tokenization sürecinde bug var. Mesela lojik değil (!) de derleme hatasına yol açıyor. Fakat değişkenleri parantez içine alınca sorun halloldu gibi duruyor ama umarım kararsız davranış göstermez. Şurada belirttiğim ve cevap alamadığım sorunda da (ladder ile ilgili) böyle tuhaf bir problem olduğunu düşünüyorum. /* Sorunsuz Çalışan */ if(bit_var_1 == 1) { bit_var_2 = 1; int_var = 123; } /* Yada */ if(bit_var_1 == 1) { (bit_var_2) = 1; (int_var) = 123; } /* Derleme Hatası veren */ if(bit_var_1 == 1) { bit_var_2 = 1; int_var = 123; } 1 Alıntı Yorum bağlantısı Sitelerde Paylaş More sharing options...