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

Тема: СПК110 Modbus Slave

  1. #1

    По умолчанию СПК107 Modbus Slave

    Здравствуйте, меня интересует как решить проблему "отваливания" интерфейса Modbus при его реализации через библиотеку Modbus Slave. Интерфейс задействован для связи со скадой и ранее был реализован при помощи стандартных средств Codesys. После того, как переделал на библиотеку Modbus Slave - начала постоянно отваливаться связь по Modbus. Причём в той же сети висят еще 5 контроллеров со старой программой и с ними связь как была стабильной так и остаётся. В чём может быть проблема?
    Последний раз редактировалось Mikewolf; 26.02.2018 в 15:11.

  2. #2

    По умолчанию

    Цитата Сообщение от Mikewolf Посмотреть сообщение
    Здравствуйте, меня интересует как решить проблему "отваливания" интерфейса Modbus при его реализации через библиотеку Modbus Slave. Интерфейс задействован для связи со скадой и ранее был реализован при помощи стандартных средств Codesys. После того, как переделал на библиотеку Modbus Slave - начала постоянно отваливаться связь по Modbus. Причём в той же сети висят еще 5 контроллеров со старой программой и с ними связь как была стабильной так и остаётся. В чём может быть проблема?
    Добрый день. Без проекта и подробного описания проблемы (в чем проявляется отваливание, с какой частотой наблюдается и т.д.) дать какие-либо комментарии представляется затруднительным.

  3. #3

    По умолчанию

    Добрый день. Отваливание заключается в том, что контроллер перестает обмениваться данными с OPC-сервером. Статус устройства в OPC-сервере - TimeOut. Проявляется по-разному. Может стабильно держаться двое суток, может пропасть через два часа. Восстанавливается только сбросом питания контроллера. Кусок кода, отвечающий за обмен прилагаю ниже. Если необходим полный проект - могу отправить Вам на почту.

    stComSettings.sPort := 2;

    stComSettings.byStopBits := 1;
    stComSettings.byParity := 0;
    CASE sbr OF
    0: stComSettings.ulBaudrate := 4800;
    1: stComSettings.ulBaudrate := 9600;
    2: stComSettings.ulBaudrate := 19200;
    3: stComSettings.ulBaudrate := 38400;
    4: stComSettings.ulBaudrate := 57600;
    5: stComSettings.ulBaudrate := 115200;
    END_CASE;



    stComSettingsEx.byByteSize := 8;
    IF I<200 THEN
    fbComService
    (
    Enable := TRUE,
    Settings := stComSettings,
    sets_ex := stComSetting****
    Task := ComSerice.COM_TSK.OPEN_TSK,
    Ready=> ,
    handle=>
    );
    ELSE
    fbComService
    (
    Enable := TRUE,
    Settings := stComSettings,
    sets_ex := stComSetting****
    Task := ComSerice.COM_TSK.RESET_TSK,
    Ready=> ,
    handle=>
    );
    j:=j+1;
    IF j>10 THEN
    J:=0;
    I:=0;
    END_IF;
    END_IF;


    IF xSlaveEnable AND fbComService.Ready THEN

    fbModbusSlave
    (
    ComHandle := fbComService.handle,
    DevAddr := bySlaveID,
    pBuffer := ADR(awSlaveBuffer),
    BufSize := SIZEOF(awSlaveBuffer),
    NewData=> ,
    Error=>
    );

    END_IF;

    IF fbModbusSlave.NewData=FALSE THEN i:=i+1; END_IF;

  4. #4

  5. #5

    По умолчанию

    1. Проект отправил.
    2. ОPC-сервер ОВЕН версия 1.9.54.11942
    3. Да, это была попытка сделать автоматическую перезагрузку интерфейса. Скада раз в секунду перещелкивает один бит в посылке туда-обратно, для того, чтобы данные постоянно обновлялись.

  6. #6

    По умолчанию

    Добрый день.
    Вопрос конкретного новичка. Где можно почитать (или так подскажите) как обмениваться ModBus переменными между и СПК110 и любым другим контроллером. Допустим в Сигнетиксах есть полноценная MB карта. А как такую сделать на СПК?

  7. #7

  8. #8

    По умолчанию

    Цитата Сообщение от Mikewolf Посмотреть сообщение
    1. Проект отправил.
    2. ОPC-сервер ОВЕН версия 1.9.54.11942
    3. Да, это была попытка сделать автоматическую перезагрузку интерфейса. Скада раз в секунду перещелкивает один бит в посылке туда-обратно, для того, чтобы данные постоянно обновлялись.
    Получил проекты, поставил и через несколько минут контроллер выпал по Watchdog'у, опрос остановился. Я рекомендую для начала отключить сторожевые таймеры в Конфигурации задач - убрать галочки Watchdog и выставить цикл выполнения VISU_TASK 200 мс. Свободное выполнение (freewheeling) не рекомендуем.

Похожие темы

  1. Modbus (Master) не отображается в память Modbus (Slave)
    от ghoch в разделе Помощь Разработчикам
    Ответов: 3
    Последнее сообщение: 07.05.2018, 09:40
  2. ПЛК160: Modbus TCP Master и Modbus TCP Slave одновременно.
    от Антон Костюченко в разделе ПЛК1хх
    Ответов: 10
    Последнее сообщение: 18.07.2016, 10:36
  3. Переменная из Modbus (master) в Modbus (slave)
    от Zenr в разделе ПЛК1хх
    Ответов: 6
    Последнее сообщение: 25.10.2013, 12:38
  4. Ответов: 5
    Последнее сообщение: 14.10.2010, 14:42

Ваши права

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