SLC-5/04 Julian Date Generator Implementation Guide — figure 1

Průvodce implementací generátoru juliánského data SLC-5/04

Implementujte generátor juliánského data v SLC-5/04 pro výstup ASCII na tiskárny štítků. Žebříková logika krok za krokem s instrukcemi Compute.

Řada SLC-5/04 včetně procesorů, jako je 1747-L542, neposkytuje vestavěnou instrukci pro juliánské pořadové číslo dne (JDN). Balení, dávkové kódování a tiskárny štítků často vyžadují hodnotu dne v roce nebo kompaktní řetězec YYYYDDD, takže logiku je nutné vytvořit pomocí běžných matematických operací a operací s datovými tabulkami. Tato příručka představuje udržovatelný přístup využívající výrazy CPT, kumulativní tabulku dnů v měsících, zpracování přestupných roků a převod do ASCII pro data odesílaná tiskárně, přičemž upozorňuje na omezení šestnáctibitové matematiky, která bývají příčinou problémů v mnoha prvních implementacích.

Příručka implementace generátoru juliánského data pro SLC-5/04 — obrázek 1 Procesory SLC-5/04 vypočítávají den v roce a kódy ve stylu juliánského data v žebříkové logice pomocí CPT, celočíselných souborů a pečlivě získaných hodnot RTC.

Zdrojové materiály někdy odkazují na slova stavového souboru v oblasti S:50–S:52 pro rok, měsíc a den, zatímco jiná dokumentace v závislosti na procesoru a firmwaru zdůrazňuje širší oblast hodin reálného času kolem S:37. Se zdrojovými slovy RTC zacházejte obezřetně: před vytvořením aliasů tagů ověřte přesnou mapu stavového souboru pro nainstalovaný katalog a řadu. Jakmile jsou kalendářní údaje ověřené, je samotný algoritmus přenositelný mezi projekty SLC-5/04.

Uspořádání datové tabulky

Čisté uspořádání celočíselných hodnot udrží rutinu přehlednou i pro dalšího technika. Typický vzor používá registry N7 takto: N7:0 rok, N7:1 měsíc, N7:2 den v měsíci, N7:3 výsledek dne v roce, N7:4 příznak přestupného roku a N7:5 pro mezivýsledky CPT. Kumulativní posuny dnů pro jednotlivé měsíce uložte do pevné celočíselné tabulky — například N10:1 až N10:12 s hodnotami 0, 31, 59, 90, 120, 151, 151, 181, 212, 243, 273, 304 pro nepřestupný základ do listopadu, přičemž zpracování února se provádí pomocí příznaku přestupného roku, nikoli úpravou tabulky za běhu. Přesnou tabulku upravte podle preferovaného indexování od nuly, ale její význam zdokumentujte přímo u rungů.

Příklad přístupu k DOY (koncepční)
Leap = (Y dělitelný 4) s použitím pravidel pro století podle potřeby
DOY = Day + Cumulative[Month] + (Leap AND Month>2)
Řetězec YYYYDDD pomocí formátování ve stylu ASC / AIF pro tiskárny

Pro mnoho továren je den v roce (DOY) ve formátu YYYYDDD dostačující a vyhne se úplné složitosti astronomického JDN. Úplná juliánská pořadová čísla, která pokrývají staletí, vyžadují pečlivější práci s většími celými čísly; operace CPT v SLC se šestnáctibitovými celými čísly přetečou, pokud se mezivýsledky nerozdělí do více kroků. DOY počítejte přednostně v šestnáctibitovém prostoru a poté spojte rok a DOY doplněný nulami do souboru ASCII pro tiskárnu, místo abyste vše vynucovali do jediného nadměrně velkého celého čísla.

Přestupný rok a struktura CPT

