1. Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
  2. Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
  3. Не писать свой вопрос в первую попавшуюся тему - вместо этого создать новую тему.
  4. За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения.
  5. Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
  6. Перед тем как что-то написать - читать здесь и здесь, а студентам - обязательно здесь.
  7. Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.

Из контроллера в Exel

ПЛК SIMATIC (S7-200, S7-1200, S7-300, S7-400, S7-1500, ET200)
Ответить

Автор темы
bublonikon
здесь недавно
здесь недавно
Сообщения: 7
Зарегистрирован: 31 окт 2018, 11:53
Имя: Алексей
Страна: Россия
город/регион: г Полевской

Из контроллера в Exel

Сообщение bublonikon »

Подскажите, мож кто делал уже.
Необходимо состояние дискретного выхода раз в секунду писать в exel не используя визуализацию.
Понятно что данные нужно дергать из OPC-сервера. Но как это сделать? Голова уже пухнет от натуги. :icon_wall:
Аватара пользователя

Jackson
администратор
администратор
Сообщения: 17471
Зарегистрирован: 17 июн 2008, 16:01
Имя: Евгений свет Брониславович
Страна: Россия
город/регион: Санкт-Петербург
Благодарил (а): 749 раз
Поблагодарили: 1277 раз

Из контроллера в Exel

Сообщение Jackson »

bublonikon писал(а): 08 ноя 2018, 21:25 Понятно что данные нужно дергать из OPC-сервера
Это как раз совсем неочевидно.
bublonikon писал(а): 08 ноя 2018, 21:25 Голова уже пухнет от натуги
Чтобы кто-то смог Вам помочь, Вам лучше полностью описать задачу: вход ЧЕГО, например, где ОНО установлено, где Excel при этом, какие доступны интерфейсы, и т.д.

Можете, например, взять и написать программку, которая будет это делать.
По вопросам работы Форума можно обратиться по этим контактам.

Автор темы
bublonikon
здесь недавно
здесь недавно
Сообщения: 7
Зарегистрирован: 31 окт 2018, 11:53
Имя: Алексей
Страна: Россия
город/регион: г Полевской

Из контроллера в Exel

Сообщение bublonikon »

Jackson писал(а): 10 ноя 2018, 23:24 где ОНО установлено, где Excel при этом, какие доступны интерфейсы, и т.д.
Контроллер S7-300. Управляет открытием-закрытием задвижки с дискретных выходов. Компьютер подключен к PLC по ethernet. Состояние этих выходов необходимо раз в секунду писать в Exel.
Получается что нужно чтобы Exel раз в секунду дергал данные из OPC-сервера к себе. Знаю что можно написать в экселе скрипт на Visual basik который будет это делать. Но в Visual нет познаний.
Может у кого уже есть такие наработки.

Ryzhij
почётный участник форума
почётный участник форума
Сообщения: 5620
Зарегистрирован: 07 окт 2011, 09:12
Имя: Гаско Вячеслав Эриевич
Страна: Россия
город/регион: Рязань
Благодарил (а): 544 раза
Поблагодарили: 706 раз

Из контроллера в Exel

Сообщение Ryzhij »

В сети информации полно.
Например тут, здесь http://portalnp.ru/wp-content/uploads/2 ... _Ed_31.pdf
или тут, в конце-концов.
---------------------------------------------------
«У человека в душе дыра размером с Бога, и каждый заполняет её как может.» (Жан-Поль Сартр)
"Ту пустоту, которая остаётся в душе, когда в ней нет Бога, и весь мир не может заполнить." (святитель Николай Сербский)

Автор темы
bublonikon
здесь недавно
здесь недавно
Сообщения: 7
Зарегистрирован: 31 окт 2018, 11:53
Имя: Алексей
Страна: Россия
город/регион: г Полевской

Из контроллера в Exel

Сообщение bublonikon »

Ryzhij писал(а): 12 ноя 2018, 07:54 В сети информации полно.
Например тут...
Ну все равно Visual придется изучать.
Буду разбираться, полезно будет.
Спасибо за ответ!
Аватара пользователя

Jackson
администратор
администратор
Сообщения: 17471
Зарегистрирован: 17 июн 2008, 16:01
Имя: Евгений свет Брониславович
Страна: Россия
город/регион: Санкт-Петербург
Благодарил (а): 749 раз
Поблагодарили: 1277 раз

Из контроллера в Exel

Сообщение Jackson »

bublonikon писал(а): 12 ноя 2018, 10:12 Ну все равно Visual придется изучать.
Без вариантов, придется. Или найти человека который сможет (но потом, если надо будет что-то дописать или поправить, снова искать его).
По вопросам работы Форума можно обратиться по этим контактам.

Автор темы
bublonikon
здесь недавно
здесь недавно
Сообщения: 7
Зарегистрирован: 31 окт 2018, 11:53
Имя: Алексей
Страна: Россия
город/регион: г Полевской

Из контроллера в Exel

Сообщение bublonikon »

Думаю разберусь. Одним языком в багаже за спиной больше станет.
Аватара пользователя

MuadDib
частый гость
частый гость
Сообщения: 462
Зарегистрирован: 31 июл 2010, 09:12
Имя: Павел
Страна: РФ
Благодарил (а): 8 раз
Поблагодарили: 13 раз

