Three-switch XOR ladder logic implemented as an odd-parity function

Üç açarlı XOR pilləkən məntiqi: Düzgün tək paritet dizaynı

SLC 500 və Logix platformaları üçün üç açarlı XOR nərdivan məntiqinə dair düzəldilmiş təlimat: tək pariteti, daxili bitlərin mərhələli istifadəsini, söz səvi...

Bir çıxışı idarə edən üç sabit vəziyyətli açar çox vaxt ladder məntiqi məşqi kimi təqdim olunur, lakin əsl mühəndislik sualı daha dəqiqdir: girişlərin tək sayda doğrusu olduqda çıxış aktiv olmalıdır, yoxsa istənilən açarın işə salınması çıxışın əvvəlki vəziyyətini sadəcə dəyişməlidir? Bunlar fərqli tələblərdir. Birincisi kombinasiya XOR-u və ya tək paritetdir. İkincisi isə vəziyyət yaddaşı və kənar aşkarlanmasını tələb edir.

Üç sabit vəziyyətli seçici açar üçün adi spesifikasiya tək paritetdir: bir və ya üç qapalı açar olduqda lampa yanır, sıfır və ya iki qapalı açar olduqda isə sönür. Kontaktları çəkməzdən əvvəl bu tələbi yazılı şəkildə qeyd etmək inandırıcı görünən, lakin yanlış Boolean funksiyasını həyata keçirən rung-un qarşısını alır.

Tək paritetli ladder məntiqi üçün düzülmüş üç sabit vəziyyətli açar girişi

Üç girişli XOR doğru girişlərin sayı tək olduqda doğrudur; bu, yadda saxlanılan keçid əmri ilə eyni deyil.

Səkkiz giriş vəziyyəti ilə başlayın

S1, S2 və S3 girişləri üçün gözlənilən çıxış ardıcıllığı ikilik giriş vəziyyətləri 000-dan 111-ə keçdikcə 0, 1, 1, 0, 1, 0, 0, 1-dir. Sadə dillə desək, bir qapalı açar çıxışı aktiv edir, iki qapalı açar onu söndürür, hər üç açar qapalı olduqda isə çıxış yenidən aktivləşir.

Bir çox izahın səhv getdiyi məqam məhz sonuncu vəziyyətdir. Üç girişli XOR tək paritet funksiyasıdır, buna görə 111 doğru nəticə verməlidir. Yalnız “dəqiq bir giriş doğrudur” vəziyyətini tanıyan tətbiq XOR deyil; o, üç doğru giriş vəziyyətini qəsdən istisna edir. Əksinə, üç cüt giriş üçün XOR ifadəsini OR ilə birləşdirmək başqa funksiya yaradır: girişlər hamısı eyni olmadıqda nəticə doğru olur. Buna iki doğru giriş vəziyyətləri də daxil olduğuna görə bu yanaşma da tələb olunan həqiqət cədvəlinə uyğun gəlmir.

İstismara vermə zamanı ən təhlükəsiz üsul həqiqət cədvəlini qəbul testi kimi götürməkdir. Proqramı yalnız iki və ya üç əlverişli açar mövqeyinə əsasən qiymətləndirməyin.

İki girişli XOR mərhələlərini kaskad birləşdirin

XOR assosiativdir, buna görə (S1 XOR S2) XOR S3 ifadəsindən istifadə etmək olar. SLC 500 proqramında bir daxili bit birinci mərhələnin nəticəsini saxlaya bilər. İkinci rung daha sonra həmin biti S3 ilə birləşdirir. Bu, hər rung-a kiçik və yoxlanması asan məqsəd verir, həmçinin onlayn vəziyyətin diaqnostikasını asanlaşdırır.

Kontakt tətbiqində hər iki girişli XOR mərhələsi iki paralel yoldan istifadə edir: birinci yol A girişini doğru, B girişini isə yanlış kimi yoxlayır; ikinci yol A-nı yanlış, B-ni isə doğru kimi yoxlayır. İki yol bir bobində birləşir. Eyni sxemi aralıq bit və üçüncü giriş üçün təkrarlayın.

Daxili bitdən istifadə etməklə üç girişli XOR-un iki mərhələli ladder tətbiqi

Aralıq bit ikinci mərhələ onu S3 ilə birləşdirməzdən əvvəl S1 XOR S2 nəticəsini göstərir.

