Как назначить регистры для хранения времени и даты TOD (TimeofDay) для MMI (ManMashineInterface) в контроллерах работающих под управлением Concept и каким образом осуществляется управление ими?
Для многих процессоров ( в том числе и Quantum) при назначении адресов блока регистров для времени и даты (TOD), первый назначенный Вами адрес будет регистром управления для TOD .
Причем самый старший бит (MSB) первого назначенного регистра (регистра управления) , (MSB в Concepte имеет номер 1),- служит для установки часов и даты.
Бит 2, (счет бит ведется с лева направо), как раз и управляет считыванием информации о текущем времени и дате в назначенные далее регистры.
Например мы назначили для "календаря" блок регистров начиная с адреса 400700 до 400707.
Тогдарегистр 400700 будет регистр упраления.
400701 - будет содержать день недели
400702 - месяц
400703 - день календаря
400704 - год
и так далее.
Если регистр 400700 записать значение 16#4000 ( бит 2 =1чтение часов), то информация в регистрах 400701-400707 будет изменяться в соответствии стекущим временеми датой.
Если в регистре 400700 будет записан 0, то время и дата изменяться не будет (например это происходит при стопе контроллера).
Поэтому правильным действием перед запросом текущего времени и даты , будет обязательная проверка содержимого регистра управления TOD.
Если бит 2 установлен (например содержимое этого регистра в шестнадцатиричной форме равно 16#4000), то время и дату можно считывать, оно будет соответствовать текущему.
Если бит2 не установлен, время и дата не изменяются (остались старыми) и считанное время и дата будут отличаться от текущего (старые данные).