1
OPC UA/DA сервер arOPC / Re: arOPC+SimpleScada+SEGNETICS MATRIX
« : 03 Февраля 2025, 03:12:30 »
Всё работает с Segneticsом - и с Matrix и с SMH4.
Официальный форум Simple-Scada.
В этом разделе можно просмотреть все сообщения, сделанные этим пользователем.
Добрый день. Просто напоминаю - вдруг подзабылиА почему у элемента Таблица нет горизонтального скролла? Можно ли его добавить?Постараемся добавить в будущих обновлениях.. Очень нужен, а то пол таблицы не видно.
Есть ли возможность полностью (не разово) управлять звуком при превышении граничных значений?
// Упрпавляем включением/выключением звука на Client1
RunApplication('Client1', 'D:\nircmd.exe', 'mutesysvolume 0'); // включаем звук
RunApplication('Client1', 'D:\nircmd.exe', 'mutesysvolume 1'); // отключаем звук
Большое спасибо за оперативность. Теперь всё работает как надо!Подскажите, формирую таблицу вот таким скриптом Table1.RunSQL(aQuery, tsAll); А как узнать, что таблица сформирована и с ней можно работать?К сожалению узнать о выполнении SQL-запроса отправленного от таблицы - нельзя. Постараемся добавить таблице отдельное событие на этот случай.
UPD: в версиях 2.4.0.3 и выше у таблицы есть событие OnDoneSQL для отслеживания выполнения SQL-запросов
Сделайте пожалуйста импорт/экспорт сообщений в эксель.Поддержу. Сам недавно правил под 1000 сообщений. Целый день убил.
... крупного обновления клиентов скады и внедрения системы шаблонов.Ооо, это тоже очень ждем. В этом году успеете добавить?
// Раскраска ячеек таблицы в зависимости от значения температуры термоподвески
procedure TableColorCell();
var
iRow, iCol : integer;
aCell: TM_TableCell;
aVal : Single;
begin
if Table_term.RowCount > 0 then
for iRow := 1 to (Table_term.RowCount-1) do // Цикл со второй строки таблицы до конца
for iCol := 2 to (Table_term.ColumnsCount-1) do // Цикл с третьего столбца таблицы до конца
begin
aCell := Table_term.GetCell(iCol, iRow); // Получим нужную ячейку
if aCell <> nil then
begin
aVal := aCell.Variable.AsSingle; // получим значение в ячейке
if aVal >= Tmax_warning then // Если значение больше предупредительной уставки, то
if aVal >= Tmax_alarm then // Если значение больше аварийной уставки, то
aCell.Color := clIndianRed // Раскрашиваем фон ячейки в красный цвет
else
aCell.Color := RGB(255,255,128) // Раскрашиваем фон ячейки в желтый цвет
else
aCell.Color := clWhite; // Раскрашиваем фон ячейки в белый цвет, если значение в норме
end;
end;
end;
Добрый день. Просто напоминаю - вдруг подзабылиА почему у элемента Таблица нет горизонтального скролла? Можно ли его добавить?Постараемся добавить в будущих обновлениях.
Function Get_str_state(state : integer) : string;
begin
case state of
0 : Get_str_state := 'местный';
1 : Get_str_state := 'отключен';
2 : Get_str_state := 'включен';
3 : Get_str_state := 'авария';
end;
end;
// Функция возвращает статус объекта в текстовом виде
Function Get_str_state(state : integer) : UTF8String;
// Посылка аварийного Телеграм сообщения об аварии в Детском тубдиспансере
Procedure SendMess_Alarm();
var
TubBlgChild : UTF8String;
begin
TubBlgChild := '';
TubBlgChild := //UTF8String(DateTimeToStr(Now)) + chr(10) +
'Авария на объекте: *Тубдиспансер детский*' + chr(10) + '`' +
'Темпер-ра ЭК1 : ' + TubBlgChild_DT1.AsUTF8String + ',' + chr(10) +
'Темпер-ра ЭК2 : ' + TubBlgChild_DT2.AsUTF8String + ',' + chr(10) +
'Темпер-ра ГВС : ' + TubBlgChild_DT3.AsUTF8String + ',' + chr(10) + '`' +
'Состояние оборудования:' + chr(10) + '`' +
' Контур ГВС:' + chr(10) +
' - СН3 = ' + Get_str_state(TubBlgChild_CH3_state.AsInt) + chr(10) +
' - СН4 = ' + Get_str_state(TubBlgChild_CH4_state.AsInt) + chr(10) +
' Котловой контур:' + chr(10) +
' - СН1 = ' + Get_str_state(TubBlgChild_CH1_state.AsInt) + chr(10) +
' - СН2 = ' + Get_str_state(TubBlgChild_CH2_state.AsInt) + chr(10) +
' - ЭК1 = ' + Get_str_state(TubBlgChild_EK1_state.AsInt) + chr(10) +
' - ЭК2 = ' + Get_str_state(TubBlgChild_EK2_state.AsInt) + '`' ;
// Отправка Телеграм сообщений
SendTelegram(TubBlgChild, Alarm_SendMess_Recipient_ID.AsStr, tpmMarkdown);
end;
Значит у Вас в коде отправки сообщения смешиваются разные типы строк, например UTF8String + string, что недопустимо.