0

Бета тестирование версии 4.4

demitsury 6 лет назад в Общие вопросы обновлен 5 лет назад 0
Сюда постим все, что касается тестирования версии 4.4:
ошибки, недоработки, пожелания.
Добрый день!
Не совсем по теме, будем считать что тестирование продолжается ;)

1) На странице: http://simplight.ru/news/118-05-05-2015-sl-4-4 приведены примеры, которые не скачиваются, поскольку браузер сообщат следующее "The requested URL /simplight.ru/files/4.4/time_EQ_example.slz was not found on this server."

2) в help забыли добавить описание новых функций по работе с глобальными переменными, нет там ни слова про ClearGlobalVar, FlushGlobalVarCache, GetGlobalVarDef

3) кстати о глобальных переменных.
Читаю "… FlushGlobalVarCache принудительная запись на диск кэша глобальных переменных. На диск сохраняются те глобальные переменные у которых при назначении глобальной переменной был установлен в True – флаг «AStored»….".
Зацепило слово "назначении".
Вопрос:
Глобальная переменная объявляется функцией SetGlobalVar("per", 0, true). И этой же функцией меняется значение этой же глобальной переменной. А если в скрипте ниже будет написано SetGlobalVar("per", 1), то эта глобальная переменная перестанет сохраняться на диске? То есть, другими словами, если глобальная переменная должна сохраняться на диске, то надо ли при любом изменении этой глобальной переменной устанавливать флаг AStored ?

С уважением, Кондратенко Анатолий
Новочеркасск
День добрый.

1) На странице: http://simplight.ru/news/118-05-05-2015-sl-4-4 приведены примеры, которые не скачиваются, поскольку браузер сообщат следующее "The requested URL /simplight.ru/files/4.4/time_EQ_example.slz was not found on this server."

ОК. Спасибо. Проверим.

2) в help забыли добавить описание новых функций по работе с глобальными переменными, нет там ни слова про ClearGlobalVar, FlushGlobalVarCache, GetGlobalVarDef

Да, описание добавим.

3) кстати о глобальных переменных.
Читаю "… FlushGlobalVarCache принудительная запись на диск кэша глобальных переменных. На диск сохраняются те глобальные переменные у которых при назначении глобальной переменной был установлен в True – флаг «AStored»….".
Зацепило слово "назначении".
Вопрос:
Глобальная переменная объявляется функцией SetGlobalVar("per", 0, true). И этой же функцией меняется значение этой же глобальной переменной. А если в скрипте ниже будет написано SetGlobalVar("per", 1), то эта глобальная переменная перестанет сохраняться на диске? То есть, другими словами, если глобальная переменная должна сохраняться на диске, то надо ли при любом изменении этой глобальной переменной устанавливать флаг AStored ?

Флаг - "AStored" учитывается только при первоначальном объявлении переменной, если переменная уже была объявлена ранее то вызов SetGlobalVar изменит только значение переменной.
Спасибо за оперативный ответ.
Остались сомнения.
"… если переменная уже была объявлена ранее …".
А если первоначальное объявление, сделанное внутри AsFirstRun, состоялось много месяцев назад и с тех пор глобальная переменная много раз меняла значение, программа много раз перегружалась…
Вся красота глобальной переменной (IMHO) - это возможность сохранить значение между перезапусками программ, перегрузками сервера.
Вопрос: то есть перезапустив программу и обнаружив, что в глобальной переменной есть что-то, то нет необходимости объявлять эту переменную с флагом AStored ?

С уважением, Кондратенко Анатолий
Новочеркасск
Спасибо за оперативный ответ.
Остались сомнения.
"… если переменная уже была объявлена ранее …".
А если первоначальное объявление, сделанное внутри AsFirstRun, состоялось много месяцев назад и с тех пор глобальная переменная много раз меняла значение, программа много раз перегружалась…
Вся красота глобальной переменной (IMHO) - это возможность сохранить значение между перезапусками программ, перегрузками сервера.
Вопрос: то есть перезапустив программу и обнаружив, что в глобальной переменной есть что-то, то нет необходимости объявлять эту переменную с флагом AStored ?

