Страница 2 из 2 ПерваяПервая 12
Показано с 11 по 13 из 13

Тема: СПК107 +МК110-4К.4Р нет связи, на СПК пропало отображения кнопок и лампочек

  1. #11
    Пользователь
    Регистрация
    05.11.2016
    Адрес
    Нижний Новгород
    Сообщений
    69

    По умолчанию

    Цитата Сообщение от Евгений Кислов Посмотреть сообщение
    Выложите архив проекта, пожалуйста, в котором наблюдается подобное.
    Тестовый проектик где попытался запустить обмен с использованием R_TRIG из кода. Не получается.
    Вложения Вложения

  2. #12
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    12,228

    По умолчанию

    Так вы триггер и не вызываете. Сравните 18 строку (вызов ФБ с параметрами) и 28 (задание параметра ФБ без его вызова).

    Вызов триггера заменит вам всю конструкцию IF THEN ELSE:

    Код:
    R_TRIG_M16D_CH_WR_COUNT14(CLK:=(M16D_cnt14 >= M16D_cnt14_val_rst));
    Тут, правда, стоит подумать о ситуации, когда после срабатывания триггера запись в модуль не произошла (например, в тот момент он был отключен). Возможно, стоит действовать в стиле "если спустя 5 секунд после срабатывания триггера значение счетчика не изменилось, то сбрасываем триггер (и он сработает опять, т.к. условие срабатывания продолжает выполняться) для новой попытки записи".

    И советую для Main_task поставить цикл 10 мс - по дефолту обмен привязывается к задаче с наименьшим циклом, 100 мс - не очень хорошее число.

  3. #13
    Пользователь
    Регистрация
    05.11.2016
    Адрес
    Нижний Новгород
    Сообщений
    69

    По умолчанию

    Цитата Сообщение от Евгений Кислов Посмотреть сообщение
    Так вы триггер и не вызываете. Сравните 18 строку (вызов ФБ с параметрами) и 28 (задание параметра ФБ без его вызова).

    Вызов триггера заменит вам всю конструкцию IF THEN ELSE:

    Код:
    R_TRIG_M16D_CH_WR_COUNT14(CLK:=(M16D_cnt14 >= M16D_cnt14_val_rst));
    Тут, правда, стоит подумать о ситуации, когда после срабатывания триггера запись в модуль не произошла (например, в тот момент он был отключен). Возможно, стоит действовать в стиле "если спустя 5 секунд после срабатывания триггера значение счетчика не изменилось, то сбрасываем триггер (и он сработает опять, т.к. условие срабатывания продолжает выполняться) для новой попытки записи".

    И советую для Main_task поставить цикл 10 мс - по дефолту обмен привязывается к задаче с наименьшим циклом, 100 мс - не очень хорошее число.
    Спасибо что посмотрели код. ПЛК и язык ST только осваиваю, так что любые ошибки возможны. Буду разбираться.

Страница 2 из 2 ПерваяПервая 12

Похожие темы

  1. СПК107+МК110.4ДН.4Р
    от Попов Александр в разделе СПК1хх
    Ответов: 0
    Последнее сообщение: 15.04.2015, 13:53
  2. СПК107+МК110-8ДН.4Р
    от DmitriySt в разделе СПК1хх
    Ответов: 4
    Последнее сообщение: 27.10.2014, 21:20
  3. Ответов: 21
    Последнее сообщение: 18.01.2010, 17:13
  4. Ответов: 3
    Последнее сообщение: 03.09.2009, 12:40
  5. Ответов: 2
    Последнее сообщение: 10.04.2007, 10:04

Ваши права

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