Показано с 1 по 10 из 30

Тема: SysLibTime + SislibFile можно ли решить задачу?

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1
    Пользователь
    Регистрация
    13.10.2011
    Адрес
    Златоуст
    Сообщений
    1,021

    По умолчанию

    алгоритма ничего пока и нет, даже представления о реализации в КДС
    Да какой тут алгоритм... Прога будет на две с половиной строчки. Что-то вроде такого:
    Код:
    VAR
    	logFileHandle: DWORD := 0;
    	logFileSize: DINT;
    	buffer: DWORD;
    END_VAR
    
    IF FALSE THEN (* Однократно при включении или выключении *)
    	logFileSize := SysFileGetSize(logFileName);
    	logFileHandle := SysFileOpen(logFileName, 'w');
    	IF logFileHandle <> 0 THEN
    		(* Время включения пишем только на чётные позиции *)
    		IF NOT ShuttingDown THEN
    			SysFileSetPos(logFileHandle, logFileSize - logFileSize MOD 8);
    		ELSE
    			SysFileSetPos(logFileHandle, logFileSize);
    		END_IF
    		buffer := GetCurrentUnixTime();
    		SysFileWrite(logFileHandle, ADR(buffer), SIZEOF(buffer));
    		SysFileClose(logFileHandle);
    		logFileHandle := 0;
    	END_IF
    END_IF
    Функция GetCurrentUnixTime:
    Код:
    FUNCTION GetCurrentUnixTime : DWORD
    VAR
    	timedate: SystemTimeDate;
    	systime: SysTime64;
    	GetTime: CurTimeEx;
    END_VAR
    
    SysMemSet(ADR(systime), 0, SIZEOF(systime));
    SysMemSet(ADR(timedate), 0, SIZEOF(timedate));
    GetTime(SystemTime := systime, TimeDate := timedate);
    GetCurrentUnixTime :=
    	DATE_TO_DWORD(PackDate(timedate.Year, timedate.Month, timedate.Day)) +
    	TIME_TO_DWORD(PackTime(timedate.Hour, timedate.Minute, timedate.Second, timedate.Milliseconds)) / 1000;
    Используемые библиотеки: SysLibFile, SysLibTime, SysLibMem, TimeExp. Местами псевдокод.

    Проверить это на реальном контроллере пока не смогу — сижу дома на больничном.
    Последний раз редактировалось Yegor; 30.08.2012 в 17:35.

  2. #2

    По умолчанию

    Yegor, есть много вопросов, как у начинающего... Если есть возможность пообщаться по скайпу/аське/мылу и желание помочь чайнику, сообщите плиз в личку свои контакты. Вечером (по Москве это 19.00 - 23.00) я бы вышел на связь. Консультацию прошу не бесплатно, вышлю обсуждаемое количество дензнаков на карточку/банковский счёт. Просто надо очень, и надо очень срочно!

Похожие темы

  1. SysLibTime
    от Chupakabra в разделе ПЛК1хх
    Ответов: 10
    Последнее сообщение: 11.10.2018, 14:26
  2. Немного про библиотеку SyslibTime
    от Ильнур в разделе ПЛК1хх
    Ответов: 10
    Последнее сообщение: 04.11.2012, 23:19
  3. Возможно ли решить нижеописанную задачу средствами Овен?
    от Вова в разделе Подбор Оборудования
    Ответов: 7
    Последнее сообщение: 23.02.2011, 14:40
  4. Миллисекунды в SysLibTime
    от Leonid в разделе ПЛК1хх
    Ответов: 2
    Последнее сообщение: 14.03.2010, 10:35
  5. Библиотека SysLibTime
    от Serp в разделе ПЛК1хх
    Ответов: 2
    Последнее сообщение: 01.10.2008, 15:14

Ваши права

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