Показано с 1 по 10 из 1642

Тема: CODESYS V3.5. Настройка обмена с другими устройствами (Modbus, ОВЕН, OPC и др.)

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    13,606

    По умолчанию

    Цитата Сообщение от rybakov-ks Посмотреть сообщение
    Добрый день. ПМ210 подключен к СПК110. Как в Modbus_Serial_Device посмотреть вкладку "Cостояние"? Необходимо определять Modbus Serial Device: Работает или Не запущено. Использовал ФБ Modbus_Serial_Device.GetDeviceState (GetDeviceState_0: IoDrvModbusSerialSlaveLibrary.ModbusSerialDeviceDi ag) но получаю ошибку:
    Код:
    'GetDeviceState_0' не является экземпляром 'Modbus_Serial_Device'.
    Добрый день.
    Можно ориентироваться на Modbus_Serial_Device.xBusy - если он имеет значение TRUE, то слэйв работает.

  2. #2

    По умолчанию

    Цитата Сообщение от Евгений Кислов Посмотреть сообщение
    Добрый день.
    Можно ориентироваться на Modbus_Serial_Device.xBusy - если он имеет значение TRUE, то слэйв работает.
    Мне необходимо со стороны СПК110 понимать опрашивает ли его ПМ210. При отключении ПМ210 переменная Modbus_Serial_Device.xBusy не меняет своего значения. А если открыть вкладку "Cостояние", то поле "Modbus Serial Device: Работает или Не запущено" меняется как мне нужно в зависимости от активности ПМ210.

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

    По умолчанию

    Цитата Сообщение от rybakov-ks Посмотреть сообщение
    Мне необходимо со стороны СПК110 понимать опрашивает ли его ПМ210. При отключении ПМ210 переменная Modbus_Serial_Device.xBusy не меняет своего значения. А если открыть вкладку "Cостояние", то поле "Modbus Serial Device: Работает или Не запущено" меняется как мне нужно в зависимости от активности ПМ210.
    По-моему, в современных версиях CODESYS (например, 3.5.17.30) поведение следующее:
    - при старте в дереве проекта рядом со слэйвом отображается желтый треугольник, состояние = не запущено
    - при получении первого корректного запроса от мастера индикатор меняется на зеленый круг, состояние = запущено

    И после этого индикатор сохраняет зеленый цвет даже при отсутствии запросов от мастера (потому что с точки зрения слэйва, отсутствие запросов от мастера - это нормальная ситуация).

    В вашем случае, на мой взгляд, проще всего отказаться от слэйва в дереве проекта и поднять его через библиотеку OwenCommunication - в этом случае вы получите нужную вам диагностику.

  4. #4

    По умолчанию

    Цитата Сообщение от Евгений Кислов Посмотреть сообщение
    По-моему, в современных версиях CODESYS (например, 3.5.17.30) поведение следующее:
    - при старте в дереве проекта рядом со слэйвом отображается желтый треугольник, состояние = не запущено
    - при получении первого корректного запроса от мастера индикатор меняется на зеленый круг, состояние = запущено

    И после этого индикатор сохраняет зеленый цвет даже при отсутствии запросов от мастера (потому что с точки зрения слэйва, отсутствие запросов от мастера - это нормальная ситуация).

    В вашем случае, на мой взгляд, проще всего отказаться от слэйва в дереве проекта и поднять его через библиотеку OwenCommunication - в этом случае вы получите нужную вам диагностику.
    Да, это так, но в Modbus Serial Device есть возможность задать время сторожевого таймера. Если по истечении этого времени мастер не отправляет запрос, статус изменится с "Работает" на "Не запущен".

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

    По умолчанию

    Цитата Сообщение от rybakov-ks Посмотреть сообщение
    Да, это так, но в Modbus Serial Device есть возможность задать время сторожевого таймера. Если по истечении этого времени мастер не отправляет запрос, статус изменится с "Работает" на "Не запущен".
    Этот статус (как и иконка) формируются внутри компонента - вы не сможете считать их в программе.

  6. #6

    По умолчанию

    Цитата Сообщение от Евгений Кислов Посмотреть сообщение
    Этот статус (как и иконка) формируются внутри компонента - вы не сможете считать их в программе.
    Понятно. Спасибо.

  7. #7

    По умолчанию

    Цитата Сообщение от Евгений Кислов Посмотреть сообщение
    По-моему, в современных версиях CODESYS (например, 3.5.17.30) поведение следующее:
    - при старте в дереве проекта рядом со слэйвом отображается желтый треугольник, состояние = не запущено
    - при получении первого корректного запроса от мастера индикатор меняется на зеленый круг, состояние = запущено

    И после этого индикатор сохраняет зеленый цвет даже при отсутствии запросов от мастера (потому что с точки зрения слэйва, отсутствие запросов от мастера - это нормальная ситуация).

    В вашем случае, на мой взгляд, проще всего отказаться от слэйва в дереве проекта и поднять его через библиотеку OwenCommunication - в этом случае вы получите нужную вам диагностику.
    Интересующий меня функционал реализовал через OwenCommunication. Столкнулся с проблемой: записываю через OwenCloud переменную типа BOOL в бит регистра slave’а и сохраняю её в программе в RETAIN-переменную. После перезагрузки СПК110 переменная сбрасывается на 0. Это нормальное поведение? Какие существуют способы сохранить значение переменной после перезагрузки?

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

    По умолчанию

    Цитата Сообщение от rybakov-ks Посмотреть сообщение
    Интересующий меня функционал реализовал через OwenCommunication. Столкнулся с проблемой: записываю через OwenCloud переменную типа BOOL в бит регистра slave’а и сохраняю её в программе в RETAIN-переменную. После перезагрузки СПК110 переменная сбрасывается на 0. Это нормальное поведение? Какие существуют способы сохранить значение переменной после перезагрузки?
    Проще всего - буфер самого слэйва объявить в области RETAIN.
    В данный момент, как я понимаю, вы циклически перезаписываете вашу RETAIN-переменную значением из буфера слэйва - но он-то переинициализруется после перезагрузки.

  9. #9

    По умолчанию

    Цитата Сообщение от Евгений Кислов Посмотреть сообщение
    Проще всего - буфер самого слэйва объявить в области RETAIN.
    В данный момент, как я понимаю, вы циклически перезаписываете вашу RETAIN-переменную значением из буфера слэйва - но он-то переинициализруется после перезагрузки.
    Работает. Спасибо.

Похожие темы

  1. Настройка ПР200, управление 3-мя устройствами через RS-485
    от Orbes в разделе Среда программирования OWEN Logic
    Ответов: 20
    Последнее сообщение: 15.05.2017, 16:45
  2. СП3ХХ Пример настройка обмена с ПЛК на CODESYS 2.3
    от Denis_Kay в разделе Панели оператора (HMI)
    Ответов: 6
    Последнее сообщение: 02.03.2017, 15:12
  3. Ответов: 43
    Последнее сообщение: 13.04.2015, 14:05
  4. Универсальная функция для обмена с устройствами OwenIO и всеми любимый LabView.
    от Алексей Крагель в разделе Помощь Разработчикам
    Ответов: 0
    Последнее сообщение: 30.05.2014, 13:38

Ваши права

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