Страница 3 из 3 ПерваяПервая 123
Показано с 21 по 25 из 25

Тема: выбор POU

  1. #21

    По умолчанию

    а можете еще раз подробнее описать проблему, у меня фиксация происходит нормально и в том и в другом случае, не могу понять где у вас возникла сложность
    P.S. версия IoDrvModbus 3.5.3.50

    xreset.PNG
    Последний раз редактировалось Владиславыч; 24.04.2014 в 10:38.

  2. #22

    По умолчанию

    P.P.S может поможет...
    Вложения Вложения

  3. #23

    По умолчанию

    Цитата Сообщение от Владиславыч Посмотреть сообщение
    а можете еще раз подробнее описать проблему, у меня фиксация происходит нормально и в том и в другом случае, не могу понять где у вас возникла сложность
    P.S. версия IoDrvModbus 3.5.3.50
    Исследования ситуации привели к следующему.
    1. Я заменил версии ModBus компонентов в своем проекте как в Вашем случае. Компиляция показала 501+ ошибок.
    2. Заменил таргет СПК на такой же как и у Вас. Всё заработало. [причем нужно отметить, что мы совсем игнорируем тут правило о том, что версия таргета должна быть строго не старше версий библиотек!] Ошибки фиксируются в нужные переменные в заданных для этого местах. Действие xReset и xAcknowledge стало задекларировано в библиотеке, естественно, такое же как в Вашем случае.
    3. xReset сбрасывает xError и byModbusError в соответствии с сигналом от Blink (то есть срезу же, хотя физическое соединение ещё не восстановилось).
    4. xAcknowledge не сбрасывает xError по сигналу от Blink (пока линия связи нарушена), но, тем не менее, после восстановления линии связи xError и byModbusError сбрасываются! Уж не знаю кто это делает, может и не xAcknowledge... Но всё работает!
    Причём с xAcknowledge работать вроде получается удобнее. Пока связи нет - флаг и код ошибки висят в переменных, по которым я могу обрабатывать ситуацию (например не учитывать в расчётах пропущенные значения с датчиков, или через какое то время совсем остановить систему), как связь появилась, так и мои буферные переменные обнулились.
    А если использовать xReset, то получается что связи нет, но система с периодичностью от Blink начинает ошибочно думать что связь есть, пока опять не приедет xError от следующей попытки установить очередной цикл связи со слейвом.

    ЗЫ: Владиславыч спасибо, у меня сейчас всё заработало.
    Последний раз редактировалось RadistDog; 24.04.2014 в 11:38.

  4. #24

    По умолчанию

    Осталось понять почему у меня все перестает работать когда я пытаюсь вынести переподключение в функцию...

    [причем нужно отметить, что мы совсем игнорируем тут правило о том, что версия таргета должна быть строго не старше версий библиотек!]
    P.S. попробовал xAcknowlege у меня с ним восстановление нормально не проходит, ошибку фиксирует, все отрабатывает, но восстановление связи не происходит, а с xReset все вроде нормально....
    Последний раз редактировалось Владиславыч; 24.04.2014 в 12:22.

  5. #25
    Пользователь Аватар для tkont
    Регистрация
    22.10.2014
    Адрес
    Санкт-Петербург
    Сообщений
    60

    По умолчанию

    как посчитать с IoDrvModbus количество правильно переданных посылок , и неудачных
    пока просто приходится взводить таймер на 500мсек (таймаут в мастере 1 сек) и в зависимости от состояния xAllSlavesOk и xError прибавлять единичку либо к счетчику ошибок либо к счетчику ОК
    пример счетчика ошибок:
    IF Modbus_Master_COM_Port_2.xAllSlavesOk=FALSE THEN
    BLINK_MB2(enable:=TRUE,timelow:=T#2S, timehigh:=T#100MS,out=>);
    MB_ERR:= 2 ; // пропал слейв в COM2
    IF BLINK_MB_RTRG.Q THEN
    MB_CNT_M2_ER:= MB_CNT_M2_ER + 1 ;
    END_IF
    ELSE
    BLINK_MB2(enable:=FALSE,timelow:=T#2S, timehigh:=T#100MS,out=>);
    Modbus_Master_COM_Port_2.xResetComPort:=BLINK_MB2. OUT ; //если мастер завис
    IF BLINK_MB_RTRG.Q THEN
    MB_CNT_M2_OK:= MB_CNT_M2_OK + 1 ;
    END_IF
    END_IF

    как сделать что бы после каждой посылки в зависимости от того что вернул модуль MODBUS - DONE или Error (DONE вообще модуль не выдает) , прибавить к соответствующему счетчику единичку
    codesys 3.5.5.0

Страница 3 из 3 ПерваяПервая 123

Похожие темы

  1. PLC63-Максимальное число POU
    от Smoll в разделе ПЛК63/73
    Ответов: 16
    Последнее сообщение: 15.04.2021, 14:08
  2. Среда програмирования Объекты POU
    от Алексей Александрович в разделе ПЛК1хх
    Ответов: 1
    Последнее сообщение: 17.08.2012, 06:09
  3. Вызов POU на языке LD
    от ZPavel в разделе ПЛК1хх
    Ответов: 5
    Последнее сообщение: 28.02.2012, 00:55
  4. ФБ и POU
    от Анатолий в разделе ПЛК1хх
    Ответов: 9
    Последнее сообщение: 11.08.2009, 16:23
  5. не работает 2-я Pou
    от Дитрих в разделе ПЛК1хх
    Ответов: 3
    Последнее сообщение: 15.01.2009, 09:54

Ваши права

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