Создание отчетов в формате Excel с помощью WinCC Professional

Поделиться
HTML-код
  • Опубликовано: 18 дек 2024

Комментарии • 36

  • @ВикторМаслаков-ы7в
    @ВикторМаслаков-ы7в 2 года назад +2

    Спасибо большое за этот ролик! Если бы он вышел в ноябре, то моя жизнь была бы на много проще))

  • @asutp2089
    @asutp2089 2 года назад

    Великолепно подал материалл. Этот способ не только будет в wincc работать но и в других скадах.

  • @ТаняДоношенко
    @ТаняДоношенко 2 года назад

    Спасибо вам большое за проделанный труд.

  • @АртемНеволин-ф1з
    @АртемНеволин-ф1з 2 года назад

    Спасибо. Познавательное и интересное видео!!!

  • @klyuchenkov
    @klyuchenkov 2 года назад

    Огонь!

  • @sainthentai7763
    @sainthentai7763 Год назад

    Ты настоящий сигма альфа гигачад с мясистой попой и здоровенным болтом! Спасибо за видео!

  • @sergymaut1699
    @sergymaut1699 2 года назад

    Вот это годный ролик за это лайк

  • @SlavaSlavin1
    @SlavaSlavin1 2 года назад

    Ну вот) Полная годность. Сразу ясно с кем имеешь дело)
    Пара вопросов:
    1. С кортов встаём?
    2. Нормально 11я винда зашла? Нервоза не много?

    • @portalview3028
      @portalview3028  2 года назад +2

      1. Нет, прошу занимать сидячие места до конца этого чудесного трипа
      2. Если в одном месте не жжот, лучше не переходить. Ничего нового полезного не заметил, а то что реально были полезно, зачем то вырезали или сделали неудобным

    • @SlavaSlavin1
      @SlavaSlavin1 2 года назад +1

      @@portalview3028 Ну у маек так и заведено) Спрятать какую нибудь панель за тридевять своих ср...ных плиток)

  • @ВикторОтейчук-ь2п
    @ВикторОтейчук-ь2п 6 месяцев назад

    Добрый день! Подскажите пожалуйста, а на WinCC Advanced этот скрипт будет работать,

  • @eugenbeutnr2694
    @eugenbeutnr2694 2 года назад

    Большое спасибо за видео. Есть ли отдельный документ у Siemens по скриптам или общий учебник по VBScript лучше полистать?

    • @portalview3028
      @portalview3028  2 года назад

      А я вот что-то не помню даже. По-моему что-то у сименса есть. Как минимум по wincc документация, там и про скрипты есть инфа

  • @РусланКурамшин-щ6х

    А как сделать то же самое, только записывать архивные значения тегов с меткой времени? то есть, тянуть архивные данные из базы SQL?

  • @bcs-t4292
    @bcs-t4292 Год назад

    Тема очень важная, благодарю!!
    Подскажите пожалуйста, как лучше решать следующую задачу.
    Нужно каждый день сохранять файл с данными по каждой переменной с периодом в 1 сек.
    Решение "в лоб" - это каждый день создавать новый CSV-файл и каждую секунду в него записывать новые данные. Насколько это решение правильное если на производстве 20 контроллеров, и в каждом по 50 тэгов?

  • @winter_soon
    @winter_soon Год назад

    Добрый день. Пытаюсь написать генератор отчетов , но wincc 7.5 при написании скрипта не понимает функцию workbook, соответственно не создает файлы(папки создались на ура). Не могли бы вы подсказать куда рыть? Может что то нужно доустанавливать? Excel стоит 2007 sp3. У вас пример для wincc advanced а у меня professional вроде должно работать но увы.

  • @mikhailschelemin9732
    @mikhailschelemin9732 2 года назад

    За видео жЫрный лайк! Автор, модифицируй скрипнт, пожалуйста, чтобы в течение суток каждый час в новую строку значение тэга писал. А начиная с новых суток - новый файл

    • @HomoSapiensWithLaptop
      @HomoSapiensWithLaptop Год назад

      это будет примерно так:
      Dim objExcel, objWorkbook, objSheet
      Dim strTemplatePath, strOutputPath
      Dim objFSO
      Dim strValue
      Dim objShell
      Dim dtLastRun
      Dim dtNow
      ' Установите пути к файлам Excel и к выходным файлам
      strTemplatePath = "C:\Путь\К\Шаблонному\Файлу.xlsx"
      strOutputPath = "C:\Путь\К\Выходному\Каталогу\"
      ' Создайте объекты Excel и FileSystemObject
      Set objExcel = CreateObject("Excel.Application")
      Set objFSO = CreateObject("Scripting.FileSystemObject")
      ' Проверка наличия шаблонного файла
      If objFSO.FileExists(strTemplatePath) Then
      ' Получаем атрибуты времени записи файла
      Set objFile = objFSO.GetFile(strTemplatePath)
      dtLastRun = objFile.DateLastModified
      ' Открываем шаблонный файл
      Set objWorkbook = objExcel.Workbooks.Open(strTemplatePath)
      Set objSheet = objWorkbook.Sheets(1)
      ' Получаем текущую дату и время
      dtNow = Now
      ' Проверка, прошло ли более 1 часа с последнего запуска
      If DateDiff("h", dtLastRun, dtNow) >= 1 Then
      ' Записываем значение в новый столбец
      strValue = "Значение" ' Замените это на ваше значение
      objSheet.Cells(1, objSheet.UsedRange.Columns.Count + 1).Value = strValue
      ' Сохраняем изменения в шаблонном файле
      objWorkbook.Save
      ' Обновляем атрибуты времени записи файла
      objFile.DateLastModified = dtNow
      ' Закрываем Excel
      objExcel.Quit
      Set objExcel = Nothing
      End If
      ' Проверка, прошел ли день
      If DateDiff("d", dtLastRun, dtNow) >= 1 Then
      ' Создаем новый файл для следующего дня
      Set objShell = CreateObject("WScript.Shell")
      objShell.Run "cmd /c copy """ & strTemplatePath & """ """ & strOutputPath & "Файл_" & Year(dtNow) & Month(dtNow) & Day(dtNow) & ".xlsx""", 0, True
      ' Закрываем Excel и освобождаем ресурсы
      objExcel.Quit
      Set objExcel = Nothing
      End If
      Else
      WScript.Echo "Шаблонный файл не найден."
      End If
      ' Освобождаем ресурсы
      Set objFSO = Nothing
      Set objSheet = Nothing
      Set objWorkbook = Nothing
      Set objExcel = Nothing
      Set objShell = Nothing

  • @mikhailschelemin9732
    @mikhailschelemin9732 2 года назад

    Автору респект! Как открыть по скрипту папку с отчетом в проводнике Windows?

    • @portalview3028
      @portalview3028  2 года назад

      Погуглите how to open a folder with vbs. Примеров куча

  • @gyftoaigyptios2432
    @gyftoaigyptios2432 2 года назад

    Замечания. Конечно, у каждого свой почерк кода и читабельность, но...
    1) Dim...As, иначе жрётся память. Без "As" VB генерит "As Variant" (24 байта).
    И объединяйте: Dim filename, path As String.
    2) 26:00 - Select...Case. Или Month(Now()) &"_"& MonthName(Now()).
    3) 30:02 - конкатенация IIf(Minute(Now())

    • @portalview3028
      @portalview3028  2 года назад

      Спасибо за замечание) я все это прекрасно понимаю, и если бы подобных скриптов была добрая сотня, то это было бы критично, а так фиг с ним) я вообще слабо умею в оптимизацию. Любитель нагородить десятиэтажного кода😅 нужна практика, а я такое пишу от случая к случаю раз в полгода)

  • @АндрейЗаяц-ю2м
    @АндрейЗаяц-ю2м Год назад

    Привет из 2023
    Автору спасибо за видео
    Можно заменить if месяцы заменить циклом
    For monthNumber = 1 To 12
    FS.CreateFolder "D:\TiaPort\" & Year(Now()) & "\" & MonthName(monthNumber, False)
    monthNumber = ++monthNumber
    Next
    MonthName ( monthNumber - номер месяца, False - длинное или короткое название месяца 1- Янв, 1 - Январь)

  • @Hip67channel
    @Hip67channel 2 года назад

    Может не в тему, но тоже про отчёты: кто нибудь видел библиотеку для s7-1200/1500 которая может писать в sql кириллицу? Везде валяется стандартная сименовская, которая пишет только стандартные символы

  • @ДмитрийМолев-ч1г
    @ДмитрийМолев-ч1г 2 года назад

    В симуляторе работает, спору нет. Но сделал на hmi и выдаёт ошибку. Не подскажите как быть? Error ActiveX component can't create object "scripting.filesystemobject" In script create in line 59?

    • @portalview3028
      @portalview3028  2 года назад

      Что значит сделали на HMI?

    • @ДмитрийМолев-ч1г
      @ДмитрийМолев-ч1г 2 года назад

      @@portalview3028 ну в смысле записал программу на плк и панель и с панели он мне эту ошибку пишет когда пытаюсь сохранить

    • @portalview3028
      @portalview3028  2 года назад

      @@ДмитрийМолев-ч1г ну так конечно это не будет работать. Это скрипт для ПК, а не для панели. Как вы вообще собирались адаптировать этот скрипт для панели, я не понимаю

    • @ДмитрийМолев-ч1г
      @ДмитрийМолев-ч1г 2 года назад

      @@portalview3028 опыта нет, не знал. Думал, что заработает. А возможно что то подобное написать для панели?

    • @HomoSapiensWithLaptop
      @HomoSapiensWithLaptop Год назад

      Потому что FileSystemObject это ActiveX компонент OS Windows. Если на HMI будет установлена винда, то все бы заработало. А там скорее всего стоит что-то Linux подобное, либо урезанная винда, в которой нет этой библиотеки.

  • @SERVICE_KARELIA
    @SERVICE_KARELIA 4 месяца назад

    Если у кого есть мануал по wincc runtime, скиньте ссылочку.

  • @mikhailschelemin9732
    @mikhailschelemin9732 2 года назад

    Автору лайк и подписка, но не раскрыта тема генерации отчётов за сутки с часовым интервалом

    • @portalview3028
      @portalview3028  2 года назад

      Ну это все настраивается там же, в scheduled tasks. Настраиваете, чтобы скрипт вызывался каждый час и все

    • @mikhailschelemin9732
      @mikhailschelemin9732 2 года назад

      @@portalview3028 тогда будет создан новый файл. Я, конечно, уже разобрался как сделать - надо файл создавать только при var=0, а в остальных случаях - дописывать. Иначе каждый раз новый файл будет

  • @HomoSapiensWithLaptop
    @HomoSapiensWithLaptop Год назад

    А почему не создать массив с названиями месяцев и обращаться туда по индексу, который формирует системная переменная? А ошибка с закрытием excel связана с тем, что экземпляра Excel не было, поэтому ExcelApp был равен null. Сооственно, у него нельзя вызвать методы, тк объекта не существует

    • @portalview3028
      @portalview3028  Год назад

      Вы можете создать массив, я не запрещал)