Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 11

Тема: BCD преобразования даты-времени

  1. #1

    Question BCD преобразования даты-времени

    Здравствуйте!

    Для преобразования из BCD в десятичные данные использую макрос (может кому пригодиться быстро найти):
    Код:
    PSW[320] = (PSW[33] / 16) * 10 + PSW[33] % 16; // Hour
    PSW[321] = (PSW[34] / 16) * 10 + PSW[34] % 16;
    PSW[322] = (PSW[35] / 16) * 10 + PSW[35] % 16;
    PSW[323] = (PSW[32] / 16) * 10 + PSW[32] % 16;  //Day
    PSW[324] = (PSW[31] / 16) * 10 + PSW[31] % 16;
    PSW[325] = 2000 + (LOBYTE(PSW[30]) / 16) * 10 + LOBYTE(PSW[30]) % 16;
    Для возвращения обратно в регистры PSW[3х], кроме года, использую такой макрос:
    Код:
    WORD WORD_TO_BCD( WORD DecValue )
    {
      if (DecValue > 99 || DecValue < 0 ) return 255;
      return ((DecValue/10)*6+DecValue);
    }
    
    PSW[33] = WORD_TO_BCD(PSW[320]); // Hour
    ....
    А для года как?

  2. #2
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    12,059

    По умолчанию

    Добрый день.
    Запись в регистры PSW[3x] не приведет к желаемому результату.
    Посмотрите пример Синхронизация времени с ПЛК - там же есть ответ на вопрос про год:
    http://www.owen.ru/uploads/sp307_synctime.zip

    Но сначала вам надо обновить конфигуратор до версии V2.D3-k5.

  3. #3

    По умолчанию

    Вторая попытка тут ответить:
    ooo.jpg
    Два раза нажал "Остаться на странице" и мое сообщение потеряно!

  4. #4

    Thumbs down

    Есть только старая версия!
    Ладно, смирился, переделываю...

    Очередная "радость" - после установки рекомендуемой последней версии конфигуратора V2.D3k-5 компиляция макросов с ошибками:
    создал пустой проект и добавил макрос из двух строчек:
    1.jpg
    В итоге компиляция с ошибкой:
    2.jpg

    Сам проект: m1.txp

  5. #5

    По умолчанию

    В том, что вы порт не настроили, тоже, наверное, ОВЕН виноват?
    Подозреваю, все остальные проблемы тоже из-за подобного подхода к созданию проектов.

    11-12-2018 11-37-59.png

  6. #6

    По умолчанию

    Цитата Сообщение от Rake Runner Посмотреть сообщение
    В том, что вы порт не настроили, тоже, наверное, ОВЕН виноват?
    Подозреваю, все остальные проблемы тоже из-за подобного подхода к созданию проектов.
    11-12-2018 11-37-59.png
    Я создал новый проект и начал перекидывать по частям из старого, испорченного благодаря совету.
    Для отладки временно отключил порт - почему-то не работал макрос из примера http://www.owen.ru/uploads/sp307_synctime.zip. Да и панель без ПЛК тормозит!!!
    В какое-то время посыпались ошибки. Методом исключения нашел эту. Не ужели было так тяжело написать, что "возможно отключен порт"?
    Оказывается и тут не совсем просто: Включаем порт и обязательно "Мастер"- компиляция без ошибок. Теперь можем отключить порт - ошибок нет!!!! Вот на этом я и попался!
    Ладно, теперь знаю о такой особенности, а как насчет комментарий на русском языке в макросах?
    После закрытия-открытия окна макроса русские буквы превращаются в "крякозябры". Это тоже моя вина?
    Последний раз редактировалось -=Vovka=-; 11.12.2018 в 13:33.

  7. #7

    По умолчанию

    Дальше, вопрос к профи Rake Runner-у: как скопировать экран из одного проекта в другой, чтобы все компоненты на экране остались на своих координатах?

  8. #8

    По умолчанию

    Цитата Сообщение от -=Vovka=- Посмотреть сообщение
    Дальше, вопрос к профи Rake Runner-у: как скопировать экран из одного проекта в другой, чтобы все компоненты на экране остались на своих координатах?
    1. Запустить два экзмпляра конфигуратора. В одном открыть исходный проект, в другом - новый.
    2. В исходном проекте: ПКМ на экран в дереве проекта - Копировать
    3. В новом проекте: ПКМ на узел Экраны в дереве проекта - Вставить
    4. В появившемся меню при необходимости указать правильный ID и название экрана

  9. #9
    Пользователь Аватар для petera
    Регистрация
    06.05.2011
    Адрес
    Минск
    Сообщений
    3,815

    По умолчанию

    Цитата Сообщение от -=Vovka=- Посмотреть сообщение
    Дальше, вопрос к профи Rake Runner-у: как скопировать экран из одного проекта в другой, чтобы все компоненты на экране остались на своих координатах?
    1. Копировать экран, в дереве проекта источника, перейти в целевой проект и в дереве проекта вставить экран

    2. В проекте источнике выбрать все элементы, в меню - закрепить, копировать. Перейти в целевой проект и вставить копию на нужном экране.
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  10. #10

    По умолчанию

    Rake Runner, petera - так правильно копирует. А я пробовал используя общепринятое Ctrl+C и Ctrl+V. Не понимаю, в чем тут была проблема не потерять координаты...
    Кстати, нашел еще одно решение: Ctrl+A, потом "Сгруппировать" и потом уже Ctrl+C и Ctrl+V с разгруппировкой

Страница 1 из 2 12 ПоследняяПоследняя

Похожие темы

  1. изменение времени и даты ПЛК63
    от Александр Бакин в разделе ПЛК63/73
    Ответов: 3
    Последнее сообщение: 16.09.2014, 09:40
  2. Установка даты - времени в СП 270
    от spec_yug в разделе Панели оператора (HMI)
    Ответов: 4
    Последнее сообщение: 10.07.2014, 09:50
  3. Функция преобразования времени
    от KnDmPetr в разделе ПЛК1хх
    Ответов: 1
    Последнее сообщение: 21.05.2012, 17:26
  4. СП270 - регистры даты\времени
    от martial1 в разделе Панели оператора (HMI)
    Ответов: 3
    Последнее сообщение: 20.01.2011, 09:47
  5. установка времени и даты на плк
    от michaeladm в разделе ПЛК1хх
    Ответов: 2
    Последнее сообщение: 27.05.2010, 11:30

Метки этой темы

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •