Otomatisasi kontrol pemanasan rumah sendiri-sendiri. Bagian 3

Kami terus berbicara tentang sistem kontrol pemanas rumah menggunakan timer-thermostat NM8036 (mulai di sini , dilanjutkan di sini ).



String program dan program untuk NM8036.
Thermostat pengatur waktu NM8036, tentu saja, adalah hal yang baik, tetapi tanpa seseorang itu masih berupa perangkat keras. Saya mengatakan bahwa untuk kontrol normal pemanasan di rumah pribadi, sebuah program diperlukan, disusun sesuai dengan peralatan yang digunakan. Di mana untuk memulai?

Mari berkenalan dengan prinsip dasar pemrograman "sepotong besi" ini. Seperti yang Anda ketahui dari deskripsi, di controller dimungkinkan untuk menempatkan hanya 32 perintah (instruksi). Tidak banyak, tentu saja, tetapi kelemahan ini sampai taraf tertentu dikompensasi oleh fakta bahwa tim-tim ini cukup fungsional, yaitu, pada awalnya mereka mengandung beberapa kondisi.

Secara harfiah setiap instruksi pengajaran memungkinkan Anda untuk membuat pilihan:

  • jenis tim;
  • waktu mulai dan akhir;
  • masa berlaku;
  • beban;
  • jenis sensor input;
  • nomor (nama) sensor;
  • ambang batas nilai atas dan bawah (histeresis);
  • logika interaksi.


Setuju, Guru, daftar yang agak luas dan untuk tampilan yang belum berpengalaman pertama tidak sepenuhnya tidak bisa dipahami. Itulah sebabnya kita sekarang akan membahas lebih rinci tentang semua poin ini, setelah itu, saya harap, semuanya akan menjadi tidak terlalu rumit. Baca saja dengan seksama, selidiki.

Jenis tim. Ada empat di antaranya, kecuali untuk tipe “Dinonaktifkan”: Timer, Pemanasan, Pendinginan, Jam alarm. Mengenai yang terakhir dari mereka, Jam Alarm, kita dapat dengan aman mengatakan: hampir tidak ada yang menggunakannya. Meskipun, mungkin seseorang memasang dan meletakkan perangkat ini di dinding di kepala. Tapi saya lebih suka menggunakan ponsel ...

Bahkan, tiga jenis tetap menarik bagi kami: Timer memungkinkan Anda untuk menghidupkan dan mematikan beban yang dipilih pada waktu dan hari tertentu. Pemanasan akan memungkinkan beban untuk hidup ketika suhu turun ke nilai yang ditetapkan, dan Pendinginan - hidup ketika suhu naik.

Waktu mulai dan berakhir dan masa berlaku. Pilihan nilai-nilai ini dimungkinkan dengan semua jenis tim dari tiga yang kami minati. Ini adalah tanggal dan waktu Mulai dan tanggal dan waktu Berhenti. Pilihan ini bekerja erat dengan masa berlaku. Bagaimana?



Jika Periode validitas tidak dipilih (atau "Tanpa periode" dipilih), nilai waktu dan tanggal yang dipilih diambil secara harfiah. Artinya, beban akan bekerja, mulai dari waktu mulai hingga waktu dan tanggal pemberhentian, hingga 2 Oktober 2099. Setiap saat tanpa mematikan. Tetapi bagaimana cara menghidupkan beban setiap hari pada waktu yang dipilih, dan mematikannya di waktu lain?



Untuk logika kerja ini, Anda harus menentukan periode validitas. Apa saja. Khususnya, dalam contoh di atas, periode Dengan hari dalam seminggu dan semua hari ditunjukkan. Sekarang, setiap hari, beban akan menyala selama start dan off selama stop. Dan itu akan berlanjut lagi hingga 2099.

Catatan: saat memilih jenis perintah Pemanasan dan Pendinginan, pilihan nilai suhu juga memengaruhi hasil seiring dengan waktu dan periode tindakan yang dipilih.

Muat pilihan. Hampir tidak masuk akal untuk menjelaskan bahwa ini adalah pilihan beban yang ditindaklanjuti oleh tim. Namun, saya perhatikan sekali lagi betapa mudahnya membuat pilihan (juga pilihan sensor) ketika ada nama yang ditetapkan. Saya sengaja tidak menunjukkan cara memprogram blok NM8036 dari keyboard blok itu sendiri, karena saya belum melakukannya sendiri dan merasa jauh lebih nyaman untuk melakukan ini menggunakan Manajer Lanjutan (saya akan membahas ini di bagian selanjutnya).



Sensor Dalam blok program ini, dimungkinkan untuk memilih sensor dan nilainya. Urutan tindakan cukup logis: pilih jenis sensor, pilih sensor itu sendiri dari daftar dan atur nilai yang diperlukan.



Jenis sensor. Ada tiga opsi: digital (sensor suhu), analog (ini adalah input dari pengontrol ADC) dan Perbandingan dua sensor (sensor suhu). Pertama, pilih Digital.



Sensor digital. Dari daftar nama sensor yang disajikan, pilih yang diinginkan.



Histeresis. Dan di sini berhati-hatilah, Tuan. Mengaktifkan dan menonaktifkan beban adalah tindakan yang dilakukan sistem pada suhu yang berbeda. Jangan menetapkan nilai suhu yang sama untuk ambang atas dan bawah, ini tidak sesuai dengan logika pengontrol. Ambang batas bisa sangat dekat, misalnya, 22,12 derajat dan 22,13 derajat, tetapi harus berbeda.



Histeresis adalah perbedaan antara suhu hidup dan mati. Selain itu, kami memiliki dua jenis perintah: Pemanasan dan Pendinginan. Jadi, jika Pemanasan dipasang, beban akan selalu dihidupkan di zona hijau (di bawah ambang batas bawah). Di zona kuning, beban bisa dinyalakan dan dimatikan, semuanya tergantung pada arah. Jika suhu aktual naik, beban akan diaktifkan ke ambang atas (25 derajat). Ketika tercapai, beban akan mati dan inklusi hanya dimungkinkan ketika suhu turun ke batas bawah. Di atas ambang batas atas, beban tidak akan hidup dalam kondisi apa pun.



Hal lain adalah jika jenis perintahnya Cool. Di sini beban akan selalu dinyalakan pada suhu di atas ambang atas (zona hijau). Beban terputus pada suhu ambang bawah (24 derajat), dan inklusi: pada suhu ambang atas (25 derajat). Dengan demikian, suhu dipertahankan antara nilai dari 24 hingga 25 derajat untuk kedua jenis perintah.

Pemilihan sensor analog. Di sini, serta ketika memilih sensor digital, perlu untuk menyalakan dan mematikan histeresis.



Program ini menyajikan dua jenis pengaturan histeresis, ADC dan Fisika. Anda dapat memasukkan nilai di baris mana pun, di baris lain, nilai yang sesuai akan dihitung secara otomatis. Baca lebih lanjut tentang penyajian data ini di bagian kedua tentang input ADC.

Juga harus diingat bahwa logika beban dan di sini akan sesuai dengan jenis perintah: Pemanasan atau Pendinginan. Tidak masalah apa yang kami ukur di sini: suhu, tekanan, kilogram, kilometer, atau volt ...

Perbandingan dua sensor. Fungsi ini tidak tersedia dalam versi firmware di bawah 1.95. Ada juga ketergantungan pada jenis perintah. Pada contoh di atas, selama Pemanasan, beban akan dihidupkan ketika sensor "Pengembalian Rumah" lebih "dingin" daripada "Output BTA". Jika jenis Pendinginan dipilih, situasinya akan terbalik.



Logika interaksi. Dalam banyak kasus, fungsi ini diminati, karena kadang-kadang tidak mungkin untuk membuat program di mana beberapa kondisi harus diperhitungkan. Bagi saya, misalnya, pengoperasian pompa di rumah harus bergantung tidak hanya pada suhu di lorong, tetapi juga pada suhu rumah kembali dan pada posisi saklar "Boiler". Artinya, tiga sensor harus bekerja pada beban yang sama. Secara umum, mungkin ada berbagai situasi dalam mengendalikan pemanasan rumah pribadi.



Untuk memulainya, mari kita cari tahu, Guru, dengan logika ini. Kami segera setuju bahwa posisi beban yang terputus adalah nol (0), dan posisi aktif adalah satu (1). Artinya, tim mana pun dari 32 dapat memberi kami hasilnya hanya 2 status ini: 0 atau 1 (dinonaktifkan dan diaktifkan). Semua kondisi dalam perintah ini terpenuhi (waktu, tanggal, periode, keadaan sensor) - dikeluarkan 1 (memuat), dan jika setidaknya satu dari persyaratan yang tercantum tidak terpenuhi - dikeluarkan 0 (muat).

Sekarang mari kita ambil dua tim. Untuk muatan yang sama (saya memberi perhatian khusus pada ini). Dua tim yang bekerja pada beban yang sama, tetapi menguji sensor yang berbeda, atau mengatur waktu yang berbeda, atau secara umum jenisnya berbeda: satu adalah Pemanasan dan yang lainnya adalah Pendinginan atau Pengatur Waktu. Itu tidak masalah, tetapi yang utama adalah masing-masing dari mereka memberikan hasil sendiri: 0 atau 1. Tetapi bebannya satu! Siapa yang harus dia dengarkan, bagaimana harus bersikap? Apakah akan hidup atau tidak?

Di sinilah logika interaksi berperan. Ada dua opsi: opsi "ATAU" dan opsi "DAN". Dengan opsi "ATAU", beban akan menyala jika setidaknya satu masalah tim 1. Bahwa ATAU yang lain - tidak masalah, tetapi jika setidaknya satu memberikan lampu hijau, beban menyala.



Dengan opsi "Dan" dengan cara lain. Di sini, agar beban bekerja, dua unit diperlukan. Itu dan yang lainnya. Jika setidaknya salah satu tim tidak memberikan lampu hijau, beban tidak akan menyala.

Dan jika tim bukan dua, tetapi tiga? Dan jika empat? Dan tidak masalah, logikanya tetap sama. Hal utama adalah memahami dan mengingat bahwa logika interaksi diatur untuk berinteraksi dengan tim sebelumnya untuk beban yang sama.
Nah, di sini kita berkenalan dengan prinsip-prinsip pemrograman NM8036 dalam kontrol pemanasan rumah pribadi. Namun pembicaraan belum berakhir, kami masih akan memberikan contoh untuk berkenalan dengan berbagai trik.

Logika sistem saya, seperti yang telah saya sebutkan, menyediakan dua mode, di mana salah satu boiler beroperasi, dan yang lain suhu udara diatur. Sakelar mode terlibat dalam sakelar "Boiler".

Nama saklar ini, sepertinya, tidak sesuai dengan logikanya. Mengapa? Karena ketika dinyalakan, ia mengeluarkan tegangan 0 volt, dan ketika mati, ia memberikan 5 volt. Ini bukan ukuran yang perlu, hanya saja saya meletakkannya secara acak selama perakitan. Karena itu, saya melakukan program, saya tidak ingin menyentuhnya.
Lebih lanjut.

Program ini berisi 5 beban, yang dikontrolnya:

1. Bypass pump.
2. Sirkuit pompa ke rumah.
3. Elemen pemanas listrik.
4. Peringatan Sinyal.
5. Sinyal Alarm.

Sensor suhu yang dikendalikan:
1. Temperatur udara di aula masuk.
2. Suhu pada input register.
3. Temperatur pada pipa balik dari sirkuit pemanas.

Secara umum, satu sakelar mode, lima beban, dan 3 sensor suhu. Semua ini entah bagaimana harus dihubungkan dalam logika tertentu menjadi satu keseluruhan: program kontrol. Mulai!

Awalnya, kami menentukan nilai yang akan menentukan posisi sakelar mode. Harus ada dua arti. Salah satunya harus di atas rata-rata, yang lain di bawah. Saya menerima ambang histeresis atas 2,7 volt, dan lebih rendah - 2,0 volt. Bisa jadi lebih jauh dari tengah, katakanlah, 3,5 volt dan 1,5, tetapi, ternyata, bahkan dengan nilai yang diterima, program dengan jelas menentukan posisi saklar.

Sederhananya, program sekarang tahu bahwa jika tegangan di bawah 2 volt, itu berarti bahwa mode "Operasi Boiler" menyala. Jika tegangan input di atas 2,7 volt, ini adalah mode "Operasi Sirkuit".

Keadaan ini sudah memungkinkan kita untuk mengontrol salah satu beban: pompa bypass. Ketika mode "operasi Boiler" menyala, pompa ini harus dihidupkan dan mengejar air, tetapi dalam mode "Operasi sirkuit", pompa ini tidak diperlukan. Tidak ada ketentuan lain yang disediakan untuk muatan ini.



