Vissza a blogba

SLC 5/04 év-nap kódok címkenyomtatókhoz

Érvényesített YYYYDDD gyártási kód létrehozása SLC 5/04 rendszerben. Ez az útmutató megkülönbözteti az év napját a Julián-napszámtól, és kitér az idő lekérdezésére, a szökőévekre, a túlcsordulásra,...

Számos csomagolóüzem az SLC 5/04 vezérlőtől „Julián-dátum” létrehozását kéri egy címkenyomtató számára. A legtöbb esetben a kívánt érték nem csillagászati Julián-napszám, hanem sorszámozott nap, más néven az év napja: január 1. a 001, december 31. pedig a 365. vagy 366. nap. Ezt a különbséget még a létradiagram-logika létrehozása előtt rögzíteni kell az interfészspecifikációban.

Az olyan kód, mint a 2026243, általában a 2026-os évet és az azt követő 243. sorszámozott napot jelenti. Tételkövetésre azért hasznos, mert rögzített hosszúságú, és egy éven belül természetes sorrendben rendeződik. Nem azonosítja a napszakot, az időzónát, a termelési műszakot vagy egy globálisan egyedi tételt. Ha a nyomonkövethetőség ezt megköveteli, ezeket a mezőket külön kell kezelni.

Az SLC 5/04 létradiagram-rutinja naptári mezőkből sorszámozott napkódot számít

A kívánt kódot évként és háromjegyű sorszámozott napként kell meghatározni, mielőtt az egész vagy a szöveges tárolást kiválasztaná.

Először ellenőrizze a vezérlő óraforrását

Ne másoljon állománycímeket egy másik projektből anélkül, hogy ellenőrizné a telepített processzort, a sorozatot, a firmware-t és a hivatalos adat­táblázat-hivatkozást. Az SLC állomány tartalmaz óraadatokat, de a pontos szavakat és a frissítési viselkedést ellenőrizni kell a célvezérlőn. A helytelen aliasok hihető értékeket eredményezhetnek, amíg egy hónap- vagy évváltás fel nem fedi a hibát.

Az évet, a hónapot és a napot egyetlen összefüggő mintaként másolja munkaregiszterekbe. Ha az értékeket éjfélkor, eltérő időpontokban olvassa be, a rutin a tegnapi hónapot a mai nappal kombinálhatja. Az egyik megoldás a kétszeri mintavétel, és az adatok elfogadása csak akkor, ha mindkét készlet megegyezik. Egy másik lehetőség a termelési dátum frissítése egy éjfél utáni, meghatározott nyugalmi időszakban.

A vezérlő óráját is karban kell tartani. A helyes képlet nem javítja meg a lemerült elemet, a hibás órát vagy az engedély nélküli módosítást. Generáljon riasztást, ha a dátum kívül esik a jóváhagyott tartományon, és dokumentálja, hogy karbantartás után ki állíthatja be az órát.

Használjon egyértelmű hónap-eltolásos módszert

A sorszámozott nap a hónap napjának és az előző hónapok összes napjának összege. Tárolja a nem szökőévi kumulatív eltolásokat egészértékű állományban: január 0, február 31, március 59, április 90, május 120, június 151, július 181, augusztus 212, szeptember 243, október 273, november 304, december 334.

Az állomány indexelése előtt ellenőrizze a hónapot. Nulla, negatív érték vagy 12-nél nagyobb érték nem címezhet nem szándékosan egy másik regisztert. Ellenőrizze a napot a kiválasztott hónap alapján is. A vezérlő állítson be érvénytelen dátum bitet, tiltsa le a nyomtatást, és jelenítse meg az elutasított mezőket, ahelyett hogy hihető, de hibás tételkódot hozna létre.

Az eltolás lekérése után számítsa ki a sorszámozott napot az eltolás és a hónap napjának összeadásával. Ha az év szökőév, a hónap pedig február utáni, adjon hozzá egyet. A köztes értékeket külön regiszterekben, látható módon tartsa meg. Egy tömör kifejezés megspórolhat egy létrasort, de megnehezíti az online hibakeresést.

Alkalmazza a Gergely-naptár szökőévszabályát

Az általános „néggyel osztható” vizsgálat a századéveknél nem elegendő. A Gergely-naptár szerint egy év akkor szökőév, ha osztható néggyel, kivéve a 100-zal osztható éveket, amelyek csak akkor szökőévek, ha 400-zal is oszthatók. Ezért 2000 szökőév volt, 2100 nem lesz az, 2400 pedig az lesz.

A NIST ismerteti, hogy a Gergely-naptár minden 400 éves ciklusban három szökőévet elhagy. Ezt a szabályt érdemes megvalósítani, mert az újrahasznosítható kód gyakran tovább működik, mint várnánk. Lásd a NIST szökőévről szóló magyarázatát.

A vizsgálatot a telepített utasításkészlet által támogatott, explicit maradék-összehasonlításokból építse fel. Minden ágat lásson el megjegyzéssel. Kerülje az olyan kifejezést, amelyet a jövőbeli technikusok nem tudnak online ellenőrizni. Ha az üzemi specifikáció szándékosan egyszerűbb szabályt használ, dokumentálja annak érvényes dátumtartományát.

Tartsa az egészértékű számításokat a tartományon belül

A sorszámozott nap elfér egy 16 bites előjeles egészben. Az olyan kombinált numerikus érték, mint a YYYYDDD, már nem. Például a 2026243 meghaladja a 32 767-et. Ne próbálja a teljes címkekódot normál SLC egészregiszterben tárolni.

Az évet és a sorszámozott napot külön egészértékként tartsa meg, majd építsen fel egy szöveges karakterláncot. Így elkerülhető a túlcsordulás, és megőrizhetők a kezdő nullák. Ha a nyomtató külön mezőket fogad, külön továbbítsa őket. Ha valóban csillagászati Julián-napszámra van szükség, külön felülvizsgált algoritmust és adatábrázolást használjon; ne nevezze át ezt a sorszámozott napot kezelő rutint.

Formázzon rögzített szélességű nyomtatói karakterláncot

A gyártási karakterlánc mindig négy évszámjegyből és három sorszámozottnap-jegyől álljon. A 7. napból 007 legyen. Az eredményt a processzor és a projekt által támogatott utasításokkal ASCII- vagy szöveges pufferben építse fel. A nyomtatási trigger előtt ellenőrizze a célhosszúságot, és írja felül a teljes puffert, hogy egy korábbi üzenet karakterei ne maradhassanak benne.

Az SLC 5/04 által létrehozott, rögzített szélességű YYYYDDD címkekód

A rögzített szélességű formázás megőrzi a kezdő nullákat, és igazítva tartja a vonalkódmezőket.

Használjon kérésből és nyugtázásból álló kézfogást a nyomtatóval. A kérés kiadásakor rögzítse a kész dátumkarakterláncot. Ne engedje, hogy egy folyamatosan futó dátumrutin módosítsa a puffert, amíg egy üzenet aktív. A sikert, az időtúllépést és a nyomtatói elutasítást külön állapotként rögzítse.

Ellenőrizze a határértékeket, ne csak a szokásos dátumokat

Tesztelje január 1-jét, február 28-át, a február 29-i napot szökőévben, március 1-jét szökő- és nem szökőévben, december 31-ét, valamint az évváltást. Ha a kód várhatóan hosszú ideig használatban marad vagy továbbmásolják, foglalja bele a 2099-12-31., 2100-02-28. és 2100-03-01. dátumot is. Hasonlítsa össze az eredményeket egy független naptárral.

Szándékosan adjon meg hibás adatokat: 0. hónap, 13. hónap, 0. nap, április 31. és február 29. nem szökőévben. Ellenőrizze, hogy a rutin megtagadja a nyomtatást. Kapcsolja ki-be a processzort egy dátumváltás közelében, és ellenőrizze az órát, a munkaregisztereket, az első letapogatás viselkedését és a nyomtatói kézfogást.

Integrálja a kódot a tétel tulajdonlásával

A dátumrutin érvényesített értéket szolgáltasson, de a csomagolási folyamat dönti el, mikor válik az egy tétel részévé. Egy éjfél előtt induló tételnél előfordulhat, hogy a naptárváltás után is az eredeti gyártási dátumot kell használni. A jóváhagyott értéket a tétel indításakor rögzítse, és tartsa meg a tétel lezárásáig.

A dokumentált rutint tárolja az üzem PLC- és PAC-rendszereinek migrációs nyilvántartásával együtt. Tüntesse fel az adott gépen használt pontos óraforrásszavakat. Az aktív dátumkód és az érvényesítési állapot legyen látható a HMI- és ipari számítástechnikai rétegen keresztül.

Mérnöki szempont

A legfontosabb javulás a fogalmi egyértelműség. Nevezze az értéket sorszámozott napnak vagy évnapkódnak, ellenőrizze az órát és a naptári mezőket, alkalmazza a teljes Gergely-naptári szabályt, tartsa a számításokat a tartományon belül, és továbbítás közben rögzítsen egy fix szélességű karakterláncot. Ezek a döntések megakadályozzák azokat a csendes nyomonkövetési hibákat, amelyek csak szökőnapon, évhatáron vagy a vezérlő cseréjekor válnak láthatóvá.

Hozzászólás írása

Felhívjuk a figyelmedet, hogy a hozzászólásokat jóvá kell hagyni a közzétételük előtt.