Nümunə ünvan planı

Tipik RSLogix 500 təlim layihəsində S1, S2 və S3 I:1/0, I:1/1 və I:1/2 ola bilər. Birinci rung aralıq nəticəni B3:0/0-a, ikinci rung isə lampa əmrini O:2/0-a yazır. Bu ünvanlar yalnız nümunədir; real uyğunlaşdırmanı quraşdırılmış I/O konfiqurasiyası müəyyən etməlidir.

Aralıq ünvanın yalnız bir yazanı olmalıdır. B3:0/0 ünvanından başqa yerdə istifadə etmək və ya proqramın daha sonrakı hissəsində O:2/0 üçün başqa çıxış təlimatı yerləşdirmək eyni skan zamanı düzgün nəticənin üzərinə yaza bilər. XOR sxemini günahlandırmazdan əvvəl hər iki ünvanın çarpaz istinadını yoxlayın.

Söz səviyyəli XOR avtomatik olaraq Boolean qısayolu deyil

SLC 500 təlimat dəstinə söz operandları arasında bit-səviyyəli exclusive OR əməliyyatı aparan XOR təlimatı daxildir. Rockwell Automation-un SLC 500 Instruction Set Reference Manual sənədində dəstəklənən operandlar və təyinatlar izah olunur. Bu təlimat maskalar və paketlənmiş status sözləri üçün faydalıdır, lakin bir paritet qərarında hansı giriş bitlərinin iştirak etdiyini müəyyənləşdirmək ehtiyacını aradan qaldırmır.

Üç diskret giriş üçün kaskad kontakt məntiqi adətən texniki xidmət personalı üçün daha aydındır. Söz səviyyəli tətbiq proqram artıq çoxsaylı status bitlərini paketlədikdə və onları açıq şəkildə paritet nəticəsinə endirdikdə əsaslandırıla bilər, lakin endirmə mərhələsi yenə də görünən və sınaqdan keçirilmiş olmalıdır.

Pariteti keçid funksiyası ilə qarışdırmayın

Sabit vəziyyətli üçtərəfli işıqlandırma sxemində istənilən fiziki açarın vəziyyəti dəyişdikdə çıxış da dəyişir. Saf Boolean baxımından çıxış istənilən anda üç açarın vəziyyətlərinin pariteti ilə ifadə oluna bilər. Saxlanılan vəziyyətə ehtiyac yoxdur, çünki vəziyyəti açarların özləri saxlayır.

Anlıq düymələr fərqlidir. Üç düymədən hər hansı birinə basıldıqda lampa dəyişməlidirsə, PLC yüksələn kənarı aşkarlamalı və hər düzgün basma üçün saxlanılan əmr bitini bir dəfə inversiya etməlidir. XOR-u üç anlıq girişə birbaşa tətbiq etmək yalnız həmin skan zamanı hansı düymələrin basıldığını göstərir; əvvəlki lampa vəziyyətini yadda saxlamır.

Həqiqi düymələrdə kontakt sıçraması da ola bilər. Buna görə keçid dizaynı giriş siqnalının kondisionerləşdirilməsini, birdəfəlik impulsu, saxlanılan bitin sahibini və müəyyən edilmiş başlanğıc vəziyyətini tələb edir. Bununla əlaqəli skan və verilənlərin idarə edilməsi sxemləri üçün bir SLC taymer dəyərindən digər taymeri qurmaq üçün istifadə təlimatı verilənlərin köçürülməsinin və rung ardıcıllığının niyə açıq şəkildə müəyyən edilməli olduğunu göstərir.

Məntiqi şəkil kimi deyil, funksiya kimi istismara verin

Əvvəlcə iki girişli aralıq biti ayrıca yoxlayın. O, 01 və 10 üçün doğru, 00 və 11 üçün isə yanlış olmalıdır. Sonra yekun çıxışı üç girişin bütün səkkiz vəziyyətində sınaqdan keçirin. Yalnız yaşıl rung işarəsinə güvənmək əvəzinə müşahidə olunan vəziyyəti qeyd edin, çünki məcburi siqnallar, təkrarlanan bobinlər və onlayn ekranın yenilənməsi faktiki çıxış sahibini gizlədə bilər.

Daha sonra enerjinin verilməsi zamanı davranışı, proqram rejimləri arasındakı keçidləri, giriş əvəzetməsini və sahə dövrəsinin sıradan çıxmasına və ya ayrılmasına reaksiyanı yoxlayın. XOR uyğunsuzluğu aşkarlaya bilər, lakin özü təhlükəsizlik diaqnostikası deyil. Açarlar qoruyucu funksiyada iştirak edirsə, dizayn təhlükəsizlik sertifikatlı girişləri, uyğunsuzluğun monitorinqini, nasazlıq aşkarlanmasını və maşına uyğun risk qiymətləndirməsini tələb edir.

Əvvəlki nəsil və müasir kontrollerlər üçün avadanlıq və miqrasiya variantlarına PLC və PAC sistemləri kolleksiyası vasitəsilə baxmaq olar, lakin bu nümunəni uyğunlaşdırmazdan əvvəl prosessor ailəsi, I/O gərginliyi, ünvanlandırma və proqramın sahibi təsdiqlənməlidir.

Daxili bitli versiyaya texniki xidmət göstərmək niyə daha asandır

Tək genişləndirilmiş rung üç girişli tək pariteti birbaşa ifadə edə bilər, lakin dörd paralel kombinasiyadan istifadə etdiyinə görə əlavə şərtlər artdıqca onu yoxlamaq çətinləşir. İki girişli mərhələlərin kaskad birləşdirilməsi Boolean məqsədini aydın göstərir, diaqnostik yoxlama nöqtəsi yaradır və RSLogix 500 ünvanları ilə Logix Designer-də adlandırılmış BOOL teqləri arasında səliqəli uyğunluq təmin edir.

Redaksiya mövqeyi: ən yaxşı ladder həlli texniki xidmətin təhvil-təslimi zamanı həqiqət cədvəli, yaddaş davranışı və nasazlığa reaksiya izah edilə bilən həlldir. Daxili bit artıq yaddaş hesab olunmur, çünki növbəti mühəndisin tək pariteti, dəqiq bir giriş məntiqini və yadda saxlanılan keçidi eyni funksiya ilə səhv salmasının qarşısını alır.

Tez-tez verilən suallar

Üç açarın hamısı qapalı olduqda çıxış aktiv olmalıdır?

Bəli, tələb üç girişli XOR və ya tək paritetdirsə. Üç doğru giriş tək saydır, buna görə çıxış doğrudur. 111 yanlış olmalıdırsa, tələb olunan funksiya XOR deyil, “dəqiq bir giriş” funksiyasıdır.

SLC 500 XOR təlimatı iki ladder mərhələsini əvəz edə bilər?

Bu təlimat söz operandları üzərində bit-səviyyəli XOR əməliyyatı aparır. Paketlənmiş bit həllinin bir hissəsi ola bilər, lakin üç fərdi giriş biti yenə də elə düzülməli və endirilməlidir ki, təyinat biti tələb olunan pariteti göstərsin. Kiçik diskret dövrə üçün iki kontakt mərhələsi ümumiyyətlə daha aydındır.

Aralıq bit bir skan gecikməsi yaradır?

Aralıq biti yazan rung eyni rutin və tapşırıq daxilində onu oxuyan rung-dan əvvəl icra olunursa, yox. İkinci rung həmin skanda daha əvvəl yazılmış dəyəri görür. Proqram sırası sənədləşdirilməli və nəzarətdə saxlanmalıdır.

Sahə qurğuları anlıq düymələrdirsə, nə dəyişir?

Anlıq düymə ilə keçid funksiyası kənar aşkarlanmasını və saxlanılan çıxış vəziyyətini tələb edir. Yalnız kombinasiya XOR-u lampanın əvvəl yanılı, yoxsa sönülü olduğunu yadda saxlaya bilməz.

XOR təhlükəsizlik səsvermə dövrəsi üçün uyğundur?

Təkbaşına yox. Adi XOR yalnız Boolean vəziyyətlərini qiymətləndirir. Təhlükəsizlik tətbiqləri təsdiqlənmiş təhlükəsizlik arxitekturası, diaqnostik əhatə, uyğunsuzluq vaxtlaması, uyğun avadanlıq və tətbiq olunan risk qiymətləndirməsinə əsasən yoxlama tələb edir.

Müəllif: PLC ProTech Redaksiya Komandası

