Показано с 1 по 3 из 3

Тема: Запись быстро меняющегося процесса и экспорт в Еxcel

  1. #1

    Question Запись быстро меняющегося процесса и экспорт в Еxcel

    Вопрос такой:
    1. входное значение напряжения на входах МВ110 меняется достаточно быстро (на протяжении 1 сек)
    2. необходимо записать график изменения значений в файл на ПК
    3. запись необходимо производить на протяжении 5-10 минут и более

    Пробовал:
    1. Конфигуратор (график изменения не сохраняет )
    2. Подключение ПЛК100 и опрос через МОДБАС + элемент архивирования в конфигурации (максимально 1 раз на 5 сек - медленно)
    2. Подключение ПЛК100 и опрос через МОДБАС + запись в файл с помощью библиотеки SysLibFile (получается только бинарный файл - не удобно)
    3. Так и не решил вопрос с экспортом в Excel

    Очень прошу помочь !
    Заранее благодарен !
    Последний раз редактировалось sasha0000; 17.04.2012 в 23:08.

  2. #2

    По умолчанию

    МВ110.
    OPC ModBus. Запрос маски входов.
    Exel. Знаю, что возможно получение данных из OPC в Exel, но сам никогда не делал.

  3. #3

    По умолчанию

    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

Похожие темы

  1. Импорт из codesys в winccflexible
    от Constanta в разделе Трёп (Курилка)
    Ответов: 1
    Последнее сообщение: 25.04.2011, 17:28
  2. автоматический запуск процесса в орм
    от v_vag в разделе OWEN Proces Manager
    Ответов: 4
    Последнее сообщение: 16.03.2010, 12:48
  3. Ответов: 9
    Последнее сообщение: 09.03.2010, 10:38
  4. Архивирование тех. процесса
    от Шура в разделе ПЛК1хх
    Ответов: 7
    Последнее сообщение: 12.10.2009, 00:36
  5. Ответов: 1
    Последнее сообщение: 08.11.2007, 09:46

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •