Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 17

Тема: Использование файлов для задания уставок

  1. #1

    По умолчанию Использование файлов для задания уставок

    Здравствуйте!
    На установке необходимо регулировать температуру и давление по заданным программам. Всего программ 40 по 30 шагов каждая. Сейчас там используются Retain переменные, которые сохраняются в энергонезависимой памяти что не очень удобно при наладке.
    Есть идея использовать файлы в качестве уставок для задания параметров.
    Для этого попробовал написать код, который должен создавать файл и потом его же и понимать. Кроме того программы должны создаваться как в EXEL, так и с панели оператора.
    Теперь по сути - ПОМОГИТЕ!!! Что то не совсем работает, голова уже не варит.
    Файл создается но не всегда чтение вроде проходит но не проверял полностью.
    Программу прилагаю. Контроллер ПЛК154 прошивка 2.07.
    Спасибо.
    Вложения Вложения
    • Тип файла: rar test.rar (47.5 Кб, Просмотров: 55)

  2. #2
    Пользователь
    Регистрация
    11.01.2009
    Адрес
    Кострома
    Сообщений
    3,144

    По умолчанию

    Создайте массив и организуйте присваивание.(но без ретайн все равно не обойтись)

  3. #3

    По умолчанию

    Идея в том чтоб не использовать именно Retain переменные, а данные брать из файла.
    После написания программа тест на создание файла прошла, даже Exel все понял, созданный на ПК файл контроллер тоже вроде правильно разделил (правда я проверял коды только первых пару рядов но количество ячеек сошлось)
    А вот во второй раз файл имел размер 0 байт????
    Может я не правильно организовал запись?

  4. #4

    По умолчанию

    Ну показали бы, что ли, как с файлами работаете?
    Вот моя программа с функциональным блоком архиватора.
    Архив пишется в файл, программа рабочая.
    Сравните со своей.
    Вложения Вложения

  5. #5

    Question

    Большое спасибо Евгений Пашигоров за выложенный пример, но это не совсем то что нужно. Не обижайтесь, просто задача совсем другая.

    Попробую раскрыть суть немного подробнее.

    Как используются результаты Программа берет данные из трех массивов of_byte. В одном из них содержатся данные про тридцать значений температуры, в другом - про 30 значений давления, в третьем - время, за которое нужно получить "цифры", указанные в массивах 1 и 2. В результате получяется график в виде кривой для значений температуры и график для значений давления.

    Для чего нужны файлы Немного напрягает каждый раз перезаписывать данные в переменные Retain, из за того что КДС не хочет коннектится к ПЛК с первого, второго а иногда и с десятого раза (хотя может проблемма не в КДС??).

    Как планировал работать с файлами

    Вариант 1
    1 - Создать файл в EXEL (потому что быстро и удобно);
    2 - Записать в ПЛК;
    3 - При загрузке, ПЛК должен очистить файл от мусора (строки с заголовками, знаки переноса строки, знаки табуляции, порядковые номера);
    4 - Записать каждую полезную колонку как отдельный массив [1..30] of byte (температура, давление, время);
    5 - Использовать данные при работе;

    Вариант 2
    1 - При запросе от ПЛК файла которого нет создать его;
    2 - с помощю панели оператора заполнить три массива [1..30] of byte (температура, давление, время);
    3 - Добавить мусор (строки с заголовками, знаки переноса строки, знаки табуляции, порядковые номера);
    4 - Записать данные в файл;
    5 - при желании скачать для просмотра на ПК;
    6 - использовать как в варианте 1;

    Вариант 3
    1 - Возможность записывать изменения в файл;

    Вариант 4
    Может кому то пригодится и плохих слов будет меньше при сотом изменении сорока программ по 30 циклов (всего 1200 значений) , а все из за какойто кнопки Reset:

  6. #6

    По умолчанию

    Цитата Сообщение от mike_if Посмотреть сообщение

    Для чего нужны файлы Немного напрягает каждый раз перезаписывать данные в переменные Retain, из за того что КДС не хочет коннектится к ПЛК с первого, второго а иногда и с десятого раза (хотя может проблемма не в КДС??).
    Действительно, Кодесис хреново коннектится. А еще в процессе заливки проекта часто происходит
    перезапуск контроллера. Хорошо хоть не всегда.
    Разработчики рекомендуют увеличить таймауты связи в самой Кодесис.
    Я увеличивал, но особой разницы не заметил.
    Для считывания файлов с ПЛК я уже давно и без проблем пользуюсь утилиткой plc_io.exe
    http://www.owen.ru/forum/showthread.php?t=10211
    Большое ее преимущество - она не интерактивная, что позволяет пользоваться ею в своих скриптах.
    Цитата Сообщение от mike_if Посмотреть сообщение
    Как планировал работать с файлами
    . . . . . . . .
    Тут я не понял, то ли из ПЛК надо брать данные, то ли наоборот, настройки в ПЛК загонять? Видимо, и то, и другое.
    plc_io загружать файлы в ПЛК тоже умеет.
    Последний раз редактировалось Евгений Пашигоров; 03.04.2011 в 01:59.

  7. #7

    По умолчанию

    Цитата от Евгений Пашигоров:

    Тут я не понял, то ли из ПЛК надо брать данные, то ли наоборот, настройки в ПЛК загонять? Видимо, и то, и другое.
    Совершенно верно - и то и другое.
    Файлы используются не как архив, а как обычный массив с данными, только создавать их должен уметь как ПЛК так и ПК. А ПЛК, кроме того еще и должен использовать данные из них в процессе работы.

    Цитата от Евгений Пашигоров:

    plc_io загружать файлы в ПЛК тоже умеет
    Совершенно согласен, и plc_io и сам КДС умеют и читать и писать файлы, но они только передают их, а мне нужно еще и сортировать.

    Сегодня был лишний часок, попробовал немного изменить программу, в результате заметил что контроллер открывает файл, созданный на ПК, возвращает дескриптор файла, но при проверке размера значение = 0????
    Хотя файл имеет около 1 кБ???
    Не понимаю что не так???

  8. #8

    По умолчанию

    Может расширение файла имеет значение?
    Останавливается здесь:

    size1:=SysFileGetSize(filename);
    size_int:=DWORD_TO_INT(size1);

    При этом size1 = 0 ???

  9. #9

    По умолчанию

    Вы обратили внимание, что сушествует 2 версии plc_io?
    Одна правильно читает файл, другая - правильно пишет.
    Сейчас нет под рукой контроллера, чтобы проверять.

  10. #10

    По умолчанию

    Уважаемый Евгений Пашигоров спасибо что вы проявляете интерес к этой теме и за ваши подсказки, но к сожалению сегодня я вернулся из командировки, где, как раз, и хотел использовать код выложенный в первом посте. В связи с этим вопрос уже утратил свою актуальность и тема может быть закрыта.

    Что касается утилиты plc_io, то я видел только одну версию. Но пользуюсь все равно КДС, который умеет и читать и писать и даже показывает файлы имеющиеся на контроллере!!!

    Отдельное спасибо представителям фирмы ОВЕН за ПОЛЕЗНЫЕ советы.

Страница 1 из 2 12 ПоследняяПоследняя

Ваши права

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