Жапсырма принтерлеріне арналған SLC 5/04 жыл күнінің кодтары
SLC 5/04 жүйесінде тексерілген YYYYDDD өндіріс кодын құрастыру. Бұл нұсқаулық реттік күнді Юлиан күн санынан ажыратып, сағатты оқу, кібісе жылдар, толып кету, пішімдеу және принтермен қол алысу мәс...
Көптеген қаптама зауыттары жапсырма принтеріне арналған «юлиан күнін» жасау үшін SLC 5/04 контроллерінен сұрайды. Көп жағдайда талап етілетін мән астрономиялық Юлиан күнінің нөмірі емес. Бұл реттік күн, яғни жылдың күні деп те аталады: 1 қаңтар — 001, ал 31 желтоқсан — 365 немесе 366. Баспалдақты логиканы жасамас бұрын осы айырмашылық интерфейс сипаттамасына енгізілуі керек.
2026243 сияқты код әдетте 2026 жылынан кейінгі 243-ші реттік күнді білдіреді. Оның ұзындығы тұрақты және бір жыл ішінде табиғи түрде сұрыпталатындықтан, ол партияларды бақылауға ыңғайлы. Алайда бұл код тәулік уақытын, уақыт белдеуін, өндірістік ауысымды немесе жаһандық бірегей партияны анықтамайды. Қадағалау үшін қажет болса, бұл өрістер бөлек басқарылуы тиіс.

Бүтін сан немесе жол түрінде сақтауды таңдамас бұрын, сұралатын кодты жыл мен үш таңбалы реттік күннің қосындысы ретінде анықтаңыз.
Алдымен контроллер сағатының көзін тексеріңіз
Орнатылған процессорды, серияны, микробағдарламаны және деректер кестесінің ресми анықтамасын тексермей, басқа жобадағы күй файлының адрестерін көшірмеңіз. SLC күй файлы сағат туралы ақпаратты қамтиды, бірақ нақты сөздер мен жаңарту тәртібі мақсатты контроллер үшін тексерілуі керек. Қате бүркеншік аттар ай немесе жыл ауысқанға дейін шынайы көрінетін мәндер беруі мүмкін.
Жылды, айды және күнді біртұтас үлгі ретінде жұмыс регистрлеріне көшіріңіз. Мәндер түн ортасы арқылы оқылса, процедура кешегі айды бүгінгі күнмен біріктіруі мүмкін. Бір тәсіл — екі рет үлгі алып, екі жиынтық та сәйкес келгенде ғана деректерді қабылдау. Тағы бір тәсіл — өндіріс күнін түн ортасынан кейін белгіленген тыныш аралықта жаңарту.
Контроллер сағатына да техникалық қызмет көрсетілуі керек. Дұрыс формула отырып қалған батареяны, қате сағатты немесе рұқсатсыз түзетуді жөндей алмайды. Күн бекітілген ауқымнан тыс болғанда дабыл беріңіз және техникалық қызметтен кейін сағатты кім орната алатынын құжаттаңыз.
Ай ығысуының түсінікті әдісін пайдаланыңыз
Реттік күн ай күнінің мәніне оған дейінгі айлардың барлық күндерін қосқанға тең. Кібісе жылға жатпайтын жиынтық ығысуларды бүтін сан файлында сақтаңыз: қаңтар — 0, ақпан — 31, наурыз — 59, сәуір — 90, мамыр — 120, маусым — 151, шілде — 181, тамыз — 212, қыркүйек — 243, қазан — 273, қараша — 304 және желтоқсан — 334.
Осы файл бойынша индекстеуден бұрын айды тексеріңіз. Нөл, теріс мән немесе 12-ден жоғары мән кездейсоқ регистрге жүгінбеуі тиіс. Күнді де таңдалған айға қатысты тексеріңіз. Контроллер күннің жарамсыз екенін білдіретін битті орнатып, басып шығаруды бұғаттап, шындыққа жанаспайтын, бірақ нанымды партия кодын жасаудың орнына қабылданбаған өрістерді көрсетуі керек.
Ығысуды алғаннан кейін реттік күнді ығысу мен ай күнін қосу арқылы есептеңіз. Егер жыл кібісе жыл болса және ай ақпаннан кейін келсе, бірді қосыңыз. Аралық мәндерді бөлек регистрлерде көрінетін күйде ұстаңыз. Ықшам өрнек бір сатыны үнемдеуі мүмкін, бірақ онлайн ақауларды жоюды қиындатады.
Григориан күнтізбесінің кібісе жыл ережесін енгізіңіз
«Төртке бөлінеді» деген қарапайым тексеріс ғасыр жылдары үшін толық емес. Григориан ережесі бойынша жыл төртке бөлінсе, кібісе жыл болады, бірақ 100-ге бөлінетін жылдар 400-ге де бөлінбесе, кібісе жыл болып саналмайды. Сондықтан 2000 жыл кібісе жыл болды, 2100 жыл кібісе жыл болмайды, ал 2400 жыл кібісе жыл болады.
NIST Григориан күнтізбесі әрбір 400 жылдық циклде үш кібісе жылды алып тастайтынын түсіндіреді. Бұл ережені енгізген жөн, өйткені қайта пайдаланылатын код күтілгеннен ұзақ қызмет етуі мүмкін. NIST-тің кібісе жыл туралы түсіндірмесін қараңыз.
Тексеруді орнатылған нұсқаулар жиыны қолдайтын қалдықтарды нақты салыстырулар арқылы құрыңыз. Әр тармаққа түсініктеме жазыңыз. Болашақ техник-мамандар онлайн режимде тексере алмайтын өрнектен аулақ болыңыз. Егер зауыт сипаттамасында әдейі қарапайым ереже қолданылса, оның жарамды күндер ауқымын құжаттаңыз.
Бүтін сан арифметикасын ауқым шегінде ұстаңыз
Реттік күн 16 биттік таңбалы бүтін санға сыяды. YYYYDDD сияқты біріктірілген сандық мән оған сыймайды. Мысалы, 2026243 саны 32 767-ден үлкен. Толық жапсырма кодын кәдімгі SLC бүтін сан регистріне күштеп енгізбеңіз.
Жыл мен реттік күнді бөлек бүтін сандар ретінде сақтап, кейін жол құрыңыз. Бұл толып кетуді болдырмайды және басындағы нөлдерді сақтайды. Егер принтер бөлек өрістерді қабылдаса, оларды бөлек жіберіңіз. Егер шынымен астрономиялық Юлиан күнінің нөмірі қажет болса, жеке тексерілген алгоритм мен деректер ұсынуын пайдаланыңыз; бұл реттік күн процедурасының атауын өзгертпеңіз.
Принтерге арналған ені тұрақты жолды пішімдеңіз
Өндірістік жолда әрдайым жылдың төрт цифры және реттік күннің үш цифры болуы керек. 7-күн 007 түріне айналуы тиіс. Нәтижені процессор мен жоба қолдайтын нұсқаулар арқылы ASCII немесе жол буферінде құрыңыз. Басып шығару триггеріне дейін мақсатты ұзындықты тексеріп, ескі хабардың таңбалары қалып қоймауы үшін бүкіл буферді қайта жазыңыз.

