Добрый день, возникла следующая интересная проблема. Есть ПЛК200, большая часть его работы это опрос устройств (операции чтения и записи) через ModbusRTU (выполняется через OwenCommunicationLibrary) и ModbusTCP (через стандартные компоненты Codesys), и дальнейшая выдача данных через OPC UA выше в АльфаПлатформу. Где-то до 1200 тегов проблем с OPC UA не возникает, после он периодически начинает отваливаться (2 минуты опрашивает, 10 минут висит без связи).
В логах связанное с OPC UA следующее (полный лог во вложении):
Никаких настроек безопасности в ПЛК не делалось, как в отношении самого ПЛК, так и OPC UA. В какую сторону можно посмотреть чтобы понять в чем может быть дело?Код:<Entry severity="error" component="CmpOPCUAStack" user="nobody" timestamp="09.08.2023 12:51:56" infoId="0">OpcUa_Endpoint_EndSendResponse: Error 0x80310000! Cancelling response!</Entry> <Entry severity="error" component="CmpOPCUAStack" user="nobody" timestamp="09.08.2023 12:51:56" infoId="0">OpcUa_SecureListener_EndSendResponse: Error 0x80310000 while sending message</Entry> <Entry severity="error" component="CmpOPCUAStack" user="nobody" timestamp="09.08.2023 12:51:56" infoId="0">OpcUa_SecureListener_EndSendResponse: SecureChannel 1687 has no transport connection!</Entry>
Связь со мной: telegram: @JuneSmellsLikeBlood | e-mail: e.kislov@owen.ru | личка на форуме - не подходит
Раздел CDS V3.5 на сайте | Основные темы по CDS V3.5 на форуме: Вопросы и ответы | Визуализация | Настройка обмена с другими устройствами
Repository Archive V3.5 SP4 (необходим для СПК207/СПК1хх без Eth/ПЛК3xx)
oscat.ru | Как обратиться в техподдержку? | Как отлаживать ошибки | Отладка проектов в CODESYS V3.5 | Проблема XY | Как правильно задавать вопросы | PRO32 Connect
Временем цикла пробовали управлять? Какая нагрузка в админке? Я 5000 тегов прогонял через opc ua плк210. И ничего не падало кроме админки.
Иногда пропадает обмен по Modbus TCP с использованием Owen Communications Library.
TCP_Client не выдает ни xError, ни xActive, а вечно висит в xBusy
TCP_Client.png
Что может быть причиной?
Последний раз редактировалось vozlov; 03.10.2023 в 09:10.
Связь со мной: telegram: @JuneSmellsLikeBlood | e-mail: e.kislov@owen.ru | личка на форуме - не подходит
Раздел CDS V3.5 на сайте | Основные темы по CDS V3.5 на форуме: Вопросы и ответы | Визуализация | Настройка обмена с другими устройствами
Repository Archive V3.5 SP4 (необходим для СПК207/СПК1хх без Eth/ПЛК3xx)
oscat.ru | Как обратиться в техподдержку? | Как отлаживать ошибки | Отладка проектов в CODESYS V3.5 | Проблема XY | Как правильно задавать вопросы | PRO32 Connect
Возможно ли эту настройку менять динамически во время работы программы?
modbus_error.png
Связь со мной: telegram: @JuneSmellsLikeBlood | e-mail: e.kislov@owen.ru | личка на форуме - не подходит
Раздел CDS V3.5 на сайте | Основные темы по CDS V3.5 на форуме: Вопросы и ответы | Визуализация | Настройка обмена с другими устройствами
Repository Archive V3.5 SP4 (необходим для СПК207/СПК1хх без Eth/ПЛК3xx)
oscat.ru | Как обратиться в техподдержку? | Как отлаживать ошибки | Отладка проектов в CODESYS V3.5 | Проблема XY | Как правильно задавать вопросы | PRO32 Connect
Вопрос по OCL. Как реализовать запись по триггеру? Я нажимаю на кнопку, xTrigger принимает значение 1, после исполнения ФБ xTrigger обнуляется. Может, это как-то по-другому делается?
Какие подводные камни в использование одного и того же функционального блока несколько раз в пределах одного клиента? Я имею в виду, на одном шаге машины реквест выше пишет регистр, на следующем шаге читает регистры, дальше читает катушки и тд.2:
fbTcpRequest(xExecute := (fbTcpClient.xActive AND xTrigger), tTimeout := T#1S, usiRetry := 3, hConnection := fbTcpClient.hConnection,
xIsRtuOverTcpMode := FALSE, usiUnitId := 1, eFuncCode := ocl.mb_fc.WRITE_SINGLE_REGISTER, uiDataAddr := 0,
uiDataCount := 1, pData := ADR(wWord), szSize := SIZEOF(wWord));
IF fbTcpRequest.xDone OR fbTcpRequest.xError THEN
xTrigger := FALSE;
fbTcpRequest(xExecute := FALSE);
comState := 3;
END_IF