Üç açarlı XOR pilləkən məntiqi: Düzgün tək paritet dizaynı

SLC 500 və Logix platformaları üçün üç açarlı XOR nərdivan məntiqinə dair düzəldilmiş təlimat: tək pariteti, daxili bitlərin mərhələli istifadəsini, söz səviyyəsində XOR məhdudiyyətlərini, ani düym...

Bir çıxışı idarə edən üç sabit vəziyyətli açar çox vaxt ladder məntiqi məşqi kimi təqdim olunur, lakin əsl mühəndislik sualı daha dəqiqdir: girişlərin tək sayda doğrusu olduqda çıxış aktiv olmalıdır, yoxsa istənilən açarın işə salınması çıxışın əvvəlki vəziyyətini sadəcə dəyişməlidir? Bunlar fərqli tələblərdir. Birincisi kombinasiya XOR-u və ya tək paritetdir. İkincisi isə vəziyyət yaddaşı və kənar aşkarlanmasını tələb edir.

Üç sabit vəziyyətli seçici açar üçün adi spesifikasiya tək paritetdir: bir və ya üç qapalı açar olduqda lampa yanır, sıfır və ya iki qapalı açar olduqda isə sönür. Kontaktları çəkməzdən əvvəl bu tələbi yazılı şəkildə qeyd etmək inandırıcı görünən, lakin yanlış Boolean funksiyasını həyata keçirən rung-un qarşısını alır.

Tək paritetli ladder məntiqi üçün düzülmüş üç sabit vəziyyətli açar girişi

Üç girişli XOR doğru girişlərin sayı tək olduqda doğrudur; bu, yadda saxlanılan keçid əmri ilə eyni deyil.

Səkkiz giriş vəziyyəti ilə başlayın

S1, S2 və S3 girişləri üçün gözlənilən çıxış ardıcıllığı ikilik giriş vəziyyətləri 000-dan 111-ə keçdikcə 0, 1, 1, 0, 1, 0, 0, 1-dir. Sadə dillə desək, bir qapalı açar çıxışı aktiv edir, iki qapalı açar onu söndürür, hər üç açar qapalı olduqda isə çıxış yenidən aktivləşir.

Bir çox izahın səhv getdiyi məqam məhz sonuncu vəziyyətdir. Üç girişli XOR tək paritet funksiyasıdır, buna görə 111 doğru nəticə verməlidir. Yalnız “dəqiq bir giriş doğrudur” vəziyyətini tanıyan tətbiq XOR deyil; o, üç doğru giriş vəziyyətini qəsdən istisna edir. Əksinə, üç cüt giriş üçün XOR ifadəsini OR ilə birləşdirmək başqa funksiya yaradır: girişlər hamısı eyni olmadıqda nəticə doğru olur. Buna iki doğru giriş vəziyyətləri də daxil olduğuna görə bu yanaşma da tələb olunan həqiqət cədvəlinə uyğun gəlmir.

İstismara vermə zamanı ən təhlükəsiz üsul həqiqət cədvəlini qəbul testi kimi götürməkdir. Proqramı yalnız iki və ya üç əlverişli açar mövqeyinə əsasən qiymətləndirməyin.

İki girişli XOR mərhələlərini kaskad birləşdirin

XOR assosiativdir, buna görə (S1 XOR S2) XOR S3 ifadəsindən istifadə etmək olar. SLC 500 proqramında bir daxili bit birinci mərhələnin nəticəsini saxlaya bilər. İkinci rung daha sonra həmin biti S3 ilə birləşdirir. Bu, hər rung-a kiçik və yoxlanması asan məqsəd verir, həmçinin onlayn vəziyyətin diaqnostikasını asanlaşdırır.

Kontakt tətbiqində hər iki girişli XOR mərhələsi iki paralel yoldan istifadə edir: birinci yol A girişini doğru, B girişini isə yanlış kimi yoxlayır; ikinci yol A-nı yanlış, B-ni isə doğru kimi yoxlayır. İki yol bir bobində birləşir. Eyni sxemi aralıq bit və üçüncü giriş üçün təkrarlayın.

Daxili bitdən istifadə etməklə üç girişli XOR-un iki mərhələli ladder tətbiqi

Aralıq bit ikinci mərhələ onu S3 ilə birləşdirməzdən əvvəl S1 XOR S2 nəticəsini göstərir.

