Bloga geri dön

Etiket Yazıcıları için SLC 5/04 Yılın Günü Kodları

Bir SLC 5/04'te doğrulanmış bir YYYYDDD üretim kodu oluşturun. Bu kılavuz, sıralı gün ile Jülyen Gün Sayısı'nı birbirinden ayırır ve saat örnekleme, artık yıllar, taşma, biçimlendirme ve yazıcı el ...

Birçok paketleme tesisi, bir etiket yazıcısı için SLC 5/04’e “Julian tarihi” oluşturmasını söyler. Ancak çoğu durumda gereken değer astronomik Jülyen Gün Sayısı değildir. Bu, yılın günü olarak da adlandırılan sıra günüdür: 1 Ocak 001, 31 Aralık ise 365 veya 366’dır. Ladder mantığı oluşturulmadan önce bu ayrım arayüz spesifikasyonuna yazılmalıdır.

2026243 gibi bir kod genellikle 2026 yılı ile 243 sıra gününün birleşimi anlamına gelir. Sabit uzunlukta olduğu ve bir yıl içinde doğal olarak sıralandığı için parti takibinde kullanışlıdır. Günün saatini, saat dilimini, üretim vardiyasını veya küresel olarak benzersiz bir partiyi tanımlamaz. İzlenebilirlik gerektirdiğinde bu alanlar ayrı olarak yönetilmelidir.

Takvim alanlarından sıra gün kodu hesaplayan SLC 5/04 ladder rutini

Tamsayı veya dize depolamayı seçmeden önce istenen kodu yıl artı üç basamaklı sıra günü olarak tanımlayın.

Önce Kontrolör Saat Kaynağını Doğrulayın

Kurulu işlemciyi, seriyi, ürün yazılımını ve resmi veri tablosu referansını kontrol etmeden başka bir projeden durum dosyası adreslerini kopyalamayın. SLC durum dosyası saat bilgilerini içerir, ancak kesin kelime adresleri ve güncelleme davranışı hedef kontrolör için doğrulanmalıdır. Hatalı takma adlar, bir ay veya yıl geçişi hatayı ortaya çıkarana kadar makul görünen değerler üretebilir.

Yıl, ay ve günü tek bir tutarlı örnek olarak çalışma kayıtlarına kopyalayın. Değerler gece yarısı boyunca okunursa rutin, dünkü ayı bugünün günüyle birleştirebilir. Bir yaklaşım, iki kez örnek almak ve verileri yalnızca her iki küme eşleştiğinde kabul etmektir. Diğer bir yaklaşım ise üretim tarihini gece yarısından sonra belirlenmiş sakin bir zaman aralığında güncellemektir.

Kontrolör saati de düzenli olarak korunmalıdır. Doğru bir formül; bitmiş pili, yanlış saati veya yetkisiz ayarı düzeltemez. Tarih onaylanan aralığın dışındaysa alarm verin ve bakımdan sonra saati kimin ayarlayabileceğini belgeleyin.

Açık Bir Ay Ofseti Yöntemi Kullanın

Sıra günü, ayın gününe önceki aylardaki tüm günlerin eklenmesiyle bulunur. Artık yıl olmayan durumlar için kümülatif ofsetleri bir tamsayı dosyasında saklayın: Ocak 0, Şubat 31, Mart 59, Nisan 90, Mayıs 120, Haziran 151, Temmuz 181, Ağustos 212, Eylül 243, Ekim 273, Kasım 304 ve Aralık 334.

Bu dosyada indeksleme yapmadan önce ayı doğrulayın. Sıfır, negatif değer veya 12’den büyük bir değer, amaçlanmayan bir kayda erişmemelidir. Günü de seçilen aya göre doğrulayın. Kontrolör, tarih-geçersiz bitini ayarlamalı, yazdırmayı engellemeli ve makul görünen ancak yanlış bir parti kodu oluşturmak yerine reddedilen alanları göstermelidir.

Ofseti aldıktan sonra sıra gününü ofset artı ayın günü olarak hesaplayın. Yıl artık yılıysa ve ay Şubat’tan sonraysa bir ekleyin. Ara değerleri ayrı kayıtlarda görünür tutun. Kısa bir ifade bir rung tasarrufu sağlayabilir, ancak çevrim içi sorun gidermeyi zorlaştırır.

Gregoryen Artık Yıl Kuralını Uygulayın

Yaygın “dörde bölünebilir” testi, yüzyıl yılları için eksiktir. Gregoryen kuralına göre bir yıl, dörde bölünebiliyorsa artık yıldır; ancak 100’e bölünebilen yıllar, aynı zamanda 400’e de bölünmedikçe artık yıl değildir. Bu nedenle 2000 artık yıldı, 2100 artık yıl olmayacak ve 2400 artık yıl olacaktır.

