Показано с 1 по 9 из 9

Тема: СП310: Синхронизация времени с ПЛК

  1. #1

    По умолчанию СП310: Синхронизация времени с ПЛК

    Добрый день!
    Панель мастер, ПЛК - слейв.

    Макрос панели SyncTime, который читает дату из ПЛК. По мотивам документа "Панели оператора СП3хх-Р. Синхронизация времени с ПЛК" с сайта https://owen.ru/

    Код:
    BOOL bUpdate = FALSE;
    WORD awVar[12];
    
    Read(NET_0, 1, MODBUS_TCP_BIT_0X, 1300, 0, TYPE_BIT, &bUpdate);
    
    if (bUpdate)
    {
    	Reads(NET_0, 1, MODBUS_TCP_REGS_3X, 4310, 12, &awVar);
        
    	for ( i = 0; i < 6; i++ ) 
    	{
                    PSW[300+i] = DEC_TO_BCD(awVar[i*2]); // Debug - чтобы вывести на экран что именно будет писаться в регистр PSW[220]
            
    		PSW[220] = DEC_TO_BCD(awVar[i*2]);
    		WriteBitInReg(221, 0+i, TRUE,   TYPE_PSW);
    		Delay(200);
    		WriteBitInReg(221, 0+i, FALSE,  TYPE_PSW);
    	}
    
        Write(NET_0, 1, MODBUS_TCP_BIT_0X, 1300, 0, TYPE_BIT, 0);
    }
    Функции DEC_TO_BCD и WriteBitInReg в глобальном макросе - копипаст из того же документа "Панели оператора СП3хх-Р. Синхронизация времени с ПЛК".

    Прочитали из ПЛК: 2024-12-21 5:16:12
    конвертировали в BCD: 8228-18-33 5:22:18
    смотрим на экране:
    2025-05-22_17-39-21.png

    Системное время панели не поменялось:
    2025-05-22_17-39-43.png

    В чем ошибка?

  2. #2

    По умолчанию

    Вот работающий проект чтение Даты, Времени из ПЛК и запись в панель, выложил Petera

    Хотя лучше, удобней и правильней сихронизировать наоборот, ПЛК из панели
    https://owen.ru/forum/showthread.php...l=1#post464112
    https://owen.ru/forum/showthread.php...l=1#post464125
    Вложения Вложения
    Последний раз редактировалось kondor3000; 23.05.2025 в 14:43.

  3. #3

    По умолчанию

    Цитата Сообщение от kondor3000 Посмотреть сообщение
    Записывать надо в системные регистры панели PSW30 -PSW35
    Запись в ячейки PSW30 -PSW35 не синхронизирует системное время. В документации написано, что эти ячейки только для чтения.

    Цитата Сообщение от kondor3000 Посмотреть сообщение
    Хотя лучше, удобней и правильней сихронизировать наоборот, ПЛК из панели
    У меня четыре контроллера в подсети синхронизируются с NTP-сервером, а панели должны синхронизироваться каждая со своим контроллером.

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

    По умолчанию

    Цитата Сообщение от S#716_0P Посмотреть сообщение
    Запись в ячейки PSW30 -PSW35 не синхронизирует системное время. В документации написано, что эти ячейки только для чтения.
    Совершенно верно, только чтение даты и времени
    У меня в ГМ в проекте из поста #2 https://owen.ru/forum/showthread.php...l=1#post464493 используется системный юнит RTC который записывает элементы системного времени.
    Поясню как пользоваться ГМ из этого проекта

    Захват-11.png

    Синхронизация происходит ежедневно, ровно в полдень по часам в ПЛК. Макрос должен быть глобальным!
    В свойствах макроса находятся переменные
    ДатаВремя в ПЛК - адрес первого регистра из шести, в которых находятся текущие значения (год, месяц, день, час, минуты, секунды) часов ПЛК.
    например
    Захват-12.png
    ЗАМЕЧАНИЕ
    диапазон значений для года ограничен значениями от 2000 до 2099
    диапазон значений для месяца от 1 до 12
    диапазон значений для дня от 1 до 31
    диапазон значений часов от 0 до 23
    диапазон значений для минут и секунд от 0 до 59.

    В макросе проверяется диапазон входных переменных и если их значение не укладывается заданные диапазоны, то их значения будут принудительно ограничены максимальным или минимальным значениями.
    Т.е. если полученное из ПЛК значение для года будет, например 1998, то будет взято нижнее допустимое значение - 2000. Или если полученное из ПЛК значение для месяца будет, например 100, то будет взято верхнее допустимое значение - 12.

    СинхПоКоманде - дополнительный вход для принудительной синхронизации часов, задается битом.
    Синхронизации будет выполнена по фронту этого бита, например от битовой кнопки с действием ВКЛ. пока нажата.
    Если дополнительный вход ненужен, следует использовать бит PSB1 - перманентный лог."0".

    ЗЫ
    В библиотеке этот ГМ находится в папке ".\ГМ для СП300\Макро\ДатаВремя\RTC" и называется Синхронизация часов
    Захват-13.png
    Последний раз редактировалось petera; 23.05.2025 в 11:48.
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Мой канал на РУТУБЕ
    https://rutube.ru/channel/23641433/
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  5. #5

    По умолчанию

    Добрый день!
    Спасибо, что уделили время.
    Все очень интересно, но ничего не понятно.
    Открыл проект у меня там глобальный макрос пустой и никаких других макросов нет. Получается у вас панель слейв, а ПЛК пишет значения системного времени в какие то регистры панели? Вопрос в какие? И в каком формате? В примере от Овена указано, что нужно перевести в формат BCD.
    2025-05-24_12-12-49.png

    И еще не знаете вот эта штука из инструкции Овена на панель она рабочая или нет?
    2025-05-22_20-45-51.png

  6. #6

    По умолчанию

    Цитата Сообщение от S#716_0P Посмотреть сообщение
    Добрый день!
    Спасибо, что уделили время.
    Все очень интересно, но ничего не понятно.
    Открыл проект у меня там глобальный макрос пустой и никаких других макросов нет. Получается у вас панель слейв, а ПЛК пишет значения системного времени в какие то регистры панели? Вопрос в какие? И в каком формате? В примере от Овена указано, что нужно перевести в формат BCD.
    И еще не знаете вот эта штука из инструкции Овена на панель она рабочая или нет?
    Проект можно проверить даже в эмуляции, ГМ -квадратик, это Графический макрос, работает в эмуляции, 1 Работа макроса.jpg
    панель мастер читает регистры 4х0 - 4х5 (можно изменить в ГМ) из ПЛК от года до секунд и записывает по кнопке PSB300 время в панель.
    В регистрах 4х0 - 4х5 можно задать Дату и Время и увидеть изменение в панели.
    Биты регистра 221 используются в панели, для установки времени из системного экрана времени. 1 Время в панели.jpg
    По факту ГМ используется и разработчиками панели.
    Последний раз редактировалось kondor3000; 24.05.2025 в 14:55.

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

    По умолчанию

    Цитата Сообщение от S#716_0P Посмотреть сообщение
    Добрый день!
    Спасибо, что уделили время.
    Все очень интересно, но ничего не понятно.
    Открыл проект у меня там глобальный макрос пустой и никаких других макросов нет. Получается у вас панель слейв, а ПЛК пишет значения системного времени в какие то регистры панели? Вопрос в какие? И в каком формате? В примере от Овена указано, что нужно перевести в формат BCD.
    2025-05-24_12-12-49.png

    И еще не знаете вот эта штука из инструкции Овена на панель она рабочая или нет?
    2025-05-22_20-45-51.png
    ГМ - это ГрафическийМакрос, на экране он выглядит как квадратик с иконкой внутри.
    К макросам на Си, которые находятся в дереве проекта, Графические макросы не имеют никакого отношения. Мой ГМ синхронизации по сути такой же элемент как и стандартные кнопки, дисплеи, лампы и пр. и создан по их по образу и подобию.
    У меня есть целая библиотека таких макросов (см. ссылку в моей подписи)
    ГМ имеет свойства, как и любой другой элемент на экране. Свойства открываются стандартно - двойной щелочек мышкой или из выпадающего меню по правой кнопке мышки.
    В свойствах ГМ в виде списка находятся переменные ГМ - входные и выходные (результат работы макроса), как правило это какие-либо регистры самой панели или слейва ПЛК. Если дважды щелкнуть на элементе списка, то откроется стандартное окно выбора регистра.
    Конкретно к этому ГМ.
    ПЛК должен писать значение текущего времени не в регистры панели, а в регистры 4хNNN своего модуля слейва в конфигурации (для ПЛК ОВЕН) - 6 регистров по порядку, с любого начального адреса, в которых будут (год, месяц, день, час, минуты, секунды) часов ПЛК. Преобразовывать в BCD формат не нужно.
    Панель сама читает эти регистры и в назначенное время или по команде производит синхронизацию времени панели данными из этих 6 регистров.
    Последний раз редактировалось petera; 24.05.2025 в 17:17.
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Мой канал на РУТУБЕ
    https://rutube.ru/channel/23641433/
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  8. #8

    По умолчанию

    Графический макрос работает. Спасибо.
    Вопрос к Овену остался: механизм изменения системного времени панели через регистры PSW220, PSW221 работает или нет как описано в документах "Панели оператора СП3xx. Руководство пользователя" и "Панели оператора СП3хх-Р. Синхронизация времени с ПЛК"?

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

    По умолчанию

    Цитата Сообщение от S#716_0P Посмотреть сообщение
    Графический макрос работает. Спасибо.
    Вопрос к Овену остался: механизм изменения системного времени панели через регистры PSW220, PSW221 работает или нет как описано в документах "Панели оператора СП3xx. Руководство пользователя" и "Панели оператора СП3хх-Р. Синхронизация времени с ПЛК"?
    Механизм должен работать
    Захват-11.png

    Захват-12.png

    Захват-13.png
    Скрытый текст:
    Вложения Вложения
    Последний раз редактировалось petera; 27.05.2025 в 11:01.
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Мой канал на РУТУБЕ
    https://rutube.ru/channel/23641433/
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

Похожие темы

  1. Сп310 + пр103 синхронизация часов реального времени
    от MaximLivanov в разделе Панели оператора (HMI)
    Ответов: 26
    Последнее сообщение: 15.05.2025, 23:13
  2. СП300 - синхронизация времени
    от parovoZZ в разделе Панели оператора (HMI)
    Ответов: 43
    Последнее сообщение: 28.02.2025, 04:33
  3. Синхронизация времени на устройстве.
    от alexander.kinsfator@gmail.com в разделе ПЛК2хх
    Ответов: 6
    Последнее сообщение: 06.08.2024, 09:30
  4. Синхронизация времени
    от VanoKing в разделе ПЛК1хх
    Ответов: 35
    Последнее сообщение: 10.01.2014, 12:20
  5. Синхронизация времени
    от VanoKing в разделе Master SCADA 3
    Ответов: 1
    Последнее сообщение: 07.09.2011, 19:41

Ваши права

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