Написал письмо, посмотрим что ответят стороны:

info@prolog-plc.ru
Копия: info@3s-software.com, support@owen.ru
Тема: DDE - server

Здравствуйте!

Наше предприятие является постоянным потребителем контроллеров ПЛК фирмы Овен, исользующих ПО CodeSys в качестве среды разработки.
В целом, впечатление от использования и того и другого продукта - прекрасные.
Однако, возник технический вопрос, получить ответ на который из документации не получилось.

При исполльзовании DDE - сервера, при обращении к нему из скрипта на VBA при чтении переменных из сервера стандартная функция бейсика выдает ошибку. Нерегулярно. Выход из ситуации собственными силами найден лишь один - организовать обработчик ошибок в коде VBA. Но такое решение нам нормальным не представляется.

Хотелось бы понять, каким образом можно проверить готовность DDE - сервера в любой момент времени с тому, чтобы функция DDERequest, вызываемая в коде VBA не приводила к шибре выполнения задачи.

Чтобы Вам было понятнее о чем идет речь, поясню, откуда возникла потребность использовать DDE - сервер из комплекта поставки CodeSys:
Представьте, например, что работает ПЛК Овен, а журналирование производится в документ MS Excell.
Нормальная, абсолютно реальная ситуация.


Только в стандартных средствах MS Office никаких средств доступа к OPC-серверу нет.
Зато есть DDE.
В документе MS Excell используются следующие функции:
Chan = DDEInitiate("CODESYS", "")
Topics = DDERequest(Chan, "PLC_PRG.MOTOR_FRQ")

Хотелось бы иметь пример программы на VBA, который корректно работает с DDE сервером, с точки зрения поставщиков и разработчиков CodeSys.
Вопрос достаточно принципиальный, т.к. ПЛК "Овен", в силу доступности и простоты использования нередко включаются в такие проекты, где дорогостоящего SCADA ПО, имеющего всроенные средства доступа через OPC, никогда не будет.

Заранее признательны за ответ.

С уважением, Александр.