Ені тұрақты пішімдеу басындағы нөлдерді сақтап, штрихкод өрістерінің туралануын қамтамасыз етеді.
Принтермен сұрау және растау қол алысуын пайдаланыңыз. Сұрау берілген кезде дайын күн жолын бекітіңіз. Хабар белсенді кезде еркін орындалатын күн процедурасының буферді өзгертуіне жол бермеңіз. Сәтті орындалуды, күту уақытынан асып кетуді және принтердің қабылдамауын бөлек күйлер ретінде тіркеңіз.
Тек қалыпты күндерді емес, шекаралық жағдайларды да тексеріңіз
1 қаңтарды, 28 ақпанды, кібісе жылдағы 29 ақпанды, кібісе және жай жылдардағы 1 наурызды, 31 желтоқсанды және жаңа жылға ауысуды тексеріңіз. Егер код қызметте қалуы немесе кейін көшірілуі мүмкін болса, 2099-12-31, 2100-02-28 және 2100-03-01 күндерін де қосыңыз. Нәтижелерді тәуелсіз күнтізбемен салыстырыңыз.
Қате деректерді әдейі енгізіңіз: 0-ай, 13-ай, 0-күн, 31 сәуір және жай жылдағы 29 ақпан. Процедураның басып шығарудан бас тартатынын растаңыз. Күн ауысуына жақын уақытта процессорды қуаттан қайта іске қосып, сағатты, жұмыс регистрлерін, алғашқы сканерлеу әрекетін және принтермен қол алысуды тексеріңіз.
Кодты партияға иелік ету процесімен біріктіріңіз
Күн процедурасы тексерілген мәнді ұсынуы керек, ал оның партияның бір бөлігіне қашан айналатынын қаптама реттілігі шешеді. Түн ортасына дейін басталған партияға күнтізбе өзгергеннен кейін де бастапқы өндіріс күні қажет болуы мүмкін. Бекітілген мәнді партия басталғанда түсіріп алып, партия жабылғанға дейін сақтаңыз.
Құжатталған процедураны зауыттың PLC және PAC жүйелерін көшіру жазбаларымен бірге сақтаңыз. Сол машинада қолданылған сағат көзінің нақты сөздерін қосыңыз. Белсенді күн кодын және тексеру күйін HMI және өнеркәсіптік есептеу қабаты арқылы көрінетін күйде ұстаңыз.
Инженерлік көзқарас
Негізгі жетілдіру — ұғымдық анықтығында. Бұл мәнді реттік күн немесе жылдың күні коды деп атаңыз, сағат пен күнтізбе өрістерін тексеріңіз, толық Григориан ережесін пайдаланыңыз, арифметиканы ауқым шегінде ұстаңыз және жіберу кезінде ені тұрақты жолды бекітіңіз. Бұл шешімдер тек кібісе күнде, жыл шекарасында немесе контроллер ауыстырылғанда байқалуы мүмкін жасырын қадағалау қателерінің алдын алады.