PDA

Просмотр полной версии : Нуждаюсь в совете



BSA
19.06.2014, 23:24
Вопрос следующего характера имеем плк 100 и сп 270 на плк реализуем таймер :TP
помогите советом как реализовать чтобы на сп 270 отображалось значение таймера переменной ЕТ
в формате минуты : сек
Заранее благодарен

lara197a
19.06.2014, 23:29
Ет преобразуйте в 2 переменных:
1 - минуты
2 - секунды
Эти 2 переменные передаете в регистры панели.

Валенок
19.06.2014, 23:35
Или закиньте туда прям строку вида "мм:ss"

BSA
19.06.2014, 23:50
То есть прямое преобразование ЕТ в строку и передача строки в панель решит все вопросы

Валенок
19.06.2014, 23:59
Не-а. Это один из способов решения 1-ого вопроса.

BSA
20.06.2014, 14:41
как осуществить преобразование ЕТ в 2 переменные минуты и сек, для меня наверное этот способ более подходящий

lara197a
20.06.2014, 15:36
ЕТ в микросекундах.
Делите на 1000- получаете в секундах.
Делите на 60- получаете минуты.
Из значения в секундах вычитаете минуты умноженные на 60- получаете секунды.
Это наверное 3 класс. :o

Валенок
20.06.2014, 15:46
))) В строку - короче.
Но наверное 5й класс

BSA
20.06.2014, 17:48
Получилось как то так
Time_Work_TP ( IN:=TRUE, PT:=t#1h, );
Time_Work_D :=TIME_TO_DWORD (Time_Work_TP.ET);

HMI_Time_Work := REAL_TO_INT( ( DWORD_TO_REAL ( ( ( Time_Work_D / 60000 ) *100 ) + ( ( Time_Work_D / 1000) MOD 60 ) ) / 100 ) *EXPT (10, 2 ) );

Где HMI_Time_Work регистр панели

Спасибо за подсказку остальное подсмотрел в учебнике 2 го класса :)))))

Валенок
20.06.2014, 18:44
Что-то как-то сложновато с real.
)) И время в виде мм.ss на любителя

BSA
20.06.2014, 22:57
Что-то как-то сложновато с real.
)) И время в виде мм.ss на любителя
Интересно Ваше мнение, а в каком виде мм ss сделали бы Вы ))

Валенок
20.06.2014, 23:23
Ну так пост #2 или #3
(я б наверно #3 - если чего можно и "опс.." написать)

petera
23.06.2014, 12:27
Интересно Ваше мнение, а в каком виде мм ss сделали бы Вы ))
А вариант MM:SS или HH:MM:SS Вас не устроит? Например так
13359 или так 13356

http://youtu.be/uT6bQeEuYfU
Предлагаю два варианта ГМ для панели.
Оба варианта не требуют дополнительных вычислений в ПЛК
Первый вариант предполагает значение в регистре источнике Word уже в секундах, в этом случае
HMI_Time_Work:=TIME_TO_WORD (Time_Work_TP.ET/1000)
где HMI_Time_Work - переменная в модуль 2byte в конфигурации ModBus
максимальное отображаемое время будет чуть больше 18 часов

Второй вариант предполагает значение в регистре источнике DWord в миллисекундах, в этом случае
HMI_Time_Work:=TIME_TO_DWORD (Time_Work_TP.ET)
где HMI_Time_Work - переменная в модуль 4byte в конфигурации ModBus
максимальное отображаемое время будет 99ч 99мин 99с

В демонстрационном проекте в качестве источника данных используются регистры панели их нужно заменить на нужные регистры ПЛК.
Для обоих ГМ настройки минимальные
13357