Страница 6 из 15 ПерваяПервая ... 45678 ... ПоследняяПоследняя
Показано с 51 по 60 из 149

Тема: ПЛК110.60[М2] + энкодер + счетчик.

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

    По умолчанию

    так и встарых модификациях такого не было, получать знаечения счетчиков/энкодеров можно было в конфигураторе, который работал от основного цикла, а формирование значений происходило в подобии "быстрого таймера". Чтоб было возможно в быстром таймере обработать какое то значение счетчика/енкодера потребуется сверхбыстрый таймер и т.д.
    По поводу хотелок Newcomer-а, на сколько я понял его рассуждения, так можно дойти до того что в основной программе он создаст бесконечный цикл чтоб отловить нужное значение счетчика/энкодера, тем самым поймав "злую собаку". Поэтому ему и подсказывают, что обрабатывать значение получиться один раз в цикл
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

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

  2. #52

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    так и встарых модификациях такого не было, получать знаечения счетчиков/энкодеров можно было в конфигураторе, который работал от основного цикла, а формирование значений происходило в подобии "быстрого таймера". Чтоб было возможно в быстром таймере обработать какое то значение счетчика/енкодера потребуется сверхбыстрый таймер и т.д.
    По поводу хотелок Newcomer-а, на сколько я понял его рассуждения, так можно дойти до того что в основной программе он создаст бесконечный цикл чтоб отловить нужное значение счетчика/энкодера, тем самым поймав "злую собаку". Поэтому ему и подсказывают, что обрабатывать значение получиться один раз в цикл
    Ну, "доходить" никто не собирается. Никто тут и не хочет "в while цикле крутиться и ждать погоды, пока значение входа изменится".
    "сверхбыстрый таймер" -- штатная функция М02 (в документации даже описано, правда не сказано зачем, какие ограничения и т.п.). 20 или 40мкс, но конкретная цифра не важна. Главное, что этот таймер гораздо быстрее обычного цикла ПЛК.

    Внимание, вопрос: какая польза от этого "сверхбыстрого", если в нём IO всё равно выполнять бесполезно?
    Или всё-таки, какое-то IO выполнять можно? Если можно, то какое?

  3. #53

    По умолчанию

    Топикстартер хочет это реализовать?
    В процессе работы текущее значение счетчика (PV) может сравниваться со
    значениями, предварительно зарегистрированными в таблице сравнения.
    Когда выполняется соответствующее условие, может быть запущена
    указанная задача обработки прерывания (зарегистрированная в таблице).
    Можно применить один из двух способов сравнения: сравнение с
    заданным значением и попадание в заданный диапазон.
    Для регистрации таблицы сравнения используется инструкция
    CTBL(882).
    Для запуска операции сравнения используется либо инструкция
    CTBL(882), либо инструкция INI(880).
    Для прекращения операции сравнения используется инструкция
    INI(880).

    Сравнение с заданным значением
    Когда текущее значение высокоскоростного счетчика совпадает с
    заданным значением, зарегистрированным в таблице, выполняется
    указанная задача обработки прерывания.

    Условия сравнения (заданные значения и направления счета)
    регистрируются в таблице сравнения вместе с соответствующим
    номером задач обработки прерывания. Указанный обработчик
    прерывания будет запущен, когда значение PV высокоскоростного
    счетчика совпадет со значением, зарегистрированным в таблице.

    В таблице сравнений можно зарегистрировать до сорока восьми
    заданных значений (от 1 до 48).

    Для каждого заданного значения можно зарегистрировать отдельную
    задачу обработки прерывания.

    Сравнение выполняется со всеми заданными значениями, независимо
    от порядка, в котором эти значения зарегистрированы.
    Если значение PV изменяется, измененное PV будет сравнено с
    заданным значением в таблице, даже если PV изменяется в тот момент,
    когда выполняется процедура сравнения с заданным значением.
    В задаче обработки прерывания можно немедленно включить (выключить) обычный выход контроллера.

    У меня кстати старый позиционер H8PS-8BFP под абсолютный энкодер валяется, нужен?

  4. #54

    По умолчанию

    Обмен между ЦПУ и PRU (где крутятся счётчики) не такой быстрый, как хотелось бы.
    поэтому в режиме прямого управления всё работает иначе чем в режиме счетчиков.
    Тролль-наседка, добрый, нежный и ласковый

  5. #55

    По умолчанию

    Цитата Сообщение от Дмитрий Артюховский Посмотреть сообщение
    базовый принцип работы ПЛК: установка входов (данных регистров) -> обработка -> установка выходов === это все ОСНОВНОЙ цикл... в таймере вы конечно можете считать регистр, но там будет одно и тоже значение
    Владислав, подтвердите, что Дмитрий Артюховский истину глаголит и делу конец.
    Последний раз редактировалось Newcomer; 18.03.2016 в 14:36.

  6. #56

    По умолчанию

    Да, так и есть. Для быстрой обработки есть OwenLogicRT
    Тролль-наседка, добрый, нежный и ласковый

  7. #57
    Пользователь
    Регистрация
    31.07.2013
    Адрес
    Аркаим
    Сообщений
    1,033

    По умолчанию

    Получил комплект ПЛК110-60 + СП307Б. Перетащил предыдущий проект в новый ПЛК, наладил связь и пр.
    Появились проблемы, а значит и вопросы.
    1. Как посчитать время выполнения программного кода? Интересует кусок, который работает по прерыванию таймера 20мкс:

    Code.jpg

    2. Возможны ли обрывы связи из за того, что в таймере крутится слишком длинный код?

    Наблюдается пропадание связи ПЛК<>ОП при рекомендуемых значениях (115200). При снижении скорости до 19200 обрывы случаются крайне редко, но всё же есть. На скорости 9600 обрывов связи не замечено. Теряет связь именно ПЛК, т. к. перезагрузка ОП к восстановлению связи не приводит. После перезагрузки только ПК при включенной ОП связь восстанавливается. ПЛК-слейв, ОП-мастер, Модбас РТУ. При написании программы правило, что переменная должна записываться только в одном месте соблюдено.
    ЗЫ: И еще один маленький вопросик: как на ST прописать действие по переднему фронту импульса без применения ФБ?
    Последний раз редактировалось Sulfur; 26.05.2016 в 11:49.

  8. #58

    По умолчанию

    1. Время можно получить через SysLibTime, есть 2 поля, где время в мкс. Считайте.
    2. Возможны. прерывание высокоприоритетно (по сравнению с задачами) и забивает (если длинное) всю остальную работу ПЛК.
    3. if ((new_val<>old_val)AND (new_val)) then Действие(); old_val:=new_val; end_if
    Последний раз редактировалось Филоненко Владислав; 26.05.2016 в 11:16.
    Тролль-наседка, добрый, нежный и ласковый

  9. #59
    Пользователь
    Регистрация
    31.07.2013
    Адрес
    Аркаим
    Сообщений
    1,033

    По умолчанию

    1. Спасибо, буду разбираться.
    2. Сокращал код, временно отключая разные участки - эффекта не дало. На ПЛК110.60 старой модификации в таймере крутится тот же код (до 13 строчки), проблем со связью на 115200 не наблюдается. Правда там ОП ИП320.
    3. Спасибо. Но слишком сложная конструкция в плане времени работы. Думал, что есть специализированная команда.

  10. #60

    По умолчанию

    Цикл меняли? Код увидеть можно?
    Тролль-наседка, добрый, нежный и ласковый

Страница 6 из 15 ПерваяПервая ... 45678 ... ПоследняяПоследняя

Похожие темы

  1. Ответов: 1
    Последнее сообщение: 01.12.2015, 11:55
  2. ПЛК110 счетчик моточасов
    от NIKO007 в разделе ПЛК1хх
    Ответов: 10
    Последнее сообщение: 29.11.2015, 10:19
  3. Снова энкодер ПЛК110
    от Алексей Дмитриев в разделе ПЛК1хх
    Ответов: 58
    Последнее сообщение: 25.01.2015, 16:41
  4. ПЛК110-220.32 и энкодер
    от DKFLBVBH в разделе ПЛК1хх
    Ответов: 11
    Последнее сообщение: 15.01.2015, 10:49
  5. ПЛК110-32 и энкодер
    от nestor в разделе Эксплуатация
    Ответов: 3
    Последнее сообщение: 23.03.2012, 08:38

Ваши права

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