Ваши комментарии
Эту инструкцию я видел, но MODBUS просто нет в источниках.
Спасибо.
А можно как-то закрыть, к примеру тот же блокнот.
ExecuteApp('C:\Program Files (x86)\Notepad++\notepad++.exe', 'Indoor.html');
Или может свернуть ?
День добрый.
К примеру, значение канала равно 10
Судя по первой картинке, то да. Доступные OPC сервера, галочка стоит.
Решил добавить ещё картинок для полного понимания.
Сам сервер есть.
Как его добавить сюда?
Если создаю новый проект, то всё ок.
А как добавить в имеющийся проект?
Спасибо.
Доброго всем дня.
Подскажите пожалуйста, что я делаю не так?
Взял пример из поста выше и пытаюсь добавить ещё пару каналов, но значения берутся всё равно из одного канала, ткните пальцем в ошибки.
Заранее спасибо.
var
stream: TMemoryStream;
error, error1, error2: word;
reccount: integer;
begindate, enddate, date: TDateTime;
value: double;
cellname_a, cellname_b, cellname_c, cellname_d: string;
cellindex: word;
const
FORMAT_CELL_NAME_A = 'A%d';
FORMAT_CELL_NAME_B = 'B%d';
FORMAT_CELL_NAME_C = 'C%d';
FORMAT_CELL_NAME_D = 'D%d';
begin
stream := TMemoryStream.Create;
try
// error code
// DB_READ_OK = 0
// DB_DATE_ERROR = 1
// DB_MEMORY_OVERFLOW = 2
// DB_CHANNEL_NOTFOUND = 3
begindate := StrToDateTime('01.06.18 12:00:00');
enddate := StrToDateTime('01.06.18 13:00:00');
error := StreamReadFromDatabase(begindate, enddate, 'Канал 1', stream);
error1 := StreamReadFromDatabase(begindate, enddate, 'Канал 2', stream);
error2 := StreamReadFromDatabase(begindate, enddate, 'Канал 3', stream);
if (error = 0) and (Excel.CreateTemplate = 0) then
begin
// Количество записей
reccount := GetCountRecordToStream(stream);
cellindex := 2;
while GetValueFromStream (stream, date, value) do
begin
cellname_a := Format(FORMAT_CELL_NAME_A, [cellindex]);
cellname_b := Format(FORMAT_CELL_NAME_B, [cellindex]);
cellname_c := Format(FORMAT_CELL_NAME_C, [cellindex]);
cellname_d := Format(FORMAT_CELL_NAME_D, [cellindex]);
Excel.Cell[cellname_a] := DateTimeToStr(date);
Excel.Cell[cellname_b] := Value;
Excel.Cell[cellname_c] := Value;
Excel.Cell[cellname_d] := Value;
cellindex := cellindex + 1;
end;
Excel.Save('C:\Proba\test.xls');
Excel.Close;
ShowMessage('Готово');
end;
finally
stream.free;
end;
end.
А поделитесь, как???
Сервис поддержки клиентов работает на платформе UserEcho