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

Тема: Сброс значения TRUE в FALSE

  1. #1

    По умолчанию Сброс значения TRUE в FALSE

    Добрый день!
    Столкнулся с такой задачей. С Верхнего уровня подаю команду TRUE на СПК207, конкретно в ModbusTCPSlaveDevice определенный адрес, он срабатывает реле переключает. Теперь, как сделать чтобы адрес, на который поступила команда TRUE обнулилось в False автоматически через определенное время? Среда программирования CoDeSys v3.5.

  2. #2

    По умолчанию

    Цитата Сообщение от РустамДж Посмотреть сообщение
    Добрый день!
    Столкнулся с такой задачей. С Верхнего уровня подаю команду TRUE на СПК207, конкретно в ModbusTCPSlaveDevice определенный адрес, он срабатывает реле переключает. Теперь, как сделать чтобы адрес, на который поступила команда TRUE обнулилось в False автоматически через определенное время? Среда программирования CoDeSys v3.5.
    Добрый день.
    Насколько я понимаю, команда с верхнего уровня приходит однократно, а не циклически?
    В этом случае можно установить таймаут ожидания запросов от мастера - если в течение этого времени не будет получено ни одной команды, то значения всех регистров слэйва будут сброшены в 0.

    25-07-2018 15-21-59.png

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

    Если возникнут дополнительные вопросы, то вы можете связаться со мной по skype (данные в подписи).

  3. #3

    По умолчанию

    Как один из вариантов может быть:
    TON1(IN:=Value,PT:=Time);
    IF (TON1.Q=TRUE) THEN
    Value:=FALSE;
    END_IF;

  4. #4

    По умолчанию

    Цитата Сообщение от ferret_maybe Посмотреть сообщение
    Как один из вариантов может быть:
    TON1(IN:=Value,PT:=Time);
    IF (TON1.Q=TRUE) THEN
    Value:=FALSE;
    END_IF;
    Дело в том, что если Value привязана к области Modbus Slave - то ее значение нельзя изменить из программы. Это особенность реализации Modbus Slave в конфигурации CODESYS 3.5.

  5. #5

    По умолчанию

    Добрый вечер!
    1 вариант не пойдет, так как Верхнему уровню нужно постоянное чтение состояния контактов модуля ввода.
    Я в CoDeSys не так силен, можете скинуть какой не будь пример, как это реализовать. Язык программирования выбрал CFC. Ситуация такая, я посылаю команду TRUE на переменную test1 присвоенная на контакт ModbusTCPSlaveDevice, та передает эту команду на переменную test2 на контакт модуля вывода МУ110-220.32Р. Модуль переключает реле. Сегодня использовал между ними таймер TP, переменная test2 отключается, а переменная test1 стоит в положении TRUE. По пробовал еще добавить элемент MOVE переменная test1 стала выключатся, но теперь гонит переменная test2. Еще выходит сообщение что я использую одну и ту же переменную в начале и в конце. Может я что та не так делаю, подскажите!!!

  6. #6

  7. #7

    По умолчанию

    Добрый день!
    Я работаю на железной дороге, тут запрещают безопасники использовать skype. Есть AnyDesk и могу установить teamviewer. Или же вечером связаться с Вами из дома.

  8. #8

Похожие темы

  1. Кратковременный перевод из false в true C#
    от Lukasevich в разделе Master SCADA 3
    Ответов: 9
    Последнее сообщение: 13.10.2017, 08:53
  2. Сброс значения редактируемой переменной
    от Urik777 в разделе Среда программирования OWEN Logic
    Ответов: 1
    Последнее сообщение: 10.03.2016, 23:30
  3. Вызов программы по событию TRUE->FALSE
    от Туман в разделе ПЛК1хх
    Ответов: 15
    Последнее сообщение: 19.11.2015, 06:52
  4. Ответов: 3
    Последнее сообщение: 12.05.2015, 22:19

Ваши права

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