Nümunə ünvan planı

Tipik RSLogix 500 təlim layihəsində S1, S2 və S3 I:1/0, I:1/1 və I:1/2 ola bilər. Birinci rung aralıq nəticəni B3:0/0-a, ikinci rung isə lampa əmrini O:2/0-a yazır. Bu ünvanlar yalnız nümunədir; real uyğunlaşdırmanı quraşdırılmış I/O konfiqurasiyası müəyyən etməlidir.

Aralıq ünvanın yalnız bir yazanı olmalıdır. B3:0/0 ünvanından başqa yerdə istifadə etmək və ya proqramın daha sonrakı hissəsində O:2/0 üçün başqa çıxış təlimatı yerləşdirmək eyni skan zamanı düzgün nəticənin üzərinə yaza bilər. XOR sxemini günahlandırmazdan əvvəl hər iki ünvanın çarpaz istinadını yoxlayın.

Söz səviyyəli XOR avtomatik olaraq Boolean qısayolu deyil

SLC 500 təlimat dəstinə söz operandları arasında bit-səviyyəli exclusive OR əməliyyatı aparan XOR təlimatı daxildir. Rockwell Automation-un SLC 500 Instruction Set Reference Manual sənədində dəstəklənən operandlar və təyinatlar izah olunur. Bu təlimat maskalar və paketlənmiş status sözləri üçün faydalıdır, lakin bir paritet qərarında hansı giriş bitlərinin iştirak etdiyini müəyyənləşdirmək ehtiyacını aradan qaldırmır.

Üç diskret giriş üçün kaskad kontakt məntiqi adətən texniki xidmət personalı üçün daha aydındır. Söz səviyyəli tətbiq proqram artıq çoxsaylı status bitlərini paketlədikdə və onları açıq şəkildə paritet nəticəsinə endirdikdə əsaslandırıla bilər, lakin endirmə mərhələsi yenə də görünən və sınaqdan keçirilmiş olmalıdır.

Pariteti keçid funksiyası ilə qarışdırmayın

Sabit vəziyyətli üçtərəfli işıqlandırma sxemində istənilən fiziki açarın vəziyyəti dəyişdikdə çıxış da dəyişir. Saf Boolean baxımından çıxış istənilən anda üç açarın vəziyyətlərinin pariteti ilə ifadə oluna bilər. Saxlanılan vəziyyətə ehtiyac yoxdur, çünki vəziyyəti açarların özləri saxlayır.

Anlıq düymələr fərqlidir. Üç düymədən hər hansı birinə basıldıqda lampa dəyişməlidirsə, PLC yüksələn kənarı aşkarlamalı və hər düzgün basma üçün saxlanılan əmr bitini bir dəfə inversiya etməlidir. XOR-u üç anlıq girişə birbaşa tətbiq etmək yalnız həmin skan zamanı hansı düymələrin basıldığını göstərir; əvvəlki lampa vəziyyətini yadda saxlamır.

Həqiqi düymələrdə kontakt sıçraması da ola bilər. Buna görə keçid dizaynı giriş siqnalının kondisionerləşdirilməsini, birdəfəlik impulsu, saxlanılan bitin sahibini və müəyyən edilmiş başlanğıc vəziyyətini tələb edir. Bununla əlaqəli skan və verilənlərin idarə edilməsi sxemləri üçün bir SLC taymer dəyərindən digər taymeri qurmaq üçün istifadə təlimatı verilənlərin köçürülməsinin və rung ardıcıllığının niyə açıq şəkildə müəyyən edilməli olduğunu göstərir.

Məntiqi şəkil kimi deyil, funksiya kimi istismara verin

Əvvəlcə iki girişli aralıq biti ayrıca yoxlayın. O, 01 və 10 üçün doğru, 00 və 11 üçün isə yanlış olmalıdır. Sonra yekun çıxışı üç girişin bütün səkkiz vəziyyətində sınaqdan keçirin. Yalnız yaşıl rung işarəsinə güvənmək əvəzinə müşahidə olunan vəziyyəti qeyd edin, çünki məcburi siqnallar, təkrarlanan bobinlər və onlayn ekranın yenilənməsi faktiki çıxış sahibini gizlədə bilər.

