На форуме обязательно:
  1. Заполнить свой профиль НА РУССКОМ ЯЗЫКЕ КИРИЛЛИЦЕЙ. См. Правила, п.2.d.
  2. Не писать свой вопрос в первую попавшуюся тему, а вместо этого создать свою. См. Правила, п.3.a.

Дублирование сообщений приравнивается к спаму. Рекламу мы не размещаем ни на каких условиях.

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

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

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

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

Сообщение bublonikon » 08 ноя 2018, 21:25

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

Аватара пользователя

Jackson
администратор
администратор
Сообщения: 9964
Зарегистрирован: 17 июн 2008, 15:01
Имя: Евгений свет Брониславович
Благодарил (а): 132 раза
Поблагодарили: 158 раз
Контактная информация:

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

Сообщение Jackson » 10 ноя 2018, 23:24

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

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


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

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

Сообщение bublonikon » 12 ноя 2018, 07:44

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


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

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

Сообщение Ryzhij » 12 ноя 2018, 07:54

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


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

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

Сообщение bublonikon » 12 ноя 2018, 10:12

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

Аватара пользователя

Jackson
администратор
администратор
Сообщения: 9964
Зарегистрирован: 17 июн 2008, 15:01
Имя: Евгений свет Брониславович
Благодарил (а): 132 раза
Поблагодарили: 158 раз
Контактная информация:

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

Сообщение Jackson » 12 ноя 2018, 11:50

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


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

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

Сообщение bublonikon » 12 ноя 2018, 22:45

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

Аватара пользователя

MuadDib
не первый раз у нас
не первый раз у нас
Сообщения: 398
Зарегистрирован: 31 июл 2010, 08:12
Имя: Журавлев Павел Евгеньевич
Поблагодарили: 7 раз

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

Сообщение MuadDib » 13 ноя 2018, 11:39

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

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

Аватара пользователя

MuadDib
не первый раз у нас
не первый раз у нас
Сообщения: 398
Зарегистрирован: 31 июл 2010, 08:12
Имя: Журавлев Павел Евгеньевич
Поблагодарили: 7 раз

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

Сообщение MuadDib » 13 ноя 2018, 12:32

К слову, обеспечить периодическую работу макроса ("раз в секунду писать в файл данные из 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
администратор
администратор
Сообщения: 9964
Зарегистрирован: 17 июн 2008, 15:01
Имя: Евгений свет Брониславович
Благодарил (а): 132 раза
Поблагодарили: 158 раз
Контактная информация:

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

Сообщение Jackson » 13 ноя 2018, 14:03

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


winb
осмотрелся
осмотрелся
Сообщения: 163
Зарегистрирован: 31 янв 2017, 08:44
Имя: Маркушин Андрей Геннадьевич
Благодарил (а): 6 раз
Поблагодарили: 26 раз

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

Сообщение winb » 13 ноя 2018, 15:14

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

Аватара пользователя

MuadDib
не первый раз у нас
не первый раз у нас
Сообщения: 398
Зарегистрирован: 31 июл 2010, 08:12
Имя: Журавлев Павел Евгеньевич
Поблагодарили: 7 раз

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

Сообщение MuadDib » 14 ноя 2018, 04:14

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 » 16 ноя 2018, 22:45

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

Ответить

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