Объявления программное обеспечение TwinCAT 2.0 VB.NET клиент
Привет,
В настоящее время я пытаюсь соединить мое приложение VB.NET с моим появлением TwinCAT Plc для того. Это то, что у меня есть до сих пор (я называю это с субмарины):
Что я уже пробовал:
Dim ads As TcAdsClient = New TcAdsClient ads.Connect(netID, Int32.Parse(port)) 'default port of Twincat 3 is 851 / Twincat 2 is 801 If ads.IsConnected = True Then WriteLine("Connection ok" & vbCrLf) Else WriteLine("Connection error") End If
Теперь всякий раз, когда я пытаюсь подключиться к ПЛК, он говорит: "порт не открыт". Странно, что я могу управлять своим ПЛК через программное обеспечение Twincat PLC, используя тот же порт. Пожалуйста, дайте мне совет по этому вопросу. Спасибо.
Ralf Meier
Бекхофф дает очень хорошую интернет-поддержку внутри информационной системы Бекхоффа.
Также здесь предусмотрено множество образцов (как для TC2, так и для TC3).
Когда я вижу там образец, ads.connect выполняется только с номером порта, а не с сетевым идентификатором.
Может быть, вы попробуете это, как предложил Бекхофф ...
Member 14176541
Да, я уже следовал этим путем тоже, без net-ID. но безрезультатно.
даже используя их образец, он все равно не мог заставить его работать.
Ralf Meier
Прошло уже довольно много времени с тех пор, как я делал это в последний раз ...
Во-первых : я не знаю, работает ли метод Connect синхронно - возможно, он работает асинхронно, и isConnect устанавливается через некоторое время.
Во-вторых : у вас есть Twincat 2.0 ??? Когда я прочитал документацию, я нашел allways TC 2.10 как минимальное требование.
Member 14176541
Привет Ральф,
Спасибо за ваш ответ.
1. пробовал идти этим путем, но все равно безуспешно.
2. в данный момент я запускаю Twincat 2.11.
Как вы думаете, мне нужно открыть порт на стороне ПЛК, чтобы это сработало?
Ralf Meier
Я не уверен ... но я не верю.
Ты получаешь обман ?
Что говорит ваш отладчик ?
Пожалуйста, предоставьте также свой полный соответствующий код.
Почему вы разбираете номер порта на INT32- разве это не INT ?
Member 14176541
Привет Ральф,
Ниже приведен мой полный код. Это очень просто, просто попробовать, может ли он подключиться к ПЛК:-
Imports TwinCAT.Ads Private port As Integer = My.Settings.port Private netID As String = My.Settings.netID Sub Main() Call ADSFunction() End Sub Public Sub ADSFunction() Dim ads As TcAdsClient = New TcAdsClient Try ads.Connect(Int32.Parse(801)) 'default port of Twincat 3 is 851 / Twincat 2 is 801 If ads.IsConnected = True Then WriteLine("Connection ok" & vbCrLf) Else WriteLine("Connection error") Exit Sub End If Catch ex As Exception WriteLine(ex.ToString) End Try 'ads.Dispose() End Sub
И здесь есть исключение:
TwinCAT.Ads.AdsErrorException: Ads-Error 0x748 : Port is not open. (Ads-Error 0x748 : Port is not open.) at TwinCAT.Ads.Internal.TcLocalSystem..ctor() at TwinCAT.Ads.Internal.TcLocalSystem.GetInstance() at TwinCAT.Ads.TcAdsClient.Connect(Int32 srvPort) at STREAM_Monitoring_System.Module1.ADSFunction() in C:\Users\User\source\repos\STREAM Monitoring System\STREAM Monitoring System\Module1.vb:line 156
Ralf Meier
Я больше ничего не могу сказать, потому что у меня нет оборудования, чтобы проверить это самостоятельно.
Поискав, я нашел еще кое - что для вас-возможно, это поможет ...
https://infosys.beckhoff.com/index.php?content=../content/1031/tcsample_vb/html/tcadsdll_com_vb_sample01.htm&id=3474353622432626741