Если есть полная уверенность что переменная точно ранее объявлена, и присутствует в кэш файле - то объявлять её не надо. Но я бы внутри AsFirstRun делал проверку на наличие переменной, функцией GetGlobalVarDef(имя переменной'', -1), т.е. в случае наличия переменной в кэше функция вернёт значение переменной, если переменной нет то будет возвращено значение которое было указанно вторым параметром в функции.

Р.S. мне передали что ссылки на примеры исправили.
Добрый день.
Не работает пример с функцией получения из под скрипта времени работы оборудования.
Добрый день.

Не работает пример с функцией получения из под скрипта времени работы оборудования.

Данные в БД есть? Скрипт не отдает расчетных значений?
На графике виртуальную переменную вижу.
скрипт выдает нули.
На графике виртуальную переменную вижу.

Ок. Скиньте проект на почту, посмотрим.
Отправил

Хорошо.Пока нет письма. Ждем.
Отправил

Хорошо. Пока нет письма. Ждем.
Писмо в 12 метров.
РАБОТАЮЩИЙ ПРИМЕР
{Пример вычисления времени работы и простоя насосов}
var
date1, date2: TDateTime;
val: TDateTime;
resOn, resOff: integer;
posit: string;
val1:word;
const
FORMAT_RESULT = '%d дней, %d час. %d мин. %d сек.';

// перевод из секунд в дни ,часы,минуты и секунды
function GetTimeString(ASec: integer): string;
var
sec: integer;
day, hour, min: word;
begin
sec := ASec;
// кол - дней
day := Trunc(sec / 86400);
if day <> 0 then
sec := sec - (day * 86400);

// кол - часов
hour := trunc(sec / 3600);
if hour <> 0 then
sec := sec - (hour * 3600);

// кол - минут
min := trunc(sec / 60);
if min <> 0 then
sec := sec - (min * 60);

result := Format(FORMAT_RESULT, [day, hour, min, sec]);
end;

