Страница 5 из 5 ПерваяПервая ... 345
Показано с 41 по 47 из 47

Тема: Использование ООП в CODESYS V3.5

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

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1
    Пользователь
    Регистрация
    31.01.2019
    Адрес
    РФ/РБ
    Сообщений
    926

    По умолчанию

    Я все не читал, но за 2 последних страницы никто не вспомнил про цикл АЦП. Он может быть гораздо больше 5 мс.

  2. #2

    По умолчанию

    А цикл АЦП то тут при чем???

  3. #3

    По умолчанию

    Чет заглохла тема с ООП

  4. #4

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    тогда зачем задавать вопрос, что будет с таймерами с 50мс, зачем делать 50мс, если цикл не нужен <200мс, тут Вы тоже ошибаетесь, чем больше цикл тем больше временные погрешности, это для визуализации особой разницы нет, так устроен человеческий глаз, но это другая задача со своим временем, контроллер должен работать максимально быстро, чтоб как минимум быть точнее во временах
    Вопрос задал потому что мне это не понятно, может быть пример с таймером некорректный, я там еще и с F_TRIG привел аналогичный. Просто мне не понятно, работают ли эти вещи по своим событиям независимо от программы или все происходит в те временные интервалы, которые установлены для задачи. Я подозреваю, что работает все как надо, но пока в голове нет ясной картинки как это происходит.
    По поводу длительности цикла, я думаю Вы согласитесь, что все зависит от задачи и нет такого, что в любом случае цикл должен быть максимально коротким. Хотя если привязываться к примеру с таймером, тут соглашусь. Но я уже сказал, что пример некорректный.

    Цитата Сообщение от capzap Посмотреть сообщение
    так Вы не отвлекайтесь от своей задачи создания сущности, импульс можно подать за пределами ПОУ непосредственно при присвоении физическому выходу, точно так же, нет разницы сколько управленцев будет, они должны реализовать свою логику в совершенно другом месте
    Или Вы что-то не понимаете или я.
    Смотрите, есть ворота, со своим блоком управления, своим пультом, который ими управляет независимо ни от ПЛК ни от той сущности, о которой мы тут разговариваем. При этом мне важно знать в рамках этой моей сущности о том, что какая-то другая система/сущность отправила управляющий сигнал. Хотя и ворота могут управляться и другими способами, но она должна четко отражать их состояние независимо ни от чего. Это можно сделать только косвенно, по сигналам от концевиков. Поэтому в данном случае, во-первых, нельзя использовать управляющий сигнал, т.к. он не уникальный, а во-вторых, то выражение все равно не дает нужного результата, т.к. длительность управляющего импульса и длительность результирующего не совпадают.

  5. #5

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    в плк мы не управляем временем цикла, мы задаем минимальное время цикла и максимальное. Первое нужно чтоб обеспечить постоянство начало времени исполнения каждого скана, для того чтоб можно было спрогнозировать через сколько циклов пройдет некоторое время, второе для понимания что всё зависло и надо делать вачдог. Контроллер "съест" столько миллисекунд сколько потребуется выполнить все инструкции машинного кода в каждом конкретном скане. Если минимальное время превышает необходимое, плк будет выполнять фоновую задачу пока не наступит время нового цикла.
    Я сегодня пообщался с товарищем, он мне все объяснил. Я то думал, что тут аппаратный таймер (как это там, где я до этого имел опыт) и программа работает на его прерываниях, а оказывается нифига и все завязано на циклы задач, теперь многие вещи стали понятны.

    Цитата Сообщение от capzap Посмотреть сообщение
    и не поймем, потому что в начале
    Ну первое Вам не понравилось, объяснил по-другому, при этом выкинул один управляющий сигнал (ButtonEnabled), т.к. на суть вопроса он не влияет, чтобы не объяснять что это и зачем.

    Цитата Сообщение от capzap Посмотреть сообщение
    назначение плк до сих пор не понятно
    Есть ворота со своим блоком управления, это стандартная комплектация, обычно ограничиваются этим, открывают/закрывают с пульта или кнопки, которая напрямую к блоку управления подключается. При этом блок управления умеет принимать сигналы управления: вкл/выкл, открыть, закрыть и умеет отдавать сигналы с концевиков. Вот эти 5 каналов подключены к ПЛК и ими я хочу рулить в рамках этой сущности. А рулить ими я хочу в рамках системы умного дома.

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

    PS: насчет ООП в codesys, интерес я не потерял, все равно изучу вопрос, чтобы знать что там к чему

  6. #6

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    только зачем в коде постоянная избыточность, типа А := А AND Б; ?
    Имеете в виду, что надо заменить на IF и не выполнять операцию каждый цикл? Разве это даст экономию? Просто так красивее, люблю когда компактно.

    Цитата Сообщение от capzap Посмотреть сообщение
    Стоит перечитать про работу таймеров, если они запускаются в теле импульсного условия, то ихним функционалом не воспользоваться
    Где перечитать? В руководстве пользователя практически ничего про них, я ничего противоречащего не нашел. Имеется в виду, если его использовать в условии if .... then? Как тут:
    Код:
    IF tpCMDRepeat.IN AND tpCMDRepeat.ET=tpCMDRepeat.PT THEN
    Что при этом происходит? ФБ таймера не исполняется?

    Цитата Сообщение от capzap Посмотреть сообщение
    Возможно Вы не в курсе, но если использовать в меню галку симуляция, то можно проверить свой код на работоспособность не дожидаясь наличия контроллера
    Да, не знал, попробую, спасибо.

  7. #7

    По умолчанию

    Цитата Сообщение от turkish945 Посмотреть сообщение
    Код:
    IF tpCMDRepeat.IN AND tpCMDRepeat.ET=tpCMDRepeat.PT THEN
    Что при этом происходит? ФБ таймера не исполняется?
    Ага, НЕ исполняется. Тут ты только его выходами пользуешься.
    А исполняется он тогда, когда ты его вызываешь как
    Код:
    tpCMDRepeat(.....);

Страница 5 из 5 ПерваяПервая ... 345

Похожие темы

  1. Использование УЗС-1
    от Сергей 2909 в разделе Эксплуатация
    Ответов: 0
    Последнее сообщение: 31.05.2018, 07:56
  2. Ответов: 3
    Последнее сообщение: 05.03.2015, 14:01
  3. ПЛК 110, использование RS-232
    от =MiX@$= в разделе ПЛК1хх
    Ответов: 18
    Последнее сообщение: 14.10.2011, 13:26
  4. Использование АС4
    от alex_sinjawin в разделе Сетевые технологии
    Ответов: 2
    Последнее сообщение: 10.11.2009, 18:31
  5. Использование CoDeSys Service Tool (CST).
    от Юрий_1900 в разделе ПЛК1хх
    Ответов: 1
    Последнее сообщение: 03.09.2009, 08:49

Ваши права

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