Back to blog

Etiket printerləri üçün SLC 5/04 il günü kodları

SLC 5/04-də təsdiqlənmiş YYYYDDD istehsal kodu yaradın. Bu təlimatda sıra günü Julian Gün Nömrəsindən fərqləndirilir və saatın oxunması, uzun illər, daşma, formatlaşdırma və printerlə əl sıxma pros...

Bir çox qablaşdırma müəssisəsi etiket printeri üçün SLC 5/04-dən “Yulian tarixi” yaratmağı xahiş edir. Əksər hallarda tələb olunan dəyər astronomik Yulian gün nömrəsi deyil. Bu, sıra günü və ya ilin günü də adlanan ordinal gündür: 1 yanvar 001, 31 dekabr isə 365 və ya 366-dır. Ladder məntiqi yaradılmazdan əvvəl bu fərq interfeys spesifikasiyasında qeyd edilməlidir.

2026243 kimi bir kod adətən 2026-cı il və ardınca 243-cü ordinal gün deməkdir. Sabit uzunluğa malik olduğu və il daxilində təbii şəkildə sıralandığı üçün partiyaların izlənməsi baxımından faydalıdır. Bu kod günün vaxtını, saat qurşağını, istehsal növbəsini və ya qlobal baxımdan unikal partiyanı müəyyən etmir. İzlenəbilənlik bunu tələb etdikdə həmin sahələr ayrıca idarə edilməlidir.

Təqvim sahələrindən ordinal gün kodunu hesablayan SLC 5/04 ladder rutini

16 bitlik tam ədəd və ya sətir yaddaşı seçməzdən əvvəl tələb olunan kodu il və üçrəqəmli ordinal gün kimi müəyyənləşdirin.

Əvvəlcə kontrollerin saat mənbəyini yoxlayın

Quraşdırılmış prosessoru, seriyanı, proqram təminatını və rəsmi verilənlər cədvəli istinadını yoxlamadan başqa layihədəki status faylı ünvanlarını köçürməyin. SLC status faylında saat məlumatları var, lakin dəqiq sözlər və yenilənmə davranışı hədəf kontroller üçün yoxlanmalıdır. Yanlış ləqəblər ay və ya il keçidi səhvi üzə çıxarana qədər inandırıcı dəyərlər yarada bilər.

İli, ayı və günü vahid nümunə kimi işçi registrlərə köçürün. Dəyərlər gecəyarısı keçidi zamanı oxunarsa, rutin dünənin ayını bu günün günü ilə birləşdirə bilər. Bir yanaşma məlumatı iki dəfə nümunələmək və yalnız hər iki dəst uyğun gəldikdə qəbul etməkdir. Digər yanaşma istehsal tarixini gecəyarısından sonra müəyyən edilmiş sakit intervalda yeniləməkdir.

Kontrollerin saatı da saz vəziyyətdə saxlanmalıdır. Düzgün formula bitmiş batareyanı, səhv saatı və ya icazəsiz düzəlişi aradan qaldıra bilməz. Tarix təsdiqlənmiş diapazondan kənara çıxdıqda siqnal verin və texniki xidmətdən sonra saatı kimin qura biləcəyini sənədləşdirin.

Aydın ay ofseti metodundan istifadə edin

Ordinal gün ayın gününə əvvəlki aylardakı bütün günlərin əlavə edilməsi ilə hesablanır. Uzun il olmayan il üçün kumulyativ ofsetləri tam ədəd faylında saxlayın: yanvar 0, fevral 31, mart 59, aprel 90, may 120, iyun 151, iyul 181, avqust 212, sentyabr 243, oktyabr 273, noyabr 304 və dekabr 334.

Həmin fayla indeks verməzdən əvvəl ayı yoxlayın. Sıfır, mənfi dəyər və ya 12-dən böyük dəyər nəzərdə tutulmayan registrə müraciət etməməlidir. Günü də seçilmiş aya uyğun yoxlayın. Kontroller tarix-səhv bitini aktiv etməli, çapı bloklamalı və inandırıcı, lakin yanlış partiya kodu yaratmaq əvəzinə rədd edilmiş sahələri göstərməlidir.

Ofseti əldə etdikdən sonra ordinal günü ofset ilə ayın gününü toplayaraq hesablayın. İl uzun il olduqda və ay fevraldan sonradırsa, bir əlavə edin. Aralıq dəyərləri ayrıca registrlərdə görünən saxlayın. Yığcam ifadə bir ladder xəttinə qənaət edə bilər, lakin onlayn nasazlıq axtarışını çətinləşdirir.

Qriqorian uzun il qaydasını tətbiq edin

Adi “dördə bölünür” yoxlaması əsr illəri üçün tam deyil. Qriqorian qaydasına əsasən il dördə bölünürsə uzun ildir, lakin 100-ə bölünən illər 400-ə də bölünmədikcə uzun il sayılmır. Buna görə 2000-ci il uzun il idi, 2100-cü il olmayacaq, 2400-cü il isə olacaq.

NIST izah edir ki, Qriqorian təqvimi hər 400 illik dövrdə üç uzun ili aradan qaldırır. Bu qaydanı tətbiq etmək faydalıdır, çünki təkrar istifadə olunan kod gözlənildiyindən daha uzun müddət işlək qala bilər. NIST-in uzun il izahına baxın.

Yoxlamanı quraşdırılmış təlimat dəstinin dəstəklədiyi açıq qalıq müqayisələri əsasında qurun. Hər budağı şərhləndirin. Gələcək texniklərin onlayn rejimdə yoxlaya bilməyəcəyi ifadədən qaçın. Müəssisə spesifikasiyası qəsdən daha sadə qaydadan istifadə edirsə, onun etibarlı tarix diapazonunu sənədləşdirin.

Tam ədəd hesablamasını diapazon daxilində saxlayın

Ordinal gün 16 bitlik işarəli tam ədədə sığır. YYYYDDD kimi birləşdirilmiş ədədi dəyər isə sığmır. Məsələn, 2026243 32 767-ni keçir. Tam etiket kodunu adi SLC tam ədəd registrinə yerləşdirməyə çalışmayın.

İli və ordinal günü ayrıca tam ədədlər kimi saxlayın, sonra sətir yaradın. Bu, daşmanı aradan qaldırır və başlanğıc sıfırlarını qoruyur. Printer ayrı sahələri qəbul edirsə, onları ayrıca ötürün. Əgər həqiqətən astronomik Yulian gün nömrəsi tələb olunursa, ayrıca yoxlanmış alqoritm və məlumat təqdimatından istifadə edin; bu ordinal-gün rutinini başqa adla təqdim etməyin.

Printer üçün sabit enli sətir yaradın

İstehsal sətri həmişə dörd il rəqəmi və üç ordinal-gün rəqəmindən ibarət olmalıdır. 7-ci gün 007 şəklinə çevrilməlidir. Nəticəni prosessor və layihənin dəstəklədiyi təlimatlardan istifadə etməklə ASCII və ya sətir buferində yaradın. Çap tətiklənməsindən əvvəl təyinat uzunluğunu təsdiqləyin və köhnə mesajdakı simvolların qalmasının qarşısını almaq üçün bütün buferin üzərinə yazın.

SLC 5/04 tərəfindən yaradılmış sabit enli YYYYDDD etiket kodu

Sabit enli formatlaşdırma başlanğıc sıfırlarını qoruyur və ştrix-kod sahələrini düzülmüş saxlayır.

Printerlə sorğu və təsdiq əl sıxışmasından istifadə edin. Sorğu verildikdə tamamlanmış tarix sətrini dondurun. Mesaj aktiv olduğu müddətdə sərbəst işləyən tarix rutininin buferi dəyişməsinə imkan verməyin. Uğur, vaxt aşımı və printerin rəddi hallarını ayrıca vəziyyətlər kimi qeyd edin.

Yalnız normal tarixləri deyil, sərhəd halları da yoxlayın

1 yanvarı, 28 fevralı, uzun ildə 29 fevralı, uzun və adi illərdə 1 martı, 31 dekabrı və yeni il keçidini sınaqdan keçirin. Kod işlək qala və ya gələcəkdə köçürülə bilərsə, 2099-12-31, 2100-02-28 və 2100-03-01 tarixlərini də daxil edin. Nəticələri müstəqil təqvimlə müqayisə edin.

Səhv məlumatları qəsdən sınaqdan keçirin: 0-cı ay, 13-cü ay, 0-cı gün, 31 aprel və adi ildə 29 fevral. Rutin çapdan imtina etməlidir. Tarix keçidi yaxınlığında prosessoru söndürüb-yandırın və saatı, işçi registrləri, ilk skan davranışını və printer əl sıxışmasını yoxlayın.

Kodu partiya sahibliyi ilə inteqrasiya edin

Tarix rutini təsdiqlənmiş dəyər təqdim etməlidir, lakin onun partiyanın tərkib hissəsinə çevriləcəyi vaxta qablaşdırma ardıcıllığı qərar verir. Gecəyarısından əvvəl başlayan partiyaya təqvim dəyişdikdən sonra da ilkin istehsal tarixi lazım ola bilər. Təsdiqlənmiş dəyəri partiya başlayanda götürün və partiya bağlanana qədər saxlayın.

Sənədləşdirilmiş rutini müəssisənin PLC və PAC sistemləri miqrasiya qeydləri ilə birlikdə saxlayın. Həmin maşında istifadə olunan dəqiq saat mənbəyi sözlərini daxil edin. Aktiv tarix kodunu və yoxlama statusunu HMI və sənaye hesablama qatı vasitəsilə görünən saxlayın.

Mühəndislik baxışı

Əsas təkmilləşdirmə anlayışların aydınlaşdırılmasıdır. Dəyəri ordinal gün və ya ilin günü kodu adlandırın, saatı və təqvim sahələrini yoxlayın, tam Qriqorian qaydasından istifadə edin, hesablamanı diapazon daxilində saxlayın və ötürmə zamanı sabit enli sətri dondurun. Bu qərarlar yalnız uzun gündə, il sərhədində və ya kontroller dəyişdiriləndə üzə çıxa bilən səssiz izlənəbilənlik səhvlərinin qarşısını alır.

Leave a comment

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