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

Тема: Глюк USB Drive: показывает mounted и данные по памяти сам по себе

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

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

    По умолчанию

    Цитата Сообщение от S.A.D. Посмотреть сообщение
    Библиотека CAA File
    Проект во вложении:
    Добрый день.
    Прошу прощения, только добрался посмотреть проект.
    У Вас при вызове ФБ fileClose не передается дескриптор файла
    Нужно так:
    Код:
    fileClose (
    	xExecute:= (writeCmd AND (fileWriteDone OR fileWriteError OR fileWriteAborted)) OR
    		(readCmd AND (fileReadDone OR fileReadError OR fileReadAborted)),
    	hFile := fileOpenHandler,
    	xBusy => fileClosing,
    	xDone => fileCloseDone,
    	xError => fileCloseError,
    	eError => fileWriteErrorCode);
    Проверил. Чтение и запись работают корректно.
    USB-Flash извлекается корректно.
    OSCAT.ru читать стандарты и статьи по автоматизации на русском без регистрации и СМС

  2. #2

    По умолчанию

    Просто для информации:
    ФБ (программы) для работы с файлами очень легко проектировать на языке SFC.
    Программы получаются наглядными и проще в сопровождении.
    К примеру программа для чтения чего-то из файла может выглядеть следующим образом:
    SFC.png

    Наглядно видно, куда выполнение программы может пойти из текущего состояния и при каких условиях.
    И не потребуется в условиях активации каждого блока (xExecute) писать условия перехода на шаг.
    Т.е. если программа перешла на шаг ReadFromFile, то файл уже открыт и ФБ чтения может быть активирован просто как
    Код:
    fileRead (xExecute := TRUE);
    Почитать о этом замечательном языке проектирования можно в документе PLCopen SFC (документ на русском языке).
    Последний раз редактировалось Осинский Алексей; 18.09.2018 в 14:33.
    OSCAT.ru читать стандарты и статьи по автоматизации на русском без регистрации и СМС

  3. #3

    По умолчанию

    о, блин. Это появилось видимо из-за того что подсказка, которую предлагает codesys не соответствует реально имеющимся входам и выходам ФБ. А я дурак проворонил, что не добавил дескриптор. Извините, пожалуйста, что потратил ваше время на такую глупую ошибку. Впредь буду как в старом добром 2.3 всё ручками смотреть в менеджере библиотек, а подсказку отключу чтоб текст не загораживала.

    Цитата Сообщение от Осинский Алексей Посмотреть сообщение
    Просто для информации:
    ФБ (программы) для работы с файлами очень легко проектировать на языке SFC.
    Программы получаются наглядными и проще в сопровождении.
    большое спасибо за это замечание. Вполне вероятно, что вы правы, но мне с этими графическими языками наоборот тяжело почему-то. CFC ещё пол беды, но например LD я вообще как вижу, то повесится хочу - дико ненаглядно, неудобно и неинформативно как по мне.
    Чтобы понять рекурсию нужно понять рекурсию

  4. #4

    По умолчанию

    Цитата Сообщение от S.A.D. Посмотреть сообщение
    проворонил, что не добавил дескриптор
    Рад, что смог помочь.

    Цитата Сообщение от S.A.D. Посмотреть сообщение
    Впредь буду как в старом добром 2.3 всё ручками смотреть в менеджере библиотек, а подсказку отключу чтоб текст не загораживала.
    Используйте возможности дополнения кода.

    в CODESYS есть несколько возможностей подсказок имеющихся входов-выходов ФБ
    1) Сочетание клавиш CTRL+пробел
    вызывает подсказку, из которой можно выбрать входы-выходы, POU с похожими именами (если начали его вводить).
    ctrl_space.png
    1.1) Например, на рисунке выше я набрал вручную fileClose();
    1.2) Установил курсор между скобками и нажал заветное сочетание клавиш
    1.3) CDS предложил выбрать одну из возможных переменных
    1.4) Если Вы используете доступ к переменным через ИМЯ_ФБ.ИМЯ_ПЕРЕМЕННОЙ, то достаточно набрать "ИМЯ_ФБ." и нажать CTRL+пробел (если включить настройку "Tools - Options - SmartCoding - List components after typing a dot (.)", то нажимать сочетание клавиш после ввода точки не потребуется)

    2) Помощник ввода (кнопка F2)
    Input_assistant.png
    2.1) Нажав F2 выберите "Instance Calls";
    2.2) Выберите ФБ, который Вы хотите вызвать
    2.3) Нажмите ОК
    2.4) CDS вставит заготовку кода для присвоения всех входов\выходов ФБ:
    input_assisted.png


    Цитата Сообщение от S.A.D. Посмотреть сообщение
    большое спасибо за это замечание. Вполне вероятно, что вы правы, но мне с этими графическими языками наоборот тяжело почему-то. CFC ещё пол беды, но например LD я вообще как вижу, то повесится хочу - дико ненаглядно, неудобно и неинформативно как по мне.
    На счет LD согласен, язык для тех, кто проектировал щиты релейной автоматики.
    CFC использую редко, обычно когда входов-выходов много.
    SFC - другое дело.
    OSCAT.ru читать стандарты и статьи по автоматизации на русском без регистрации и СМС

Похожие темы

  1. Датчик показывает не те значения
    от kashtan713 в разделе Эксплуатация
    Ответов: 6
    Последнее сообщение: 02.06.2016, 13:34
  2. Я уже мозг себе вскрыл
    от murawej в разделе ПЛК1хх
    Ответов: 40
    Последнее сообщение: 28.12.2011, 09:00
  3. ПЛК110 сам по себе
    от Бл.Юрий в разделе ПЛК1хх
    Ответов: 1
    Последнее сообщение: 17.03.2011, 17:18
  4. ОРМ неправильно показывает данные с ТРМ38
    от alex32 в разделе Эксплуатация
    Ответов: 2
    Последнее сообщение: 17.01.2011, 08:58
  5. В МВА8 неправильно показывает
    от koval.sergei в разделе Подбор Оборудования
    Ответов: 5
    Последнее сообщение: 22.10.2007, 14:59

Ваши права

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