Logika přestupného roku musí odpovídat pravidlům občanského kalendáře používaným vaším systémem řízení kvality. Minimálně platí, že roky dělitelné čtyřmi jsou přestupné; pokud životní cyklus vašich výrobků zahrnuje hranice století, použijte úplné gregoriánské výjimky (roky století jsou přestupné pouze tehdy, pokud jsou dělitelné 400). Když je rok přestupný, nastavte N7:4 na jedničku. Při přičítání kumulativního posunu měsíce přidejte jeden den navíc pouze tehdy, když je nastaven příznak přestupného roku a měsíc je pozdější než únor. Toto přičtení proveďte v samostatném CPT, místo abyste v nepřehledném výrazu ukrývali vnořené podmínky.

Ověřené hodnoty RTC roku, měsíce a dne kopírujte do pracovních registrů N7 v pomalém periodickém úkolu nebo při prvním průchodu a následně na denní hraně. Nečtěte slova RTC v každém volně běžícím rungu, pokud je následné formátování ASC náročné; pro kódování data obvykle postačuje obnovení jednou za minutu.

Příručka implementace generátoru juliánského data pro SLC-5/04 — obrázek 2 Řetězce DOY doplněné nulami napájejí tiskárny štítků spolehlivěji než surová celá čísla, pokud musí délka čárového kódu zůstat pevná.

Formátování ASCII pro tiskárny štítků

Většina průmyslových tiskáren očekává řetězec pevné délky. Po výpočtu DOY v N7:3 použijte instrukce pro soubory ASCII k vytvoření řetězce, například YYYYDDD, s úvodními nulami v poli dne. Před aktivací handshake tisku ověřte délku. Pokud protokol tiskárny vyžaduje oddělovače nebo předpony specifické pro závod, vytvořte je ve stejném řetězcovém bufferu a nespoléhejte na doplnění nul tiskárnou.

  1. Ověřte mapování slov RTC pro konkrétní firmware 1747-L542 (nebo nainstalovaný SLC-5/04).
  2. Vytvořte pracovní tagy N7 a kumulativní tabulku měsíců v celočíselném souboru.
  3. Naprogramujte logiku CPT pro přestupný rok a CPT pro DOY, který sčítá den + kumulativní hodnotu + úpravu pro přestupný rok.
  4. Naformátujte YYYYDDD pomocí ASC a otestujte hodnoty proti známým kalendářním datům včetně 28. února a 1. března v přestupných i nepřestupných letech.
  5. Zajistěte ochranu proti šestnáctibitovému přetečení, pokud se některá rutina pokouší počítat úplné vícestaleté JDN; matematiku rozdělte do více kroků nebo tento výpočet přesuňte mimo SLC.

Kontroly přestupného roku a doplňování nul pro tiskárnu

Ověřovací data by měla zahrnovat přechody 29. 2. 2024, 1. 3. 2024, 28. 2. 2025 a konec roku 31. 12. Porovnejte DOY z PLC s nezávislým kalendářem. Mezi úskalí patří důvěra v nesprávné adresy stavového souboru, zapomenutí na úpravu pro přestupný únor, tisk nedoplněných hodnot DOY, který posouvá pole čárového kódu, a přetečení mezivýsledků CPT, když někdo později rutinu rozšíří směrem k úplnému JDN. V žebříkové logice ponechte komentáře s uvedením skutečně použitých zdrojových slov RTC pro daný stroj.

Pokud je kód data součástí širší balicí buňky, uložte generátor jako opakovaně použitelný soubor a standardizujte uspořádání celých čísel napříč linkami. Náhradní procesory a dokumentace k těmto systémům PLC SLC-500 by měly obsahovat rutinu pro kódování data, aby výměna procesoru bez povšimnutí nevrátila starší a nesprávnou implementaci kalendáře.

O autorovi

Mark Townsend | Senior Automation Engineer – systémy Allen-Bradley

Mark Townsend je seniorní automatizační inženýr s více než 18 lety zkušeností s platformami Allen-Bradley, včetně systémů ControlLogix, CompactLogix a starších SLC-500. Denně se věnuje logice RSLogix / Studio 5000 a uvádění HMI FactoryTalk View do provozu u stárnoucích a smíšených flotil zařízení.

Průvodce implementací generátoru juliánského data SLC-5/04

Implementujte generátor juliánského data v SLC-5/04 pro výstup ASCII na tiskárny štítků. Žebříková logika krok za krokem s instrukcemi Compute.

Řada SLC-5/04 včetně procesorů, jako je 1747-L542, neposkytuje vestavěnou instrukci pro juliánské pořadové číslo dne (JDN). Balení, dávkové kódování a tiskárny štítků často vyžadují hodnotu dne v roce nebo kompaktní řetězec YYYYDDD, takže logiku je nutné vytvořit pomocí běžných matematických operací a operací s datovými tabulkami. Tato příručka představuje udržovatelný přístup využívající výrazy CPT, kumulativní tabulku dnů v měsících, zpracování přestupných roků a převod do ASCII pro data odesílaná tiskárně, přičemž upozorňuje na omezení šestnáctibitové matematiky, která bývají příčinou problémů v mnoha prvních implementacích.

Příručka implementace generátoru juliánského data pro SLC-5/04 — obrázek 1 Procesory SLC-5/04 vypočítávají den v roce a kódy ve stylu juliánského data v žebříkové logice pomocí CPT, celočíselných souborů a pečlivě získaných hodnot RTC.

Zdrojové materiály někdy odkazují na slova stavového souboru v oblasti S:50–S:52 pro rok, měsíc a den, zatímco jiná dokumentace v závislosti na procesoru a firmwaru zdůrazňuje širší oblast hodin reálného času kolem S:37. Se zdrojovými slovy RTC zacházejte obezřetně: před vytvořením aliasů tagů ověřte přesnou mapu stavového souboru pro nainstalovaný katalog a řadu. Jakmile jsou kalendářní údaje ověřené, je samotný algoritmus přenositelný mezi projekty SLC-5/04.

Uspořádání datové tabulky

Čisté uspořádání celočíselných hodnot udrží rutinu přehlednou i pro dalšího technika. Typický vzor používá registry N7 takto: N7:0 rok, N7:1 měsíc, N7:2 den v měsíci, N7:3 výsledek dne v roce, N7:4 příznak přestupného roku a N7:5 pro mezivýsledky CPT. Kumulativní posuny dnů pro jednotlivé měsíce uložte do pevné celočíselné tabulky — například N10:1 až N10:12 s hodnotami 0, 31, 59, 90, 120, 151, 151, 181, 212, 243, 273, 304 pro nepřestupný základ do listopadu, přičemž zpracování února se provádí pomocí příznaku přestupného roku, nikoli úpravou tabulky za běhu. Přesnou tabulku upravte podle preferovaného indexování od nuly, ale její význam zdokumentujte přímo u rungů.

Příklad přístupu k DOY (koncepční)
Leap = (Y dělitelný 4) s použitím pravidel pro století podle potřeby
DOY = Day + Cumulative[Month] + (Leap AND Month>2)
Řetězec YYYYDDD pomocí formátování ve stylu ASC / AIF pro tiskárny

Pro mnoho továren je den v roce (DOY) ve formátu YYYYDDD dostačující a vyhne se úplné složitosti astronomického JDN. Úplná juliánská pořadová čísla, která pokrývají staletí, vyžadují pečlivější práci s většími celými čísly; operace CPT v SLC se šestnáctibitovými celými čísly přetečou, pokud se mezivýsledky nerozdělí do více kroků. DOY počítejte přednostně v šestnáctibitovém prostoru a poté spojte rok a DOY doplněný nulami do souboru ASCII pro tiskárnu, místo abyste vše vynucovali do jediného nadměrně velkého celého čísla.

Přestupný rok a struktura CPT

Logika přestupného roku musí odpovídat pravidlům občanského kalendáře používaným vaším systémem řízení kvality. Minimálně platí, že roky dělitelné čtyřmi jsou přestupné; pokud životní cyklus vašich výrobků zahrnuje hranice století, použijte úplné gregoriánské výjimky (roky století jsou přestupné pouze tehdy, pokud jsou dělitelné 400). Když je rok přestupný, nastavte N7:4 na jedničku. Při přičítání kumulativního posunu měsíce přidejte jeden den navíc pouze tehdy, když je nastaven příznak přestupného roku a měsíc je pozdější než únor. Toto přičtení proveďte v samostatném CPT, místo abyste v nepřehledném výrazu ukrývali vnořené podmínky.

Ověřené hodnoty RTC roku, měsíce a dne kopírujte do pracovních registrů N7 v pomalém periodickém úkolu nebo při prvním průchodu a následně na denní hraně. Nečtěte slova RTC v každém volně běžícím rungu, pokud je následné formátování ASC náročné; pro kódování data obvykle postačuje obnovení jednou za minutu.

Příručka implementace generátoru juliánského data pro SLC-5/04 — obrázek 2 Řetězce DOY doplněné nulami napájejí tiskárny štítků spolehlivěji než surová celá čísla, pokud musí délka čárového kódu zůstat pevná.

Formátování ASCII pro tiskárny štítků

Většina průmyslových tiskáren očekává řetězec pevné délky. Po výpočtu DOY v N7:3 použijte instrukce pro soubory ASCII k vytvoření řetězce, například YYYYDDD, s úvodními nulami v poli dne. Před aktivací handshake tisku ověřte délku. Pokud protokol tiskárny vyžaduje oddělovače nebo předpony specifické pro závod, vytvořte je ve stejném řetězcovém bufferu a nespoléhejte na doplnění nul tiskárnou.

  1. Ověřte mapování slov RTC pro konkrétní firmware 1747-L542 (nebo nainstalovaný SLC-5/04).
  2. Vytvořte pracovní tagy N7 a kumulativní tabulku měsíců v celočíselném souboru.
  3. Naprogramujte logiku CPT pro přestupný rok a CPT pro DOY, který sčítá den + kumulativní hodnotu + úpravu pro přestupný rok.
  4. Naformátujte YYYYDDD pomocí ASC a otestujte hodnoty proti známým kalendářním datům včetně 28. února a 1. března v přestupných i nepřestupných letech.
  5. Zajistěte ochranu proti šestnáctibitovému přetečení, pokud se některá rutina pokouší počítat úplné vícestaleté JDN; matematiku rozdělte do více kroků nebo tento výpočet přesuňte mimo SLC.

Kontroly přestupného roku a doplňování nul pro tiskárnu

Ověřovací data by měla zahrnovat přechody 29. 2. 2024, 1. 3. 2024, 28. 2. 2025 a konec roku 31. 12. Porovnejte DOY z PLC s nezávislým kalendářem. Mezi úskalí patří důvěra v nesprávné adresy stavového souboru, zapomenutí na úpravu pro přestupný únor, tisk nedoplněných hodnot DOY, který posouvá pole čárového kódu, a přetečení mezivýsledků CPT, když někdo později rutinu rozšíří směrem k úplnému JDN. V žebříkové logice ponechte komentáře s uvedením skutečně použitých zdrojových slov RTC pro daný stroj.

Pokud je kód data součástí širší balicí buňky, uložte generátor jako opakovaně použitelný soubor a standardizujte uspořádání celých čísel napříč linkami. Náhradní procesory a dokumentace k těmto systémům PLC SLC-500 by měly obsahovat rutinu pro kódování data, aby výměna procesoru bez povšimnutí nevrátila starší a nesprávnou implementaci kalendáře.

O autorovi

Mark Townsend | Senior Automation Engineer – systémy Allen-Bradley

Mark Townsend je seniorní automatizační inženýr s více než 18 lety zkušeností s platformami Allen-Bradley, včetně systémů ControlLogix, CompactLogix a starších SLC-500. Denně se věnuje logice RSLogix / Studio 5000 a uvádění HMI FactoryTalk View do provozu u stárnoucích a smíšených flotil zařízení.

Napište komentář

Upozorňujeme, že komentáře musí být před zveřejněním schváleny.