У меня есть макросы Excel, которые не могут соединиться с KEPServer с помощью Visual Basi c.
Дело в том, что для некоторых версий windows компьютеры могут подключаться к нему, а для других - нет. В настоящее время я использую windows 10, Excel 2010 и KEPServer 5.13. Макросы раньше работали безупречно, поэтому какое-то обновление windows должно приводить к сбою.
Программа завершается ошибкой при выполнении DDERequest и возвращает ошибку 2023. Я также заметил, что KEPServer продолжает выдавать следующее ошибка:
Date Time Level Source Event
21/01/2020 16:57:23 Error DDE Attempt to add DDE item 'TOOL1.PLC.MESCADA_BoxProductionCounter' failed.
Используемый код Vba:
Private Sub Establish_Connection_Click()
Dim Tmp_Old_BoxProductionCounter As Variant
RSIchan = DDEInitiate("kepdde", "_ddedata")
Estat_Conexio.Text = " Connected to hardware "
Mode = "Automatic"
Tmp_Old_BoxProductionCounter = DDERequest(RSIchan, "TOOL1.PLC.MESCADA_BoxProductionCounter")'<-- It fails here
Old_BoxProductionCounter = Tmp_Old_BoxProductionCounter(1)
Call Worksheet_Activate
collected_rows = 2
Initiate_Study.Enabled = False
...
Он использует NetDDE для соединения с KEPServer. Я знаю, что он устарел, и думаю, что это может быть проблемой, и есть более современный способ сделать это, используя OLE, но я действительно не знаю, как это сделать и будет ли это вообще работать.
Что делать Вы думаете, что я могу сделать, чтобы исправить это, или если существует какой-либо способ соединить их, используя OLE?