- Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
- Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
- Не писать свой вопрос в первую попавшуюся тему - вместо этого создать новую тему.
- За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения.
- Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
- Перед тем как что-то написать - читать здесь и здесь, а студентам - обязательно здесь.
- Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.
Из контроллера в Exel
-
- здесь недавно
- Сообщения: 7
- Зарегистрирован: 31 окт 2018, 11:53
- Имя: Алексей
- Страна: Россия
- город/регион: г Полевской
Из контроллера в Exel
Подскажите, мож кто делал уже.
Необходимо состояние дискретного выхода раз в секунду писать в exel не используя визуализацию.
Понятно что данные нужно дергать из OPC-сервера. Но как это сделать? Голова уже пухнет от натуги.
Необходимо состояние дискретного выхода раз в секунду писать в exel не используя визуализацию.
Понятно что данные нужно дергать из OPC-сервера. Но как это сделать? Голова уже пухнет от натуги.
-
- администратор
- Сообщения: 17571
- Зарегистрирован: 17 июн 2008, 16:01
- Имя: Евгений свет Брониславович
- Страна: Россия
- город/регион: Санкт-Петербург
- Благодарил (а): 824 раза
- Поблагодарили: 1649 раз
Из контроллера в Exel
Это как раз совсем неочевидно.
Чтобы кто-то смог Вам помочь, Вам лучше полностью описать задачу: вход ЧЕГО, например, где ОНО установлено, где Excel при этом, какие доступны интерфейсы, и т.д.
Можете, например, взять и написать программку, которая будет это делать.
По вопросам работы Форума можно обратиться по этим контактам.
-
- здесь недавно
- Сообщения: 7
- Зарегистрирован: 31 окт 2018, 11:53
- Имя: Алексей
- Страна: Россия
- город/регион: г Полевской
Из контроллера в Exel
Контроллер S7-300. Управляет открытием-закрытием задвижки с дискретных выходов. Компьютер подключен к PLC по ethernet. Состояние этих выходов необходимо раз в секунду писать в Exel.
Получается что нужно чтобы Exel раз в секунду дергал данные из OPC-сервера к себе. Знаю что можно написать в экселе скрипт на Visual basik который будет это делать. Но в Visual нет познаний.
Может у кого уже есть такие наработки.
-
- почётный участник форума
- Сообщения: 5633
- Зарегистрирован: 07 окт 2011, 09:12
- Имя: Гаско Вячеслав Эриевич
- Страна: Россия
- город/регион: Рязань
- Благодарил (а): 600 раз
- Поблагодарили: 758 раз
Из контроллера в Exel
В сети информации полно.
Например тут, здесь http://portalnp.ru/wp-content/uploads/2 ... _Ed_31.pdf
или тут, в конце-концов.
Например тут, здесь http://portalnp.ru/wp-content/uploads/2 ... _Ed_31.pdf
или тут, в конце-концов.
---------------------------------------------------
«У человека в душе дыра размером с Бога, и каждый заполняет её как может.» (Жан-Поль Сартр)
"Ту пустоту, которая остаётся в душе, когда в ней нет Бога, и весь мир не может заполнить." (святитель Николай Сербский)
«У человека в душе дыра размером с Бога, и каждый заполняет её как может.» (Жан-Поль Сартр)
"Ту пустоту, которая остаётся в душе, когда в ней нет Бога, и весь мир не может заполнить." (святитель Николай Сербский)
-
- здесь недавно
- Сообщения: 7
- Зарегистрирован: 31 окт 2018, 11:53
- Имя: Алексей
- Страна: Россия
- город/регион: г Полевской
Из контроллера в Exel
Ну все равно Visual придется изучать.
Буду разбираться, полезно будет.
Спасибо за ответ!
-
- администратор
- Сообщения: 17571
- Зарегистрирован: 17 июн 2008, 16:01
- Имя: Евгений свет Брониславович
- Страна: Россия
- город/регион: Санкт-Петербург
- Благодарил (а): 824 раза
- Поблагодарили: 1649 раз
Из контроллера в Exel
Без вариантов, придется. Или найти человека который сможет (но потом, если надо будет что-то дописать или поправить, снова искать его).
По вопросам работы Форума можно обратиться по этим контактам.
-
- здесь недавно
- Сообщения: 7
- Зарегистрирован: 31 окт 2018, 11:53
- Имя: Алексей
- Страна: Россия
- город/регион: г Полевской
-
- частый гость
- Сообщения: 462
- Зарегистрирован: 31 июл 2010, 09:12
- Имя: Павел
- Страна: РФ
- Благодарил (а): 10 раз
- Поблагодарили: 17 раз
Из контроллера в Exel
К приведенным выше ссылкам добавлю вот эту:
http://gray-box.net/daawrapper.php?lang=ru
OPC-серверы зачастую предоставляют только custom-интерфейс и не поддерживают OLE Automation. А из VBA вы можете работать только с Automation (или dual) интерфейсами. Wrapper по ссылке позволяет обойти это ограничение.
http://gray-box.net/daawrapper.php?lang=ru
OPC-серверы зачастую предоставляют только custom-интерфейс и не поддерживают OLE Automation. А из VBA вы можете работать только с Automation (или dual) интерфейсами. Wrapper по ссылке позволяет обойти это ограничение.
-
- частый гость
- Сообщения: 462
- Зарегистрирован: 31 июл 2010, 09:12
- Имя: Павел
- Страна: РФ
- Благодарил (а): 10 раз
- Поблагодарили: 17 раз
Из контроллера в Exel
К слову, обеспечить периодическую работу макроса ("раз в секунду писать в файл данные из OPC) в рамках Excel VBA не так-то просто. Макросы VBA привязываются к событиям типа "юзер кликнул кнопку на листе" или "происходит сохранение workbook". Для периодического процессинга в фоновом режиме готового решения нет.
В свое время я делал в экселе однократный вызов функции VBA с выдержкой по времени. Для этого пришлось задействовать функции Windows API, в частности, SetTimer:
https://docs.microsoft.com/en-us/window ... r-settimer
Эту же функцию можно использовать и для периодической активности, но как все это будет работать в жизни - большой вопрос. Короче, ждите приключений
Впрочем, мои упражнения были еще во времена Excel 2003, и, возможно, сейчас есть нечто, что упростит вам жизнь. Если найдете чисто VBA решение, поделитесь плиз.
Но в любом случае, идея писать данные в Excel каждую секунду не очень хорошая. Такое надо делать с базой данных, на худой конец, с CSV. Но уж никак не в Excel.
В свое время я делал в экселе однократный вызов функции VBA с выдержкой по времени. Для этого пришлось задействовать функции Windows API, в частности, SetTimer:
https://docs.microsoft.com/en-us/window ... r-settimer
Эту же функцию можно использовать и для периодической активности, но как все это будет работать в жизни - большой вопрос. Короче, ждите приключений
Впрочем, мои упражнения были еще во времена Excel 2003, и, возможно, сейчас есть нечто, что упростит вам жизнь. Если найдете чисто VBA решение, поделитесь плиз.
Но в любом случае, идея писать данные в Excel каждую секунду не очень хорошая. Такое надо делать с базой данных, на худой конец, с CSV. Но уж никак не в Excel.
-
- администратор
- Сообщения: 17571
- Зарегистрирован: 17 июн 2008, 16:01
- Имя: Евгений свет Брониславович
- Страна: Россия
- город/регион: Санкт-Петербург
- Благодарил (а): 824 раза
- Поблагодарили: 1649 раз
Из контроллера в Exel
С чего такой вывод? Вы же не знаете цели автора.
Я сам такими вещами балуюсь во время наладок, и уверен что не я один.
По вопросам работы Форума можно обратиться по этим контактам.
-
- освоился
- Сообщения: 248
- Зарегистрирован: 31 янв 2017, 08:44
- Имя: Маркушин Андрей Геннадьевич
- Страна: Россия
- город/регион: Нижегородская обл., Выкса
- Благодарил (а): 19 раз
- Поблагодарили: 64 раза
Из контроллера в Exel
Если совсем дешево и без претензий на супер-надежность работы нужно, то для .Net есть бесплатные библиотечки для связи с контроллерами по S7 (TCP/IP). Ставите бесплатную версию Visual Studio, NuGet-ом тяните из сети библиотеку, несколько часов на разобраться и вперед тянуть данные. Всяко лучше Эксельного VBA будет.
-
- частый гость
- Сообщения: 462
- Зарегистрирован: 31 июл 2010, 09:12
- Имя: Павел
- Страна: РФ
- Благодарил (а): 10 раз
- Поблагодарили: 17 раз
Из контроллера в Exel
Как временное решение с ручным запуском-остановом может и прокатит, хотя гемора даже для "времянки" слишком много. На постоянной основе - надо искать другое решение.
Отправлено спустя 5 минут 24 секунды:
Согласен, в такой задаче гораздо эффективнее задействовать .NET. Порог вхождения выше, но проблем и ограничений в ходе решения будет меньше.winb писал(а): ↑13 ноя 2018, 15:14 Если совсем дешево и без претензий на супер-надежность работы нужно, то для .Net есть бесплатные библиотечки для связи с контроллерами по S7 (TCP/IP). Ставите бесплатную версию Visual Studio, NuGet-ом тяните из сети библиотеку, несколько часов на разобраться и вперед тянуть данные. Всяко лучше Эксельного VBA будет.
-
- здесь недавно
- Сообщения: 7
- Зарегистрирован: 31 окт 2018, 11:53
- Имя: Алексей
- Страна: Россия
- город/регион: г Полевской
Из контроллера в Exel
Вот тут я уже тоже хочу согласиться. Лучше наверно будет сначала в базу кидать, а от туда уже экселем дергать данные.
Пока с экселем занимаюсь. Если чего получится, то выложу.