Ответы в темах
-
АвторСообщения
-
avvlasyuk
УчастникКоллега, спасибо большое за Ваше участие!
Сейчас вынужден отложить эту задачу на несколько дней.
Как вернусь к ней, сразу дам обратную связь.avvlasyuk
УчастникА поделитесь симулятором?
avvlasyuk
УчастникВам без оборудования наверное сложно будет попробовать.
avvlasyuk
УчастникЯ совсем не в теме, вот и обращаюсь к коллективному опыту. Почитаю про создание драйверов.
avvlasyuk
УчастникExcel это чтобы быстро попробовать соединение. Как рабочий вариант не красиво.
avvlasyuk
УчастникСтруктура данных https://disk.yandex.ru/d/MpBkWM3L4HyICg
Вчера мы с AI накидали консольное приложение на C#, получилось вычитать данные. Вариант с файлом-буфером конечно возможен, но надо ещё с записью в контроллер разобраться.
ConsoleAppDDE.cs — https://disk.yandex.ru/d/F00n8GoKHTmU1gavvlasyuk
УчастникОписание текстовый файл 94КБ. Как его сюда выложить?
А что это даст? Надо понимать в принципе, есть ли возможность через существующие способы связи получить данные от DDE сервера. Может что-то дописать можно?avvlasyuk
УчастникExcel имеет встроенную поддержку DDE, это старая технология обмена данными между программами в WIndows. Запускается DDE сервер с определёнными параметрами
[general]
service_name=IGS_DDE
connection=UART
com=5
…
[iGS1]
load_hist=TRUE
period_val_I=100
period_val_II=1000
period_val_III=5000
delay_param_p=5000
delay_param_r=1000
optimize=TRUE
start=TRUE
Таким образом устанавливается связь с контроллером, в примере выше он называется IGS1. В DDE сервере определены ComObject-ы.
Excel это не интересно. Далее мы пишем в ячейку Excel =IGS_DDE|’IGS1′!OBJECT_24562,
где IGS_DDE — имя сервиса, IGS1 — топик, OBJECT_24562 — элемент топика.
Возвращаемое значение — -3271005427906875204355223,92313254207254207-1114576415114017000000,00 2395968808-3276,8-32768-32768000040,5244700047627519665149633526512690,00006080000##.##.####.##.####.##.####.##.####.##.####.##.##0. Описание структуры данных есть.avvlasyuk
УчастникПроизводитель ComAp. Excel по записи в ячейку возвращает значение, которое потом можно распарсить. Например =IGS_DDE|’IGS1′!OBJECT_24562 вычитывает блок данных.
-
АвторСообщения