begin
val := ReadValue('Расчет');
val1 := ReadValue('Сигнальный');
posit := ReadValue('Combo');
// reset input
if val = -1 then
begin
WriteValue(' Сигнальный ',0);
date1 :=0;
date2 := 0;
WriteValue('D1',date1);
WriteValue('D2',date2);
Exit;
end
else
if (date1=0) and (val > 0) then
begin
date1 := val;
WriteValue('D1',date1);
WriteValue(' Сигнальный ',1);
WriteValue(‘Расчет ', 0);
Exit;
end
else
if (date2=0) and (val > 0) then
begin
date2 := val;
WriteValue('D2',date2);
WriteValue(' Сигнальный ',2);
WriteValue(' Расчет ',0);
Exit;
end
else
if val = -2 then
begin
if date1 > date2 then
begin
date1 := 0;
date2 := 0;
WriteValue(' Сигнальный ',0);
WriteValue(' Расчет ',0);
WriteValue('D1',date1);
WriteValue('D2',date2);
Exit;
end;
if ((val = -2)and (date1 < date2) ) then
//posit := ReadValue('Combo');

if (posit = 'Насос 1') then
begin
GetOperationTimeValueFromDB(date1, date2, 'Skvajina1', resOn, resOff);
WriteValue('работал 1', GetTimeString(resOn));
WriteValue('не работал 1', GetTimeString(resOff));
WriteValue(' Сигнальный ',3);
end
else
if (posit = 'Насос 2') then
begin
GetOperationTimeValueFromDB(date1, date2, 'Skvajina2', resOn, resOff);
WriteValue(' работал 2', GetTimeString(resOn));
WriteValue('не работал 2', GetTimeString(resOff));
WriteValue(' Сигнальный ',4);
end
else
if (posit = 'Насос 3')then
begin
GetOperationTimeValueFromDB(date1, date2, 'Skvajina3', resOn, resOff);
WriteValue(' работал 3', GetTimeString(resOn));
WriteValue('не работал 3', GetTimeString(resOff));
WriteValue(' Сигнальный ',5);
end;
CloseMnemo('Test');
end;
end.

Все каналы виртуальные

Сигнальный – word;
Расчет – (Cкрипт по таймеру) – DateTime;
Работал – string;
Не работал – string;
Инициализация – (скрипт по таймеру) Double;
Combo – string;
Насос 1 – Bool;
Насос 2 - Bool;
Насос 3 - Bool;

Остальное как в примере http://simplight.ru/files/4.4/time_EQ_example.slz
Скачивать методом – «Сохранить объект как»
Добрый день!

Разрешите тоже задать вопрос по скрипту.
Задался целью доставать из базы статистическую информацию.
Набросал примерную функцию:
// Функция чтения базы данных и запись статистических данных в текстовый файл
// возвращает 1 при удачном завершении, соответственно 0 - при неудаче
// i = Statistika("Сигнальный", "10.06.2015 01:00:00", "10.06.2015 03:00:00");
// if(i==1) {ShowMessageBox("—","Всё готово!",1);} else {ShowMessageBox("—","Произошла ошибка!",1);}
int Statistika(string sName, string sBegin, string sEnd)
{
string stroka;
int count=0, i, iValue, iVozvrat=1;
TMemoryStream Stream;
word error;

TDateTime dtBegin = StrToDateTime(sBegin);
TDateTime dtEnd = StrToDateTime(sEnd);
TDateTime dtDate;

ShowMessageBox("—", "Приступаем!", 1);

Stream = TMemoryStream.Create;
error = StreamReadFromDatabase(dtBegin, dtEnd, sName, Stream);
if(error == 0)
{
count = GetCountRecordToStream(Stream);
for(i=0;i<count;i++)
{
GetValueFromStream(Stream, dtDate, iValue);
stroka = " " + DateTimeToStr(dtDate) + " : " + IntToStr(iValue);
SaveToTxtFile("d:\\history.txt", stroka);
}
}
else { ShowMessageBox("—", "Ошибка считывания базы!", 1); iVozvrat=0; }
Stream.free;
return iVozvrat;
}

в результате работы получаю текстовый файл с таким содержимым:

30.12.1899 : 0
17.03.1900 : 77
30.12.1899 : 0
17.03.1900 : 77
30.12.1899 : 0

Не подскажите, в чем проблема?

С уважением, Кондратенко Анатолий
Новочеркасск
Добрый день, Анатолий.

Не подскажите, в чем проблема?

Анатолий, попробуйте в качестве теста напрямую указать имя канала в функции - [error = StreamReadFromDatabase(dtBegin, dtEnd, имя канала, Stream)]
Проверим одну догадку.
Измениил

error = StreamReadFromDatabase(dtBegin, dtEnd, "Сигнальный", Stream);

результат остался неизменным
Измениил

error = StreamReadFromDatabase(dtBegin, dtEnd, "Сигнальный", Stream);

результат остался неизменным

ок. спс. В базе за этот период данные есть? В "просмотре архивов" экспортируйте данные в csv,и на почту к нам закиньте.
да данные в базе есть
они были созданы функцией записи:

// функция записи в базу данных заданных значений с шагом 1 секунда в пределах одних суток
// возвращает 1 при удачной записи, возвращает 0 - при неудаче (см.пример ниже)
// i = SaveBasePer("Сигнальный", "10.06.2015 01:00:00", "10.06.2015 03:01:00", 77);
// if(i==1) {ShowMessageBox("Заголовок","Запись в базу завершена успешно!",1);} else {ShowMessageBox("Заголовок","Ошибка записи!",1);}

int SaveBasePer(string sName, string sBegin, string sEnd, int iPer)
{
string stroka = sBegin, sHour, sMin, sSec;
int iSec = StrToInt(Copy(sBegin,18,2));
int iMin = StrToInt(Copy(sBegin,15,2));
int iHour = StrToInt(Copy(sBegin,12,2));

if(sName=="") { ShowMessage("Ошибка! Не задано имя канала!"); return 0; }
if(GetQuality(sName)!=192) { ShowMessage("Ошибка! Проверьте правильность написания имени канала!"); return 0; }
ShowMessage("Все готово для начала процесса зааписи! \n Нажмите ОК и ожидайте сообщения об окончании процесса записи!");
do
{
SaveChannelToDB(sName, StringToDateTime(stroka, "dd.mm.yyyy hh:nn:ss") , iPer);
iSec = iSec + 1;
if(iSec==60) {iSec=0; iMin=iMin+1;}
if(iMin==60) {iMin=0; iHour=iHour+1;}
sHour = IntToStr(iHour); if(iHour<10) sHour = "0" + sHour;
sMin = IntToStr(iMin); if(iMin<10) sMin = "0" + sMin;
sSec = IntToStr(iSec); if(iSec<10) sSec = "0" + sSec;
stroka = Copy(sBegin,1,11) + sHour + ":" + sMin + ":" + sSec;
}
while (stroka < sEnd);
return 1;
}

экспортный файл отправил почтой
Добрый день, Анатолий.

На первый взгляд в скрипах все нормально. Давайте попробуем такой вариант:

[spoiler]
// Функция чтения базы данных и запись статистических данных в текстовый файл // возвращает 1 при удачном завершении, соответственно 0 - при неудаче // i = Statistika("Сигнальный", "10.06.2015 01:00:00", "10.06.2015 03:00:00"); // if(i==1) {ShowMessageBox("—","Всё готово!",1);} else {ShowMessageBox("—","Произошла ошибка!",1);} int Statistika(string sName, string sBegin, string sEnd) { string stroka; int count=0, i, iValue, iVozvrat=1; TMemoryStream Stream; word error; TDateTime dtBegin = StrToDateTime(sBegin); TDateTime dtEnd = StrToDateTime(sEnd); TDateTime dtDate; ShowMessageBox("—", "Приступаем!", 1); Stream = TMemoryStream.Create; error = StreamReadFromDatabase(dtBegin, dtEnd, sName, Stream); if(error == 0) { stream.SaveToFile("d:\\stream.bin"); count = GetCountRecordToStream(Stream); for(i=0;i<count;i++) { GetValueFromStream(Stream, dtDate, iValue); stroka = " " + DateTimeToStr(dtDate) + " : " + IntToStr(iValue); SaveToTxtFile("d:\\history.txt", stroka); } } else { ShowMessageBox("—", "Ошибка считывания базы!", 1); iVozvrat=0; } Stream.free; return iVozvrat; } [/spoiler]

результирующий файл stream.bin пришлите на почту.
Добрый день!
После обновления до версии 4.4 ProModbus (unlimit) на станции разработчика после положенной работы Монитора 1 час, регулярно стала выпадать ошибка "Исключительная ситуация EInvalidPointer в модуле Monitor.exe по адресу 000041В1", что делать?
День добрый.

После обновления до версии 4.4 ProModbus (unlimit) на станции разработчика после положенной работы Монитора 1 час, регулярно стала выпадать ошибка "Исключительная ситуация EInvalidPointer в модуле Monitor.exe по адресу 000041В1", что делать?

Т.е. если я правильно понял то Simp в режиме разработчика, после прошествия часа работы выкидывает ошибку? В режиме с лицензией ошибка не появляется?
На лицензированной станции еще не обновлял.
После обновления до версии 4.4 ProModbus (unlimit) на станции разработчика после положенной работы Монитора 1 час, регулярно стала выпадать ошибка "Исключительная ситуация EInvalidPointer в модуле Monitor.exe по адресу 000041В1", что делать?

Т.е. если я правильно понял то Simp в режиме разработчика, после прошествия часа работы выкидывает ошибку?
Да. И я заметил, что монитор не выгружается. Только принудительно - закрытием приложения.
Да. И я заметил, что монитор не выгружается. Только принудительно - закрытием приложения.

Ок. Я понял. Скорей всего некорректное закрытие драйвера modbas при завершении работы. Мы погоняем у себя, спасибо за сообщение.
Всем доброго!
Возник вопрос по поведению компонентов (слайдер, цифровой задатчик, кнопочный задатчик).
Если на мнемосхеме присутствуют несколько данных элементов то один из них не отображает значение канала, при этом если в него вводишь значение то оно записывается в канал. Если не показывающий элемент удалить и заменить новым то он становится активным при этом перестает работать другой и так по кругу. может кто подскажет в чем проблема?
И еще пожелание необходим продумать организацию доступа к проекту.хорошо бы иметь несколько уровней доступа скажем администратор, оператор( с возможностью изменять параметры), наблюдатель. И хорошо бы что бы монитор работал в фоновом режиме (оператору зачастую незачем наблюдать каналы) для этого и существует мнемосхема на которой в удобной форме отображаются необходимые параметры,а вот открывать окно монитора можно было бы вызовом данного окна с доступом администратора.
А вообще неплохо. Конечно возникло много пожеланий сейчас закончу проект (сейчас он находится на тесте)и отпишусь с пожеланиями и замечаниями.
День добрый.

Возник вопрос по поведению компонентов (слайдер, цифровой задатчик, кнопочный задатчик).
Если на мнемосхеме присутствуют несколько данных элементов то один из них не отображает значение канала, при этом если в него вводишь значение то оно записывается в канал. Если не показывающий элемент удалить и заменить новым то он становится активным при этом перестает работать другой и так по кругу. может кто подскажет в чем проблема?

У элементов "цифровой задатчик", "кнопочный задатчик" в последней версии изменяли алгоритм работы, слайдер ещё в процессе переработки. А проблема состоит в том что один из элементов ввода всегда оставался в "фокусе" ввода. Переработанные элементы теперь должны сами через пять секунд бездействия (отсутствия ввода в элемент) сбрасывать фокус.


И еще пожелание необходим продумать организацию доступа к проекту.хорошо бы иметь несколько уровней доступа скажем администратор, оператор( с возможностью изменять параметры), наблюдатель. И хорошо бы что бы монитор работал в фоновом режиме (оператору зачастую незачем наблюдать каналы) для этого и существует мнемосхема на которой в удобной форме отображаются необходимые параметры,а вот открывать окно монитора можно было бы вызовом данного окна с доступом администратора.
А вообще неплохо. Конечно возникло много пожеланий сейчас закончу проект (сейчас он находится на тесте)и отпишусь с пожеланиями и замечаниями.

Работа над системой авторизации начата, думаю к следующему релизу успеем.
Спасибо за быстрый ответ.
Еще раз всем доброго!
Возник вопрос по использованию элементы "Панель".
А вопрос состоит в том возможно ли изменять цвет шрифта, может программно через скрипт.
Если такая возможность существует просьба показать примерчик на Паскале.
да и еще подымался вопрос по работе с битами вот небольшой пример на Паскале может кому пригодится, работает на ура!

Var
OutWord:Word;
bit0,bit1,bit2,bit3,bit4,bit5,bit6,bit7,bit8,bit9,bit10,bit11,bit12,bit13,bit14,bit15:Word;

Function Bit_To_Word( BitIn:Boolean):word;
begin
If BitIn Then
Result:=1
Else
Result:=0;
End;

Function BitToWord (InBit0,InBit1,InBit2,InBit3,InBit4,InBit5,InBit6,InBit7,
InBit8,InBit9,InBit10,InBit11,InBit12,InBit13,InBit14,InBit15:Word):Word;
Var
n:BitToWord;
Begin
n:=InBit15;
n:=n*2+InBit14;
n:=n*2+InBit13;
n:=n*2+InBit12;
n:=n*2+InBit11;
n:=n*2+InBit10;
n:=n*2+InBit9;
n:=n*2+InBit8;
n:=n*2+InBit7;
n:=n*2+InBit6;
n:=n*2+InBit5;
n:=n*2+InBit4;
n:=n*2+InBit3;
n:=n*2+InBit2;
n:=n*2+InBit1;
n:=n*2+InBit0;
Result:=n;
End;
Begin
Bit0:=Bit_To_Word(ReadValue('1_Bit0'));
Bit1:=Bit_To_Word(ReadValue('1_Bit1'));
Bit2:=Bit_To_Word(ReadValue('1_Bit2'));
Bit3:=Bit_To_Word(ReadValue('1_Bit3'));
Bit4:=Bit_To_Word(ReadValue('1_Bit4'));
Bit5:=Bit_To_Word(ReadValue('1_Bit5'));
Bit6:=Bit_To_Word(ReadValue('1_Bit6'));
Bit7:=Bit_To_Word(ReadValue('1_Bit7'));
Bit8:=Bit_To_Word(ReadValue('1_Bit8'));
Bit9:=Bit_To_Word(ReadValue('1_Bit9'));
Bit10:=Bit_To_Word(ReadValue('1_Bit10'));
Bit11:=Bit_To_Word(ReadValue('1_Bit11'));
Bit12:=Bit_To_Word(ReadValue('1_Bit12'));
Bit13:=Bit_To_Word(ReadValue('1_Bit13'));
Bit14:=Bit_To_Word(ReadValue('1_Bit14'));
Bit15:=Bit_To_Word(ReadValue('1_Bit15'));
OutWord:=BitToWord(Bit0,Bit1,Bit2,Bit3,Bit4,Bit5,Bit6,Bit7,
Bit8,Bit9,Bit10,Bit11,Bit12,Bit13,Bit14,Bit15);
WriteValue('KanWraitPLC',OutWord);
WriteValue('InBitWord_1',OutWord);
End.
Спасибо за быстрый ответ.
Возник вопрос по использованию элементы "Панель".
А вопрос состоит в том возможно ли изменять цвет шрифта, может программно через скрипт.

В текущей версии из под скрипта воздействовать на свойства элемента на мнемосхеме к сожалению нельзя.
Всем доброго!
У элементов "цифровой задатчик", "кнопочный задатчик" в последней версии изменяли алгоритм работы, слайдер ещё в процессе переработки. А проблема состоит в том что один из элементов ввода всегда оставался в "фокусе" ввода. Переработанные элементы теперь должны сами через пять секунд бездействия (отсутствия ввода в элемент) сбрасывать фокус.
Да у этих элементов на самом деле снимается фокус через пять секунд но вот значение в канале в элементе не отображается и это совсем неудобно так как оператору очень сложно объяснить что на самом деле уставка не равна 0.
Ребята вы прорвете пожалуйста почему один из элементов не отображает значение в канале даже после снятия фокуса.
День добрый.

Ребята вы прорвете пожалуйста почему один из элементов не отображает значение в канале даже после снятия фокуса.

Ок. Уже проверяем.
Ser_y70,
Чтобы уставка отображалась не как ноль мы используем два апплета
задатчик + текст одного и того же канала.

[spoiler]
[/spoiler]
simplight_2015-07-02-2.png
Да это конечно выход из положения.
Но мнемосхема и так напичкана элементами и не хотелось бы ее усложнять.
Добрый вечер.

Да у этих элементов на самом деле снимается фокус через пять секунд но вот значение в канале в элементе не отображается и это совсем неудобно так как оператору очень сложно объяснить что на самом деле уставка не равна 0.
Ребята вы прорвете пожалуйста почему один из элементов не отображает значение в канале даже после снятия фокуса.

Проверили у себя, повторить поведение компонента как у Вас не можем. Вы использовали новые элементы или элементы от старых версий? Если элементы старые попробуйте удалить и заново добавить задатчик. Еще одно уточнение, какой задатчик себя так ведет - "цифровой задатчик" или "кнопочный задатчик"?
Добрый день!
После обновления до версии 4.4 ProModbus (unlimit) на станции разработчика после положенной работы Монитора 1 час, регулярно стала выпадать ошибка "Исключительная ситуация EInvalidPointer в модуле Monitor.exe по адресу 000041В1", что делать?

Добавлю, если подождать 5 минут и с нова запустить Монитор, ошибка не выскакивает.
Добрый день!

После обновления до версии 4.4 ProModbus (unlimit) на станции разработчика после положенной работы Монитора 1 час, регулярно стала выпадать ошибка "Исключительная ситуация EInvalidPointer в модуле Monitor.exe по адресу 000041В1", что делать?

Обновите версию. Скачать можно по старым ссылкам.
При использовании Modbus драйвера возникла проблема записи переменной типа UInt32 в регистр 3409 (преобразователь частоты FC302 Danfoss). При этом значение данного регистра считывается нормально. Проверял в Lectus OPC, там удалось записать значение в этот регистр только после установки флажка "Старшим регистром вперед".
День добрый.

При использовании Modbus драйвера возникла проблема записи переменной типа UInt32 в регистр 3409 (преобразователь частоты FC302 Danfoss). При этом значение данного регистра считывается нормально. Проверял в Lectus OPC, там удалось записать значение в этот регистр только после установки флажка "Старшим регистром вперед".

Попробовали все варианты с последовательностью байт в настройках modbus драйвера?
Доброго дня. Да, перепробывал все варианты. Читать получается, а записать - нет.
Да, перепробывал все варианты. Читать получается, а записать - нет.

Ок. Понял. Команды записи modbus меняли в настройках?
Да, в Lectus OPC получилось записать с командой 16.
Да, в Lectus OPC получилось записать с командой 16.

В SIMP этой командой не удалось тоже записать? Попробуйте для теста к примеру сервер от инсата настроить, на запись этой переменной.
Версия 4.4.0.149.
В Мониторе по двойному клику на выбранном канале в списке параметров отображается тренд реального времени.
Если в данном тренде сперва включить курсор, а затем изменить интервал времени, то все функциональные кнопки окна тренда перестают корректно работать (закрытие / открытие тренда не помогает). Лечится только перезапуском Монитора.
В настройках исторического тренда в закладке "Шкала времени" только поле "Часы" ("Начало шкалы") может быть изменено с цифровой клавиатуры, все остальные - только кнопками больше/меньше (стрелками вверх / вниз).
Выглядит как недоработка в виду того, что одно поле все же сделано толково.
Если же это не баг, а "фича", то желательно все же переделать, ибо крайне неудобно.
Добрый день!

Когда ожидать новую версию системы ?
Будет ли там место диспетчера (т.е. SIMP Light SPACE) ?

С уважением, Кондратенко Анатолий
Новочеркасск
День добрый.

Когда ожидать новую версию системы ?
Будет ли там место диспетчера (т.е. SIMP Light SPACE) ?

Новый релиз ориентировочно через 1,5 месяца. Рабочее место диспетчера будет, но не в этом релизе, а после переработки сетевого протокола, работы по нему уже начаты.
Добрый день!

Для подключения с одного ПК (в режиме сетевого клиента) к разным опросным станциям.

1. Следует ли это сообщение понимать, что и ArchBrowser.exe также может работать с ip-адресами ?
2. Следует ли надеяться, что следующим шагом будет появление полноценного места Диспетчера (т.е. SIMP Light SPACE) ?
3. Наша компания использует систему SimpLight версия Enterprise (один сервер - три рабочих места). Для того, чтобы организовать вторую опросную станцию нам надо докупить … (что: сервер, рабочее место, или что-то еще) ?

С уважением, Кондратенко Анатолий
Новочеркасск
День добрый, Анатолий.

1. Следует ли это сообщение понимать, что и ArchBrowser.exe также может работать с ip-адресами ?

Да.


2. Следует ли надеяться, что следующим шагом будет появление полноценного места Диспетчера (т.е. SIMP Light SPACE) ?

Как такого SPACE уже не будет, будет драйвер для SIMP с помощью которого можно будет подключать другие опросные станции SIMP.


3. Наша компания использует систему SimpLight версия Enterprise (один сервер - три рабочих места). Для того, чтобы организовать вторую опросную станцию нам надо докупить … (что: сервер, рабочее место, или что-то еще) ?

Отдельно можно приобрести только сетевые клиенты, а если нужна опросная станция, то приобретаете необходимую Вам версию SIMP (light, pro, ent).
Как такого SPACE уже не будет, будет драйвер для SIMP с помощью которого можно будет подключать другие опросные станции SIMP.

Когда будет ? :blush:

С уважением, Кондратенко Анатолий
Новочеркасск
Когда будет ?

Хороший вопрос. В планах к весне. Будем надеяться что уложимся в сроки.

Сервис поддержки клиентов работает на платформе UserEcho