Jadi, baris pertama. Kami mengatur start-stop hingga 2099, biarkan selalu berfungsi selama ada tegangan suplai. Kami tidak memilih jenis periode, di sini, tidak ada periode waktu dalam waktu yang diperlukan. Beban ditunjukkan, sensor ditunjukkan, nilai-nilai histeresis ditentukan.

Tapi mengapa harus dipanaskan? Tetapi karena dengan pilihan ini, beban akan selalu dinyalakan, selama tegangan input di bawah ambang histeresis atas (yaitu, di bawah 2,7 volt). Saya telah menjelaskan kondisi ini secara lebih rinci di atas.

Sekarang, berkat program ini, pompa bypass akan dihidupkan setiap saat ketika mode “Boiler operation” menyala dengan sakelar sakelar. Apakah Anda, Guru, memiliki pertanyaan seperti: Atau mungkin lebih baik menyalakan pompa dengan sakelar sakelar? Lagipula, itu tidak ada bedanya, toh itu tumbler!

Jika itu muncul, saya akan menjawab seperti ini: Dan sakelar toggle saya ini tidak hanya menyalakan pompa bypass. Berkat pengoperasian sakelar sakelar ini, tugas lain dilakukan, yang dijelaskan di bawah ini.



Selanjutnya, mari kita mengurus pemanasan register. Untuk melakukan ini, saya telah memasang ketel listrik. Elemen pemanas di dalamnya harus hidup ketika suhu pada input register di bawah 40 derajat. Tetapi ada juga syarat: mereka harus dinyalakan hanya dalam mode “Boiler operation”.

Tentang suhu: Saya sudah berbicara tentang kesalahan sensor suhu yang diikat ke pipa dengan pita perekat. Karena itu, kami memperhitungkan kesalahan ini, menetapkan batas histeresis yang agak lebih rendah. Seberapa banyak - ini telah saya tentukan secara empiris.

Jadi, untuk beban ini (elemen pemanas) dua syarat harus dipenuhi. Mari kita mulai dari yang pertama, dengan suhu, dan atur nilai untuk garis beban pertama dari elemen pemanas. Mulai-berhenti dan jenis periode sama di semua lini, oleh karena itu saya tidak akan menyebutkannya lagi.

Selebihnya, kami memilih tugas Pemanasan, memuat SEPULUH, mengontrol register Input sensor dan mengatur histeresis 36-35. Dengan pengaturan seperti itu, elemen pemanas akan menyala pada suhu 35 atau lebih rendah, dan akan mati ketika mencapai 36 derajat (secara alami, saya memiliki 41 derajat).



Sekarang kita perlu memenuhi satu syarat lagi untuk muatan ini (elemen pemanas): mode “operasi Boiler”. Di sini lebih mudah bagi kami, kami telah memenuhi kondisi ini pada baris pertama untuk pompa bypass. Kami mengatur semuanya persis sama di sini, di baris program baris ketiga dan di baris kedua untuk beban elemen pemanas.

Berbeda dengan garis itu, kami mengindikasikan, tentu saja, beban elemen pemanas dan (PERHATIAN!) Di sudut kanan atas kami membuat pilihan logika interaksi I. Jika Anda lupa, Guru, saya mengirim Anda lagi di atas, di mana kami berbicara lebih banyak tentang logika interaksi.

Dengan demikian, beban elemen pemanas sekarang akan menyala hanya ketika suhu pada input register di bawah 40 derajat dan hanya ketika mode "operasi Boiler" dihidupkan.



Dan sekarang saatnya untuk memikirkan alarm. Secara khusus, ketika SEPULUH diaktifkan, tickers langka pendek akan terdengar bagi saya. Di sini, secara teori, seseorang bisa dengan mudah menghubungkan perangkat pensinyalan ke elemen pemanas, dan seluruh bisnis. Satu-satunya pertanyaan adalah: bagaimana caranya? Setelah semua, relai beban TENY mengubah 220 volt perubahan, dan 12 volt arus konstan harus ke sinyal peringatan. Jadi, perlu memprogram beban terpisah: Peringatan.

Jadi kita akan lakukan. Semuanya persis sama dengan beban elemen pemanas, juga dua garis, tetapi menunjukkan beban di dalamnya: Peringatan. Di sebelah kiri kita melihat baris pertama ...



