Форум АСУТП
Форум АСУТП
Diamarg здесь недавно
Сообщения: 2 Зарегистрирован: 01 дек 2016, 20:29 Имя: Гришин Александр Владимирович Страна: Россия город/регион: Владимир
Вывод данных в файл Exсel
- Цитата
Сообщение Diamarg » 01 дек 2016, 20:45
Никита почётный участник форума
Сообщения: 3724 Зарегистрирован: 20 янв 2010, 22:23 Имя: Никита Страна: РФ город/регион: Мурманск Благодарил (а): 16 раз Поблагодарили: 171 раз
Вывод данных в файл Exсel
- Цитата
Сообщение Никита » 01 дек 2016, 23:10
Diamarg здесь недавно
Сообщения: 2 Зарегистрирован: 01 дек 2016, 20:29 Имя: Гришин Александр Владимирович Страна: Россия город/регион: Владимир
Вывод данных в файл Exсel
- Цитата
Сообщение Diamarg » 02 дек 2016, 07:12
izhidkov не первый раз у нас
Сообщения: 397 Зарегистрирован: 25 фев 2016, 12:18 Имя: Жидков Игорь Алексеевич Страна: РФ город/регион: Королев/Фрязино Благодарил (а): 4 раза Поблагодарили: 11 раз
Вывод данных в файл Exсel
- Цитата
Сообщение izhidkov » 02 дек 2016, 09:42
VADR администратор
Сообщения: 3759 Зарегистрирован: 25 июл 2008, 06:12 Имя: Диев Александр Васильевич Страна: Россия город/регион: г. Сегежа, Карелия Благодарил (а): 129 раз Поблагодарили: 171 раз
Вывод данных в файл Exсel
- Цитата
Сообщение VADR » 02 дек 2016, 10:31
Проще всего — читать из opc-сервера. Прямая связка excel — modbus вряд ли существует в природе, а вот OPC-серверы для modbus существуют в количестве много больше одного :). Если количество данных небольшое (укладывается в 32 тега) — есть немало бесплатных. OPC DA базируются на майкрософтовском dcom, а значит, получить доступ из excel к ним можно. Тут есть несколько вариантов:
1. Пишется vba-скрипт внутри файла excel, сей скрипт обращается к OPC-серверу, таскает из него данные и раскладывает куда надо по ячейкам. Что здесь плохого:
— наличие нужного скрипта в файле приведёт к необходимости понижать безопасность, разрешать запуск скриптов или давать право выбора оператору (что по сути то же самое). По сути это называется «вирусы, добро пожаловать».
— запихивать это дело в шедулер не очень удобно. Вернее, совсем не удобно.
2. Пишется внешняя программа, которая по dcom общается с opc-сервером, и таким же путём — с excel. То есть — запускает excel, даёт команду открыть файл, пишет в нужную ячейку нужные данные, сохраняет, закрывает.
Что плохо здесь:
— фирма microsoft периодически меняет «правила игры», и очередной апдейт того же excel может привести с неработоспособности схемы. Причём диагностируется это крайне сложно. То же касается переноса программы на другой компьютер с другой версией excel.
3. Ставится дополнительный софт, собирающий данные с opc-сервера, хранящий у себя в базе данных и предоставляющий доступ к этим данным, к примеру, через odbc. Этот путь, на мой взгляд, наиболее прямой. В файле excel создаётся соединение с базой данных (как это делать — читайте в хелпах) и таскаются нужные данные из базы. Есть также вариант с веб-запросом. Что плохо здесь: софт такой стоит денег и иногда весьма не маленьких.
Что вообще плохо в импорте данных из OPC-серверов (вот такое у меня сегодня пессимистичное настроение 🙂 ). Вся эта хрень (имея в виду OPC DA) работает на базе майкрософтовского dcom, всё это легко и непринуждённо можно запустить на одном компьютере. А вот если клиент и сервер находятся на разных компьютерах — начинаются пляски с бубном для настройки прав доступа. В процессе настройки придётся вспомнить большое количество самых витиеватых заклинаний из области непечатного фольклора :). Решается на сегодняшний день не очень сложно: если реализовать всё на OPC UA — эта проблема уходит. У нескольких фирм есть шлюзы OPC DA — OPC UA, позволяющие обойти эту проблему.