Из контроллера в Exel

Сообщение MuadDib »

К приведенным выше ссылкам добавлю вот эту:
http://gray-box.net/daawrapper.php?lang=ru

OPC-серверы зачастую предоставляют только custom-интерфейс и не поддерживают OLE Automation. А из VBA вы можете работать только с Automation (или dual) интерфейсами. Wrapper по ссылке позволяет обойти это ограничение.
Аватара пользователя

MuadDib
частый гость
частый гость
Сообщения: 462
Зарегистрирован: 31 июл 2010, 09:12
Имя: Павел
Страна: РФ
Благодарил (а): 8 раз
Поблагодарили: 13 раз

Из контроллера в Exel

Сообщение MuadDib »

К слову, обеспечить периодическую работу макроса ("раз в секунду писать в файл данные из OPC) в рамках Excel VBA не так-то просто. Макросы VBA привязываются к событиям типа "юзер кликнул кнопку на листе" или "происходит сохранение workbook". Для периодического процессинга в фоновом режиме готового решения нет.

В свое время я делал в экселе однократный вызов функции VBA с выдержкой по времени. Для этого пришлось задействовать функции Windows API, в частности, SetTimer:

https://docs.microsoft.com/en-us/window ... r-settimer

Эту же функцию можно использовать и для периодической активности, но как все это будет работать в жизни - большой вопрос. Короче, ждите приключений :crazy0to:

Впрочем, мои упражнения были еще во времена Excel 2003, и, возможно, сейчас есть нечто, что упростит вам жизнь. Если найдете чисто VBA решение, поделитесь плиз.

Но в любом случае, идея писать данные в Excel каждую секунду не очень хорошая. Такое надо делать с базой данных, на худой конец, с CSV. Но уж никак не в Excel.
Аватара пользователя

Jackson
администратор
администратор
Сообщения: 17471
Зарегистрирован: 17 июн 2008, 16:01
Имя: Евгений свет Брониславович
Страна: Россия
город/регион: Санкт-Петербург
Благодарил (а): 749 раз
Поблагодарили: 1277 раз

Из контроллера в Exel

Сообщение Jackson »

MuadDib писал(а): 13 ноя 2018, 12:32 Но в любом случае, идея писать данные в Excel каждую секунду не очень хорошая. Такое надо делать с базой данных, на худой конец, с CSV. Но уж никак не в Excel.
С чего такой вывод? Вы же не знаете цели автора.
Я сам такими вещами балуюсь во время наладок, и уверен что не я один.
По вопросам работы Форума можно обратиться по этим контактам.

winb
освоился
освоился
Сообщения: 248
Зарегистрирован: 31 янв 2017, 08:44
Имя: Маркушин Андрей Геннадьевич
Страна: Россия
город/регион: Нижегородская обл., Выкса
Благодарил (а): 14 раз
Поблагодарили: 59 раз

Из контроллера в Exel

Сообщение winb »

Если совсем дешево и без претензий на супер-надежность работы нужно, то для .Net есть бесплатные библиотечки для связи с контроллерами по S7 (TCP/IP). Ставите бесплатную версию Visual Studio, NuGet-ом тяните из сети библиотеку, несколько часов на разобраться и вперед тянуть данные. Всяко лучше Эксельного VBA будет.
Аватара пользователя

MuadDib
частый гость
частый гость
Сообщения: 462
Зарегистрирован: 31 июл 2010, 09:12
Имя: Павел
Страна: РФ
Благодарил (а): 8 раз
Поблагодарили: 13 раз

Из контроллера в Exel

Сообщение MuadDib »

Jackson писал(а): 13 ноя 2018, 14:03 С чего такой вывод? Вы же не знаете цели автора.
Я сам такими вещами балуюсь во время наладок, и уверен что не я один.
Как временное решение с ручным запуском-остановом может и прокатит, хотя гемора даже для "времянки" слишком много. На постоянной основе - надо искать другое решение.

Отправлено спустя 5 минут 24 секунды:
winb писал(а): 13 ноя 2018, 15:14 Если совсем дешево и без претензий на супер-надежность работы нужно, то для .Net есть бесплатные библиотечки для связи с контроллерами по S7 (TCP/IP). Ставите бесплатную версию Visual Studio, NuGet-ом тяните из сети библиотеку, несколько часов на разобраться и вперед тянуть данные. Всяко лучше Эксельного VBA будет.
Согласен, в такой задаче гораздо эффективнее задействовать .NET. Порог вхождения выше, но проблем и ограничений в ходе решения будет меньше.

Автор темы
bublonikon
здесь недавно
здесь недавно
Сообщения: 7
Зарегистрирован: 31 окт 2018, 11:53
Имя: Алексей
Страна: Россия
город/регион: г Полевской

Из контроллера в Exel

Сообщение bublonikon »

MuadDib писал(а): 13 ноя 2018, 12:32 Но в любом случае, идея писать данные в Excel каждую секунду не очень хорошая. Такое надо делать с базой данных, на худой конец, с CSV. Но уж никак не в Excel
Вот тут я уже тоже хочу согласиться. Лучше наверно будет сначала в базу кидать, а от туда уже экселем дергать данные.
Пока с экселем занимаюсь. Если чего получится, то выложу.
Ответить

Вернуться в «Simatic Step7»