Работает только TwinCAT 3 ADS (без XAR) - PullRequest
0 голосов
/ 27 марта 2019

У меня есть работающий проект C, который взаимодействует с локальными или удаленными системами TwinCAT 3 с помощью ADS C API ( онлайн-примеры тоже хорошо работают).

Однако сейчас мы пытаемся развернутьпрограмма на другом компьютере, на котором установлена ​​только TwinCAT ADS (как описано здесь в разделе «Установка только TwinCAT 3 ADS»).Мы добавили маршруты на обеих машинах.Чтобы упростить тестирование, мы даже полностью отключили брандмауэр как на компьютере ADS, так и на компьютере времени выполнения.Но я все еще не могу получить данные обратно в приложение.

Ошибка, которую я получаю от ADS, - 10051, что в основном является Ошибка Winsock :

Сеть недоступна.Была предпринята попытка операции с сокетом в недоступной сети.Обычно это означает, что локальное программное обеспечение не знает маршрута для достижения удаленного хоста.

Однако я почти уверен, что маршруты действительны.Они были добавлены с помощью широковещательного поиска, и я вижу в Wireshark, что обе системы постоянно обмениваются запросами ADS на чтение / запись (если я удаляю маршрут на любом из ПК, обмен останавливается).

Одна детальв том, что система только для ADS не находится в режиме запуска, то есть я не могу перевести ее в «Пуск», хотя, возможно, это нормально, поскольку там нет времени выполнения?

Мои вопросы:

  • Нужно ли переключать систему только в ADS в режим запуска, используя значок на панели задач («Пуск / Перезагрузка»)? Т.е. влияет ли эта операция на маршрутизаторы сообщенийтоже?Потому что, если я пытаюсь сделать это в системе ADS, я получаю сообщение об ошибке, поэтому я не уверен, что это происходит из-за того, что на этом компьютере нет среды выполнения или если есть ошибка.В средстве просмотра событий отображается сообщение об ошибке: «Ошибка запуска сервера TCRTSOBJECTS. Системе не удается найти указанный путь» без дополнительных указаний.

  • Существуют ли дополнительные настройки в ADSтолько система, что нужно сделать, кроме настройки маршрутов?

1 Ответ

1 голос
/ 03 апреля 2019

Я могу ответить на этот вопрос должным образом - система ADS only не должна быть (и не может быть) в режиме RUN.

Вы уверены, что соединение было установлено с обоих концов? иногда одному серверу будет зарегистрировано соединение, другому - нет.

Другая вещь, которую нужно проверить, - есть ли у вас другие записи в списке маршрутов ADS с теми же IP-адресами или адресами ADS (я полагаю, ваш ПЛК разработчика может иметь несколько записей). Я видел, как это запуталось раньше, и мне пришлось удалить конфликтующие записи, прежде чем он будет работать.

...