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

Тема: СП310 + МУ110-16Р, зажигаем лампочку по температуре

  1. #1

    Question СП310 + МУ110-16Р, зажигаем лампочку по температуре

    Доброго времени суток!
    Читал похожую тему но не нашел нужного ответа

    Задача проста. При достижении определенной температуры, панель должна включить выход на МУ110-16Р (лампочку).

    1. Попробовал просто через кнопку. Натравил ее на нужный регистр. Нажимаю... нажимается... лампочка загорается(физически). Но через 1-2 сек тухнет. Вычитал что там надо время опроса модуля поставить в 0, но не найду где
    2. Написал макрос:
    DWORD Value = 0; //Объявляю и инициализирую переменную нулем

    Read(PLC, 100, MODBUS_RTU_REG_4X, 4, 0, TYPE_DWORD, &Value); //Считаю значение температуры с модуля МВ110-8А

    *(DWORD*)(PSW+400)=Value; //Записываю полученное значение в регистр панели (для проверки считывания)

    if (Value < 7) //Проверяю что значение температуры меньше 7 градусов
    {
    Write(PLC, 105, MODBUS_RTU_BIT_0X, 0, 0, TYPE_BIT, 1); //Записываю бит "1" в МУ110-16Р
    }
    else //Иначе
    {
    Write(PLC, 105, MODBUS_RTU_BIT_0X, 0, 0, TYPE_BIT, 0); //Записываю бит "0" в МУ110-16Р
    }
    Вывожу показания с регистра PSW400 на экран. Все отлично показывает. А модуль упорно молчит. Вместо записи на модуль сразу, пробовал менять бит PSB280 командами SetPSB(280) и ResetPSB(280). Команды не выполняются(


    Собственно вопрос, что я не так делаю в обоих случаях?
    Последний раз редактировалось Алексей Скрынников; 25.05.2017 в 08:26.

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

    По умолчанию

    Во-первых, вам нужно объявить переменную как float.

    Код:
    float Value = 0.0;
    
    Read(PLC, 100, MODBUS_RTU_REG_4X, 4, 0, TYPE_DWORD, &Value); //Считаю значение температуры с модуля МВ110-8А
    
    if (Value < 7.0) //Проверяю что значение температуры меньше 7 градусов
    {
    // какое-то действие
    }
    else //Иначе
    {
    // какое-то действие
    }

    Прикладываю пример реализации (используется память панели).


    Во-вторых, запись в модуль осуществляется функцией 15 (отдельные выходы) или 16 (маска).
    Write и Writes в данном случае не подойдут.
    Реализации описана в статье, на сайте доступен пример (раздел ПО, примеры и инструкции):
    http://www.owen.ru/uploads/aip_47_sait_kislov_36-37.pdf
    Вложения Вложения

  3. #3

    По умолчанию

    Цитата Сообщение от Алексей Скрынников Посмотреть сообщение
    Доброго времени суток!
    Читал похожую тему но не нашел нужного ответа

    Задача проста. При достижении определенной температуры, панель должна включить выход на МУ110-16Р (лампочку).

    1. Попробовал просто через кнопку. Натравил ее на нужный регистр. Нажимаю... нажимается... лампочка загорается(физически). Но через 1-2 сек тухнет. Вычитал что там надо время опроса модуля поставить в 0, но не найду где

    Собственно вопрос, что я не так делаю ?


    проверьте настройку модуля 16Р. у него есть параметр сетевых настроек - максимальный сетевой таймаут. похоже, что у Вас там установлено 1 или 2 секунды. если за это время не приходят модулю повторно посылки - он переводит выходы в безопасное состояние, которые по умолчанию все выключены.

  4. #4

    По умолчанию

    Запустил систему.

    Как и посоветовал мне Евгений Кислов в скайпе, по первому вопросу действительно неправильно указал поведение кнопки.
    Настроил просто: 105 адрес, регистр 0, записываемое значение 1.

    По второму вопросу все получилось.
    Код примерно такой:
    float Value = 0; //Объявляю и инициализирую переменную нулем
    Read(PLC, 100, MODBUS_RTU_REG_4X, 4, 0, TYPE_DWORD, &Value); //Считаю значение температуры с модуля МВ110-8А и записываю значение в переменную Value

    if (Value < 7) //Проверяю что значение температуры меньше 7 градусов
    {
    Write(PLC, 105, MODBUS_RTU_BIT_0X, 0, 0, TYPE_BIT, 1); //Записываю бит "1" в МУ110-16Р
    }
    else //Иначе
    {
    Write(PLC, 105, MODBUS_RTU_BIT_0X, 0, 0, TYPE_BIT, 0); //Записываю бит "0" в МУ110-16Р
    }
    Все заработало на ура. Команда Write отлично отрабатывает.

Похожие темы

  1. Непонятное поведение СП310+МУ110-16Р
    от Юрий Агапов в разделе Панели оператора (HMI)
    Ответов: 41
    Последнее сообщение: 22.02.2018, 19:41
  2. управление тэнами по температуре
    от Keldish в разделе Помощь Разработчикам
    Ответов: 64
    Последнее сообщение: 10.05.2015, 14:11
  3. Ответов: 2
    Последнее сообщение: 19.03.2012, 00:22
  4. как прочитать данные об измеренной температуре
    от незарегистрированный в разделе Помощь Разработчикам
    Ответов: 8
    Последнее сообщение: 18.02.2010, 12:49
  5. трм32 регулирование по температуре в помещении
    от sasha_sch в разделе Эксплуатация
    Ответов: 0
    Последнее сообщение: 21.10.2009, 11:58

Ваши права

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