Страница 3 из 4 ПерваяПервая 1234 ПоследняяПоследняя
Показано с 21 по 30 из 34

Тема: ПЛК110 М02, прошивка 0.3.73, TCP клиент на SysLibSockets вызывает перезагрузку ПЛК.

  1. #21

    По умолчанию

    Цитата Сообщение от lazy Посмотреть сообщение
    у меня еще закрытие сокетов происходит в два этапа SysSockShutdown отдельно от SysSockClose и я у всех проверяю чо там они возвращают.
    как то так:

    ST_BREAK:
    o_dnRes := BOOL_TO_DINT ( SysSockShutdown( m_dnSocket, 2 ) );
    CASE i_pOptions^.ePCL OF
    OVEN_100: m_b := o_dnRes = 1;
    OVEN_110: m_b := o_dnRes = 1;
    OVEN_110_v2: m_b := o_dnRes = 0;
    END_CASE
    IF m_b THEN
    o_eCondition := ST_CLOSE;
    END_IF

    ST_CLOSE:
    o_dnRes := BOOL_TO_DINT( SysSockClose ( m_dnSocket ) );
    CASE i_pOptions^.ePCL OF
    OVEN_100: m_b := o_dnRes = 1;
    OVEN_110: m_b := o_dnRes = 0;
    OVEN_110_v2: m_b := o_dnRes = 1;
    END_CASE
    IF m_b THEN
    m_dnSocket := SOCKET_INVALID;
    o_eCondition := ST_EXPECT;
    END_IF
    а что у Вас программа делает, если обнаружилась ошибка при закрытии сокета?

  2. #22

    По умолчанию

    у меня прием - передача без флагов.

    посмотрел твой код еще. зависает на чтении SysSockRecv возвращает 0 или -1, и как это обрабатывает прога?
    я вроде не увидел как - походу никак. как она сокет переоткроет? - никак )

    error при разрыве связи не возникает при чтении (да и при записи не возникнет ибо протокол не гарантирует доставку пакета а только отправку) completed тоже не возникает. нет пакетов на чтение какое то разумное время - переоткрываем сокет. хотя канеш и в ребут по хорошему уходить не должно. еще я пишу в проектах client.pBuffer := ADR( buffer[0] ); хоть и масло масляное но значит когда то нарывался причины уже не помню )

    если ошибка продолжает вызывать эту же функцию в следующем цикле. у нас же вроде асинхронный режим включен (не блокирующий). на первый взгляд все должно виснуть но такого никогда не замечал. )

    ps/ нашел. watchdog(); там точка останова стояла (после watchdog.Q)? )
    TIMEOUT_DEFAULT 5 сек - думаю и секунды хватит (у меня 500ms обычно) но не принципиально. в ребут не должно уходить все равно по хорошему.
    Последний раз редактировалось lazy; 16.05.2018 в 17:59.

  3. #23

    По умолчанию

    Цитата Сообщение от lazy Посмотреть сообщение
    у меня прием - передача без флагов.

    посмотрел твой код еще. зависает на чтении SysSockRecv возвращает 0 или -1, и как это обрабатывает прога?
    я вроде не увидел как - походу никак. как она сокет переоткроет? - никак )

    error при разрыве связи не возникает при чтении (да и при записи не возникнет ибо протокол не гарантирует доставку пакета а только отправку) completed тоже не возникает. нет пакетов на чтение какое то разумное время - переоткрываем сокет. хотя канеш и в ребут по хорошему уходить не должно. еще я пишу в проектах client.pBuffer := ADR( buffer[0] ); хоть и масло масляное но значит когда то нарывался причины уже не помню )

    если ошибка продолжает вызывать эту же функцию в следующем цикле. у нас же вроде асинхронный режим включен (не блокирующий). на первый взгляд все должно виснуть но такого никогда не замечал. )

    ps/ нашел. watchdog(); там точка останова стояла? )
    TIMEOUT_DEFAULT 5 сек - думаю и секунды хватит (у меня 500ms обычно) но не принципиально. в ребут не должно уходить все равно по хорошему.
    конечно стояла
    бред какой-то, завтра еще с этим поважусь и если не победю, то отложу до нового ПЛК, может в железке дело, хотя в то, что виновата железо то же не верю
    Последний раз редактировалось monteg; 16.05.2018 в 18:03.

  4. #24

    По умолчанию

    Победить не получилось. Делаю следующие.
    Стенд - ПЛК110-30 М02, свитч, ПК, к ПЛК подключаюсь по USB
    1. Залил проект в ПЛК, «Онлайн» - «Старт», перехожу на визуализацию «TcpClient2»
    2. Заполняю, ip, port, timeout=T#1m, pause=T#50ms, жму “apply”
    2. жду пока пойдет обмен данными – начнут расти счетчики totalSend и totalRecv
    3. выдергиваю ethernet кабель от ПК, наблюдаю
    4. растет только recvCounter в течении 2.5 - 3.0 секунд ( смотрю watchdog.ET )*
    5. потом все замирает на несколько секунд и ПЛК перезагружается

    Сегодня не поленился, съездил на производство взял другой ПЛК110-30 М02, куплен в 2018, на корпусе переключатель в защите . Ведет себя абсолютно также. Причем хочу опровергнуть свое утверждение в первом посте – на прошивке 0.3.72 ПЛК ведет себя также. Поэтому обновил первый пост. Может данный эффект не стабилен, может просто не заметил. ПЛК110-30 перезагружается быстро и без лишнего шума. Поэтому в PLC_PRG сделал задержку запуска 2 секунды и включил динамик.

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

    * - если передернуть кабель «быстро», то обмен восстанавливается, и перезагрузки не происходит

    PS: использование флагов в SysSockSend и SysSockRecv не помогло
    Последний раз редактировалось monteg; 18.05.2018 в 19:18.

  5. #25

    По умолчанию

    Цитата Сообщение от Валенок Посмотреть сообщение
    За основу взял код Трофимова Артема (п#4). Переработал творчески (есть лишнее и нелогичности)
    Плк110-60, 0.3.73, в разрыв подключения воткнул какой-то Зухел.
    Дергал питание Зухеля, дергал туда сюда кабели.
    Восстановление 1..10 сек. Перезагрузов - нет. Ошибок - 0 (за исключением тех что в момент разрывов).
    Сходил на обед, ошибок 0. Ok-транзакций свыше 3млн.
    Опросов - более 700 в сек при свободном времени в цикле практически всегда 900мкс.
    А где образцовый проект ?

  6. #26

    По умолчанию

    Цитата Сообщение от Валенок Посмотреть сообщение
    Я же не в овене работаю..
    Подтвердить могу бинарником на чужой сервер.
    Были бы нормальные пароли - выложил бы биб-ку.
    Темнишь что-то ?

  7. #27

    По умолчанию

    Цитата Сообщение от Валенок Посмотреть сообщение
    За основу взял код Трофимова Артема (п#4). Переработал творчески (есть лишнее и нелогичности)
    Плк110-60, 0.3.73, в разрыв подключения воткнул какой-то Зухел.
    Дергал питание Зухеля, дергал туда сюда кабели.
    Восстановление 1..10 сек. Перезагрузов - нет. Ошибок - 0 (за исключением тех что в момент разрывов).
    Сходил на обед, ошибок 0. Ok-транзакций свыше 3млн.
    Опросов - более 700 в сек при свободном времени в цикле практически всегда 900мкс.
    А мой проект из первого поста Вы пробовали?
    И еще попробуйте в вашем проекте поставить таймаут 5сек и повторите эксперимент, и дергать надо не питания Зухеля, а ethernet кабель сервера, потому что когда линк падает у ПЛК ничего плохого не происходит.
    Последний раз редактировалось monteg; 18.05.2018 в 19:17.

  8. #28

    По умолчанию

    Просто, если в моём проекте таймаут ставить не больше двух секунд, по описанный эффект не происходит. Все хорошо работает. Баг в ПЛК, по моему мнению, все таки есть, но он безобидный. А я с этой ерундой неделю провозился. Зато приобрел бесценный опыт.
    А вообще в этом есть, что-то странное - Вы взяли библиотеку, переделали, создали на ее основе проект, протестировали, а пробовать готовый проект не стали.

  9. #29

    По умолчанию

    Про 63 я своего мнения я с тех пор не изменил, вообще не стал его использовать, он сейчас где-то на складе пылиться. По мне так совершенно тупиковая ветвь развития.
    А по поводу этой темы - Вы не стали пробовать мой код, написали свой, но ничего не стали выкладывать, сказали, что у Вас все работает, а чужие проблемы Вас не волнуют.. Я не понимаю Вашей мотивации, а вообще зачем, Вы заходили на форум и что-то писали в эту тему?

  10. #30

    По умолчанию

    Цитата Сообщение от Валенок Посмотреть сообщение
    А эти кошмарные "if not (A = B) then" ? Просто смотрю и сходу не понимаю такого хитровыверта.
    Как лежачий полицейский на пути полета мысли ..
    А что именно Вас так расстроило, слово "if", или слово "not", или слово "then"?
    PS: скобки и знак равно, заранее исключаю

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

Похожие темы

  1. плк110-32 прошивка
    от Jonikk в разделе ПЛК1хх
    Ответов: 11
    Последнее сообщение: 23.03.2020, 13:57
  2. Ответов: 4
    Последнее сообщение: 04.05.2018, 08:08
  3. Ответов: 9
    Последнее сообщение: 23.06.2017, 11:54
  4. Ответов: 1
    Последнее сообщение: 31.03.2016, 08:29
  5. TCP клиент на SysLibSockets
    от Carter в разделе ПЛК1хх
    Ответов: 45
    Последнее сообщение: 12.10.2015, 16:09

Метки этой темы

Ваши права

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