1. Открываю файл с расширением '.csv'
2. Собираем в текстовую строку значения данных, разделяя их знаком ;
3. В конце строки добавляю возврат каретки '$R'.
4. Записываю строку в файл.
5. Повторяю 2-4 раз в секунду
6. Закрываю файл
7. Открываю его Excel и строю графики
Можете взять за основу мой кусок. ПЛК не Овен, но принцип аналогичный. Строка sLine формируется за несколько циклов. Вначале строки добавляется отметка даты и времени:
Код:CASE uiState OF 0: IF bWrite THEN (*Формируем дату*) LineDT(dtIn := M_RTC.CDT); sLine := UINT_TO_STRING(LineDT.uDay); sLine := CONCAT(sLine,'-'); sLine := CONCAT(sLine, UINT_TO_STRING(LineDT.uMon)); sLine := CONCAT(sLine,'-'); sLine := CONCAT(sLine, UINT_TO_STRING(LineDT.uYear)); sLine := CONCAT(sLine,';'); sLine := CONCAT(sLine, UINT_TO_STRING(LineDT.uHr)); sLine := CONCAT(sLine,':'); sLine := CONCAT(sLine, UINT_TO_STRING(LineDT.uMin)); sLine := CONCAT(sLine,':'); sLine := CONCAT(sLine, UINT_TO_STRING(LineDT.uSec)); sLine := CONCAT(sLine,';'); uiState := 1; END_IF bWrite := FALSE; 1: (*Добавим данные*) iPar := TRUNC(T_kv); sLine := CONCAT(sLine, INT_TO_STRING(iPar)); sLine := CONCAT(sLine,','); iPar := TRUNC((T_kv-iPar)*10); sLine := CONCAT(sLine, INT_TO_STRING(iPar)); sLine := CONCAT(sLine,';'); iPar := TRUNC(HR_kv); sLine := CONCAT(sLine, INT_TO_STRING(iPar)); sLine := CONCAT(sLine,','); iPar := TRUNC((HR_kv-iPar)*10); sLine := CONCAT(sLine, INT_TO_STRING(iPar)); sLine := CONCAT(sLine,';'); sLine := CONCAT(sLine, sComent); sLine := CONCAT(sLine,'$R'); sComent := ''; uiState := 2; 2: IF SysFileWrite(dwHFile, ADR(sLine), LEN(sLine)) <> 0 THEN uiLineCount := uiLineCount + 1; ELSE CloseFile; END_IF uiState := 0; ELSE uiState := 0; END_CASE




Ответить с цитированием