NIST, Gregoryen takviminin her 400 yıllık döngüde üç artık yılı çıkardığını açıklar. Yeniden kullanılabilir kodlar beklenenden uzun süre çalışabildiği için bu kuralı uygulamak önemlidir. NIST’in artık yıl açıklamasına bakın.

Testi, kurulu komut seti tarafından desteklenen açık kalan karşılaştırmaları kullanarak oluşturun. Her dalı yorumlayın. Gelecekteki teknisyenlerin çevrim içi olarak doğrulayamayacağı bir ifadeden kaçının. Tesis spesifikasyonu kasıtlı olarak daha basit bir kural kullanıyorsa geçerli tarih aralığını belgeleyin.

Tamsayı Aritmetiğini Aralık İçinde Tutun

Sıra günü, 16 bit işaretli bir tamsayıya sığar. YYYYDDD gibi birleşik bir sayısal değer ise sığmaz. Örneğin 2026243, 32.767’yi aşar. Tam etiket kodunu normal bir SLC tamsayı kaydına sığdırmaya çalışmayın.

Yılı ve sıra gününü ayrı tamsayılar olarak tutun, ardından bir dize oluşturun. Bu yöntem taşmayı önler ve baştaki sıfırları korur. Yazıcı ayrı alanları kabul ediyorsa bunları ayrı gönderin. Gerçekten astronomik bir Jülyen Gün Sayısı gerekiyorsa ayrı olarak incelenmiş bir algoritma ve veri gösterimi kullanın; bu sıra günü rutinini yeniden adlandırmayın.

Sabit Genişlikte Bir Yazıcı Dizisi Biçimlendirin

Üretim dizesi her zaman dört basamaklı yıl ve üç basamaklı sıra gününden oluşmalıdır. 7. gün, 007 olmalıdır. Sonucu işlemci ve proje tarafından desteklenen komutları kullanarak bir ASCII veya dize tamponunda oluşturun. Yazdırma tetiklenmeden önce hedef uzunluğunu doğrulayın ve eski bir iletiden kalan karakterlerin kalmaması için tamponun tamamının üzerine yazın.

SLC 5/04 tarafından oluşturulan sabit genişlikte YYYYDDD etiket kodu

Sabit genişlikte biçimlendirme, baştaki sıfırları korur ve barkod alanlarının hizalı kalmasını sağlar.

Yazıcıyla istek ve onay el sıkışması kullanın. İstek verildiğinde tamamlanmış tarih dizesini dondurun. Bir ileti etkinken serbest çalışan tarih rutininin tamponu değiştirmesine izin vermeyin. Başarı, zaman aşımı ve yazıcı reddini ayrı durumlar olarak kaydedin.

Yalnızca Normal Tarihleri Değil, Sınırları da Doğrulayın

1 Ocak, 28 Şubat, artık yılda 29 Şubat, artık ve normal yıllarda 1 Mart, 31 Aralık ve yeni yıl geçişini test edin. Kod hizmette kalabilir veya ileriye dönük kopyalanabilirse 2099-12-31, 2100-02-28 ve 2100-03-01 tarihlerini de ekleyin. Sonuçları bağımsız bir takvimle karşılaştırın.

Hatalı verileri kasıtlı olarak deneyin: ay 0, ay 13, gün 0, 31 Nisan ve normal yılda 29 Şubat. Rutin yazdırmayı reddediyor mu doğrulayın. İşlemciyi bir tarih geçişi sırasında kapatıp açın ve saati, çalışma kayıtlarını, ilk tarama davranışını ve yazıcı el sıkışmasını doğrulayın.

Kodu Parti Sahipliğiyle Entegre Edin

Tarih rutini doğrulanmış bir değer sağlamalıdır; ancak bunun bir partinin parçası haline geleceği zamana paketleme sırası karar verir. Gece yarısından önce başlayan bir parti, takvim değiştikten sonra da ilk üretim tarihini kullanmak zorunda olabilir. Onaylanan değeri parti başlangıcında yakalayın ve parti kapanana kadar saklayın.

Belgelenmiş rutini tesisin PLC ve PAC sistemleri geçiş kayıtlarıyla birlikte saklayın. Bu makinede kullanılan kesin saat kaynağı kelimelerini ekleyin. Etkin tarih kodunu ve doğrulama durumunu HMI ve endüstriyel bilişim katmanı üzerinden görünür tutun.

Mühendislik Bakış Açısı

En önemli iyileştirme kavramsal netliktir. Bu değeri sıra günü veya yılın günü kodu olarak adlandırın, saat ve takvim alanlarını doğrulayın, tam Gregoryen kuralını kullanın, aritmetiği aralık içinde tutun ve aktarım sırasında sabit genişlikte bir dizeyi dondurun. Bu kararlar, yalnızca bir artık günde, yıl sınırında veya kontrolör değişiminde ortaya çıkabilecek sessiz izlenebilirlik hatalarını önler.

Yorum bırakın

Lütfen unutmayın, yorumların yayınlanmadan önce onaylanması gerekmektedir.