- Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
- Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
- Не писать свой вопрос в первую попавшуюся тему - вместо этого создать новую тему.
- За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения.
- Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
- Перед тем как что-то написать - читать здесь и здесь, а студентам - обязательно здесь.
- Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.
Время в Wincc
-
- здесь недавно
- Сообщения: 7
- Зарегистрирован: 24 янв 2017, 10:43
- Имя: Хохлов Максим Андреевич
- Страна: Россия
- город/регион: Невьянск Свердловской области
- Благодарил (а): 1 раз
Время в Wincc
Добрый день! Подскажите пожалуйста как можно перевести время получаемое с контроллера S7-300 в миллисекундах отобразить в Wincc 7.2 d окне поле ввода/вывода в формате ЧЧ:ММ:СС.
-
- не первый раз у нас
- Сообщения: 343
- Зарегистрирован: 12 дек 2018, 14:47
- Имя: Влад
- Благодарил (а): 1 раз
- Поблагодарили: 44 раза
Время в Wincc
Если Вы имеете ввиду системное время CPL то посмотрите SFC0,SFC1,FC3 из библиотеки.Можете воспользоваться блоком ниже (данные вывода времени в формате HEX)
L P##gdt //in: Date_And_Time
LAR1
L W [AR1,P#0.0]
T #db_num //TEMP: Word
OPN DB [#db_num]
L D [AR1,P#2.0]
LAR1
L B [AR1,P#0.0]
T #year //OUT: Byte
L B [AR1,P#1.0]
T #month //OUT: Byte
L B [AR1,P#2.0]
T #day //OUT: Byte
L B [AR1,P#3.0]
T #hour //OUT: Byte
L B [AR1,P#4.0]
T #min //OUT: Byte
L B [AR1,P#5.0]
T #sec //OUT: Byte
L P##gdt //in: Date_And_Time
LAR1
L W [AR1,P#0.0]
T #db_num //TEMP: Word
OPN DB [#db_num]
L D [AR1,P#2.0]
LAR1
L B [AR1,P#0.0]
T #year //OUT: Byte
L B [AR1,P#1.0]
T #month //OUT: Byte
L B [AR1,P#2.0]
T #day //OUT: Byte
L B [AR1,P#3.0]
T #hour //OUT: Byte
L B [AR1,P#4.0]
T #min //OUT: Byte
L B [AR1,P#5.0]
T #sec //OUT: Byte
-
- здесь недавно
- Сообщения: 67
- Зарегистрирован: 01 авг 2019, 02:24
- Имя: Вячеслав
- Благодарил (а): 9 раз
- Поблагодарили: 6 раз
Время в Wincc
Наверняка можно и в WinCC найти подход. Начиная с скриптов. Вплоть до использования этого же кода. Ссылочные переменные в WinCC, если не ошибаюсь - допускаются.
-
- здесь недавно
- Сообщения: 7
- Зарегистрирован: 24 янв 2017, 10:43
- Имя: Хохлов Максим Андреевич
- Страна: Россия
- город/регион: Невьянск Свердловской области
- Благодарил (а): 1 раз
Время в Wincc
Добрый день! Подскажите как написать скрип в Wicc для перевод из тега формата time в формат string что бы получилось ЧЧ:ММ:СС в окне поля ввода/вывода.
-
- освоился
- Сообщения: 211
- Зарегистрирован: 04 фев 2019, 07:07
- Имя: Андрей
- Благодарил (а): 13 раз
- Поблагодарили: 2 раза
Время в Wincc
Блин где то недавно видел что то похожее на форуме то там писать помоему писать ничего не нужно,а где то меняется формат.
Но это не точно.
Но это не точно.
-
- освоился
- Сообщения: 211
- Зарегистрирован: 04 фев 2019, 07:07
- Имя: Андрей
- Благодарил (а): 13 раз
- Поблагодарили: 2 раза
-
- здесь недавно
- Сообщения: 7
- Зарегистрирован: 24 янв 2017, 10:43
- Имя: Хохлов Максим Андреевич
- Страна: Россия
- город/регион: Невьянск Свердловской области
- Благодарил (а): 1 раз
Время в Wincc
Подскажите, а как значение полученое в милисекунндах при помощи скрипта разложить в формате ЧЧ:ММ:СС.
-
- освоился
- Сообщения: 211
- Зарегистрирован: 04 фев 2019, 07:07
- Имя: Андрей
- Благодарил (а): 13 раз
- Поблагодарили: 2 раза
Время в Wincc
Я не проще ли из ПЛК вытянуть значение в ЧЧ:ММ:СС и им оперировать.
https://www.youtube.com/watch?v=7jqTXc8T2co
https://www.youtube.com/watch?v=7jqTXc8T2co
-
- освоился
- Сообщения: 211
- Зарегистрирован: 04 фев 2019, 07:07
- Имя: Андрей
- Благодарил (а): 13 раз
- Поблагодарили: 2 раза
Время в Wincc
А можно конкретнее ,увидеть логику,блок или словами описать как получается то DB
Я к тому что может есть какие другие пути реализации.
Я к тому что может есть какие другие пути реализации.
-
- не первый раз у нас
- Сообщения: 343
- Зарегистрирован: 12 дек 2018, 14:47
- Имя: Влад
- Благодарил (а): 1 раз
- Поблагодарили: 44 раза
Время в Wincc
Этот тег в формате time, как Вы его получаете? Если это системное время контроллера то это одно, а если это создано S5 таймером (min 10ms) или из HW clock memory это другое. И точно это формат time(T#1D_2H_3M_4S_5MS)?
-
- эксперт
- Сообщения: 1011
- Зарегистрирован: 31 мар 2018, 12:05
- Имя: Вячеслав
- Благодарил (а): 94 раза
- Поблагодарили: 136 раз
Время в Wincc
v0v, конкретизирую ) Тоже ковыряюсь по этой теме
Исходно: переменная типа Time, используется для IEC таймера. Задается T#5m30s, например.
Задача: отобразить ее в удобоваримом виде на WinCC 7.4
Time хранится в 4х битах. Пока что доковырял до такого - читаем DWORD, получаем данные в милисекундах, делим на 1000, отображаем. Ввод тоже можно корректировать (* 1000), а по цивилизованнее как то можно? )
PS С S5Timer попроще, на выходе есть переменная WORD в оставшихся секундах
Исходно: переменная типа Time, используется для IEC таймера. Задается T#5m30s, например.
Задача: отобразить ее в удобоваримом виде на WinCC 7.4
Time хранится в 4х битах. Пока что доковырял до такого - читаем DWORD, получаем данные в милисекундах, делим на 1000, отображаем. Ввод тоже можно корректировать (* 1000), а по цивилизованнее как то можно? )
PS С S5Timer попроще, на выходе есть переменная WORD в оставшихся секундах
-
- осмотрелся
- Сообщения: 194
- Зарегистрирован: 19 сен 2019, 10:09
- Имя: Макс
- Страна: Россия
- город/регион: Славянск-на-Кубани
- Благодарил (а): 5 раз
- Поблагодарили: 34 раза
Время в Wincc
[youtube]https://www.youtube.com/watch?v=4vRuj1VeXEM[/youtube]
Вот готовое решение
Вот готовое решение
WinCC 7.4 SP1 Upd15, Step5.6
-
- эксперт
- Сообщения: 1011
- Зарегистрирован: 31 мар 2018, 12:05
- Имя: Вячеслав
- Благодарил (а): 94 раза
- Поблагодарили: 136 раз
Время в Wincc
Увы, это не решение. Для начала, речь в ролике о формате Date_And_Time, и то что там данные побайтно лежат я в курсе. С переменной типа Time такой фокус не проходит
-
- осмотрелся
- Сообщения: 194
- Зарегистрирован: 19 сен 2019, 10:09
- Имя: Макс
- Страна: Россия
- город/регион: Славянск-на-Кубани
- Благодарил (а): 5 раз
- Поблагодарили: 34 раза
Время в Wincc
Почему не решение? Автору поста надо было время контроллера вывести в WinCC, на видео как раз это, при чем здесь формат Time?
Или для вас надо разбить TIME или S5TIME на составляющие?
Или для вас надо разбить TIME или S5TIME на составляющие?
WinCC 7.4 SP1 Upd15, Step5.6
-
- эксперт
- Сообщения: 1011
- Зарегистрирован: 31 мар 2018, 12:05
- Имя: Вячеслав
- Благодарил (а): 94 раза
- Поблагодарили: 136 раз
-
- осмотрелся
- Сообщения: 194
- Зарегистрирован: 19 сен 2019, 10:09
- Имя: Макс
- Страна: Россия
- город/регион: Славянск-на-Кубани
- Благодарил (а): 5 раз
- Поблагодарили: 34 раза
Время в Wincc
Я как-то для себя писал FB на SCL переводящий заданное время в S5TIME, если вам нужно разбить S5TIME, можно написать что-то инверсное на базе этого. Если не S5TIME, a TIME, то писать другое.
WinCC 7.4 SP1 Upd15, Step5.6
-
- эксперт
- Сообщения: 1011
- Зарегистрирован: 31 мар 2018, 12:05
- Имя: Вячеслав
- Благодарил (а): 94 раза
- Поблагодарили: 136 раз
Время в Wincc
Впечатляет по размаху мысли ) Без всякой иронии. Вы, случайно работу не ищите? Есть вакансия...
Спасибо, но такое писать некогда и лень ) Пока что и мс/1000 кажутся вариантом. Который так себе конечно, но работает.
-
- освоился
- Сообщения: 290
- Зарегистрирован: 09 авг 2016, 13:49
- Имя: Чистилин Андрей Анатольевич
- Страна: Россия
- город/регион: Малоярославец
- Благодарил (а): 31 раз
- Поблагодарили: 35 раз
Время в Wincc
что в качестве входной переменной? Указатель? Или DB10.DB...?
Можете код прокомментировать, очень интересно, я никак не освою эти косвенные адресации
-
- не первый раз у нас
- Сообщения: 343
- Зарегистрирован: 12 дек 2018, 14:47
- Имя: Влад
- Благодарил (а): 1 раз
- Поблагодарили: 44 раза
Время в Wincc
Загружаете SFC1(Read_System_Clock) в Temp прописываете (например gdt в формате date_and_time). Выход с SFC1(CDT) будет #gdt. Это и будет вход LP##gdt
-
- освоился
- Сообщения: 290
- Зарегистрирован: 09 авг 2016, 13:49
- Имя: Чистилин Андрей Анатольевич
- Страна: Россия
- город/регион: Малоярославец
- Благодарил (а): 31 раз
- Поблагодарили: 35 раз
Время в Wincc
И потом мы берем указатель на адрес переменной #gpt и загружаем в адресный регистр, а потом мы читаем слово из адресного регистра, которое по идее должно указать на номер блока данных, но #gpt то у нас лежит сейчас в локальных переменных... и все я приплыл... что будет тогда в #db_num?
-
- не первый раз у нас
- Сообщения: 343
- Зарегистрирован: 12 дек 2018, 14:47
- Имя: Влад
- Благодарил (а): 1 раз
- Поблагодарили: 44 раза
Время в Wincc
Попробуйте просто вставить SFC1 и на выходе прописать локальную переменную (d_t) в формате Date_And_Time в TEMP и далее написать
L P##d_t
L LB [AR1,P#0.0]
T MW 2
L LB [AR1,P#1.0]
T MW 4
L LB [AR1,P#2.0]
T MW 6
L LB [AR1,P#3.0]
T MW 8
L LB [AR1,P#4.0]
T MW 10
L LB [AR1,P#5.0]
T MW 12
L LB [AR1,P#6.0]
T MW 14
и сделайте симуляцию в шестнадцатеричном коде будет дата вашего PC
L P##d_t
L LB [AR1,P#0.0]
T MW 2
L LB [AR1,P#1.0]
T MW 4
L LB [AR1,P#2.0]
T MW 6
L LB [AR1,P#3.0]
T MW 8
L LB [AR1,P#4.0]
T MW 10
L LB [AR1,P#5.0]
T MW 12
L LB [AR1,P#6.0]
T MW 14
и сделайте симуляцию в шестнадцатеричном коде будет дата вашего PC
-
- здесь недавно
- Сообщения: 16
- Зарегистрирован: 16 июл 2015, 11:02
- Имя: Антон ибн Александрович
- Страна: Казахстан
- Благодарил (а): 8 раз
- Поблагодарили: 2 раза
Время в Wincc
#include "GlobalDefinitions.h"
char* TextValue(char* screenName, char* objectName, char* propertyName)
{
//Вставьте код, начиная отсюда
time_t rawtime;
struct tm * timeinfo;
char str_time[MAX_PATH] = {'\0'};
time (&rawtime);
timeinfo = localtime(&rawtime);
sprintf(str_time, "%.2d.%.2d.%.4d %.2d:%.2d:%.2d",timeinfo->tm_mday, timeinfo->tm_mon + 1, timeinfo->tm_year + 1900, timeinfo->tm_hour, timeinfo->tm_min, timeinfo->tm_sec);
return str_time;
}
char* TextValue(char* screenName, char* objectName, char* propertyName)
{
//Вставьте код, начиная отсюда
time_t rawtime;
struct tm * timeinfo;
char str_time[MAX_PATH] = {'\0'};
time (&rawtime);
timeinfo = localtime(&rawtime);
sprintf(str_time, "%.2d.%.2d.%.4d %.2d:%.2d:%.2d",timeinfo->tm_mday, timeinfo->tm_mon + 1, timeinfo->tm_year + 1900, timeinfo->tm_hour, timeinfo->tm_min, timeinfo->tm_sec);
return str_time;
}