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

SLC-5/04 Julian-dátum-generátor megvalósítási útmutató

Julian-dátum generátor megvalósítása SLC-5/04 vezérlőben ASCII-kimenethez címkenyomtatók számára. Lépésenkénti létradiagram-logika Compute utasításokkal.

Az SLC-5/04 család, beleértve az olyan processzorokat, mint a 1747-L542, nem biztosít beépített utasítást a julián-napszámhoz (JDN). A csomagolási, tételkódolási és címkenyomtatási feladatok gyakran az év napjának értékét vagy egy tömör YYYYDDD karakterláncot igényelnek, ezért a logikát hagyományos matematikai és adattáblás műveletekből kell felépíteni. Ez az útmutató karbantartható megközelítést mutat be CPT-kifejezések, kumulatív hónap-naptábla, szökőév-kezelés és a nyomtatási adatokhoz végzett ASCII-konverzió használatával, miközben felhívja a figyelmet a tizenhatos bites matematika korlátaira, amelyek sok első megvalósításban problémát okoznak.

SLC-5/04 juliándátum-generátor megvalósítási útmutató — 1. ábra Az SLC-5/04 processzorok létradiagramban, CPT, egészszámfájlok és gondosan kiválasztott RTC-értékek használatával számítják ki az év napját és a julián jellegű kódokat.

A forrásanyagok időnként az év, hónap és nap értékéhez az S:50–S:52 tartomány állapotfájl-szavaira hivatkoznak, míg más dokumentációk a processzortól és a firmware-környezettől függően az S:37 körüli tágabb valós idejű óra területét emelik ki. Az RTC forrásszavait körültekintően kezelje: az aliasok véglegesítése előtt ellenőrizze a telepített katalógushoz és sorozathoz tartozó pontos állapotfájl-térképet. Ha a naptármezők megbízhatók, maga az algoritmus hordozható az SLC-5/04-projektek között.

Adattábla elrendezése

A rendezett egészszám-elrendezés a következő karbantartó számára is olvashatóvá teszi a rutint. Egy tipikus minta szerint az N7-regiszterek a következők: N7:0 év, N7:1 hónap, N7:2 hónap napja, N7:3 az év napjának eredménye, N7:4 szökőévi jelző, N7:5 pedig az átmeneti CPT-eredmények tárolója. A hónapok kumulatív napeltolásait rögzített egészszám-táblában tárolja — például az N10:1–N10:12 tartományban a következő értékekkel: 0, 31, 59, 90, 120, 151, 151, 181, 212, 243, 273, 304, amelyek a nem szökőéves alapértékeket tartalmazzák novemberig; a februári korrekciót a szökőévi jelzővel, ne pedig a futásidőben módosított táblával kezelje. A pontos táblát igazítsa a választott nullalapú indexeléshez, és dokumentálja a létradiagram-sorok mellett.

Példa az év napjának kiszámítására (elvi)
Szökőév = (Év osztható 4-gyel), a századévekre vonatkozó szabályokkal
Év napja = Nap + Kumulatív[Hónap] + (Szökőév ÉS Hónap>2)
YYYYDDD karakterlánc ASC / AIF jellegű formázással a nyomtatókhoz

Sok gyár számára az YYYYDDD formátumú évnap (DOY) elegendő, és elkerüli a teljes csillagászati JDN összetettségét. Az évszázadokon átívelő teljes julián-napszámok szélesebb egészszám-kezelést igényelnek; az SLC CPT-műveletei 16 bites egészszámokon túlcsordulnak, ha a köztes szorzásokat nem külön lépésekben végzik. A DOY kiszámítását célszerű 16 bites tartományban elvégezni, majd az évet és a nullákkal feltöltött DOY-értéket egy ASCII-fájlban összefűzni a nyomtató számára, ahelyett hogy egyetlen túlméretezett egészszámot kényszerítene ki.

Szökőév és a CPT felépítése

A szökőév-logikának a minőségirányítási rendszerben alkalmazott polgári naptár szabályait kell követnie. Alapszabályként a néggyel osztható évek szökőévek; ha a termék élettartama során századfordulók is előfordulnak, alkalmazza a teljes Gergely-naptári kivételeket is: a századévek csak akkor szökőévek, ha 400-zal is oszthatók. Állítsa az N7:4 értékét egyre, amikor az év szökőév. A kumulatív havi eltolás hozzáadásakor csak akkor adjon hozzá egy extra napot, ha a szökőévi jelző aktív, és a hónap februárnál későbbi. Ezt a korrekciót külön CPT-műveletben végezze el, ne egy nehezen olvasható kifejezésbe ágyazott feltételrendszerben.

A hitelesített RTC-forrásszavakból másolja az évet, a hónapot és a napot az N7 munkaregisztereibe egy lassú, periodikus feladatban vagy első letapogatáskor, illetve napi élvezérléssel. Ne olvassa az RTC-szavakat minden szabadon futó létradiagram-sorban, ha az utána következő ASC-formázás erőforrás-igényes; a dátumkódoláshoz általában elegendő a percenkénti frissítés.

SLC-5/04 juliándátum-generátor megvalósítási útmutató — 2. ábra A nullákkal feltöltött DOY-karakterláncok megbízhatóbban táplálják a címkenyomtatókat, mint a nyers egészszámok, ha a vonalkód hosszának állandónak kell maradnia.

ASCII-formázás címkenyomtatókhoz

A legtöbb ipari nyomtató rögzített szélességű karakterláncot vár. Miután a DOY kiszámítása megtörtént az N7:3-ban, ASCII-fájlutasításokkal állítson elő egy olyan karakterláncot, mint az YYYYDDD, a nap mezőjét kezdő nullákkal feltöltve. A nyomtatási kézfogás aktiválása előtt ellenőrizze a hosszt. Ha a nyomtatóprotokoll elválasztókat vagy üzemspecifikus előtagokat igényel, ezeket ugyanabban a karakterláncpufferben állítsa elő, és ne a nyomtatótól várja a feltöltést.

  1. Ellenőrizze az RTC-szavak hozzárendelését az adott 1747-L542 (vagy a telepített SLC-5/04) firmware-éhez.
  2. Hozza létre az N7 munkacímkéit és a kumulatív hónaptáblát egy egészszámfájlban.
  3. Írja meg a szökőév-CPT-logikát, valamint azt a DOY-CPT-műveletet, amely hozzáadja a napot, a kumulatív értéket és a szökőévi korrekciót.
  4. Formázza az YYYYDDD értéket ASC használatával, majd tesztelje ismert naptári dátumokkal, beleértve a február 28. és március 1. közötti átmenetet szökő- és nem szökőévekben.
  5. Védekezzen a 16 bites túlcsordulás ellen, ha valamelyik rutin teljes, több évszázadot átfogó JDN-szorzást próbál végezni; bontsa lépésekre a matematikát, vagy helyezze át a számítást az SLC-n kívülre.

Szökőévi és nullákkal feltöltött nyomtatási ellenőrzések

Az ellenőrzési dátumok között szerepeljen 2024-02-29, 2024-03-01, 2025-02-28, valamint az év végi 12-31 átmenet. Hasonlítsa össze a PLC által számított DOY-értéket egy független naptárral. Gyakori hibák a nem megfelelő állapotfájl-címek használata, a februári szökőévi korrekció elfelejtése, a vonalkódmezőket eltoló, nullákkal nem feltöltött DOY-értékek nyomtatása, valamint a CPT köztes értékeinek túlcsordulása, amikor később valaki a teljes JDN irányába bővíti a rutint. A létradiagramban hagyjon olyan megjegyzéseket, amelyek az adott gépen ténylegesen használt RTC-forrásszavakra hivatkoznak.

Ha a dátumkód egy nagyobb csomagolási cella része, tárolja a generátort újrafelhasználható fájlként, és szabványosítsa az egészszám-elrendezéseket a gyártósorokon. Az ezekhez a SLC-500 PLC-rendszerekhez tartozó tartalék processzorok és dokumentációk tartalmazzák a dátumkódoló rutint, hogy egy processzorcsere ne állítsa vissza észrevétlenül a rendszert egy régebbi, hibás naptármegvalósításra.

A szerzőről

Mark Townsend | Vezető automatizálási mérnök – Allen-Bradley-rendszerek

Mark Townsend vezető automatizálási mérnök, aki több mint 18 éve dolgozik Allen-Bradley-platformokon, többek között ControlLogix, CompactLogix és régebbi SLC-500 rendszereken. Mindennapi munkája az RSLogix / Studio 5000 logikák és a FactoryTalk View HMI-rendszerek üzembe helyezése régi és vegyes eszközparkokon.

SLC-5/04 Julian-dátum-generátor megvalósítási útmutató

Julian-dátum generátor megvalósítása SLC-5/04 vezérlőben ASCII-kimenethez címkenyomtatók számára. Lépésenkénti létradiagram-logika Compute utasításokkal.

Az SLC-5/04 család, beleértve az olyan processzorokat, mint a 1747-L542, nem biztosít beépített utasítást a julián-napszámhoz (JDN). A csomagolási, tételkódolási és címkenyomtatási feladatok gyakran az év napjának értékét vagy egy tömör YYYYDDD karakterláncot igényelnek, ezért a logikát hagyományos matematikai és adattáblás műveletekből kell felépíteni. Ez az útmutató karbantartható megközelítést mutat be CPT-kifejezések, kumulatív hónap-naptábla, szökőév-kezelés és a nyomtatási adatokhoz végzett ASCII-konverzió használatával, miközben felhívja a figyelmet a tizenhatos bites matematika korlátaira, amelyek sok első megvalósításban problémát okoznak.

SLC-5/04 juliándátum-generátor megvalósítási útmutató — 1. ábra Az SLC-5/04 processzorok létradiagramban, CPT, egészszámfájlok és gondosan kiválasztott RTC-értékek használatával számítják ki az év napját és a julián jellegű kódokat.

A forrásanyagok időnként az év, hónap és nap értékéhez az S:50–S:52 tartomány állapotfájl-szavaira hivatkoznak, míg más dokumentációk a processzortól és a firmware-környezettől függően az S:37 körüli tágabb valós idejű óra területét emelik ki. Az RTC forrásszavait körültekintően kezelje: az aliasok véglegesítése előtt ellenőrizze a telepített katalógushoz és sorozathoz tartozó pontos állapotfájl-térképet. Ha a naptármezők megbízhatók, maga az algoritmus hordozható az SLC-5/04-projektek között.

Adattábla elrendezése

A rendezett egészszám-elrendezés a következő karbantartó számára is olvashatóvá teszi a rutint. Egy tipikus minta szerint az N7-regiszterek a következők: N7:0 év, N7:1 hónap, N7:2 hónap napja, N7:3 az év napjának eredménye, N7:4 szökőévi jelző, N7:5 pedig az átmeneti CPT-eredmények tárolója. A hónapok kumulatív napeltolásait rögzített egészszám-táblában tárolja — például az N10:1–N10:12 tartományban a következő értékekkel: 0, 31, 59, 90, 120, 151, 151, 181, 212, 243, 273, 304, amelyek a nem szökőéves alapértékeket tartalmazzák novemberig; a februári korrekciót a szökőévi jelzővel, ne pedig a futásidőben módosított táblával kezelje. A pontos táblát igazítsa a választott nullalapú indexeléshez, és dokumentálja a létradiagram-sorok mellett.

Példa az év napjának kiszámítására (elvi)
Szökőév = (Év osztható 4-gyel), a századévekre vonatkozó szabályokkal
Év napja = Nap + Kumulatív[Hónap] + (Szökőév ÉS Hónap>2)
YYYYDDD karakterlánc ASC / AIF jellegű formázással a nyomtatókhoz

Sok gyár számára az YYYYDDD formátumú évnap (DOY) elegendő, és elkerüli a teljes csillagászati JDN összetettségét. Az évszázadokon átívelő teljes julián-napszámok szélesebb egészszám-kezelést igényelnek; az SLC CPT-műveletei 16 bites egészszámokon túlcsordulnak, ha a köztes szorzásokat nem külön lépésekben végzik. A DOY kiszámítását célszerű 16 bites tartományban elvégezni, majd az évet és a nullákkal feltöltött DOY-értéket egy ASCII-fájlban összefűzni a nyomtató számára, ahelyett hogy egyetlen túlméretezett egészszámot kényszerítene ki.

Szökőév és a CPT felépítése

A szökőév-logikának a minőségirányítási rendszerben alkalmazott polgári naptár szabályait kell követnie. Alapszabályként a néggyel osztható évek szökőévek; ha a termék élettartama során századfordulók is előfordulnak, alkalmazza a teljes Gergely-naptári kivételeket is: a századévek csak akkor szökőévek, ha 400-zal is oszthatók. Állítsa az N7:4 értékét egyre, amikor az év szökőév. A kumulatív havi eltolás hozzáadásakor csak akkor adjon hozzá egy extra napot, ha a szökőévi jelző aktív, és a hónap februárnál későbbi. Ezt a korrekciót külön CPT-műveletben végezze el, ne egy nehezen olvasható kifejezésbe ágyazott feltételrendszerben.

A hitelesített RTC-forrásszavakból másolja az évet, a hónapot és a napot az N7 munkaregisztereibe egy lassú, periodikus feladatban vagy első letapogatáskor, illetve napi élvezérléssel. Ne olvassa az RTC-szavakat minden szabadon futó létradiagram-sorban, ha az utána következő ASC-formázás erőforrás-igényes; a dátumkódoláshoz általában elegendő a percenkénti frissítés.

SLC-5/04 juliándátum-generátor megvalósítási útmutató — 2. ábra A nullákkal feltöltött DOY-karakterláncok megbízhatóbban táplálják a címkenyomtatókat, mint a nyers egészszámok, ha a vonalkód hosszának állandónak kell maradnia.

ASCII-formázás címkenyomtatókhoz

A legtöbb ipari nyomtató rögzített szélességű karakterláncot vár. Miután a DOY kiszámítása megtörtént az N7:3-ban, ASCII-fájlutasításokkal állítson elő egy olyan karakterláncot, mint az YYYYDDD, a nap mezőjét kezdő nullákkal feltöltve. A nyomtatási kézfogás aktiválása előtt ellenőrizze a hosszt. Ha a nyomtatóprotokoll elválasztókat vagy üzemspecifikus előtagokat igényel, ezeket ugyanabban a karakterláncpufferben állítsa elő, és ne a nyomtatótól várja a feltöltést.

  1. Ellenőrizze az RTC-szavak hozzárendelését az adott 1747-L542 (vagy a telepített SLC-5/04) firmware-éhez.
  2. Hozza létre az N7 munkacímkéit és a kumulatív hónaptáblát egy egészszámfájlban.
  3. Írja meg a szökőév-CPT-logikát, valamint azt a DOY-CPT-műveletet, amely hozzáadja a napot, a kumulatív értéket és a szökőévi korrekciót.
  4. Formázza az YYYYDDD értéket ASC használatával, majd tesztelje ismert naptári dátumokkal, beleértve a február 28. és március 1. közötti átmenetet szökő- és nem szökőévekben.
  5. Védekezzen a 16 bites túlcsordulás ellen, ha valamelyik rutin teljes, több évszázadot átfogó JDN-szorzást próbál végezni; bontsa lépésekre a matematikát, vagy helyezze át a számítást az SLC-n kívülre.

Szökőévi és nullákkal feltöltött nyomtatási ellenőrzések

Az ellenőrzési dátumok között szerepeljen 2024-02-29, 2024-03-01, 2025-02-28, valamint az év végi 12-31 átmenet. Hasonlítsa össze a PLC által számított DOY-értéket egy független naptárral. Gyakori hibák a nem megfelelő állapotfájl-címek használata, a februári szökőévi korrekció elfelejtése, a vonalkódmezőket eltoló, nullákkal nem feltöltött DOY-értékek nyomtatása, valamint a CPT köztes értékeinek túlcsordulása, amikor később valaki a teljes JDN irányába bővíti a rutint. A létradiagramban hagyjon olyan megjegyzéseket, amelyek az adott gépen ténylegesen használt RTC-forrásszavakra hivatkoznak.

Ha a dátumkód egy nagyobb csomagolási cella része, tárolja a generátort újrafelhasználható fájlként, és szabványosítsa az egészszám-elrendezéseket a gyártósorokon. Az ezekhez a SLC-500 PLC-rendszerekhez tartozó tartalék processzorok és dokumentációk tartalmazzák a dátumkódoló rutint, hogy egy processzorcsere ne állítsa vissza észrevétlenül a rendszert egy régebbi, hibás naptármegvalósításra.

A szerzőről

Mark Townsend | Vezető automatizálási mérnök – Allen-Bradley-rendszerek

Mark Townsend vezető automatizálási mérnök, aki több mint 18 éve dolgozik Allen-Bradley-platformokon, többek között ControlLogix, CompactLogix és régebbi SLC-500 rendszereken. Mindennapi munkája az RSLogix / Studio 5000 logikák és a FactoryTalk View HMI-rendszerek üzembe helyezése régi és vegyes eszközparkokon.

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.