Back to blog

Yorliq printerlari uchun SLC 5/04 yil kunlari kodlari

SLC 5/04 qurilmasida tekshirilgan YYYYDDD ishlab chiqarish kodini yarating. Ushbu qo‘llanma tartib raqamli kunni Yulian kun raqamidan ajratadi hamda soatni o‘qish, kabisa yillari, to‘lib ketish, fo...

Ko‘plab qadoqlash zavodlari yorliq printeri uchun SLC 5/04 qurilmasidan “Julian sana”ni yaratishni so‘raydi. Aksariyat hollarda talab qilinadigan qiymat astronomik Julian kun raqami emas. Bu tartib raqami, ya’ni yil kuni deb ham ataladi: 1-yanvar — 001, 31-dekabr esa 365 yoki 366. Narvonli mantiq yaratilishidan oldin ushbu farq interfeys spetsifikatsiyasiga yozilishi kerak.

2026243 kabi kod odatda 2026-yil va undan keyingi 243-tartib kunini anglatadi. U partiyalarni kuzatish uchun qulay, chunki uzunligi o‘zgarmaydi va bir yil ichida tabiiy tartiblanadi. U kun vaqtini, vaqt mintaqasini, ishlab chiqarish smenasini yoki global jihatdan noyob partiyani aniqlamaydi. Kuzatuvchanlik uchun zarur bo‘lsa, bu maydonlar alohida boshqarilishi kerak.

Kalendar maydonlaridan tartib kuni kodini hisoblaydigan SLC 5/04 narvonli rutinası

Butun son yoki satr ko‘rinishida saqlashni tanlashdan oldin so‘ralgan kodni yil va uch xonali tartib kuni sifatida belgilang.

Avval kontroller soati manbasini tekshiring

O‘rnatilgan protsessor, seriya, proshivka va rasmiy ma’lumotlar jadvali ma’lumotnomasini tekshirmasdan boshqa loyihadagi status-fayl manzillarini ko‘chirmang. SLC status faylida soatga oid ma’lumotlar mavjud, ammo aniq so‘zlar va yangilanish xatti-harakati maqsadli kontroller uchun tekshirilishi kerak. Noto‘g‘ri taxalluslar oy yoki yil almashinuvi xatoni yuzaga chiqarguncha ishonarli qiymatlar hosil qilishi mumkin.

Yil, oy va kunni bitta yaxlit namuna sifatida ishchi registrlarga ko‘chiring. Qiymatlar yarim tunda turli vaqtlarda o‘qilsa, rutina kechagi oyni bugungi kun bilan birlashtirishi mumkin. Usullardan biri — ikki marta namuna olish va faqat ikkala to‘plam mos kelgandagina ma’lumotni qabul qilish. Yana biri — ishlab chiqarish sanasini yarim tundan keyingi belgilangan tinch intervalda yangilash.

Kontroller soati ham muntazam sozlab turilishi kerak. To‘g‘ri formula o‘tirib qolgan batareya, noto‘g‘ri soat yoki ruxsatsiz sozlashni tuzata olmaydi. Sana tasdiqlangan diapazondan tashqarida bo‘lsa signal bering va texnik xizmatdan keyin soatni kim sozlashi mumkinligini hujjatlashtiring.

Oy siljishlarining aniq usulidan foydalaning

Tartib kuni oyning kuniga undan oldingi oylarning barcha kunlari qo‘shilishiga teng. Kabisa bo‘lmagan yil uchun jamlanma siljishlarni butun sonlar faylida saqlang: yanvar 0, fevral 31, mart 59, aprel 90, may 120, iyun 151, iyul 181, avgust 212, sentyabr 243, oktyabr 273, noyabr 304 va dekabr 334.

Ushbu fayl bo‘yicha indekslashdan oldin oyni tekshiring. Nol, manfiy qiymat yoki 12 dan katta qiymat mo‘ljallanmagan registrga murojaat qilmasligi kerak. Kunni ham tanlangan oyga nisbatan tekshiring. Kontroller sana noto‘g‘ri ekanini bildiruvchi bitni o‘rnatishi, chop etishni bloklashi va ishonarli, ammo noto‘g‘ri partiya kodi yaratish o‘rniga rad etilgan maydonlarni ko‘rsatishi kerak.

Siljishni olgach, tartib kunini siljish va oy kunining yig‘indisi sifatida hisoblang. Agar yil kabisa yili bo‘lsa va oy fevraldan keyin kelsa, birni qo‘shing. Oraliq qiymatlarni alohida registrlarda ko‘rinadigan holda saqlang. Ixcham ifoda bitta rungni tejashi mumkin, ammo onlayn nosozliklarni bartaraf etishni qiyinlashtiradi.

Grigoriy taqvimining kabisa yili qoidasini joriy qiling

Oddiy “to‘rtga bo‘linadi” tekshiruvi asr yillari uchun to‘liq emas. Grigoriy qoidasiga ko‘ra, yil to‘rtga bo‘linsa kabisa yili hisoblanadi, biroq 100 ga bo‘linadigan yillar, 400 ga ham bo‘linmasa, kabisa yili emas. Shuning uchun 2000 yil kabisa yili bo‘lgan, 2100 yil esa bunday bo‘lmaydi, 2400 yil bo‘ladi.

