Просмотр полной версии : ПР103. Переменные даты и времени. Требуется помощь.
Добрый день. Подскажите, пожалуйста, начинающему как на ПР103 вывести переменную с часов реального времени. Зашел в настройки прибора, установил "ДАТА И ВРЕМЯ С КОМПЬЮТЕРА", после этого, во вкладке ПЕРЕМЕННЫЕ ДАТЫ И ВРЕМЕНИ часов реального времени, в строке, допустим, МИНУТЫ в графе ПЕРЕМЕННАЯ, даю имя Min и выбираю ЦЕЛЬНОЧИСЛЕННОЕ. Вроде все правильно.
Захожу в окно проекта, кликаю СОЗДАНИЕ БЛОКА ВХОДНОЙ ПЕРЕМЕННОЙ, выбираю в нем перемнную Min. Включаю симуляцию и окно просмотра на данном блоке. Таки никакой информации сколько минут натикало НЕТ. Кажет только ИМЯ- Min, ЗНАЧЕНИЕ- 0, ТИП ПЕРЕМЕННОЙ- цельночисленное. Подскажите, пожалуйста, где накосячил.
Контроллер c помощью конфигуратора без пробем подключил по Ethernet, все пишется, загружается и работает а переменными от часов для недельного таймера как-то не заладилось.
АРТ.Кар 64
11.08.2024, 06:28
77956
Возможно,что здесь.
77957
И переменная вроде бы как должна быть "сервисной".
Типа как на ПР 100 или ПР 200.
В симуляции у ПР103 и ПР205 сервисные переменные не работают
kondor3000
11.08.2024, 10:14
Добрый день. Подскажите, пожалуйста, начинающему как на ПР103 вывести переменную с часов реального времени. Зашел в настройки прибора, установил "ДАТА И ВРЕМЯ С КОМПЬЮТЕРА", после этого, во вкладке ПЕРЕМЕННЫЕ ДАТЫ И ВРЕМЕНИ часов реального времени, в строке, допустим, МИНУТЫ в графе ПЕРЕМЕННАЯ, даю имя Min и выбираю ЦЕЛЬНОЧИСЛЕННОЕ. Вроде все правильно.
Захожу в окно проекта, кликаю СОЗДАНИЕ БЛОКА ВХОДНОЙ ПЕРЕМЕННОЙ, выбираю в нем перемнную Min. Включаю симуляцию и окно просмотра на данном блоке. Таки никакой информации сколько минут натикало НЕТ. Кажет только ИМЯ- Min, ЗНАЧЕНИЕ- 0, ТИП ПЕРЕМЕННОЙ- цельночисленное. Подскажите, пожалуйста, где накосячил.
Контроллер c помощью конфигуратора без пробем подключил по Ethernet, все пишется, загружается и работает а переменными от часов для недельного таймера как-то не заладилось.
В соседней теме выложен ФБ для работы времени в симуляции и онлайн, для ПР103 и ПР205.
https://owen.ru/forum/showthread.php?t=38721#8
В соседней теме выложен ФБ для работы времени в симуляции и онлайн, для ПР103 и ПР205.
https://owen.ru/forum/showthread.php?t=38721#8
Спасибо. Сначала не понял причем здесь счетчик наработки механизма, но там есть и макрос UT_UTS1 который решает всю проблему. Спасибо тому, кто его написал. Я весь в непонятке почему чтение всяких инструкций и справок как к OWEN Logic, так и к ПР103 ну НИКАК не помогают решить проблему с вводом в проект инфы относительно текущего времени. Это так, на заметку OWENу. Пусть хотя бы данный макрос ложат в стандартную библиотеку, не все же супер-пупер навороченные программисты. Нужно делать так, чтобы любой электрослесарь и повар мог программировать ПР. Это как Бил Гейтс, который обещал, что РС сможет пользоваться любая домохозяйка и сделал это.
kondor3000
12.08.2024, 07:49
Спасибо. Сначала не понял причем здесь счетчик наработки механизма, но там есть и макрос UT_UTS1 который решает всю проблему. Спасибо тому, кто его написал. Я весь в непонятке почему чтение всяких инструкций и справок как к OWEN Logic, так и к ПР103 ну НИКАК не помогают решить проблему с вводом в проект инфы относительно текущего времени. Это так, на заметку OWENу. Пусть хотя бы данный макрос ложат в стандартную библиотеку, не все же супер-пупер навороченные программисты. Нужно делать так, чтобы любой электрослесарь и повар мог программировать ПР. Это как Бил Гейтс, который обещал, что РС сможет пользоваться любая домохозяйка и сделал это.
Внутри ФБ использованы стандартные функции Даты и Времени, они описаны даже в справке Лоджика по F1 на языке ST. Это не обычный макрос, а Функц. блок, код самого ФБ, переносится просто копипастом текста.
Просто все ленятся читать и учить новое. Да, начинающим не так просто, но для этого есть форум.
Если вам интересен язык ST, то разные примеры выложены тут https://owen.ru/forum/showthread.php?t=37203&page=9&p=429061#81
Возможно ли каким либо образом изменить время в приборе используя Modbus?
В ПР102 .это делалось легко и не принужденно.
Возможно ли каким либо образом изменить время в приборе используя Modbus?
В ПР102 .это делалось легко и не принужденно.
- Штурман, приборы
- 55
- Что 55?
- А что, приборы?
- Штурман, приборы
- 55
- Что 55?
- А что, приборы?
Если я правильно понял иронию, то мне нужно:
Сделать так, что бы пользователь мог корректировать время на ПР103 при помощи HMI панели Kinco если оно каким либо образом сбилось.
Панель подключена при помощи RS485 к реле.
Через переменные, отдельные регистры времени, даты не получается. Я так понимаю что они только для чтения, хотя в документации про них ни слова (только про общее Время и дата (UTC)).
Поэтому и возник вопрос. "Возможно ли каким либо образом изменить время в приборе используя Modbus?"
Может я чего не дочитал или пропустил?
Если я правильно понял иронию, то мне нужно:
Сделать так, что бы пользователь мог корректировать время на ПР103 при помощи HMI панели Kinco если оно каким либо образом сбилось.
Панель подключена при помощи RS485 к реле.
Через переменные, отдельные регистры времени, даты не получается. Я так понимаю что они только для чтения, хотя в документации про них ни слова (только про общее Время и дата (UTC)).
Поэтому и возник вопрос. "Возможно ли каким либо образом изменить время в приборе используя Modbus?"
Может я чего не дочитал или пропустил?
Вроде, где-то этот вопрос уже поднимался, но я не нашел. Попробуйте записать дату/время в формате UTC в регистр 61553
81123
kondor3000
05.01.2025, 17:19
Вроде, где-то этот вопрос уже поднимался, но я не нашел. Попробуйте записать дату/время в формате UTC в регистр 61553
Вопрос, где он в панели возьмёт время в формате UnixTime или DT ? 81124
Там есть только по отдельности часы, мин, сек, дата, месяц и год. Вот их и надо передавать, а уже в ПР205 пересчитывать и записывать в переменную UTC. Надо проверять получится ли так . https://owen.ru/forum/showthread.php?t=40116#4
Вопрос, где он в панели возьмёт время в формате UnixTime или DT ? 81124
Там есть только по отдельности часы, мин, сек, дата, месяц и год. Вот их и надо передавать, а уже в ПР205 пересчитывать и записывать в переменную UTC.
А что, в панели макросов нет? А собрать UTC, насколько я помню, достаточно просто. А, если собирать в ПРке, то там намного больше геморроя будет, чем напрямую в регистр записать значение
kondor3000
05.01.2025, 17:48
А что, в панели макросов нет? А собрать UTC, насколько я помню, достаточно просто. А, если собирать в ПРке, то там намного больше геморроя будет, чем напрямую в регистр записать значение
Макросы в панели Кинко есть, только не каждый сможет их написать, проще взять время панели и использовать его в ПР,
тем более в ПР поганые кварцы стоят и время начинает постоянно врать.
Вроде, где-то этот вопрос уже поднимался, но я не нашел. Попробуйте записать дату/время в формате UTC в регистр 61553
81123
Пробовал, не получилось. Попробую еще раз, возможно я где то ошибся.
Вопрос, где он в панели возьмёт время в формате UnixTime или DT ? 81124
Там есть только по отдельности часы, мин, сек, дата, месяц и год. Вот их и надо передавать, а уже в ПР205 пересчитывать и записывать в переменную UTC. Надо проверять получится ли так . https://owen.ru/forum/showthread.php?t=40116#4
Это не проблема, обработать при помощи ПР не сложно, я записать не могу. В документации написано что только тайм зона имеет возможность записи и то через функцию 16, которой в Kinco нет.
81167
Например мне приходится переводить время ПР в UNIX при помощи такого кода:
function_block UnixTime // UnixTime
var_input //объявление входных переменных
Active: bool;
end_var
var_output //объявление выходных переменных
UT: udint; // UnixTime
end_var
UT:=dt_to_udint(get_date_time()) + 946684800;
end_function_block
Овен опять перемудрили или я ничего не понимаю в стандартах. Что за стандарт такой 2000 год?
Я даже время смог поменять в ПР только при помощи Owen Configurator, через Owen Logic не получилось. Меняется и через секунду возвращается в исходное состояние.
Овен опять перемудрили или я ничего не понимаю в стандартах. Что за стандарт такой 2000 год?
Это вроде соглашения, типа считать теперь не от 1970 года а от 2000 года для UnixTime.
Иначе первый вариант загнется в 2038 году в январе
kondor3000
07.01.2025, 11:30
В документации написано что только тайм зона имеет возможность записи и то через функцию 16, которой в Kinco нет.
Что значит нет 16 функции?
Если вы записываете любое 32 битное число, например UDINT (DWORD) или FLOAT, это 2 регистра, по умолчанию запись 16 функцией.
Функция 06, запись 1 регистра, а ведь в панели Кинко можно записывать до 120 регистров за 1 раз, если сделать адреса подряд.
В регистр 61553 надо записывать именно 32 битное число, типа 789564564, а не 100 (или 700)
Или проверить запись напрямую в переменную UTC, прямо в ПР205.
In_Da_Cher_A
07.01.2025, 19:35
чисто мысли вслух - для какой задачи требуется перегонка времени из панели в ПР?
МихаилГл
07.01.2025, 20:29
Нет 16 в десятичной... А 10 в шестнадцатеричной есть?...
Например мне приходится переводить время ПР в UNIX при помощи такого кода:
function_block UnixTime // UnixTime
var_input //объявление входных переменных
Active: bool;
end_var
var_output //объявление выходных переменных
UT: udint; // UnixTime
end_var
UT:=dt_to_udint(get_date_time()) + 946684800;
end_function_block
А зачем конвертировать дату/время из 01.01.2000.в 01.01.1970?
А зачем конвертировать дату/время из 01.01.2000.в 01.01.1970?
По той причине, что изначально программа была написана для ПР102 и использовалось UnixTime, теперь придется переделать под 2000.
Это вроде соглашения, типа считать теперь не от 1970 года а от 2000 года для UnixTime.
Иначе первый вариант загнется в 2038 году в январе
Спасибо, буду придерживаться этого стандарта.
чисто мысли вслух - для какой задачи требуется перегонка времени из панели в ПР?
Перегонка не нужна, но нужна возможность изменения/корректировки оператором из панели.
Что значит нет 16 функции?
Если вы записываете любое 32 битное число, например UDINT (DWORD) или FLOAT, это 2 регистра, по умолчанию запись 16 функцией.
Функция 06, запись 1 регистра, а ведь в панели Кинко можно записывать до 120 регистров за 1 раз, если сделать адреса подряд.
В регистр 61553 надо записывать именно 32 битное число, типа 789564564, а не 100 (или 700)
Или проверить запись напрямую в переменную UTC, прямо в ПР205.
Записать напрямую пробовал, не получилось. Но попробую еще раз, возможно что-то делал не так. Сейчас нет возможности проверить.
Она есть, просто называется 4X (4X, 4X-4Word, 4X-DWord).
81207
81208
ProRus правильный стандарт структура DateTime как в C#, но там 8 байт на все.
Хотя технически без миллисекунд вроде можно время загнать и в 4 байта до 9999 года вроде.
без секунд, сорри. Достаточно 3-х байт с 0 года до 9999 года :)
а уж использовать 1 байт для секунд не проблема, учитывая, что у нас их 60, а байт это число 255
Записать напрямую пробовал, не получилось. Но попробую еще раз, возможно что-то делал не так. Сейчас нет возможности проверить.
Вот что мне ответили в техподдержке
Да, в ПР205 можно записать время. в ПР103, к сожалению, такого функционала нет.
Да, платформа и правда одна, но аппаратная часть разная.
Изменить/Подкорректировать время можно с помощью OwenConfigurator и OwenLogic.
Попробуйте, вдруг получится
81238
Удалось реализовать.
Не уверен верно или нет, но работает.
Отредактировал встроенный макрос UNIX_TIME превратив его в 2000_TIME.
т.е. он переводит переменные времени и даты в формат UTC.
Далее по сигналу от сетевой переменной происходит запись в ПР103.
На фотках переменные в настройках ПР103 и сам измененный макрос.
81531
81532
81533
kondor3000
23.01.2025, 21:23
Удалось реализовать.
Не уверен верно или нет, но работает.
Отредактировал встроенный макрос UNIX_TIME превратив его в 2000_TIME.
т.е. он переводит переменные времени и даты в формат UTC.
Далее по сигналу от сетевой переменной происходит запись в ПР103.
На фотках переменные в настройках ПР103 и сам измененный макрос.
Если работает, значит верно.
Не понятно, чем ваш макрос отличается от моих ФБ на ST, ссылки давал, всё тоже самое, чуть адаптировать для записи только.
Powered by vBulletin® Version 4.2.3 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot