TwinCAT 2 и уведомления в клиентской программе (.NET, C #) прекращают работу при запуске второй программы - PullRequest
0 голосов
/ 14 февраля 2019

В C # я разработал клиентскую программу TwinCAT, которая использует уведомления о событиях при изменении определенных переменных ПЛК.Это работает очень стабильно в течение многих лет.Я также обновил до TwinCAT.Ads версии 4.3.2 и использую новый механизм сеанса для повторных подключений.

Моя проблема заключается в том, что моя программа перестает получать уведомления, когда подключается вторая другая программак тому же ПЛК. Затем эта новая программа получает уведомления.Моя первая программа Startet, кажется, сохраняет само соединение и, кажется, не получает уведомления о том, что уведомления больше не будут запускаться.

Могу ли я что-нибудь сделать, чтобы несколько клиентских программ могли работать одновременновремя использования уведомлений об изменениях?

Или менее оптимально: может ли клиентская программа каким-то образом осознавать, что она больше не получает уведомлений из-за соединения с другими клиентскими программами (чтобы через некоторое время они могли получить их)?

Мои клиентские программы используют один единственный AmsNetId, а также подключаются к одному AmsNetId (назначение PLC).

Каким-то образом программы Beckhoff "TwinCAT System Manager" и "Элемент управления TwinCAT PLC ", кажется, каким-то образом этого добивается (однако они написаны на C ++ с использованием ADS DLL).

Я не хочу писать свой собственный уровень маршрутизации системных служб промежуточного программного обеспечения / узла ПК, чтобы централизованно приниматьЗабота об этом как возможный теоретический обходной путь.

1 Ответ

0 голосов
/ 05 июля 2019

На сегодняшний день я протестировал свое приложение на c # с Twincat.Ads версии 4.3.7 и Twincat 3 версии 3.1.4022, и у меня не возникло ни одной проблемы, описанной вами с пятью открытыми экземплярами программы.

...