Страница 2 из 3 ПерваяПервая 123 ПоследняяПоследняя
Показано с 11 по 20 из 25

Тема: выбор POU

  1. #11

    По умолчанию

    Цитата Сообщение от RadistDog Посмотреть сообщение
    Доброго дня, извините, вклинюсь в разговор, так как вопрос на близкую тему.
    У меня слейвов четыре. Кстати, все они нормально рестартовались после обрыва линии связи по указанному выше алгоритму. Это я видел и в КДС и по миганию соответствующих индикаторов на слейвах.
    После того, как я изменил алгоритм обмена с модулями, надобность в таком рестарте почему-то отпала. Почему - не знаю, но мне это сейчас не важно, потом разберусь.

    А вопрос мой в другом: - я хотел бы фиксировать в отдельные переменные ошибки связи, но при этом код типа Var1 := Modbus_Slave_COM_Port.xError; и Var2 := Modbus_Slave_COM_Port.byModbusError; не приводит к желаемой фиксации этих ошибок в Var1 и Var2. Почему?
    наверно потому что при восстановлении связи ошибка пропадает попробуйте что-то типа счетчика переподключений поставить


    Код:
    IF Modbus_Slave_COM_Port.xError THEN			
    	Blink_01(ENABLE:= TRUE, TIMELOW:= T#1S, TIMEHIGH:= T#10MS);
    	Modbus_Slave_COM_Port.xReset:= Blink_01.OUT;
            IF  Blink_01.OUT THEN
    		count:= count+1;
    	END_IF	
    END_IF
    ну или присвоение перенести в другое место:

    Код:
    IF Modbus_Slave_COM_Port.xError THEN	
            Var1 := Modbus_Slave_COM_Port.xError		
    	Blink_01(ENABLE:= TRUE, TIMELOW:= T#1S, TIMEHIGH:= T#10MS);
    	Modbus_Slave_COM_Port.xReset:= Blink_01.OUT;	
    END_IF
    так по идее признак ошибки в переменной Var1 будет пока принудительно где-нибудь не обнулим
    Последний раз редактировалось Владиславыч; 23.04.2014 в 15:52.

  2. #12

    По умолчанию

    Цитата Сообщение от radar Посмотреть сообщение
    Да, но в форме личного сообщения не вижу возможности добавления вложения, есть видео, картинки, ссылки. Здесь есть, а в личном сообщении нет.

    Код:
    IF MVU8.xError THEN							//Перезапуск подключения по Modbus
    	Blink_mvu(ENABLE:= TRUE, TIMELOW:= T#1000MS, TIMEHIGH:= T#20MS);
    	MVU8.xReset:=Blink_mvu.OUT;
    END_IF
    IF MV110.xError THEN							//Перезапуск подключения по Modbus
    	Blink_mv(ENABLE:= TRUE, TIMELOW:= T#1000MS, TIMEHIGH:= T#20MS);
    	MV110.xReset:=Blink_mv.OUT;
    END_IF
    TIMELOW и TIMEHIGH меняли в различных сочетаниях.
    попробуйте использовать тот же BLINK

    Код:
    IF MVU8.xError THEN							//Перезапуск подключения по Modbus
    	Blink_mv(ENABLE:= TRUE, TIMELOW:= T#1000MS, TIMEHIGH:= T#20MS);
    	MVU8.xReset:=Blink_mv.OUT;
    END_IF
    IF MV110.xError THEN							//Перезапуск подключения по Modbus
    	Blink_mv(ENABLE:= TRUE, TIMELOW:= T#1000MS, TIMEHIGH:= T#20MS);
    	MV110.xReset:=Blink_mv.OUT;
    END_IF
    у меня так работает все нормально

  3. #13

    По умолчанию

    Изначально пробовал с тем же блинком, безрезультатно.
    Может скажите, какой у вас ПЛК, модули и параметры связи? И версии КДС и таргетов?
    Заранее спасибо )

  4. #14

    По умолчанию

    Цитата Сообщение от radar Посмотреть сообщение
    ... Может скажите, какой у вас ПЛК, модули и параметры связи? И версии КДС и таргетов?
    Заранее спасибо )
    Возможно вопрос не ко мне, но отвечу:
    - КДС V3.5 SP4 + (скачивал с Рутрекера, но таргет нормально заработал только с диска от СПК207!);
    - контроллер СПК207, прошивка 3302, таргет SPK2xx_03_CS_WEB версия 3.5.0.40;
    - в проекте подключены Modbus COM версии 3.4.0.0, Modbus Master версии 3.5.2.0, Modbus Slave (4 устройства) версии 3.5.2.0;
    - физически слейвы - МВА8 (2 шт.), МВУ8 (1 шт.) и МУ110-16Р (1 шт.). Соединение 9600-8-N-1, всё это подключено пока на столе коротким проводниками, но сначала глючило (то и дело слейвы отваливались от мастера), потом перестало )))))

  5. #15

    По умолчанию

    Цитата Сообщение от Владиславыч Посмотреть сообщение
    наверно потому что при восстановлении связи ошибка пропадает попробуйте что-то типа счетчика переподключений поставить

    Код:
     IF Modbus_Slave_COM_Port.xError THEN			
    	Blink_01(ENABLE:= TRUE, TIMELOW:= T#1S, TIMEHIGH:= T#10MS);
    	Modbus_Slave_COM_Port.xReset:= Blink_01.OUT;
            IF  Blink_01.OUT THEN
    		count:= count+1;
    	END_IF	
    END_IF
    ну или присвоение перенести в другое место:

    Код:
     IF Modbus_Slave_COM_Port.xError THEN	
            Var1 := Modbus_Slave_COM_Port.xError		
    	Blink_01(ENABLE:= TRUE, TIMELOW:= T#1S, TIMEHIGH:= T#10MS);
    	Modbus_Slave_COM_Port.xReset:= Blink_01.OUT;	
    END_IF
    так по идее признак ошибки в переменной Var1 будет пока принудительно где-нибудь не обнулим
    Ваши предложения понятны. Я в точности так и делал! И счётчик взводил (который потом посекундно декрементируется если >0), и присвоение производил перед обработкой .xError, и флаг взводил в теле IF Modbus_Slave_COM_Port.xError THEN ... Flag := TRUE; ... END_IF, который нигде потом не сбрасывается. Чушь какая то, но не могу я почему то ошибки связи засечь! Ни .xError, ни .byModbusError! Хотя линию то я ручками физически разрываю! ))
    Есть ещё идеи? Где я ошибаюсь?

    ЗЫ: А почему используем именно .xReset, а не .xAcknowledge ??
    Последний раз редактировалось RadistDog; 24.04.2014 в 07:04.

  6. #16

    По умолчанию

    xReset сбрасывет флаг xError после востановления, а xAcnowledge как я понимаю нет, и надо это делать вручную, иначе будет постоянно выполнятся алгоритм восстановления связи... IF Modbus_Slave_COM_Port.xError THEN может вам стоит попробовать с xReset??
    Последний раз редактировалось Владиславыч; 24.04.2014 в 08:06.

  7. #17

    По умолчанию

    Цитата Сообщение от radar Посмотреть сообщение
    Изначально пробовал с тем же блинком, безрезультатно.
    Может скажите, какой у вас ПЛК, модули и параметры связи? И версии КДС и таргетов?
    Заранее спасибо )
    - КДС V3.5 SP3 Patch5
    - контроллер СПК207, прошивка 3302, таргет SPK2xx_03_CS версия 3.5.3.40;
    - в проекте подключены Modbus COM версии 3.4.0.0, Modbus Master версии 3.5.3.50, Modbus Slave (3 устройства) версии 3.5.3.0;
    - физически слейвы - МВ110-16Д (1 шт.), и МУ110-8Р (1 шт.), еще один контроллер(пока это CODESYS Win V3 ). Соединение 115200-8-N-1, (основные глюки у меня начинались когда подключил виртуальный контроллер)

  8. #18

    По умолчанию

    Цитата Сообщение от Владиславыч Посмотреть сообщение
    xReset сбрасывет флаг xError после востановления, а xAcnowledge как я понимаю нет, и надо это делать вручную, иначе будет постоянно выполнятся алгоритм восстановления связи... IF Modbus_Slave_COM_Port.xError THEN может вам стоит попробовать с xReset??
    Может где нибудь тут ошибка, но для иллюстарции приложу два скриншота. Судя по всплывающим подсказкам как раз xReset не сбрасывает ошибки, а только перезапускает порт!
    xReset.jpgxAcknowledge.jpg

  9. #19

    По умолчанию

    а у меня пишут вот так...
    xreset.PNG

  10. #20

    По умолчанию

    Цитата Сообщение от Владиславыч Посмотреть сообщение
    а у меня пишут вот так...
    Вот как странно! В Вашем случае iodrvmodbus какой версии? У меня в версии 3.5.2.0 по другому написано:
    3.5.2.0 - 1.gif

Страница 2 из 3 ПерваяПервая 123 ПоследняяПоследняя

Похожие темы

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

Ваши права

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