Страница 1 из 1

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

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

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

Добавлено: 30 янв 2014, 14:48
Михайло
У Сименса есть функция MOVE, которая позволяет конвертировать WORD в S5TIME, WORD в INT и т.д. У Випы все ведь похоже?

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

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

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

Добавлено: 12 фев 2014, 15:02
service
c помощью MOVE преобразовал WORD в S5TIME. преобразованную переменную на вход TV таймера. как расчитать время и задать его переменной типа WORD?

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

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

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

Добавлено: 12 фев 2014, 15:49
service
да. в один и тот же таймер разные уставки времени. а наглядным примером не поможете, в степе, например?

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

Добавлено: 12 фев 2014, 19:40
Михайло
могу, только все на работе. Просто надо не забыть.

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

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

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

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

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

Добавлено: 16 май 2014, 10:57
service
проверял в симуляторе. если подаешь на вход TV таймера больше 9-ти секунд плк в симуляторе переходит в стоп. из картинки видно, что 11 секунд уже нет на входе TV. что посоветуете?

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

Добавлено: 16 май 2014, 11:54
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

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

Добавлено: 16 май 2014, 11:55
ward
например для одной секунды будет выглядеть в ворде как: 2#0010_0000_0000_0001

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

Добавлено: 16 май 2014, 12:00
ward
можешь использовать тогда формат тайм и функцию для перевода в S5TIME - FC40 TIM_S5TI.

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

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

Добавлено: 16 май 2014, 12:25
service
спасибо!

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

Добавлено: 21 май 2014, 04:46
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 // запуск таймера

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

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

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

Добавлено: 22 май 2014, 04:14
Strohmann
Диапазон ввода ограничивается в свойствах тега в wincc flexible2008 (limits -> upper = 999, lower =1 )