Dan di sini adalah baris kedua untuk sinyal Peringatan.



Kami akan segera membuat alarm, yaitu sinyal kelebihan suhu pada input register. Dan di sini, dua jalur program juga diperlukan, karena itu perlu untuk mengontrol suhu pada input register dan mengamati kondisi mode "operasi Boiler".

Hampir semuanya sama dengan sinyal Peringatan. Hampir, karena kami menunjukkan beban. Kecelakaan, histeresis 51-50 dan (PERHATIAN!) Tugas kami pilih Pendinginan. Dengan pengaturan ini, beban Alarm akan menyala dan akan berfungsi kemudian, jika suhu pada input register 51 dan lebih tinggi oleh sensor. Di alam, saya memilikinya 58 ke atas.



Dan baris kedua untuk memuat Kecelakaan kencangkan mode "Boiler". Logika interaksi Dan!



Dan akhirnya, kami mencapai penyesuaian suhu udara di lorong. Di sini kita tidak akan mengelola satu baris, dan bukan dua baris. Di sini saya memiliki tiga kondisi: suhu di aula masuk, suhu di kembalinya sirkuit dan ... mode "operasi sirkuit". Bukan boiler, tapi sirkuit pemanas.

Secara teori, ini tidak terlalu sulit, meskipun tiga baris. Baris pertama mengontrol suhu di lorong. Tugas Pemanasan, memuat rumah Pompa, histeresis 21.7-21.6.



Baris kedua adalah jalur yang penting. Ini adalah kondisi suhu di pipa balik sirkuit. Pompa harus berhenti mengemudi air panas jika suhu kembalinya telah melebihi 33 derajat.



Dan ini adalah baris ketiga untuk beban Pump House, dan yang terakhir dalam program kontrol pemanas saya. Perhatikan, Master, di sini tugas Pendinginan dipilih untuk sakelar sakelar. Saya pikir Anda mengerti mengapa.

Tentu saja, tidak semua fitur NM8036 digunakan dalam program kontrol pemanas saya. Ada juga perbandingan dua sensor suhu, yang tidak saya gunakan sesuai kebutuhan.

Saya juga ingin mengatakan beberapa kata tentang logika interaksi. Instruksi mengatakan bahwa untuk setiap baris program, logika interaksi dengan baris sebelumnya ditentukan. Tetapi saya akan memperbaiki di sini. Agak salah. Lebih benar: logika interaksi dengan hasil dari baris sebelumnya. Apa artinya?

Tetapi lihat: kami memiliki, katakanlah, 5 baris program untuk beban yang sama:

1. baris 1 (OR)
2. baris 2 (DAN)
3. baris 3 (DAN)
4. baris 4 (OR)
5. baris 5 (DAN)

Bagaimana seseorang dapat menentukan apa hasilnya? Mari kita mulai dari atas. Baris pertama tidak menghitung logika, karena tidak ada baris sebelumnya untuk memuat ini. Namun, jika Anda menempatkan logika DAN di baris pertama, maka baris ini tidak akan pernah dieksekusi untuk Anda (itu akan memberi 0).

Baris kedua bekerja dengan yang pertama sesuai dengan logika I. Artinya, yang pertama harus memberikan 1, dan yang kedua - 1. Dua unit dalam logika Dan akan memberikan unit pada output: 1. Jika setidaknya satu dari kondisi tidak terpenuhi, output dari baris kedua akan menjadi nol ( 0).

Baris ketiga berfungsi ... tidak dengan yang kedua! Dia bekerja DENGAN HASIL dari yang kedua. Dia bekerja dengan hasil ini sesuai dengan logika AND, dan memberikan hasilnya, 0 atau 1.

Baris keempat. Belum bingung? Perhatikan, ia bekerja dengan HASIL jalur 3 sesuai dengan logika ATAU (setiap 1 pada input akan memberikan 1 pada output).

Dan akhirnya, baris kelima. Jika kita tidak bingung dan tahu persis hasilnya setelah baris keempat, maka kita bisa menentukan hasilnya setelah baris kelima. Logika Dan: untuk 1 pada output harus ada dua unit pada input. Dan jika setelah baris kelima kita mendapatkan output 1, beban kita akan menyala. 0 - tidak mau hidup.

Bersambung…

Source: https://habr.com/ru/post/id383709/


All Articles