Үндсэн агуулга руу шилжих
Beelog Tech

Инженерийн блог

2026-04-08

Алсын станцыг нэг шөнийн дотор зассан нь: OTA яагаад заавал хэрэгтэй вэ

Алсын станцад firmware-ийн алдаа гарахад очих уу, агаараар шинэчлэх үү? Хол байрлах IoT системд OTA болон store-and-forward яагаад заавал байх ёстойг бодит жишээгээр тайлбарлав.

Нэг орой Улаанбаатараас хэдэн зуун км-т байрлах манай төмөр замын станцуудын нэг утгагүй тоо илгээж эхлэв. Телеметрийг ажиглахад мэдрэгч эвдэрсэн биш, ховор тохиолдолд л илэрдэг firmware-ийн алдаа байлаа. Бид тэр шөнөдөө засварласан хувилбараа бэлтгэж, агаараар (OTA) илгээгээд, станц шинэ хувилбараар дахин ачаалахыг хяналтын самбараас ажиглав. Өглөө нь станц хэвийн мэдээлж байсан. Оффисоос хэн ч гараагүй.

Нөгөө хувилбарыг нь бодоод үзье. Талбайд очно гэдэг машин, түлш, инженерийн хоёр өдөр, өвлийн замын эрсдэл — тэр долоо хоногт нь очих боломж ер нь байхгүй ч байж мэднэ. 1,000 км-т тархсан 9+ станцтай үед «очоод шинэчилье» гэдэг арга олон станцад хүрэлцэхгүй. Алсын суурилуулалт программ хангамжийн жижиг шийдвэр бүрийг логистикийн шийдвэр болгодог бол OTA түүнийг буцааж программ хангамжийн шийдвэр болгодог.

Гэхдээ OTA өөрөө эрсдэлтэй: хэдэн зуун км-ийн цаана бүтэлгүйтсэн шинэчлэлт анхны алдаанаасаа ч дор. Тиймээс бид цөөн хэдэн дүрэм чанд баримталдаг. Шинэчлэлтийн файлыг суулгахын өмнө шалгаж баталгаажуулна. Firmware хоёр банктай (A/B) хуваарилалттай — шинэ хувилбар ачаалж чадахгүй эсвэл сервертэй холбогдож чадахгүй бол төхөөрөмж өмнөх хувилбар руугаа өөрөө буцна. Тараалтыг шатлан хийнэ: эхлээд нэг станц, дараа нь бусад нь. Мөн таталт удаан, тасалдалтай үүрэн сүлжээн дээр тасарсан газраасаа үргэлжлэх чадвартай байх ёстой.

Хариултын нөгөө тал нь store-and-forward буюу дотоод хуримтлал. Алсын цэгт сүлжээ тасрах нь осол биш, цаг агаар шиг л хэвийн үзэгдэл. Манай төхөөрөмжүүд датагаа 30 хүртэл хоног дотооддоо хадгалж, холболт сэргэмэгц нөхөж илгээдэг тул самбар дээр алдагдсан түүх биш, нөхөгдөж буй завсар харагддаг. Дохиоллын системд бас нэг нарийн ялгаа бий: платформ «станц офлайн байна» гэдгийг «мэдээлэх зүйл алга» гэдгээс ялгаж таних ёстой. Чимээгүй байдал аюулгүй байдлын баталгаа биш.

Энэ хоёр чадвар зөвхөн хамтдаа утга төгөлдөр. OTA нь төхөөрөмжийн зан төлөвийг алсаас өөрчлөх боломж олгодог бол store-and-forward тэр өөрчлөлтийн үеэр юу ч алдагдахгүйг баталдаг. Шинэчлэлтийн цонхны үеэр станц хэмжилтээ үргэлжлүүлж, дахин ачаалсны дараа хуримтлагдсан датагаа юу ч болоогүй мэт нөхөж илгээдэг.

Энэ нь бүхэл архитектурыг тодорхойлдог. Бид холболтыг анхнаасаа найдваргүй гэж үзэж, төхөөрөмжийг үнэний эх сурвалж гэж тооцдог — клауд бол толь, эзэн биш. Энэ нэг шийдвэр цуврал шийдвэр дагуулдаг: цагийн тэмдэглэгээг төхөөрөмж дээр хийнэ, дотоод санах ойг минутаар биш долоо хоногоор хэмжиж тооцно, протоколын давхарга хүний оролцоогүйгээр дахин холбогдож, датагаа тааруулж чаддаг байна.

OTA бол туршилтын орлуулагч биш. Туршилтаас амьд гарсан алдааны өртгийг л бууруулдаг — тийм алдаа үргэлж гардаг. Одоо бидний нийлүүлдэг флот бүр эхний өдрөөсөө OTA болон дотоод хуримтлалтай гардаг. Учир нь энэ хоёрын алийг нь ч суурилуулалтын дараа нэмэх нь анхнаасаа хийснээс хамаагүй их зовлон гэдгийг бид өөрсдийн туршлагаар мэднэ.

firmwareOTAMQTTreliability

Хүрч очиход хэцүү төхөөрөмжүүд ажиллуулж байна уу?

Хэдэн төхөөрөмж, хаана байгааг бичээрэй. OTA, буфер, дохиоллыг одоогийн firmware-д тань хэрхэн нэмэхийг хэлье.