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

Тема: архивирование на спк207

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

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    По умолчанию

    Для чтения/записи в файл использую библиотеку CAA_File. Основываясь на примерах встроенной справки CoDeSys 3.5 и примере Мурата, написал вот такую программку: Read_file.projectarchive

    Самого СПК207 пока нет, поэтому проверяю на CODESYS Control Win V3.
    Записываю в файл file_2.txt на диске D следующую строку:
    123;456
    654;321
    Устанавливаю позицию чтения (FileSetPos) в начало первой строки и считываю первую строку, длиной в 7 символов (байт).
    В переменной чтения arc_str записалось следующее:
    '123;456й└˓ш№¶'
    Измеряю длину arc_str = 13 байт (символов).
    Пробовал изменять количество байт на чтение - .szBuffer функционального блока FILE.Read. При каких-то значениях размер прочитанной arc_str совпадает с заданным размером чтения .szBuffer, но чаще получается длиннее, с добавленными символами.
    Просьба к участникам форума проверить мой пример на самой панели СПК207, может это встроенный в CoDeSys контроллер дает ошибки.
    Может я в чем-то ошибаюсь?
    Заметил еще, что в созданном и записанном файле в 3-ей строке появились 6 пробелов, которые я не записывал. Чудеса какие-то.
    Вложения Вложения
    Последний раз редактировалось vniko; 21.08.2015 в 14:16.

  2. #2

    По умолчанию

    По поводу записи в файл лишних пробелов я разобрался. Дело в том, что в модуле записи в файл я указываю количество байт для записи в файл .szSize:=24. Т.е. моя строка на запись имеет размер 18 символов и до 24 пишется в файл пустые символы. В моем случае их 6 (при чтении затем в массив байтов из этих позиций читаются нули).
    Если количество байт для записи в файл определить как .szSize:=SIZEOF(buffer), в файл будет добавлены нулевые символы до 81, т.к. длина строковой переменной buffer по умолчанию равна 80 (0,1,2,3,4,...,80).

    С добавлением символов при чтении строки из файла не разобрался: т.е. в моем случае при чтении из файла строки из 7 символов, реально получаем строку (строковую переменную) с 13-ю символами.
    В проекте делаю так: читаю в строку из файла командой FILE.Read с размером буфера .szSize:=len_str, а затем функцией LEFT ограничиваю длину строки величиной len_str.

  3. #3

    По умолчанию

    Господа, подскажите, пожалуйста! Пытаюсь разобраться с архивированием на примерчике в описании к ArchivatorOwenLib. СПК под рукой нет. Могу ли я проверить как все это работает в режиме эмуляции? Как мне, в таком случае, задать путь вместо ‘/var/log/’ – т.е., чтобы архив создавался на ПК??
    Версия CODESYS V3.5 SP5 Patch 5

  4. #4

    По умолчанию

    Цитата Сообщение от vniko Посмотреть сообщение
    Записываю в файл file_2.txt на диске D следующую строку:
    123;456
    654;321
    Устанавливаю позицию чтения (FileSetPos) в начало первой строки и считываю первую строку, длиной в 7 символов (байт).
    В переменной чтения arc_str записалось следующее:
    '123;456й└˓ш№¶'
    Измеряю длину arc_str = 13 байт (символов).
    Отвечаю себе сам: По совету техподдержки пробовал использовать формат UNICODE - все то же самое. Замечу, что работать с форматом UNICOD не понравилось - в два раза увеличивается размер файла. Но затем я перешел с CoDeSys Версии 3.5 SP4 Patch 4 на Версию 3.5 SP5 Patch 5. И вот сейчас на SP5 данную ситуацию повторить уже не смог. Читаться стало столько символов, сколько и было задано на чтение. Т.е. вывод: этот БАГ был устранен.

Похожие темы

  1. Архивирование данных
    от klg в разделе Master SCADA 3
    Ответов: 34
    Последнее сообщение: 27.10.2014, 17:22
  2. Архивирование журналов
    от Columbariy в разделе Master SCADA 3
    Ответов: 1
    Последнее сообщение: 14.09.2012, 17:49
  3. Архивирование на ПЛК
    от Руслан2 в разделе ПЛК1хх
    Ответов: 12
    Последнее сообщение: 07.05.2012, 13:33
  4. архивирование на Usb-флешке
    от Лёша в разделе ПЛК1хх
    Ответов: 8
    Последнее сообщение: 08.06.2009, 16:39

Ваши права

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