Daha sonra enerjinin verilməsi zamanı davranışı, proqram rejimləri arasındakı keçidləri, giriş əvəzetməsini və sahə dövrəsinin sıradan çıxmasına və ya ayrılmasına reaksiyanı yoxlayın. XOR uyğunsuzluğu aşkarlaya bilər, lakin özü təhlükəsizlik diaqnostikası deyil. Açarlar qoruyucu funksiyada iştirak edirsə, dizayn təhlükəsizlik sertifikatlı girişləri, uyğunsuzluğun monitorinqini, nasazlıq aşkarlanmasını və maşına uyğun risk qiymətləndirməsini tələb edir.

Əvvəlki nəsil və müasir kontrollerlər üçün avadanlıq və miqrasiya variantlarına PLC və PAC sistemləri kolleksiyası vasitəsilə baxmaq olar, lakin bu nümunəni uyğunlaşdırmazdan əvvəl prosessor ailəsi, I/O gərginliyi, ünvanlandırma və proqramın sahibi təsdiqlənməlidir.

Daxili bitli versiyaya texniki xidmət göstərmək niyə daha asandır

Tək genişləndirilmiş rung üç girişli tək pariteti birbaşa ifadə edə bilər, lakin dörd paralel kombinasiyadan istifadə etdiyinə görə əlavə şərtlər artdıqca onu yoxlamaq çətinləşir. İki girişli mərhələlərin kaskad birləşdirilməsi Boolean məqsədini aydın göstərir, diaqnostik yoxlama nöqtəsi yaradır və RSLogix 500 ünvanları ilə Logix Designer-də adlandırılmış BOOL teqləri arasında səliqəli uyğunluq təmin edir.

Redaksiya mövqeyi: ən yaxşı ladder həlli texniki xidmətin təhvil-təslimi zamanı həqiqət cədvəli, yaddaş davranışı və nasazlığa reaksiya izah edilə bilən həlldir. Daxili bit artıq yaddaş hesab olunmur, çünki növbəti mühəndisin tək pariteti, dəqiq bir giriş məntiqini və yadda saxlanılan keçidi eyni funksiya ilə səhv salmasının qarşısını alır.

Tez-tez verilən suallar

Üç açarın hamısı qapalı olduqda çıxış aktiv olmalıdır?

Bəli, tələb üç girişli XOR və ya tək paritetdirsə. Üç doğru giriş tək saydır, buna görə çıxış doğrudur. 111 yanlış olmalıdırsa, tələb olunan funksiya XOR deyil, “dəqiq bir giriş” funksiyasıdır.

SLC 500 XOR təlimatı iki ladder mərhələsini əvəz edə bilər?

Bu təlimat söz operandları üzərində bit-səviyyəli XOR əməliyyatı aparır. Paketlənmiş bit həllinin bir hissəsi ola bilər, lakin üç fərdi giriş biti yenə də elə düzülməli və endirilməlidir ki, təyinat biti tələb olunan pariteti göstərsin. Kiçik diskret dövrə üçün iki kontakt mərhələsi ümumiyyətlə daha aydındır.

Aralıq bit bir skan gecikməsi yaradır?

Aralıq biti yazan rung eyni rutin və tapşırıq daxilində onu oxuyan rung-dan əvvəl icra olunursa, yox. İkinci rung həmin skanda daha əvvəl yazılmış dəyəri görür. Proqram sırası sənədləşdirilməli və nəzarətdə saxlanmalıdır.

Sahə qurğuları anlıq düymələrdirsə, nə dəyişir?

Anlıq düymə ilə keçid funksiyası kənar aşkarlanmasını və saxlanılan çıxış vəziyyətini tələb edir. Yalnız kombinasiya XOR-u lampanın əvvəl yanılı, yoxsa sönülü olduğunu yadda saxlaya bilməz.

XOR təhlükəsizlik səsvermə dövrəsi üçün uyğundur?

Təkbaşına yox. Adi XOR yalnız Boolean vəziyyətlərini qiymətləndirir. Təhlükəsizlik tətbiqləri təsdiqlənmiş təhlükəsizlik arxitekturası, diaqnostik əhatə, uyğunsuzluq vaxtlaması, uyğun avadanlıq və tətbiq olunan risk qiymətləndirməsinə əsasən yoxlama tələb edir.

Müəllif: PLC ProTech Redaksiya Komandası

Leave a comment

Please note, comments need to be approved before they are published.