Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 | 2 |

 

  Вопрос: Как решить проблему Добавлено: 08.01.12 12:50  

Автор вопроса:  Kaviton

Ответить

  Ответы Всего ответов: 27  

Номер ответа: 16
Автор ответа:
 Winand



Вопросов: 87
Ответов: 2795
 Web-сайт: winandfx.narod.ru
 Профиль | | #16
Добавлено: 11.01.12 21:25
я даже не понимаю в чем может состоять проблема сохранения предыдущего значения. Язык совершенно не важен.

Ответить

Номер ответа: 17
Автор ответа:
 Kaviton



Вопросов: 1
Ответов: 14
 Профиль | | #17 Добавлено: 11.01.12 22:15
Winand пишет:
в любом случае нельзя использовать переменную Vb1 до её объявления var Vb1. И присваивать значение Vb в двух подряд строках бессмысленно.
 

Вы можете предложить что то взамен....может надо использовать куки или массивы для сохранение начального значения или все таки достаточно переменных...

Ответить

Номер ответа: 18
Автор ответа:
 Winand



Вопросов: 87
Ответов: 2795
 Web-сайт: winandfx.narod.ru
 Профиль | | #18
Добавлено: 12.01.12 22:25
если использовать массив, то можно хоть график строить. Вы бы пояснили как именно это работает. Как программа узнает о новом значении? и в какие моменты времени это происходит

Ответить

Номер ответа: 19
Автор ответа:
 Kaviton



Вопросов: 1
Ответов: 14
 Профиль | | #19 Добавлено: 12.01.12 23:43
Попробую объяснить. На самом деле это газовая котельная, в котельной установлен контролер который управляет режимом работы котельной. В контролер сведены все необходимые рабочие параметры (температуры, давления, какое оборудование в работе.........) которые необходимы для управления, в том числе и показания газового счетчика, который передает свои показания. Эти показания (в контролере) меняются в момент изменения показаний самого счетчика. На самом деле на самом счетчике имеется свой корректор, который показывает все параметры газа (давление, температуру, количество газа, моментальный расход....), все эти показания я вижу на корректоре счетчика, и все они передаются в режиме реального времени через модем в газовую компанию. НО нам разрешили и выдали только один сигнал с газового счетчика это его показания, т.е. показания Vb количество газа на данный момент, ну это типа как показания водо счетчика, эти показания накопительные. На самом счетчике который считает и передает показания установлен обычный геркон, и замыкания контактов зависит от расхода газа, если большой расход контакты замыкаются чаще, и показания меняются быстрее, если медленнее, значит все наоборот.
Далее все эти показания контролер передает на сервер, показания передаются с некоторой задержкой каждые 5 миллисекунд, это время обмена данными между контролером и сервером. На сервере установлены несколько программ которые преобразуют все сигналы в графическую картинку и позволяющую управлять котельной в режиме реального времени с любого компьютера в режиме реального времени. Одна из этих программ это SKADA, в ней собственно все программирование и происходит, я не имею ввиду режим управления котельной, это делает контролер в котельной, я имею ввиду управления котельной или задание или изменение каких либо процессов, ручное управление и так далее.
Так вот мы имеем изменение показаний газового счетчика в режиме реального времени это одна переменная....и которую нужно пересчитать в другую......сейчас на счетчике 100 через некоторое время 200, надо (200-100/(t2-t1), еще через какое то время показания изменились на 300, надо (300-200)/(t3-t2)

Ответить

Номер ответа: 20
Автор ответа:
 Ким Чен Ир



Вопросов: 0
Ответов: 140
 Профиль | | #20 Добавлено: 13.01.12 01:56
В scada есть, как оказалось, встроенный редактор, со своим веселым синтаксисом:
  1. Global Real v1 = 0;
  2. Function Real MyFunc(Real v2)
  3.   Real ret = (v2 - v1);
  4.   v1 = v2;
  5.   Return (ret);
  6. End

Ответить

Номер ответа: 21
Автор ответа:
 Winand



Вопросов: 87
Ответов: 2795
 Web-сайт: winandfx.narod.ru
 Профиль | | #21
Добавлено: 13.01.12 15:56
t2,3 - это время, когда присланы значения? а если линия плохая и они будут приходить с разной скоростью?

Ответить

Номер ответа: 22
Автор ответа:
 Kaviton



Вопросов: 1
Ответов: 14
 Профиль | | #22 Добавлено: 13.01.12 16:39
Winand пишет:
t2,3 - это время, когда присланы значения? а если линия плохая и они будут приходить с разной скоростью?


Связь между контролером и сервером устойчивая, обмен данными происходят каждые 5 миллисекунд и и естественно обновления происходят каждые 5 миллисекунд, т.е. за одну секунду обновления происходят 200 раз, а вот значения изменения показаний счетчика меняются во времени и зависит это от расхода газа. Расход газа величина не постоянная, зависит от уличной температуры, если на улице холодно значит расход больше, и показания меняются часто, если тепло на улице то показания меняются медленнее. В данное время когда на улице около нуля показания изменяются в районе 2 минут...

Ответить

Номер ответа: 23
Автор ответа:
 Kaviton



Вопросов: 1
Ответов: 14
 Профиль | | #23 Добавлено: 13.01.12 16:46
Ким Чен Ир пишет:
Global Real v1 = 0;
Function Real MyFunc(Real v2)
  Real ret = (v2 - v1);
  v1 = v2;
  Return (ret);
End



Протестировал данный скрипт, у меня почему то не работает......может что то не правильно делаю.......

Ответить

Номер ответа: 24
Автор ответа:
 Winand



Вопросов: 87
Ответов: 2795
 Web-сайт: winandfx.narod.ru
 Профиль | | #24
Добавлено: 13.01.12 18:38
это не скрипт, а функция, вычисляющая дельту между показаниями. Естественно её нужно вызывать откуда-то. Но мы не знаем как конкретно вы используете данный код.

Ответить

Номер ответа: 25
Автор ответа:
 Kaviton



Вопросов: 1
Ответов: 14
 Профиль | | #25 Добавлено: 13.01.12 18:56
Winand пишет:
это не скрипт, а функция, вычисляющая дельту между показаниями. Естественно её нужно вызывать откуда-то. Но мы не знаем как конкретно вы используете данный код.


Допустим var Vb = getTag( 'queu'), Vb это присвоение переменной, показания счетчика, а queu это адрес по которому обращаемся к счетчику

Ответить

Номер ответа: 26
Автор ответа:
 Winand



Вопросов: 87
Ответов: 2795
 Web-сайт: winandfx.narod.ru
 Профиль | | #26
Добавлено: 13.01.12 20:32
Соответственно нужно Vb = MyFunc(getTag('queu'))
В первый раз выдаст сам переданный параметр, а в последующие разы разницу значений

Ответить

Номер ответа: 27
Автор ответа:
 Kaviton



Вопросов: 1
Ответов: 14
 Профиль | | #27 Добавлено: 13.01.12 21:50
Winand пишет:
Соответственно нужно Vb = MyFunc(getTag('queu'))
В первый раз выдаст сам переданный параметр, а в последующие разы разницу значений

Попробовал протестировать, функция не работает, скрипт выдает ошибку

Ответить

Страница: 1 | 2 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам