PDA

Просмотр полной версии : СП270 и время



Malyshevsergey
06.09.2013, 16:17
Здравствуйте!
Никогда этого не надо было но вот понадобились.
Нужно вводить время (не часы реального время) на панели а как это осуществить не знаю и найти примеров не смог. Помогите кто чем сможет.

petera
06.09.2013, 17:23
В каком виде(формате) Вы хотите вводить время? В секундах, в минутах, в часах? Максимальное значение?
Где это время(введенное) будет использоваться? В самой панели или в ПЛК?
Если в ПЛК, то в кодесис физически значение времени сохраняется в переменной типа DWORD, выраженное в миллисекундах, следовательно из панели в ПЛК нужно передавать или WORD или DWORD, в зависимости от диапазона изменения используемой переменной TIME в программе ПЛК.
А в программе делать преобразование
в общем случае Word_To_Time(значение из панели) или DWord_To_Time(значение из панели), если будем вводить с точностью до миллисекунд
в частом случае Word_To_Time(значение из панели*1000) или DWord_To_Time(значение из панели*1000), если будем вводить с точностью до секунды.

petera
06.09.2013, 19:43
А в ответ тишина....:confused:
Или все понятно.:)
Для тех, кто не понял.
Пусть в ПЛК есть две переменные
My_Time -нужно задавать время в формате часы, минуты, секунды с дискретностью 0,1 сек
My_Time1 -нужно задавать время в формате секунды с дискретностью 0,1 сек
В ПЛК можно сделать так
9940
Из панели для переменной My_Time передаются значения часы -4х2, минуты 4х1, 10*сек -4х0.
А для переменной My_Time1 передаются значения 10*сек -4х3.
В панели можно сделать так.
9941
Проект для панели программа для ПЛК во вложении.

UPD
Вложение можно скачать здесь https://drive.google.com/open?id=0B1ENDtxOet_iWGdmRnNvc29MZmc

Malyshevsergey
07.09.2013, 10:24
Да, я, все понял. Благодарю.

Malyshevsergey
09.09.2013, 15:57
Но вот я все же не все понял.
Если мне надо ввести на панели день, час, мин и сек, если я правильно понял то для этого надо четыре регистра и передать их плк. А дальше как мне приобразовать эти регистры в один с форматом time?

petera
09.09.2013, 16:46
Если с дискретностью в оду секунду
My_Time:=DWORD_TO_TIME(1000*(Panel_S+60*Panel_M+36 00*Panel_H+86400*Panel_D))
где-то так:)