Стартовая страница › Форумы › Разработка и интеграция › Ошибка канала связи
- В этой теме 14 ответов, 3 участника, последнее обновление 2 года, 3 месяца назад сделано manjey73.
-
АвторСообщения
-
17.01.2022 в 16:53 #21439manjey73Участник
2022-01-17 16:51:04 Невозможно выполнить сеанс связи с КП 151 «Test», т.к. соединение не установлено
Канал связи — Тип — Не задан
Кто с чем пытается соединиться, если в Session пусто ?
17.01.2022 в 17:07 #21440RomirosУчастникConnection.Required=false;
17.01.2022 в 17:39 #21441manjey73УчастникConnRequired = false;
Ага, спасибо, прорвало…
17.01.2022 в 17:42 #21442manjey73УчастникИмеется некоторый недостаток при true — никак нельзя убрать порт в настройках, хотя IP убрать можно…
18.01.2022 в 11:20 #21451manjey73УчастникТакс, base.Session() позволяет задействовать опрос по Периоду.
Михаил, есть какой-то список, что не будет работать при ConnRequired = false; ?
А что можно использовать при данном параметре и типе Канала «Не задан» ?18.01.2022 в 12:06 #21455RomirosУчастникConnRequired = false;
Это означает, что наличие соединения определяется логикой драйвера. Например драйвера KpOPC, KpDbImport18.01.2022 в 12:10 #21457manjey73Участник//Connection.WriteToLog = WriteToLog;
Меня интересует, доступны ли такие вещи? или если я использую dll протокола от производителя то про логирование и прочее можно забыть?
Просто в KpLibPlcTag используется TCP-Client в настройках канала связи и весь это функционал в принципе работает..
А тут TwinCatAds так его… пока разбираюсь что куда, но несколько переменных уже вычитал 🙂18.01.2022 в 16:31 #21459MikhailМодераторЕсли ConnRequired = true, то сессия просто не выполнится при отсутствии соединения.
Если ConnRequired = false, то сессия будет выполнять независимо от того, есть соединение или нет.Если производитель сам создаёт соединение, то в настройках линии нужно ставить канал «Не задан», чтобы не пытаться соединиться параллельно DLL.
В лог можно будет вывести, только если DLL производителя предоставляет журнал через какие либо свойства и методы. Но ещё ни разу не видел такие продвинутые DLL.18.01.2022 в 16:37 #21461manjey73УчастникНу 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 бесполезно, пока сам не понимаю, как он это делает…19.01.2022 в 12:19 #21466MikhailМодераторА откуда берётся этот NetID?
Позывной — это произвольный текстовый адрес. Не обязательно IP.> Вместо Позывного прописывать NetID или точнее добавить к данной строке еще и NetID ?
Вы можете вместо вызова base.Session написать свой вывод в лог. Это легко. Посмотрите исходный код метода Session в классе KPLogic.19.01.2022 в 13:01 #21469manjey73УчастникNetID присваивается ПЛК и он находится в XML шаблона, который я вытягиваю из XML менеджера проекта Beckhoff.
А вместо пустого позывного можно записать новый из кода драйвера? А, хотя скорее всего нельзя, это же БД Администратора….
20.01.2022 в 10:02 #21475MikhailМодераторНасколько я помню, Вы можете в коде драйвера присвоить новый позывной (и адрес тоже). Значения из базы конфигурации устанавливаются изначально при старте линии связи.
20.01.2022 в 10:12 #21476manjey73УчастникА можно ткнуть в место кода как в коде драйвера подменить позывной?
20.01.2022 в 10:39 #21477RomirosУчастникПо идее в KpLogic CallNum = своя строка
20.01.2022 в 10:49 #21478 -
АвторСообщения
- Вы должны авторизироваться для ответа в этой теме.