преобразование переменной WORD в TIME

Автоматизация технологических процессов, системы управления, АСУ ТП, АСКУЭ, программирование ПЛК, человеко-машинный интерфейс, сетевое оборудование, протоколы
Ответить
service
Специалист
Сообщения: 254
Зарегистрирован: 16 ноя 2012, 10:23

преобразование переменной WORD в TIME

Сообщение service »

Здравствуйте!
Возможно ли с помощью программы WinPLC для плк Vipa производить преобразование Word в Time?

Михайло
Администратор
Сообщения: 4094
Зарегистрирован: 19 сен 2012, 19:16

Re: преобразование переменной WORD в TIME

Сообщение Михайло »

У Сименса есть функция MOVE, которая позволяет конвертировать WORD в S5TIME, WORD в INT и т.д. У Випы все ведь похоже?

Аватара пользователя
Seregas
Любитель
Сообщения: 39
Зарегистрирован: 07 сен 2013, 19:10

Re: преобразование переменной WORD в TIME

Сообщение Seregas »

Service, Работаем с Випой, все аналогично.
Советую вам перейти на Step 7, это более стабильный и удобный софт чем WinPlc.

service
Специалист
Сообщения: 254
Зарегистрирован: 16 ноя 2012, 10:23

Re: преобразование переменной WORD в TIME

Сообщение service »

c помощью MOVE преобразовал WORD в S5TIME. преобразованную переменную на вход TV таймера. как расчитать время и задать его переменной типа WORD?

Михайло
Администратор
Сообщения: 4094
Зарегистрирован: 19 сен 2012, 19:16

Re: преобразование переменной WORD в TIME

Сообщение Михайло »

У тебя задача: в один и тот же таймер загружать разные уставки времени? Все гораздо проще, чем ты думаешь. С помощью нескольких команд MOVE грузишь разные уставки (в формате S5T#1H10M30S) по разным условиям в одну переменную, насколько я помню, типа WORD, если не получится, то S5TIME. Эта переменная используется непосредственно в таймере, этот таймер также должен быть единственным блоком.

service
Специалист
Сообщения: 254
Зарегистрирован: 16 ноя 2012, 10:23

Re: преобразование переменной WORD в TIME

Сообщение service »

да. в один и тот же таймер разные уставки времени. а наглядным примером не поможете, в степе, например?

Михайло
Администратор
Сообщения: 4094
Зарегистрирован: 19 сен 2012, 19:16

Re: преобразование переменной WORD в TIME

Сообщение Михайло »

могу, только все на работе. Просто надо не забыть.

service
Специалист
Сообщения: 254
Зарегистрирован: 16 ноя 2012, 10:23

Re: преобразование переменной WORD в TIME

Сообщение service »

c помощью MOVE преобразовал WORD в S5TIME. преобразованную переменную на вход TV таймера. как расчитать время и задать его переменной типа WORD?

Михайло
Администратор
Сообщения: 4094
Зарегистрирован: 19 сен 2012, 19:16

Re: преобразование переменной WORD в TIME

Сообщение Михайло »

Считай, что целые числа, с которыми ты работаешь - это число миллисекунд. Например, 5000 в формате WORD = 5 секунд в формате S5TIME

service
Специалист
Сообщения: 254
Зарегистрирован: 16 ноя 2012, 10:23

Re: преобразование переменной WORD в TIME

Сообщение service »

проверял в симуляторе. если подаешь на вход TV таймера больше 9-ти секунд плк в симуляторе переходит в стоп. из картинки видно, что 11 секунд уже нет на входе TV. что посоветуете?
У вас нет необходимых прав для просмотра вложений в этом сообщении.

ward
Специалист
Сообщения: 415
Зарегистрирован: 12 ноя 2012, 08:44

Re: преобразование переменной WORD в TIME

Сообщение ward »

Михайло писал(а):Считай, что целые числа, с которыми ты работаешь - это число миллисекунд. Например, 5000 в формате WORD = 5 секунд в формате S5TIME
ты что то путаешь, это формат TIME, а не S5TIME, перевод идет по тому как в справке написано:
ou can pre-load a time value using either of the following formats:

· W#16#txyz

· Where t = the time base (that is, the time interval or resolution)

· Where xyz = the time value in binary coded decimal format

· S5T#aH_bM_cS_dMS

· Where H = hours, M = minutes, S = seconds, and MS = milliseconds;
user variables are: a, b, c, d

· The time base is selected automatically, and the value is rounded to the next lower number with that time base.

The maximum time value that you can enter is 9,990 seconds, or 2H_46M_30S.

Time Base

Bits 12 and 13 of the timer word contain the time base in binary code. The time base defines the interval at which the time value is decremented by one unit. The smallest time base is 10 ms; the largest is 10 s.

Time Base Binary Code for the Time Base
10 ms......00
100 ms......01
1 s........10
10 s.......11

ward
Специалист
Сообщения: 415
Зарегистрирован: 12 ноя 2012, 08:44

Re: преобразование переменной WORD в TIME

Сообщение ward »

например для одной секунды будет выглядеть в ворде как: 2#0010_0000_0000_0001

ward
Специалист
Сообщения: 415
Зарегистрирован: 12 ноя 2012, 08:44

Re: преобразование переменной WORD в TIME

Сообщение ward »

можешь использовать тогда формат тайм и функцию для перевода в S5TIME - FC40 TIM_S5TI.

Еще проще - сразу использовать IEC таймера, там ниче переводить не нужно!

service
Специалист
Сообщения: 254
Зарегистрирован: 16 ноя 2012, 10:23

Re: преобразование переменной WORD в TIME

Сообщение service »

спасибо!

Strohmann
Дилетант
Сообщения: 23
Зарегистрирован: 26 апр 2014, 05:58

Re: преобразование переменной WORD в TIME

Сообщение Strohmann »

Я делал так. Для вычисления фактически прошедшего времени с момента запуска счётчика, нужна была известная база времени, поэтому жестко задавал её равной 1 секунде (или есть более простой способ, чем прошедшее время = (уставка таймера - таймер)?)
Установка таймера
// Запуск или перезапуск таймера
AN #T

// Формирование уставки таймера в формате
// Например, W#16#2030, где 2 - база времени 1с, 030- уставка в BCD 30с
// (см. справку "Размещение таймера в памяти и его компоненты")

L W#16#2000 // маска базы времени, для инструкции OW
L #iTime_Interval
ITB // преобразование уставки из INT в BCD
OW // добавляем базу времени
SF #T // запуск таймера

ward
Специалист
Сообщения: 415
Зарегистрирован: 12 ноя 2012, 08:44

Re: преобразование переменной WORD в TIME

Сообщение ward »

красиво, но как у тебя ограничение осуществляется??? Оператор надолбит тринадцать девяток, нажмет ОК, потом будет жопа)

Strohmann
Дилетант
Сообщения: 23
Зарегистрирован: 26 апр 2014, 05:58

Re: преобразование переменной WORD в TIME

Сообщение Strohmann »

Диапазон ввода ограничивается в свойствах тега в wincc flexible2008 (limits -> upper = 999, lower =1 )

Ответить