Понятно, буду думать как это обойти
Вид для печати
Понятно, буду думать как это обойти
Хотел уточнить, а почему меняется метка времени, если выполняется опрос объекта опс-сервером по заданному периоду, даже если значение переменной не меняется? Скада как-то это узнает и выполняет полный опрос? Ещё вопрос, если опрос переменной выполнять не по изменению, а периодически, на что это повлияет?
А почему такой же флаг не выставляется после опроса по команде PollCurrentDevice? Можно как то принудительно его выставлять после опроса по этой команде?Цитата:
Сообщение от SCADAMaster
Нет, я имею ввиду если в свойствах опроса переменной изменитьЦитата:
Сообщение от SCADAMaster
Вложение 17905
Мне казалось, что эта переменная будет будет опрашиваться постоянно и при изменении метки времени, это будет видно, но оказалось что это не так
Я вам уже наверное надоел, просто хочется разобраться. Пошел следующим путём. Создал тэг в opc-сервере формата string и записываю в него метку времени переменной Pust.
Запускаю сервер и получаю следующее:
Мне не понятно почему записывается метка времени предыдущего опроса?Код:
25-04-2015 20:58:53.360 poll:Запись в гайдара-99а.гайдара-99а.poll значения False
25-04-2015 20:58:38.959 poll_time:Запись в гайдара-99а.гайдара-99а.poll_time значения 2015-04-25 20:57:59.080
25-04-2015 20:58:38.959 гайдара-99а.гайдара-99а:Стоп опроса устройства (t = 4078 ms) (H41 0,1573,6 )
25-04-2015 20:58:37.380 гайдара-99а:Соединение установлено xx.xx.xxx.x 502
25-04-2015 20:58:34.933 гайдара-99а:Попытка соединения xx.xx.xxx.x 502
25-04-2015 20:58:34.882 гайдара-99а.гайдара-99а:Старт опроса устройства
25-04-2015 20:58:34.882 poll:Запись в гайдара-99а.гайдара-99а.poll значения True
25-04-2015 20:58:06.880 poll:Запись в гайдара-99а.гайдара-99а.poll значения False
25-04-2015 20:57:59.080 poll_time:Запись в гайдара-99а.гайдара-99а.poll_time значения 2015-04-25 20:57:24.586
25-04-2015 20:57:59.080 гайдара-99а.гайдара-99а:Стоп опроса устройства (t = 7493 ms) (H41 0,1594,7 )
25-04-2015 20:57:57.478 гайдара-99а:Соединение установлено xx.xx.xxx.x 502
25-04-2015 20:57:51.638 гайдара-99а:Попытка соединения xx.xx.xxx.x 502
25-04-2015 20:57:51.587 гайдара-99а.гайдара-99а:Старт опроса устройства
25-04-2015 20:57:51.587 poll:Запись в гайдара-99а.гайдара-99а.poll значения True
25-04-2015 20:57:24.586 poll_time:Запись в гайдара-99а.гайдара-99а.poll_time значения 2015-04-25 20:57:20.125
25-04-2015 20:57:24.586 гайдара-99а.гайдара-99а:Стоп опроса устройства (t = 3410 ms) (H41 0,1474,5 )
25-04-2015 20:57:23.107 гайдара-99а:Соединение установлено xx.xx.xxx.x 502
25-04-2015 20:57:21.177 гайдара-99а:Попытка соединения xx.xx.xxx.x 502
25-04-2015 20:57:21.177 гайдара-99а.гайдара-99а:Старт опроса устройства
25-04-2015 20:57:21.172 Server:Cтарт конфигурации C:\ProgramData\InSAT\MasterOPC Universal Modbus Server\SERVERCFG\gaidara-99a.mbp
25-04-2015 20:57:21.172 Server:MasterOPC Universal Modbus Server Demo 32 Build - 3.1.3
В общем получил желаемое, добавив дополнительный тэг типа "double", в него пишу метку времени от тэга "Pust", а в скаде беру метку времени от этого тэга.
Изврат конечно, но работает.Код:count=0;
-- Initialization
function OnInit()
end
-- Uninitialization
function OnClose()
end
-- Processing
function OnRead()
tv,tq,ts = server.ReadCurrentTag();
if tq==192 then
server.WriteCurrentTag(tv,tq);
ts1=time.StringToTimeStamp(ts)
server.WriteTagByRelativeName( "poll_time", ts1,192 );
end;
end