Мой канал на ютубе
https://www.youtube.com/c/ПетрАртюков
Мой канал на РУТУБЕ
https://rutube.ru/channel/23641433/
Библиотека ГМ для СП300
https://disk.yandex.com/d/gHLMhLi8x1_HBg
Добрый день! скачал пример синхронизации времени с плк через макросы - не впечатлился, от слова совсем.
Хочу сделать несколько иначе, подскажите, получится ли.
Из ПЛК буду вычитывать год, дату, время... из регистров типа word. Для применения изменений можно также считывать регистр из ПЛК, который будет взводиться допустим раз в час на пару секунд.
Вопрос:
1) в какие регистры PSW мне нужно записать данные из ПЛК?
2) какой регистр активирует процесс переноса значений из записанных из ПЛК в PSW? Он же должен быть? Но скорее всего это PSB, тогда хотелось бы понять как взять, например, 0 бит из PSW и записать его в нужный PSB без макроса. Если через макрос, то можете подсказать строку кода для этого?
Такой подход избавит от использования макросов - вроде поинтересней выглядит.
Последний раз редактировалось avk@domacomp.ru; 18.10.2026 в 14:08.
тогда подскажите, если у нас правильные значения в hex, по каким формулам переводить???
ПЛК может подтянуть время по ntp - поэтому этот вариант и был выбран
в макросах ГМ - в проекте пусто.
Вопрос все таки остался другой: в хелпе в конфигураторе я не нашел какой бит взводить, чтобы применить время, например, полученное из ПЛК. Кто-то знает? Или я снова где-то не дочитал??
PSWS30..35 только для чтения, в них не положить значения из ПЛК скорее всего. Значит должны быть какие-то другие системные PSW, в которые нужно класть значения времени. И, наверное, по биту какому-то из этих регистров время перекладывается в PSW30..35.
Есть ли такие регистры и бит?
Последний раз редактировалось avk@domacomp.ru; 18.10.2026 в 18:01.
я открыл пример. в макросе ГМ пусто.
Лучше скажите биты для записи.
я увидел psw256.0 - не увидел где по нему происходят действия какие-либо в макросе., но увидел в синем квадратике.
синий квадратик - sync rtc. Это условие, сюдя по названию. Но как его добавляют - я не нахожу в конфигураторе.????
Не очень интересно делать синхронизацию по кнопке. Нужно прямо из контроллера раз в час взводить какой-либо бит и по нему синхронизировать.
Вы уже объяснили про формат времени, осталось лишь понять как включить синхронизацию. Даже более того - остался вопрос по квадратику - все можно сделать в нем, но его нет на панели, и действия в этом квадратике в вашем примере не добавляются, к сожалению.
Вы не бойтесь - я пойму))
001.png
Где взять такой элемент, у которого есть возможность выбрать действия (вкладка Объект)???
002.png
003.png
PS: все изображения из вашего проекта
Последний раз редактировалось avk@domacomp.ru; 18.10.2026 в 21:44.
крутое пояснение конечно. Запущу сегодня, потому что будет и ПЛК и панель на руках. В эмуляции запускал. Вы бы не предполагали куда мне суваться, куда нет. Если знаете, подскажите какой бит системный нужно взводить.
Что значит графический макрос? Объясните как он создается - я не нашел ничего подобного ни в хелпе, ни в конфигураторе.
Мне понятнее будет организовать передачу времени из ПЛК, где я уж как-нибудь в нужном формате осилю подготовку даты-времени, и из ПЛК буду периодически бит передавать. Данные понятнее будет обработать в скрипте, который можно самому написать. Пользоваться скриптом из вашего примера, не зная откуда взялся этот графический артефакт - занятие такое себе.
А для ясности мне нужены системные регистры а) для подготовки даты-времени б)для принятия подготовленных значений.
Вы же, второй день предполагаете, что мне рано знакомитсья с системными регистрами, которые почему то отсутствуют в таблице из хелпа.
Подскажите номера нужных мне регистров пожалуйста, и дело с концом
Давно это было...
Тут, на форуме и было
https://web.archive.org/web/20171230...ad.php?t=25052
https://web.archive.org/web/20170924...t=25052&page=2
По данному ГМ есть такое описание
Этот ГМ предназначен для автоматической синхронизации часов панели с часами ПЛК.
Синхронизация происходит ежедневно, ровно в полдень по часам в ПЛК. Макрос должен быть глобальным!
ГМ находится в папке ".\ГМ для СП300\Макро\ДатаВремя\RTC"
Переменные макроса
ДатаВремя в ПЛК - адрес первого регистра из шести, в которых находятся текущие значения (год, месяц, день, час, минуты, секунды) часов ПЛК.
ЗАМЕЧАНИЕ
диапазон значений для года ограничен значениями от 2000 до 2099
диапазон значений для месяца от 1 до 12
диапазон значений для дня от 1 до 31
диапазон значений часов от 0 до 23
диапазон значений для минут и секунд от 0 до 59.
В макросе проверяется диапазон входных переменных и если их значение не укладывается заданные диапазоны, то их значения будут принудительно ограничены максимальным или минимальным значениями.
Т.е. если полученное из ПЛК значение для года будет, например 1998, то будет взято нижнее допустимое значение - 2000. Или если полученное из ПЛК значение для месяца будет, например 100, то будет взято верхнее допустимое значение - 12.
СинхПоКоманде - дополнительный вход для принудительной синхронизации часов, задается битом. Синхронизации будет выполнена по фронту этого бита, например от битовой кнопки с действием ВКЛ. пока нажата. Если дополнительный вход ненужен, следует использовать бит PSB1 - перманентный лог."0".
Последний раз редактировалось petera; 19.10.2026 в 11:27.
Мой канал на ютубе
https://www.youtube.com/c/ПетрАртюков
Мой канал на РУТУБЕ
https://rutube.ru/channel/23641433/
Библиотека ГМ для СП300
https://disk.yandex.com/d/gHLMhLi8x1_HBg