Страница 1 из 5 123 ... ПоследняяПоследняя
Показано с 1 по 10 из 42

Тема: Непонятное поведение СП310+МУ110-16Р

  1. #1

    По умолчанию Непонятное поведение СП310+МУ110-16Р

    Использую связку, указанную в теме, СП310 выступает в роли мастера, через интерфейс панели (грубо говоря кнопки) управляю каналами МУ110 по modbus.
    Вообще вопросов на данный момент 2:
    1. Кнопки реагируют как положено (прописан PLC порт 16 - для первого канала к примеру), а вот с индикацией какая-то непонятная вещь происходит, а именно. Добавляю индикатор в проект, пытаюсь "повесить" его на 16 порт (по умолчанию для МУ110), НО отображения нет - на экране периодически появляется диалог "соединение.. PLC порт 16"... и ничего не происходит.
    Если к примеру использовать read в макросах и индикатор повесить на PSB то всё корректно.
    Кстати проблема работы с регистрами МУ110 наблюдается и при использовании "Переключателя с индикацией" - также не работает.

    2. Где в макросах можно прописать процедуру или функцию которая бы исполнялась после включения панели - дабы актуализировать индикацию состояния каналов МУ110 - например выключили и включили панель и через макросы обновили все индикаторы с использованием read.

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

    По умолчанию

    1. Индикатор пытается использовать функцию Read Coils или Read Discrete Inputs, которую модуль не поддерживает. Поэтому надо считывать регистр битовой маски (например, через макросы или функциональную область), а потом выводить на экран значения его битов - что, собственно, вы и сделали.

    2. Объявите логическую переменную, инициализируйте ее со значением FALSE, проверяйте через IF, что она равна FALSE, если равна - значит, произошел запуск панели, соответственно, опрашивайте модуль и присваивайте переменной значение TRUE, чтобы прекратить опрос.

  3. #3

    По умолчанию

    Цитата Сообщение от Евгений Кислов Посмотреть сообщение
    1. Индикатор пытается использовать функцию Read Coils или Read Discrete Inputs, которую модуль не поддерживает. Поэтому надо считывать регистр битовой маски (например, через макросы или функциональную область), а потом выводить на экран значения его битов - что, собственно, вы и сделали.

    2. Объявите логическую переменную, инициализируйте ее со значением FALSE, проверяйте через IF, что она равна FALSE, если равна - значит, произошел запуск панели, соответственно, опрашивайте модуль и присваивайте переменной значение TRUE, чтобы прекратить опрос.
    С одной стороны всё вроде бы понятно, но не совсем понятно где именно должен быть этот самый IF...

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

    По умолчанию

    Прикладываю пример. В нем при старте панели в PSW300 однократно записывается значение 100. Вам по аналогии нужно произвести необходимые действия с модулями.
    Вложения Вложения

  5. #5

    По умолчанию

    Исправил макрос следующим образом - не отрабатывает
    BOOL HMIstart=FALSE;
    BOOL Value;

    if (HMIstart==FALSE)
    {


    Read(PLC, 16, MODBUS_RTU_BIT_0X, 0, 0, TYPE_BIT, &Value);
    if (Value==TRUE)
    {
    SetPSB(300);
    }
    else
    {
    ResetPSB(300);
    }

    PSW[300]=Value;
    HMIstart=TRUE;
    }

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

    По умолчанию

    У меня ваш код отрабатывает, но не один раз, а постоянно.

    Я не могу в данный момент прокомментировать, почему так происходит, но могу предложить решение - используйте вместо HMIstart один из регистров панели.

    Примерно так:

    Код:
    BOOL Value;
    
    if (PSW[400]==0)
    {
    
    
    Read(DOWNLOAD, 1, MODBUS_RTU_BIT_0X, 0, 0, TYPE_BIT, &Value);
    if (Value==TRUE)
    {
    SetPSB(300); 
    }
    else
    {
    ResetPSB(300); 
    }
    
    PSW[300]=Value;
    PSW[400]=1;
    }

  7. #7

    По умолчанию

    В итоге решил свою задачу следующим образом, т.к. булево не хочет адекватно работать. На PSB300 соответственно висит индикатор, читаю значение регистра МУ110 в переменную с типом dword (с BOOL повторюсь не вышло - всегда в TRUE не зависимо от состояния регистра), ну а дальше согласно условий...

    DWORD Value=0;

    if (PSW[400]==0)
    {


    Read(DOWNLOAD, 32, MODBUS_RTU_REG_4X, 0, 0, TYPE_WORD, &Value);

    if (Value!=0)
    {
    SetPSB(300);
    }
    else
    {
    ResetPSB(300);
    }

    PSW[400]=1;
    }

  8. #8

    По умолчанию

    В общем и целом - что-то все таки СП310 сыровата совсем (или же конфигуратор от нее).
    Использую данную панель в паре с модулями МУ110 - вот некоторые грабли (это помимо тех что выше написаны)
    1. Элемент управления "Переключатель с индикацией" - с привязкой к порту PLC/Download - напрочь отказывается работать - снова приходится шаманить с макросами и внутренними регистрами, чтобы заставить адекватно управлять портами
    ВОПРОС: почему с обычными кнопками всё нормально а с этим элементом такой бардак?

    2. Функциональные области нельзя переименовывать - если у меня несколько областей на экране - приходится на память запоминать какая за что отвечает!
    3. Адекватно прочитать состояние канала с МУ110 получается ТОЛЬКО через тип WORD так еще и с REG_4x, а вот записать состояние канала почему то по данной схеме уже не получается
    приходится уже битовыми типами оперировать Write(DOWNLOAD, 176, MODBUS_RTU_BIT_0X, 0, 0, TYPE_BIT, Value);

    Почему такая несогласованность?! Все приходится путем проб и ошибок выяснять.
    Последний раз редактировалось Юрий Агапов; 10.10.2016 в 12:48.

  9. #9

    По умолчанию

    и где взять последнюю версию конфигуратора для СП310?

  10. #10
    Пользователь Аватар для petera
    Регистрация
    06.05.2011
    Адрес
    Минск
    Сообщений
    3,841

    По умолчанию

    Цитата Сообщение от Юрий Агапов Посмотреть сообщение
    В общем и целом - что-то все таки СП310 сыровата совсем (или же конфигуратор от нее).
    Использую данную панель в паре с модулями МУ110 - вот некоторые грабли (это помимо тех что выше написаны)
    1. Элемент управления "Переключатель с индикацией" - с привязкой к порту PLC/Download - напрочь отказывается работать - снова приходится шаманить с макросами и внутренними регистрами, чтобы заставить адекватно управлять портами
    ВОПРОС: почему с обычными кнопками всё нормально а с этим элементом такой бардак?

    2. Функциональные области нельзя переименовывать - если у меня несколько областей на экране - приходится на память запоминать какая за что отвечает!
    3. Адекватно прочитать состояние канала с МУ110 получается ТОЛЬКО через тип WORD так еще и с REG_4x, а вот записать состояние канала почему то по данной схеме уже не получается
    приходится уже битовыми типами оперировать Write(DOWNLOAD, 176, MODBUS_RTU_BIT_0X, 0, 0, TYPE_BIT, Value);

    Почему такая несогласованность?! Все приходится путем проб и ошибок выяснять.
    Да это не панель "сыроватая", а просто опыта у Вас маловато.
    Расскажите, а лучше покажите, чего Вы хотите получить от "Переключателя с индикацией", какие у него настройки, и что не работает без "шаманства".
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

Страница 1 из 5 123 ... ПоследняяПоследняя

Похожие темы

  1. Плк 110 + 2 сп310
    от Kostennikov в разделе Помощь Разработчикам
    Ответов: 4
    Последнее сообщение: 12.07.2016, 12:59
  2. Непонятное поведение ПР
    от Sergh_Cherenkov в разделе Программируемые реле
    Ответов: 30
    Последнее сообщение: 28.06.2011, 09:53
  3. Непонятное в СП270
    от BoraBora в разделе Панели оператора (HMI)
    Ответов: 2
    Последнее сообщение: 16.03.2011, 09:51
  4. Непонятное поведение ПЛК150
    от nnesterov в разделе ПЛК1хх
    Ответов: 10
    Последнее сообщение: 30.06.2010, 18:40

Ваши права

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