Ошибка канала связи

Просмотр 15 сообщений - с 1 по 15 (из 15 всего)
  • Автор
    Сообщения
  • #21439
    manjey73
    Участник

    2022-01-17 16:51:04 Невозможно выполнить сеанс связи с КП 151 «Test», т.к. соединение не установлено

    Канал связи — Тип — Не задан

    Кто с чем пытается соединиться, если в Session пусто ?

    #21440
    Romiros
    Участник

    Connection.Required=false;

    #21441
    manjey73
    Участник

    ConnRequired = false;

    Ага, спасибо, прорвало…

    #21442
    manjey73
    Участник

    Имеется некоторый недостаток при true — никак нельзя убрать порт в настройках, хотя IP убрать можно…

    #21451
    manjey73
    Участник

    Такс, base.Session() позволяет задействовать опрос по Периоду.

    Михаил, есть какой-то список, что не будет работать при ConnRequired = false; ?
    А что можно использовать при данном параметре и типе Канала «Не задан» ?

    #21455
    Romiros
    Участник

    ConnRequired = false;
    Это означает, что наличие соединения определяется логикой драйвера. Например драйвера KpOPC, KpDbImport

    #21457
    manjey73
    Участник

    //Connection.WriteToLog = WriteToLog;

    Меня интересует, доступны ли такие вещи? или если я использую dll протокола от производителя то про логирование и прочее можно забыть?

    Просто в KpLibPlcTag используется TCP-Client в настройках канала связи и весь это функционал в принципе работает..
    А тут TwinCatAds так его… пока разбираюсь что куда, но несколько переменных уже вычитал 🙂

    #21459
    Mikhail
    Модератор

    Если ConnRequired = true, то сессия просто не выполнится при отсутствии соединения.
    Если ConnRequired = false, то сессия будет выполнять независимо от того, есть соединение или нет.

    Если производитель сам создаёт соединение, то в настройках линии нужно ставить канал «Не задан», чтобы не пытаться соединиться параллельно DLL.
    В лог можно будет вывести, только если DLL производителя предоставляет журнал через какие либо свойства и методы. Но ещё ни разу не видел такие продвинутые DLL.

    #21461
    manjey73
    Участник

    Ну TwinCATAds что-то может выдавать. например что Клиент.IsConnected ну и там много чего… Я пока только с запросом чтения разбираюсь.

    Вот еще момент Позывной. Я конечно могу в Позывной забить NetID, который в виде
    39.64.16.138.1.1 хотя у меня IP адрес виртуального ПЛК 10.0.0.152

    Нельзя ли в строке
    2022-01-18 16:35:30 Сеанс связи с КП 151 «Beckhoff_test», тип: KpBeckhoffADS, позывной: 10.0.0.152

    Вместо Позывного прописывать NetID или точнее добавить к данной строке еще и NetID ?
    С этим моментом пока не разбирался, но стучаться в ПЛК по IP бесполезно, пока сам не понимаю, как он это делает…

    #21466
    Mikhail
    Модератор

    А откуда берётся этот NetID?
    Позывной — это произвольный текстовый адрес. Не обязательно IP.

    > Вместо Позывного прописывать NetID или точнее добавить к данной строке еще и NetID ?
    Вы можете вместо вызова base.Session написать свой вывод в лог. Это легко. Посмотрите исходный код метода Session в классе KPLogic.

    #21469
    manjey73
    Участник

    NetID присваивается ПЛК и он находится в XML шаблона, который я вытягиваю из XML менеджера проекта Beckhoff.

    А вместо пустого позывного можно записать новый из кода драйвера? А, хотя скорее всего нельзя, это же БД Администратора….

    #21475
    Mikhail
    Модератор

    Насколько я помню, Вы можете в коде драйвера присвоить новый позывной (и адрес тоже). Значения из базы конфигурации устанавливаются изначально при старте линии связи.

    #21476
    manjey73
    Участник

    А можно ткнуть в место кода как в коде драйвера подменить позывной?

    #21477
    Romiros
    Участник

    По идее в KpLogic CallNum = своя строка

    #21478
    manjey73
    Участник

    @Romiros блин точно, в логе выдает мой NetID.

Просмотр 15 сообщений - с 1 по 15 (из 15 всего)
  • Вы должны авторизироваться для ответа в этой теме.