Страница 1 из 4 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,171

    По умолчанию

    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,171

    По умолчанию

    Прикладываю пример. В нем при старте панели в 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,171

    По умолчанию

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

    Я не могу в данный момент прокомментировать, почему так происходит, но могу предложить решение - используйте вместо 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
    Пользователь Аватар для 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

  10. #10

    По умолчанию

    Задача казалось бы элементарная:
    Есть модуль МУ110 - необходимо включать и выключать его каналы
    1. Добавляю на экран "Переключатель с индикацией" в свойствах выставляю download порт (адрес модуля 176), регистр 0х - таким образом хочу управлять первым каналом модуля.
    2. На вкладке "индикатор" - инверсия
    При первом нажатии канал включается (по логике индикатор тоже должен загореться, но этого не происходит), повторное нажатие ни к чему не приводит - появляется окно "соединение.. Download порт 176"

    Да и дело тут получается больше в том что во включенном состоянии канала МУ110 в регистре не битовое значение а WORD (1000) вот индикатор видимо и не понимает что дальше делать...
    Вот собственно и всё!

Страница 1 из 4 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

Ваши права

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