Ваши комментарии

День добрый.
Подскажите, как подключить овен МВ110-8ДФ по протоколу Modbus при помощи Modbus-драйвера?
В описании к прибору указано следующее:
"По протоколу Modbus возможно считывание битовой маски состояния всех дискретных
входов (регистр с номером 51 (0х33)).

Считываете значение регистра по адресу (0х33), далее в скрипте производите разбор считанного слова на каналы (пример работы с битами во вложении).
bit_example1.slz
bit_example2.slz
Добрый день.

Здраствуйте. Хотелось бы видеть группировку алармов, в журнале тревог, в виде папок, как это сделано в редакторе каналов. Сейчас они отображаются все разом. Спасибо. С уважением, Дмитрий.

Передал руководству. Спасибо за предложение.
т.к. DWORD, то пишем так

word1 := wordsource and $FFFF;
спасибо за совет.

Да, все верно. Это я недоглядел. Спасибо. (в примере исправил)
День добрый.

Как раскидать dword в два ворда

примерно так:

var word1, word2, wordsource: word; begin // DWORD 419497952 wordsource := 419497952; word1 := wordsource and $FFFF; word2 := wordsource shr 16; WriteValue('U1-word1', word1); WriteValue('U1-word2', word2); end.
День добрый.

Появились вопросы о журнале событий, в частности есть ли возможность группировать события? Например есть 20 объектов, и соответственно на каждый своя мнемосхема. В целом тэгов около 1000, и вот для того чтобы просмотреть события на только одном объекте проблематично.
И да, на форуме видел предложение разделить события по категориям(выход за диапазон, включение выключение, аварийный рабочий и пр.), как на этом фронте? Может целесообразно было бы сделать подобие как в редакторе каналов, собрали в группу 50 тэгов и готово на 1 объект, а в журнале событий были бы журналы этих групп.

Группировать события на данный момент нельзя. По журналу планируются работы. Ваше мнение важно для нас, мы учтем его при работе над журналом.
День добрый.

Существует ли возможность запускать разные сетевые клиенты с разными начальными мнемосхемами? Дело в том, что я установил в цеху монитор (без клавиатуры и мыши), подключённый к компьютеру. При запуске системы в автозапуске стартует монитор и показывает начальную мнемосхему. Нужно, чтобы в этом цеху открывалась мнемосхема именно этого цеха. Это возможно?

Рядом с "ехе" файлом монитора на клиенте сделать текстовый файл slwlist.txt.
При наличии этого файла около "exe" файла монитора, будут показаны в списке мнемосхем только мнемосхемы указанные в этом файле, если файл пустой или его нет, то покажем все мнемосхемы.
Формат файла первая строка мнемосхема для автозагрузки, если строка пустая будет использована мнемосхема из стандартных настроек остальные строки имена доступных мнемосхем. (имена в формате: Имя мнемосхемы.msl)
День добрый.

Скажите пожалуйста, ранее получили от Вас версию программы для системных интеграторов, за что еще раз спасибо.
Вопрос- Возможно ли ее обновить до последней актуальной версии , если да то каким образом?
спасибо

Обновить можно. Пришлите запрос на обновление на наш адрес simp@miniscada.com
Добрый день.

Дабы не плодить лишних тем, спрошу здесь.
В Delphi (паскаль) поддерживается синтаксис: #10 - конец строки и #13 - код возврата каретки (переноса строки). В Симплайте такое возможно для вывода сообщения, к примеру, в две строки?
Код WriteValue('Таймер', 'Работа'+#10+#13+d+' дн. '+h+' ч.'+m+' м.'+s+' с.') ошибок при компиляции не выдал, но текст отразил в одну строку.

Компоненты мнемосхем в SIMP не поддерживают многострочный вывод текста. Добавим в лист доработок.
Добрый день!

А если:
t1 = 07.12.2015 23:55:00
t2 = 08.12.2015 00:15:00

можно вот так:

var t1, t2: TDateTime; res: string; d: word; const FORMATSTR = '%d д. %s'; begin t1 := StrToDateTime('07.12.2015 23:55:00'); t2 := StrToDateTime('08.12.2015 00:15:00'); d := trunc(t2) - trunc(t1); res := format(FORMATSTR, [d, timetostr(t2 - t1)]); end.
Добрый день.

К примеру: мне не мешало бы для большей информативности определять продолжительность операции (проще говоря, разность между включением и отключением). Примерно так:
If ReadValue('Пуск')=1 then T1:=Now;
If ReadValue('Пуск')=0 then T2:=Now;
WriteValue('Время операции','Продолжительность'+ 'RealToTime(TimeToReal(T2)-TimeToReal(T1))');
Но…увы. Возможно в СимпЛайте сделать нечто подобное?
P.S. Версия Ent. Сейчас будем обновляться до безлимитной.

Можно реализовать так:

var t1, t2: TDateTime; res: string; begin If ReadValue('Пуск') = 1 then t1 := Now; If ReadValue('Пуск') = 0 then t2 := Now; // результат, строка вида 00:01:30 res := TimeToStr(t2 - t1); end.


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