У меня так и сделано на форме - один DDEClientConv и пять штук DdeClientItem1 и все привязаны на один интерфейс/сервис/топик но итемы как и положено разные.
Многострочные принять пока не могу - не знаю как сделать запрос многострочный, вроде делается через массив.
Фирменная утилита контроля DDE обмена показывает разделитель [|] так. Пробывал подставлять - не понимает сервер запроса и вообще никак не реагирует на него (((.
Устройство в принципе одно ЧПУ и вся информация для HMI/приводов передаётся с помощью BTSS переменных, которые являются итемами.
Сегодня пробывал через ОРС интерфейс (не на прямую DDE)- создаю группу, указываю итем и всё работает, CallBack и AdviceCallBack тоже работают, информацию получаю, в принципе то что нужно, но при записи в группу нескольких итемов CallBackOnChange вызывается каждый раз при смене параметра в группе ДВА раза, при этом в процедуре обработки НЕТ информации какой именно итем сейчас обрабатывается, может
лежит эта инфа в какой-то глобальной переменной - но я не нашёл.
Делфи OPCUtils скачал с открытого сайта.
Вообще Siemens рекомендует использовать VisualBasic, но от него меня тошнит ))) корявый интерфейс, нет хелпа и пр...
Интересно ещё то, что при проверке на ПК работает а на ЧПУ вылазят глюки иногда - видимо сказывается перегруженность запросов DDE
Во вложении проект. 1Мб . Естественно без сервиса работать не будет, но прошу просмотреть правильность задания условий/чтений/запросов/записей, короче саму идеологию работы с DDE и ОРС, может ФРИШНЫЙ компанент ОРС косячный и недоделанный.
|