NIST Grigoriy taqvimi har 400 yillik davrda uchta kabisa yilini chiqarib tashlashini tushuntiradi. Qayta foydalaniladigan kod ko‘pincha kutilganidan uzoqroq ishlagani uchun ushbu qoidani joriy etish maqsadga muvofiq. NISTning kabisa yili haqidagi tushuntirishini ko‘ring.

Tekshiruvni o‘rnatilgan buyruqlar to‘plami qo‘llab-quvvatlaydigan aniq qoldiq taqqoslashlari asosida tuzing. Har bir tarmoqqa izoh yozing. Kelajakdagi texniklar onlayn tekshira olmaydigan ifodadan saqlaning. Agar zavod spetsifikatsiyasi ataylab soddalashtirilgan qoidani ishlatsa, uning amal qilish sanalari diapazonini hujjatlashtiring.

Butun sonli hisob-kitobni diapazon doirasida saqlang

Tartib kuni 16 bitli ishorali butun songa sig‘adi. YYYYDDD kabi birlashtirilgan sonli qiymat esa sig‘maydi. Masalan, 2026243 soni 32 767 dan katta. To‘liq yorliq kodini oddiy SLC butun son registriga majburan joylashtirmang.

Yil va tartib kunini alohida butun sonlar sifatida saqlang, so‘ng satr yarating. Bu toshib ketishning oldini oladi va boshidagi nollarni saqlab qoladi. Agar printer alohida maydonlarni qabul qilsa, ularni alohida yuboring. Agar astronomik Julian kun raqami haqiqatan kerak bo‘lsa, alohida ko‘rib chiqilgan algoritm va ma’lumotlar ko‘rinishidan foydalaning; ushbu tartib kuni rutinasini boshqa nom bilan atamang.

Printer satrini belgilangan kenglikda formatlang

Ishlab chiqarish satrida har doim to‘rtta yil raqami va uchta tartib kuni raqami bo‘lishi kerak. 7-kun 007 ko‘rinishiga kelishi kerak. Natijani protsessor va loyiha qo‘llab-quvvatlaydigan buyruqlar yordamida ASCII yoki satr buferida yarating. Chop etish ishga tushirilishidan oldin manzil uzunligini tekshiring va eski xabardagi belgilar qolib ketmasligi uchun butun buferni qayta yozing.

SLC 5/04 tomonidan yaratilgan belgilangan kenglikdagi YYYYDDD yorliq kodi

Belgilangan kenglikdagi formatlash boshidagi nollarni saqlaydi va shtrix-kod maydonlarini tekis holatda ushlab turadi.

Printer bilan so‘rov va tasdiqlash qo‘l siqish mexanizmidan foydalaning. So‘rov berilganda tayyor sana satrini muzlatib qo‘ying. Xabar faol bo‘lgan paytda erkin ishlaydigan sana rutinasining buferni o‘zgartirishiga yo‘l qo‘ymang. Muvaffaqiyat, vaqt tugashi va printerning rad etishini alohida holatlar sifatida qayd eting.

Faqat oddiy sanalarni emas, chegaraviy holatlarni ham tekshiring

1-yanvar, 28-fevral, kabisa yilidagi 29-fevral, kabisa va oddiy yillardagi 1-mart, 31-dekabr hamda yangi yilga o‘tish holatlarini sinang. Agar kod ishlashda qolishi yoki keyingi loyihalarga ko‘chirilishi mumkin bo‘lsa, 2099-12-31, 2100-02-28 va 2100-03-01 sanalarini ham kiriting. Natijalarni mustaqil taqvim bilan solishtiring.

Noto‘g‘ri ma’lumotlarni ataylab bering: 0-oy, 13-oy, 0-kun, 31-aprel va oddiy yildagi 29-fevral. Rutina chop etishni rad etishini tasdiqlang. Sana almashinuvi yaqinida protsessorni o‘chirib-yoqing va soat, ishchi registrlar, birinchi skan xatti-harakati hamda printer bilan qo‘l siqish mexanizmini tekshiring.

Kodni partiya egaligi bilan integratsiya qiling

Sana rutinası tasdiqlangan qiymatni taqdim etishi kerak, biroq uning partiyaning bir qismiga qachon aylanishini qadoqlash ketma-ketligi belgilaydi. Yarim tundan oldin boshlangan partiyaga taqvim o‘zgarganidan keyin ham dastlabki ishlab chiqarish sanasi kerak bo‘lishi mumkin. Tasdiqlangan qiymatni partiya boshlanganda yozib oling va partiya yopilguncha saqlang.

Hujjatlashtirilgan rutinani zavodning PLC va PAC tizimlari migratsiya qaydlarida saqlang. Ushbu mashinada ishlatiladigan aniq soat manbasi so‘zlarini ham kiriting. Faol sana kodi va tekshiruv holatini HMI va sanoat hisoblash qatlami orqali ko‘rinadigan holda saqlang.

Muhandislik nuqtayi nazari

Asosiy yaxshilanish — tushunchalarning aniqligidir. Qiymatni tartib kuni yoki yil kuni kodi deb atang, soat va taqvim maydonlarini tekshiring, to‘liq Grigoriy qoidasidan foydalaning, hisob-kitobni diapazon doirasida saqlang va uzatish vaqtida belgilangan kenglikdagi satrni muzlatib qo‘ying. Ushbu qarorlar faqat kabisa kuni, yil chegarasi yoki kontroller almashtirilganda yuzaga chiqishi mumkin bo‘lgan yashirin kuzatuvchanlik xatolarining oldini oladi.

Leave a comment

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