Страница 2 из 5 ПерваяПервая 1234 ... ПоследняяПоследняя
Показано с 11 по 20 из 44

Тема: SysSockRecv не работает

  1. #11

    По умолчанию

    Цитата Сообщение от Дмитрий Артюховский Посмотреть сообщение
    "Плк считывает rfid метку и отправляет запрос на сервер для аутентификации карты.
    Сервер - мой, написал на java, смотрит по базе кто это и отвечает плк, приведенный код как раз принимает данные от сервера."

    у вас все равно запрос-ответ, а за 3 секунды можно ну очень много повторных сеансов повести - если надо, но udp в одном сегменте весьма надежен и здорово меньше грузит плк... не представляю в чем разница считать отправленные по tcp либо udp.... или сервер настолько медленный?
    1. на каждый сеанс "запрос-ответ" отдельный коннект?

    2. Если грешишь на кодесис рекомендую перед прошивкой закрывать кодсис, удалять все временные файлы которые он создаёт к проекту, после подключения делать "заводской сброс", потом "записать".

    3. что ещё делает проект опасного? работает ли с файлами?

    4. с рфади как данные получает?

  2. #12
    Пользователь
    Регистрация
    24.07.2012
    Адрес
    Россия
    Сообщений
    1,492

    По умолчанию

    Цитата Сообщение от Дмитрий Артюховский Посмотреть сообщение
    "Плк считывает rfid метку и отправляет запрос на сервер для аутентификации карты.
    Сервер - мой, написал на java, смотрит по базе кто это и отвечает плк, приведенный код как раз принимает данные от сервера."

    у вас все равно запрос-ответ, а за 3 секунды можно ну очень много повторных сеансов повести - если надо, но udp в одном сегменте весьма надежен и здорово меньше грузит плк... не представляю в чем разница считать отправленные по tcp либо udp.... или сервер настолько медленный?
    Считать может разницы нет, а отправка при udp должна подтверждаться от сервера каждый раз, это усложняет логику, но за совет спасибо, подумаю еще.
    Насчет сервера
    сервер.jpg
    специально купленный для этих задач, никаких бухгалтеров и т.п. на нём нет.

    Цитата Сообщение от Андрей Шатохин Посмотреть сообщение
    1. на каждый сеанс "запрос-ответ" отдельный коннект?

    2. Если грешишь на кодесис рекомендую перед прошивкой закрывать кодсис, удалять все временные файлы которые он создаёт к проекту, после подключения делать "заводской сброс", потом "записать".

    3. что ещё делает проект опасного? работает ли с файлами?

    4. с рфади как данные получает?
    1. нет, соединение постоянное, поддерживается при простое пакетами keepAlive, при разрыве восстанавливается.
    2. сегодня весь день отработал нормально, кодесисом подключался раза 3 по пол часа, до этого весь день с кодесисом онлайн, что еще больше вызывает подозрения на кодесис. И если это правда, то очень хорошо т.к. после запуска подключаться нет необходимости, тесты покажут.
    3. SysLibCom еще. С файлами никак не работает, даже через конфигуратор, 100% работающий архиватор на 100й линейке у меня не получился, отложил до лучших времен.
    4. SysLibCom, писать протокол пришлось для считывателя. Единственное что мне там не нравится - это вычисление LRC в цикле FOR, но до 7 циклов всегда.

    Еще бы знать как в точности произвести эту проблему, былоб проще, а так сегодня хорошо, завтра плохо... уволят.

  3. #13

    По умолчанию

    1. а есть счетчик сколько раз он восстанавливал соединение по keepalive?
    2. а на сервере отключена буферизация сокета?

  4. #14
    Пользователь
    Регистрация
    24.07.2012
    Адрес
    Россия
    Сообщений
    1,492

    По умолчанию

    Цитата Сообщение от Андрей Шатохин Посмотреть сообщение
    1. а есть счетчик сколько раз он восстанавливал соединение по keepalive?
    2. а на сервере отключена буферизация сокета?
    1. да, разрыв будет происходить через 11- 15 секунд после последнего действия с сокетом, я отправляю keepalive пакет раз в 3 секунды. Разрывы очень редко происходят, на сервере хорошо видно в логах.
    2. при отправке от сервера вызывается flush(). В wireshark, напомню, что я вижу как действительно пакет отправляется ответом в плк, на плк же -1. Через секунду плк опять спрашивает у сервера кто это такой, сервер опять отвечает, всё проснифферил, плк в этом случае в течении секунд 15 - 20 всё таки получает пакет и авторизовывает рабочего, при этом связь не разрывается.

  5. #15
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,225

    По умолчанию

    Цитата Сообщение от Scream Посмотреть сообщение
    udp понизит удобство в моем случае, мне обязательно нужно сохранить данные или отправить, раз в 3 секунды ~15 байт.
    в tcp я хоть количество отправленных вижу и если не отправлено складываю в буфер, отправится позже, а с udp еще подтверждение на всё надо будет лепить.
    у меня фасовка, и каждая тара должна быть в базе.

    С ethernet'ом у овена вроде и работает, и как бы толком не работает, и где эта грань что работает, а что нет и где найти ВСЕ нюансы спустя 8 лет никто так и не знает.
    кстати зря Вы так про UDP, в библиотеке jamod есть режим modbusTCP по UDP, прекрасно работает и с собственными программами и с вейнтековской панелью, отклик для оператора приемлимый
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

  6. #16
    Пользователь
    Регистрация
    24.07.2012
    Адрес
    Россия
    Сообщений
    1,492

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    кстати зря Вы так про UDP, в библиотеке jamod есть режим modbusTCP по UDP, прекрасно работает и с собственными программами и с вейнтековской панелью, отклик для оператора приемлимый
    протокол свой, со стороны сервера организовать не проблема.
    сама логика делать работу в ручную за tcp усложняет.
    я не посылаю 10 раз одно и тоже, только тогда когда это необходимо с поддержкой связи пакетами keep alive.

  7. #17
    Пользователь
    Регистрация
    30.11.2012
    Адрес
    40RUS
    Сообщений
    316

    По умолчанию

    Я сейчас глянул у себя - я sysSockRecv вызываю с diFlags = 0. И вроде проблем не замечал...

    Тут обсуждение на тему САБЖа...
    Последний раз редактировалось _Pavel_; 20.02.2016 в 12:24.
    Напильник, велосипед, бубен, грабли и костыли - основные инструменты программиста.

  8. #18
    Пользователь
    Регистрация
    24.07.2012
    Адрес
    Россия
    Сообщений
    1,492

    По умолчанию

    Цитата Сообщение от _Pavel_ Посмотреть сообщение
    Я сейчас глянул у себя - я sysSockRecv вызываю с diFlags = 0. И вроде проблем не замечал...

    Тут обсуждение на тему САБЖа...
    Эту тему читал.
    Проблема не в том что sysSockRecv вообще не работает, а в том что сегодня работает, завтра нет и причину воссоздать не могу.

  9. #19
    Пользователь
    Регистрация
    24.07.2012
    Адрес
    Россия
    Сообщений
    1,492

    По умолчанию

    Нашел при каких обстоятельствах не работает SysSockRecv - при сбросе программы плк (сброс\холодный сброс\заводской сброс).
    Если при запуске плк стоят rfid карты, то он после соединения с сервером сразу делает запрос на сервер и ждет ответных данных и тут они не приходят, пока не сделать переподключение со стороны плк. Если же плк сделает запрос (этот же) через минуту (позже, через 2, 10, неважно) то работает все хорошо, если честно для меня загадка почему, ставил и задержки не делать запрос в течении 15 секунд, не помогло.
    Такое поведение на версии v 2.14.0
    Поменял плк на аналогичный только с прошивкой 2.15.8 и проблема тут же ушла, данные принимаются всегда и SysSockRecv работает корректно при том же коде.
    печально, ушло очень много времени на решение этой мелочи.

  10. #20
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,225

    По умолчанию

    где то в оскат библиотеках было, то что они используют системные события и в функции перед стартом закрывают все сокеты
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

Страница 2 из 5 ПерваяПервая 1234 ... ПоследняяПоследняя

Похожие темы

  1. ПЛК 160. Не работает...
    от Scream в разделе ПЛК1хх
    Ответов: 2
    Последнее сообщение: 31.10.2013, 11:44
  2. Как работает ПЧВ?
    от Lam-Ka в разделе Трёп (Курилка)
    Ответов: 2
    Последнее сообщение: 31.08.2013, 11:57
  3. Не работает трм-138 Р
    от Sanya-russ в разделе Эксплуатация
    Ответов: 1
    Последнее сообщение: 18.01.2011, 16:02
  4. не работает трм-251.
    от КамасутриК в разделе Эксплуатация
    Ответов: 1
    Последнее сообщение: 12.08.2010, 11:29
  5. не работает 2-я Pou
    от Дитрих в разделе ПЛК1хх
    Ответов: 3
    Последнее сообщение: 15.01.2009, 09:54

Ваши права

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