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

Тема: Прерывание с пользовательскими FB

  1. #1
    Пользователь
    Регистрация
    05.09.2016
    Адрес
    Ижевск
    Сообщений
    9

    По умолчанию Прерывание с пользовательскими FB

    Доброе время суток форумчани, Дело вот в чём. Есть ПЛК 110-60 [м02] и энкодер (инкрементный) , есть задача снимать его значения самим ПЛК, на этом этапе проблем не возникло, работа по прерываниям замудрёна но ,не сильно. Только вот счётчик из стандартной библиотеки считает word, а нужен dword. Можно конечно переводить внутри подпрограммы которую прерываю, но это не универсальный подход. В сети нашлось то что нужно - инструкция как собрать свой счётчик dword , не то что бы мне это было не под силу,просто проще учится на чужих ошибках.Так вот , вставляю я эту радость в свой проект заливаю в контроллер и понеслась, прерывание распространилось на FB и соответственно основной цикл.Лечится только физической кнопкой сброс на контроллере, так как связь с компом тоже прерывается.

    Пытался впихнуть FB в пользовательскую библиотеку - эффект тот же, возможно я просто не смог корректно собрать библиотеку. Хотелось бы конечно один раз собрать и применять в разных проектах, ещё лутчше конечно целую библиотеку для энкодеров.

    Мне кажется довольно актуальная проблема.Может сможем решить?

    P.S.Проект пройдёт и с кастылями,дело не в этом.
    Последний раз редактировалось alexbad93; 28.11.2016 в 12:54.

  2. #2

    По умолчанию

    Цитата Сообщение от alexbad93 Посмотреть сообщение
    Доброе время суток форумчани, Дело вот в чём. Есть ПЛК 110-60 [м02] и енкодер (не важно какой) , есть задача снимать его значения самим ПЛК, на этом этапе проблем не возникло, работа по прерываниям замудрёна но ,не сильно
    Оставьте прерывания. Ничего хорошего с ними не будет.
    Они нужны для разработчиков ПЛК и для "профессионалов на закрытом треке не пытайтесь повторить дома".

    Вот зачем вы за прерывания взялись?

    "накопление WORD результатов в DWORD" делается в пару сложений-вычитаний: http://www.owen.ru/forum/showthread....l=1#post222948

  3. #3
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,243

    По умолчанию

    А где вложение с примером Ваших изысканий? Просто хочется понять, когда Вы пишите FB, Вы имеете ввиду работу в основном цикле или в прерываниях высокочастотного таймера или вообще через PRU
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

  4. #4
    Пользователь
    Регистрация
    05.09.2016
    Адрес
    Ижевск
    Сообщений
    9

    По умолчанию

    Захотелось иметь возможность подключать энкодеры с большими имп/об. Я имею в виду работу FB в основном цикле.Так и не понял как это иначе реализовать чтоб решить проблему.Про преобразования я знаю, но каждый раз их писать - ломает, хочется иметь под рукой готовый CTU для dword.

  5. #5

    По умолчанию

    Цитата Сообщение от alexbad93 Посмотреть сообщение
    Захотелось иметь возможность подключать энкодеры с большими имп/об. Я имею в виду работу FB в основном цикле.Так и не понял как это иначе реализовать чтоб решить проблему.Про преобразования я знаю, но каждый раз их писать - ломает, хочется иметь под рукой готовый CTU для dword.
    Есть же "fast inputs" и выбираете там "fast encoder". Чем не устраивает?

  6. #6
    Пользователь
    Регистрация
    05.09.2016
    Адрес
    Ижевск
    Сообщений
    9

    По умолчанию

    Это было слишком легко. К тому же всё равно нужно было несколько счётчиков , так как объектов несколько, дабы сбрасывать.В общем то полагаю что пошёл изначально не тем путём, хотя проблему решил ( поставил перевод word в dword). Ничего лишним не будет, ранее работал только через СИ, есть у меня некий скепсис по поводу быстрых входов ПЛК. Попробую пойти человеческим путём через готовый fast encoder.

  7. #7
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,243

    По умолчанию

    Цитата Сообщение от alexbad93 Посмотреть сообщение
    Это было слишком легко. К тому же всё равно нужно было несколько счётчиков , так как объектов несколько, дабы сбрасывать.В общем то полагаю что пошёл изначально не тем путём, хотя проблему решил ( поставил перевод word в dword). Ничего лишним не будет, ранее работал только через СИ, есть у меня некий скепсис по поводу быстрых входов ПЛК. Попробую пойти человеческим путём через готовый fast encoder.
    вот интересно энкодер в отличии от счетчика может считать и в другую сторону, как с этим Вы бы боролись используя предложение по ссылке.
    fast encoder в конфигураторе плк тоже имеет тип данных Word, как Вы из него простым преобразованием будете делать Dword?
    К тому же даже 16-битное значение перекрывает возможности по приему без пропусков сигналов энкодера, а если у Вас значение больше одного слова, то точно не тот плк Вы выбрали
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

  8. #8
    Пользователь
    Регистрация
    05.09.2016
    Адрес
    Ижевск
    Сообщений
    9

    По умолчанию

    В моём проекте необходимо считать только в одну сторону, вот как. А на счёт значения, и пропусков.Насколько я понял механизм работы быстрых входов ,то важна только частота и длительность импульсов, а с этим всё в порядке.А пропуски могут быть и от вибрации и ничего с эти не поделать, возможно только сократить к минимуму. А на счёт того что fast encoder так же имеет тип данных word, это я только сейчас заметил, почему то думал что dword.Ну чтож в любом случае придётся с direct control делать, благо получилось.

  9. #9

    По умолчанию

    Цитата Сообщение от alexbad93 Посмотреть сообщение
    А на счёт того что fast encoder так же имеет тип данных word
    В чём проблема добавить одну строку для общего DWORD счётчика?


    С direct control море проблем:
    1) При использовании <60мкс таймера может пропадать связь
    2) 60мкс это частота импульсов 8кГц (или ещё меньше)
    3) direct control не проверишь в симуляции
    4) прочее

Похожие темы

  1. Прерывание в ПЛК110 обновленный
    от Алексей Александрович в разделе ПЛК1хх
    Ответов: 18
    Последнее сообщение: 16.01.2015, 14:57
  2. Прерывание таймера
    от zendo057 в разделе ПЛК1хх
    Ответов: 12
    Последнее сообщение: 02.02.2014, 16:28
  3. 2ТРМ1 прерывание регулирования
    от Sven в разделе Эксплуатация
    Ответов: 2
    Последнее сообщение: 02.10.2013, 11:25
  4. Прерывание акта соития ПЛК и PC
    от Montigo в разделе ПЛК1хх
    Ответов: 26
    Последнее сообщение: 24.03.2009, 09:34

Метки этой темы

Ваши права

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