PDA

Просмотр полной версии : CODESYS V3.5. Архивация



Евгений Кислов
31.08.2017, 08:28
Добрый день, уважаемые коллеги.

Достаточно часто у пользователей контроллеров, программируемых в среде CODESYS V3.5, возникают вопросы, связанные с работой с файлами. Среди них можно выделить два наиболее часто встречающихся:

1. Как записать данные программы на USB/SD-накопитель? (для ведения архива параметров)
2. Как считать данные с USB/SD-накопителя в программу? (для импорта рецептов)

Ответы на эти (и другие) вопросы вы найдете в документе CODESYS V3.5. Архивация. Документ содержит:


общие сведения о работе с файлами;
описание и пример использования компонента OwenArchiver;
описание библиотеки CAA File, которая используется для работы с файлами в тех случаях, когда функционала OwenArchiver оказывается недостаточно;
подробный пример работы с библиотекой.


Примеры разработаны для контроллера СПК1хх [М01] в среде CODESYS V3.5 SP11 Patch 5 и доступны для скачивания в формате .projectarchive . При необходимости запустить их на другом контроллере - просто замените таргет-файл.

Новый компонент OwenArchiver представляет собой предельно простую в настройке систему архивации. Теперь для создания архивов в проекте достаточно сконфигурировать компонент архивации – и обойтись без усложнения кода программы. Достаточно всего лишь выбрать устройство для архивации (внутренняя память контроллера, USB, SD), задать режим архивации (циклический, по команде, по изменению значения) и привязать нужные переменные. Архив ведется в формате .csv, который может быть открыт Microsoft Excel и другим офисным ПО. Работа с компонентом описана в документе CODESYS V3.5. Архивация.

35411


https://youtu.be/rpwvyahHevw


CODESYS V3.5 Архивация [2.2] (https://ftp.owen.ru/CoDeSys3/11_Documentation/03_3.5.11.5/CDSv3.5_Archives_v2.2.pdf)

СПК. Архивация [1.0 (http://www.owen.ru/uploads/txtlic.php?url=http://ftp.owen.ru/index.html/CoDeSys3/11_Documentation/01_SPK/SPK_Archives_v.1.0.pdf)] (предыдущая версия документа - для старой линейки СПК1хх и СПК207)



OwenArchiver 3.5.4.9 (http://www.owen.ru/forum/showthread.php?t=27332&p=287195&viewfull=1#post287195)



https://www.owen.ru/product/codesys_v3/example_of_work

Евгений Кислов
04.09.2017, 18:10
Проблемы с фтп решены - все ссылки активны.

Alexey0027
26.09.2017, 20:19
Слушайте , вы чего издеваетесь !!! Старые библиотеки не работают и поддержка прекращена, новые скачать кроме как прочитать лицензионное соглашение невозможно !!! Несерьезно для крупной конторы!

Евгений Кислов
26.09.2017, 20:36
Слушайте , вы чего издеваетесь !!! Старые библиотеки не работают и поддержка прекращена, новые скачать кроме как прочитать лицензионное соглашение невозможно !!! Несерьезно для крупной конторы!

Добрый вечер. Старые библиотеки работают (в случае их корректного использования) и техподдержка в любом случае осуществляет по ним консультации; "новых" библиотек в данный момент нет.
Если вы детально опишите, в чем проблема (лучше - в виде письма на support@owen.ru) - то, разумеется, мы постараемся вам помочь.

Alexey0027
27.09.2017, 10:34
какие данные для правильного ответа ван необходимы? Я сделал все как в вашем примере уже пробовал по разному никак не работает архивация , данные видно что в архив идут а флэшка хронически монтируется и не определяются обьемы размер 4 гига. Я уже не первый год с вашими ПЛК работаю. всегда решал проблемы если нужно в обход на втором кодесе , но тут полный капут с 3-м , когда касается библиотек. СПК 207,03,00-CS-WEB.Могу скинуть проект на поглядеть там только тест библиотеки

Alexey0027
27.09.2017, 11:07
Добрый вечер. Старые библиотеки работают (в случае их корректного использования) . а где описание ина русском языке библиотеки ArchiverSPK. нет ее кроме нескольких примеров найденных в сети и не на сайте овен .

Евгений Кислов
27.09.2017, 11:18
Описание библиотеки (т.е. описание одного блока, из которого она состоит) интегрировано в библиотеку.

По поводу вашего проекта.

1. Если вы используете прошивку из этой темы (http://www.owen.ru/forum/showthread.php?t=25756), то библиотеку необходимо обновить до версии 3.5.4.2:
http://ftp.owen.ru/index.html/CoDeSys3/04_Library/02_Manual_installation/09_ArchiverSPK/3.5.4.2/ArchiverSPK_3.5.4.2.compiled-library
Об этом упомянуто в той же теме, в спойлере Модернизация существующего проекта.

2. В вашем проекте некорректно реализована настройка параметров архивации.

У вас: Arch1.ARCH_Data[0].dDT
Надо: ARCH_Data[0].dDT
(и так далее со всеми параметрами)

3. В вашем проекте некорректный порядок вызова блоков - архиватор вызывается еще до того, как были заданы параметры архивации (у его блока номер 0).

После исправлений ваш проект у меня работает корректно.

Morozbl4
09.11.2017, 10:43
Добрый день!
При тесте примера на контроллере СПК207 модуль не видит USB, при этом SD карта и внутренняя память видны и операции с файлами выполняются.

Евгений Кислов
09.11.2017, 11:14
Добрый день!
При тесте примера на контроллере СПК207 модуль не видит USB, при этом SD карта и внутренняя память видны и операции с файлами выполняются.

Добрый день.

Проверьте, соответствует ли накопитель требованиям, приведенным в п. 2.3.
Подключитесь к контроллеру с помощью WinSCP (см. п. 2.8) и сделайте скриншот содержимого папки /mnt/ufs/media.
Выложите скриншот сюда.

Morozbl4
10.11.2017, 15:29
Извиняюсь. Все по неопытности.
Обновили всю конфигурацию - все видно.

Дополнительный вопрос:
На странице 10 руководства есть такой абзац:
При архивировании строк типа WSTRING для корректного отображения архива в текстовом
редакторе (или другом ПО) следует использовать маркер последовательности байт.

Как это должно выглядеть в программе?
Есть проблема с кодировками записываемого файла.


+ по аналогии с Вашим примером сделал "сшивание строк" при помощи WCONCAT - не работает функция (аналог Вашей CONCAT11 - там менял STRING на WSTRING)
пришлось все склеивать руками, хотя с массивами быстрее было бы.

Евгений Кислов
10.11.2017, 15:32
Я на следующей неделе постараюсь подготовить небольшой пример на тему WSTRING.


+ по аналогии с Вашим примером сделал "сшивание строк" при помощи WCONCAT - не работает функция (аналог Вашей CONCAT11 - там менял STRING на WSTRING)
пришлось все склеивать руками, хотя с массивами быстрее было бы.

Сложно что-то сказать, не видя кода. Но сама концепция подойдет и для WSTRING.

Morozbl4
10.11.2017, 16:05
ну я переделал модуль примерно так:

FUNCTION CONCAT11 : WSTRING
VAR_INPUT
asSTR: ARRAY [0..c_MAX_STR] OF WSTRING;
END_VAR
VAR
sBuffer: WSTRING; // промежуточная переменная
i: INT; // счетчик для цикла
END_VAR

VAR CONSTANT
c_MAX_STR: INT:=10; // размер массива строковых переменных
END_VAR

и, соответственно переменные с которыми он работает заменил на WSTRING.
Склеивание через массив не проходило, хотя переменные было видно.

Сейчас есть проблема с кодировкой, к сожалению... В CSV файле белиберда...

Евгений Кислов
13.11.2017, 08:45
Итак, по поводу архивации в WSTRING/Unicode.

1. Берем исходный пример и везде, где идет работа с сохраняемыми данными, меняем тип STRING на WSTRING (это касается как кода программы StringFileExample_PRG, так и вспомогательных функций и ФБ типа CONCAT11, SPLIT_DT_TO_FSTRINGS и всех остальных). Также меняем строковые функции из библиотеки Standard на аналогичные из Standard64 (CONCAT на WCONCAT и т.д.).

2. При записи в файл умножаем длину строки на 2 (т.к. у WSTRING каждый символ весит 2 байта):


fbFileWrite(xExecute:=TRUE, hFile:=hFile, pBuffer:=ADR(wsArchEntry), szSize:=2*INT_TO_UDINT(WLEN(wsArchEntry)));

3. У семейства Unicode есть разные кодировки - Utf8, Utf16, Utf32. Кроме того, бывают разные вариации с порядком байт (Big Endian и Little Endian). Чтобы упростить жизнь, придумали такую штуку, как маркер последовательности байт. В сущности - это несколько спецсимволов, которые записываются в начало файла и содержат информацию о кодировке/порядке байт. В текстовом редакторе, соответственно, эти символы не отображаются. Подробнее по ссылке (https://ru.wikipedia.org/wiki/%D0%9C%D0%B0%D1%80%D0%BA%D0%B5%D1%80_%D0%BF%D0%BE% D1%81%D0%BB%D0%B5%D0%B4%D0%BE%D0%B2%D0%B0%D1%82%D0 %B5%D0%BB%D1%8C%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D0% B1%D0%B0%D0%B9%D1%82%D0%BE%D0%B2).

В CODESYS тип WSTRING связан с кодировкой UCS2. В принципе, это тот же UTF16, только каждый символ всегда занимает ровно 2 байта.
Давайте добавим к нашему файлу маркер. Создадим в программе переменную wsByteOrderMark и инициализируем ее в коде (поскольку маркер - спецсимвол, то задаем его прямо побайтно):


wsByteOrderMark[0]:=16#FEFF; // почему именно такое значение - см. ссылку выше


Маркер должен быть в начале файла - т.е. в нашем случае перед заголовком архива. Поэтому склеим его и заголовок в переменную wsFirstString:


wsFirstSting:=WCONCAT(wsByteOrderMark, c_sTitle);


И теперь везде в программе, где мы раньше использовали c_sTitle, заменим ее на wsFirstSting. Собственно, вот и вся история с маркером.

4. Не все текстовые редакторы адекватно отображают Unicode-файлы, в которых есть маркеры и спецсимволы. Например, стандартный Блокнот и встроенный редактор WinSCP - не лучший выбор. Лучше использовать что-то типа Notepad++.


Прикладываю к посту архив с адаптированным примером, в котором ведется архивация строк типа WSTRING в файл формата .txt.

FoeNicks
20.11.2017, 09:17
ФТП опять отвалился? Не могу скачать ни один файл по Кодесису 3.

Евгений Кислов
20.11.2017, 09:41
ФТП опять отвалился? Не могу скачать ни один файл по Кодесису 3.

К сожалению, да.

Upd. - починили.

Mettall
06.12.2017, 11:23
FTP - снова не работает((!

Евгений Кислов
06.12.2017, 13:26
FTP - снова не работает((!

Да, к сожалению.
Пока воспользуйтесь зеркалом:
https://yadi.sk/d/7byrC_E73QAQhC

Serhioromano
07.12.2017, 17:00
Вопрост такой. Допустим у меня есть процесс некий из 4х шагов. Это процесс сушки форукта. Под каждый фрукт разные настройки. Я хочу сохранить настройки в файл например и потом загрузить из файла.

В принципе из документа все понятно, как записать и как прочитать, как вывести список файлов, выбрать и т.д. С этим воросов нет. Но вот мне не свосем понятно с форматом. Я пришел из веб прогрммирования. Там я мог сохранять в файлы JSON потом читать и просто декодировать обратно в объект.

Что можно использовать тут что бы можно было просто обратно прочитать в в переменные? Какой формат записи что бы потом леко прочесть? Моя конфигурация это просто набор имен и значений.

RV9WFJ
07.12.2017, 17:03
Посмотрите не работу с файлами а использование рецептов.

Евгений Кислов
07.12.2017, 18:21
Проще всего читать то, что имеет заранее известный размер. Например, бинарные данные (пример есть в документе) или строки фиксированной длины.

Serhioromano
08.12.2017, 13:39
К стати только что нашел CAA Settings по моему как раз то что нужно что бы сделать небольшую базу рецептов настроек.

Евгений Кислов
08.12.2017, 13:55
Подскажите как правильно ткрыть вайл архива проекта? Просто запустить его? У меня просто открывается много ошибок и потом там не файла основной программы.

Какую версию CODESYS используете? Пример создан в SP7 Patch4.

Serhioromano
08.12.2017, 15:16
А я использовал раннюю версия. Только что скачал 7й патч но не уверено боюсь ставить. У меня много рабочих проектов, я не совсем понимаю что произодйет. Будут ли мои проекты грузиться в старые устройства или нет. Там 2 файла установочный ехе и патч. Мне их оба нужно поставить? Моя текущая версия КДС сохраниться?

Евгений Кислов
08.12.2017, 16:01
Поставьте в отдельную папку - никаких проблем не возникнет (старый КДС сохранится, все будет, как и раньше).
Установочный файл там один - формата exe.

Евгений Кислов
05.02.2018, 08:03
Состоялся релиз нового компонента архивации - OwenArchiver.
Теперь настройка архивов происходит максимально просто - через дерево проекта и в несколько кликов мыши.
Скачать компонент можно по ссылке:
http://www.owen.ru/catalog/codesys_v3/80224381

Описание работы с компонентом приведено в документе СПК. Архивация (1.0) - см. первый пост темы.

lectorleo
07.02.2018, 13:35
Добрый день. Попробовал библиотеку owenArchiver, работает. Спасибо. Но есть ньюанс: в инструкции сказано что можно не чаще чем раз в секунду если по команде старт. Но настройки не позволяют меньше 5ти секунд сделать. А мне надо раз в секунду записывать. И буквально только 5 параметров в течении 3х минут. и только один параметр в это время будет изменяться. Можно как-то обойти блокировку в 5 секунд?

Евгений Кислов
07.02.2018, 13:42
Добрый день. Попробовал библиотеку owenArchiver, работает. Спасибо. Но есть ньюанс: в инструкции сказано что можно не чаще чем раз в секунду если по команде старт. Но настройки не позволяют меньше 5ти секунд сделать. А мне надо раз в секунду записывать. И буквально только 5 параметров в течении 3х минут. и только один параметр в это время будет изменяться. Можно как-то обойти блокировку в 5 секунд?

Добрый день.

Выберите режим архивирования По команде.
На вкладке Соотнесение входов-выходов привяжите к каналу Команда записи переменную типа BOOL.
Каждую секунду генерируйте этой переменной импульсы по переднему фронту (например, с помощью таймера TON).
В результате по каждому импульсу в файл архива будет добавляться новая запись.

lectorleo
07.02.2018, 14:43
Спасибо, помогли.
По невнимательности, когда поставил По команде, забыл поставить Запуск Архиватора. И думал почему же не создается архив.

lectorleo
12.02.2018, 11:56
Добрый день.
В вашей библиотеке когда архив заполняется то он переименовывается и создается новый. А можно это как-то самому делать? Провести измерения, переименовать архив, создать новый и по новой.

Евгений Кислов
12.02.2018, 12:27
Добрый день.
В вашей библиотеке когда архив заполняется то он переименовывается и создается новый. А можно это как-то самому делать? Провести измерения, переименовать архив, создать новый и по новой.

В данный момент нет - архиватор использует фиксированные имена файлов.
Мы зафиксируем ваше пожелание для следующей версии.

Для вашей задачи пока лучше использовать архиватор совместно с библиотекой CAA File - с помощью нее можно переименовать файл после окончания архивации.

sin230376
25.02.2018, 02:41
Добрый день.

Скачал OwenArchiver, но при добавлении к проекту СПК110.Д72 v.3.5.4.26 при компиляции выдает вот такую серию ошибок:
------ Компиляция : Приложение: Device.Application -------
типизировать код...
[ERROR] owenarchiverdrivers, 3.5.4.7 (production association owen): ArchiverDriver: C0077: Неизвестный тип: 'Standard.R_TRIG'
[ERROR] owenarchiverdrivers, 3.5.4.7 (production association owen): IoDrvStartBusCycle [ArchiverDriver]: C0018: 'm_fb_ArchiveWriteTrigger.CLK' is no valid assignment target
[ERROR] owenarchiverdrivers, 3.5.4.7 (production association owen): IoDrvStartBusCycle [ArchiverDriver]: C0077: Неизвестный тип: 'Standard.R_TRIG'
[ERROR] owenarchiverdrivers, 3.5.4.7 (production association owen): IoDrvStartBusCycle [ArchiverDriver]: C0231: Здесь требуется выражение типа 'BOOL'
[ERROR] owenarchiverdrivers, 3.5.4.7 (production association owen): IoDrvStartBusCycle [ArchiverDriver]: C0077: Неизвестный тип: 'Standard.R_TRIG'
[ERROR] owenarchiverdrivers, 3.5.4.7 (production association owen): IoDrvStartBusCycle [ArchiverDriver]: C0035: Вместо 'm_fb_ArchiveWriteTrigger' требуется имя программы или экземпляр функционального блока
[ERROR] owenarchiverdrivers, 3.5.4.7 (production association owen): FB_Init [ArchiverDriver]: C0032: Невозможно конвертировать тип 'Неизвестный тип: 'Standard.CONCAT(gc_sInitDone, m_Info.szDeviceName)'' в тип 'STRING(255)'
[ERROR] owenarchiverdrivers, 3.5.4.7 (production association owen): FB_Init [ArchiverDriver]: C0035: Вместо 'Standard.CONCAT' требуется имя программы или экземпляр функционального блока
[ERROR] owenarchiverdrivers, 3.5.4.7 (production association owen): FB_Init [ArchiverDriver]: C0046: Идентификатор 'Standard' не задан
[ERROR] owenarchiverdrivers, 3.5.4.7 (production association owen): setChildsConnectors [ArchiverDriver]: C0032: Невозможно конвертировать тип 'Неизвестный тип: 'Standard.CONCAT(gc_sFindChildConnectors, m_Info.szDeviceName)'' в тип 'STRING(255)'
[ERROR] owenarchiverdrivers, 3.5.4.7 (production association owen): setChildsConnectors [ArchiverDriver]: C0035: Вместо 'Standard.CONCAT' требуется имя программы или экземпляр функционального блока
[ERROR] owenarchiverdrivers, 3.5.4.7 (production association owen): setChildsConnectors [ArchiverDriver]: C0046: Идентификатор 'Standard' не задан
[ERROR] owenarchiverdrivers, 3.5.4.7 (production association owen): getConfigurationParameters [ArchiverDriver]: C0032: Невозможно конвертировать тип 'Неизвестный тип: 'Standard.CONCAT(gc_sUpdateConfiguration, m_Info.szDeviceName)'' в тип 'STRING(255)'
[ERROR] owenarchiverdrivers, 3.5.4.7 (production association owen): getConfigurationParameters [ArchiverDriver]: C0035: Вместо 'Standard.CONCAT' требуется имя программы или экземпляр функционального блока
[ERROR] owenarchiverdrivers, 3.5.4.7 (production association owen): getConfigurationParameters [ArchiverDriver]: C0046: Идентификатор 'Standard' не задан
[ERROR] owenarchiverdrivers, 3.5.4.7 (production association owen): getConfigurationParameters [ArchiverDriver]: C0032: Невозможно конвертировать тип 'Неизвестный тип: 'Standard.CONCAT(m_c_sLogFilePath, _sArchiveName)'' в тип 'STRING(255)'
[ERROR] owenarchiverdrivers, 3.5.4.7 (production association owen): getConfigurationParameters [ArchiverDriver]: C0035: Вместо 'Standard.CONCAT' требуется имя программы или экземпляр функционального блока
[ERROR] owenarchiverdrivers, 3.5.4.7 (production association owen): getConfigurationParameters [ArchiverDriver]: C0046: Идентификатор 'Standard' не задан
[ERROR] owenarchiverdrivers, 3.5.4.7 (production association owen): getConfigurationParameters [ArchiverDriver]: C0032: Невозможно конвертировать тип 'Неизвестный тип: 'Standard.CONCAT(_sArchiveName, m_c_sLogFileExtension)'' в тип 'STRING(255)'
[ERROR] owenarchiverdrivers, 3.5.4.7 (production association owen): getConfigurationParameters [ArchiverDriver]: C0035: Вместо 'Standard.CONCAT' требуется имя программы или экземпляр функционального блока
[ERROR] owenarchiverdrivers, 3.5.4.7 (production association owen): getConfigurationParameters [ArchiverDriver]: C0046: Идентификатор 'Standard' не задан
[ERROR] owenfileutils, 3.5.4.8 (production association owen): write [BufferedWriter]: C0035: Вместо 'Stu.StrLenA' требуется имя программы или экземпляр функционального блока
[ERROR] owenfileutils, 3.5.4.8 (production association owen): write [BufferedWriter]: C0046: Идентификатор 'Stu' не задан
[ERROR] owenfileutils, 3.5.4.8 (production association owen): append [BufferedWriter]: C0035: Вместо 'Stu.StrLenA' требуется имя программы или экземпляр функционального блока
[ERROR] owenfileutils, 3.5.4.8 (production association owen): append [BufferedWriter]: C0046: Идентификатор 'Stu' не задан
[ERROR] owenarchiverdrivers, 3.5.4.7 (production association owen): FB_Init [CSVStructureArchive]: C0032: Невозможно конвертировать тип 'Неизвестный тип: 'Standard.CONCAT(gc_sInitDone, m_Info.szDeviceName)'' в тип 'STRING(255)'
[ERROR] owenarchiverdrivers, 3.5.4.7 (production association owen): FB_Init [CSVStructureArchive]: C0035: Вместо 'Standard.CONCAT' требуется имя программы или экземпляр функционального блока
[ERROR] owenarchiverdrivers, 3.5.4.7 (production association owen): FB_Init [CSVStructureArchive]: C0046: Идентификатор 'Standard' не задан
[ERROR] owenarchiverdrivers, 3.5.4.7 (production association owen): getConfigurationParameters [CSVStructureArchive]: C0032: Невозможно конвертировать тип 'Неизвестный тип: 'Standard.CONCAT(gc_sUpdateConfiguration, m_Info.szDeviceName)'' в тип 'STRING(255)'
[ERROR] owenarchiverdrivers, 3.5.4.7 (production association owen): getConfigurationParameters [CSVStructureArchive]: C0035: Вместо 'Standard.CONCAT' требуется имя программы или экземпляр функционального блока
[ERROR] owenarchiverdrivers, 3.5.4.7 (production association owen): getConfigurationParameters [CSVStructureArchive]: C0046: Идентификатор 'Standard' не задан
[ERROR] owenarchiverdrivers, 3.5.4.7 (production association owen): getConfigurationParameters [CSVStructureArchive]: C0032: Невозможно конвертировать тип 'Неизвестный тип: 'Standard.CONCAT(m_c_sAdditionalArchivePath, m_c_sUSBFlash)'' в тип 'STRING(255)'
[ERROR] owenarchiverdrivers, 3.5.4.7 (production association owen): getConfigurationParameters [CSVStructureArchive]: C0035: Вместо 'Standard.CONCAT' требуется имя программы или экземпляр функционального блока
[ERROR] owenarchiverdrivers, 3.5.4.7 (production association owen): getConfigurationParameters [CSVStructureArchive]: C0046: Идентификатор 'Standard' не задан
[ERROR] owenarchiverdrivers, 3.5.4.7 (production association owen): getConfigurationParameters [CSVStructureArchive]: C0032: Невозможно конвертировать тип 'Неизвестный тип: 'Standard.CONCAT(m_c_sAdditionalArchivePath, m_c_sSDCard)'' в тип 'STRING(255)'
[ERROR] owenarchiverdrivers, 3.5.4.7 (production association owen): getConfigurationParameters [CSVStructureArchive]: C0035: Вместо 'Standard.CONCAT' требуется имя программы или экземпляр функционального блока
[ERROR] owenarchiverdrivers, 3.5.4.7 (production association owen): getConfigurationParameters [CSVStructureArchive]: C0046: Идентификатор 'Standard' не задан
Компиляция завершена -- 37 ошибок, 0 предупреждений

При чем как на CS3.5 sp5 так и на sp7.

В чем причина? библиотечка очень нужна.

Евгений Кислов
25.02.2018, 09:14
Добрый день.

Архив репозитория у вас установлен?

sin230376
25.02.2018, 10:33
Наверное нет.

Где его взять?

sin230376
25.02.2018, 10:35
Это он?
SPK Repository Archive 3.5.4.20 (Архив Репозитория для СПК target 3.5.4.20)

sin230376
25.02.2018, 10:48
Установил, ошибок стало меньше, но все же остались:

------ Компиляция : Приложение: Device.Application -------
типизировать код...
[ERROR] owenfileutils, 3.5.4.8 (production association owen): write [BufferedWriter]: C0035: Вместо 'Stu.StrLenA' требуется имя программы или экземпляр функционального блока
[ERROR] owenfileutils, 3.5.4.8 (production association owen): write [BufferedWriter]: C0046: Идентификатор 'Stu' не задан
[ERROR] owenfileutils, 3.5.4.8 (production association owen): append [BufferedWriter]: C0035: Вместо 'Stu.StrLenA' требуется имя программы или экземпляр функционального блока
[ERROR] owenfileutils, 3.5.4.8 (production association owen): append [BufferedWriter]: C0046: Идентификатор 'Stu' не задан
Компиляция завершена -- 4 ошибок, 1 предупреждений

sin230376
25.02.2018, 10:58
очистил, перекомпилировал. Все заработало. СПАСИБО ОГРОМНОЕ ЗА ПОМОЩЬ!!!

sin230376
05.03.2018, 08:57
Подскажите, можно ли из программы СПК менять место хранения архива?

Евгений Кислов
05.03.2018, 08:59
Подскажите, можно ли из программы СПК менять место хранения архива?

Пока такая возможность не предусмотрена. Планируем реализовать ее в следующей версии.
Вы не могли бы описать, в какой ситуации вам потребовался такой функционал?

Николай2
21.03.2018, 22:05
Добрый вечер.
Оба примера на СПК107 работают. Пользуюсь V3.5 SP10.
Попробывал по аналогии написать свою програмку на CFC, компиляцию проходит, создаёт файл в корне папки, пишет названия столбцов, а данные записывать не желает.
Помогите люди добрые.

Ильнур Гибадуллин
21.03.2018, 22:54
Добрый вечер.
Оба примера на СПК107 работают. Пользуюсь V3.5 SP10.
Попробывал по аналогии написать свою програмку на CFC, компиляцию проходит, создаёт файл в корне папки, пишет названия столбцов, а данные записывать не желает.
Помогите люди добрые.

Добрый вечер!

Архивацию осуществляете посредством компонента OwenArchiver или через библиотеку CAA File?

Николай2
21.03.2018, 23:23
Сам создал проблему, сам нашёл. Режим активации, надо было поставить /периодически/, а стояло /по команде/.

Николай2
21.03.2018, 23:26
Спасибо за оперативность.
Использую OWENArchiver.
Я уже решил проблему.
Спасибо.

SA104
26.04.2018, 09:50
Доброго времени.
Подскажите, OWENArchiver должен с виртуальным контроллером работать?
У меня пример рабочий с этим компонентом кучу ошибок при компиляции дает, если целевая платформа - виртуальный контроллер, а с реальным таргетом СПК - все ОК.

Евгений Кислов
26.04.2018, 10:15
Доброго времени.
Подскажите, OWENArchiver должен с виртуальным контроллером работать?
У меня пример рабочий с этим компонентом кучу ошибок при компиляции дает, если целевая платформа - виртуальный контроллер, а с реальным таргетом СПК - все ОК.

Не должен.

Nazar
24.06.2018, 11:28
При использовании модуля OwenArchiver 3.5.4.7 в архиве не отображаются русские буквы (За исключением шапки первого столбца (Дата).

Дата;Дата;Время;ТгаЕ;РўРїСЂ;РўРѕР±СЂ; РўРїСЂ-РўРѕР±СЂ;V;P;Рў1;Рў2;Рў3;Рў4;Ua;Ub;Uc;Ia;Ib;Ic

В чем может быть причина?

Евгений Кислов
24.06.2018, 11:30
Выложите, пожалуйста, архив вашего проекта.

Осинский Алексей
24.06.2018, 11:40
При использовании модуля OwenArchiver 3.5.4.7 в архиве не отображаются русские буквы (За исключением шапки первого столбца (Дата).

Дата;Дата;Время;ТгаЕ;РўРїСЂ;РўРѕР±СЂ; РўРїСЂ-РўРѕР±СЂ;V;P;Рў1;Рў2;Рў3;Рў4;Ua;Ub;Uc;Ia;Ib;Ic

В чем может быть причина?

Мы наблюдали такое поведение, если архиватор перенесли из другого проекта при помощи "копировать - вставить".
При этом в проекте отображается кириллица, но по факту кодировка символов изменилась.

Если Вы переносили именно так, то попробуйте добавить и настроить архиватор заново. Должно помочь.
Если архиватор добавляли штатным образом - то, как и попросил Евгений, выложите архив проекта. Посмотрим и разберемся.

Nazar
24.06.2018, 11:57
Отправил по e-mail

Tok
09.08.2018, 06:25
Здравствуйте, а подскажите при загрузке проекта вылазит ошибка
[ERROR] owenarchiverdrivers, 3.5.4.7 (production association owen): Менеджер библиотек: Невозможно открыть библиотеку 'Standard, 3.5.2.0 (System)'. (Причина: Библиотека 'Standard, 3.5.2.0 (System)' не установлена в системе.)
[ERROR] owenarchiver, 3.5.4.7 (production association owen): Менеджер библиотек: Невозможно открыть библиотеку 'CmpErrors Interfaces, 3.5.2.0 (System)'. (Причина: Библиотека 'CmpErrors Interfaces, 3.5.2.0 (System)' не установлена в системе.)
[ERROR] owenfileutils, 3.5.4.8 (production association owen): Менеджер библиотек: Невозможно открыть библиотеку 'StringUtils, 3.5.4.0 (System)'. (Причина: Библиотека 'StringUtils, 3.5.4.0 (System)' не установлена в системе.)
Стоит CODESYS V3.5 SP5 Patch 5 библиотеки Repository_OWEN_SPK_3.5.4.20, OwenArchiver_v3.5.4.7, SPKxxx_target_3.5.4.26 .
При компиляций много ошибок. Изначально сам проект нормально компилировался все началось после попытки сделать архив. Архив делаю в OwenArchiver и делаю пример из вашего руководства. заново устанавливал и библиотеки и сам CODESYS не помогло.
Что могу делать не так?

Евгений Кислов
09.08.2018, 06:56
Добрый день. Попробуйте поставить CODESYS Repository Archive V3.5 SP4 (ссылка в подписи).

Tok
09.08.2018, 09:33
Спасибо помогло!

Евгений Кислов
14.09.2018, 08:16
Выпущена новая версия компонента OwenArchiver - v3.5.4.9.
Эта версия может быть использована как в CODESYS V3.5 SP5 Patch 5 (для СПК1хх, СПК207), так и в 3.5. SP11 Patch 5 (для СПК1хх [М01]).
Изменения:



устройство архивации и имя архива можно задавать через переменные (изменения вступают в силу по переднему фронту канала Запустить архиватор);
доступна архивация в директорию FTP-сервера (только для СПК1хх [М01];
дата и время теперь записываются в архив отдельными столбцами;
компонент может быть использован на виртуальном контроллере.


Предыдущая версия архиватора в проекте может быть обновлена до новой через команду Обновить устройство.

Обновленная документация будет доступна ближе к началу продаж СПК1хх [М01].

Скачать (https://ftp.owen.ru/CoDeSys3/04_Library/04_Components/OwenArchiver_v3.5.4.9.package)OwenArchiver v3.5.4.9 (https://ftp.owen.ru/CoDeSys3/04_Library/04_Components/OwenArchiver_v3.5.4.9.package)

LStrong
16.10.2018, 11:56
Мои 5 копеек. Для не слишком продвинутых, но настырных :). Как я понял.
OwenArchiver, обеспечивает функцинал для создание архива.
Для операций с созданным архивом нужно дополнительно использовать функционал из Example_CAA_File_v2.project.
Мне для ежедневного снятия архива на USB Flash понадобиться и то и это.
Хотя может у кого-нибудь есть другие варианты???

Осинский Алексей
16.10.2018, 12:08
Для операций с созданным архивом нужно дополнительно использовать функционал из Example_CAA_File_v2.project.
Мне для ежедневного снятия архива на USB Flash понадобиться и то и это.

Какие операции с архивом Вы имеете в виду?
OwenArchiever создает архив и наполняет его записями в соответствии с заданными настройками (периодически раз в N секунд \ по команде).

Если записанные в архив данные необходимо вычитывать и каким-то образом обрабатывать, то да. Понадобится дополнительно работа с файлами при помощи библиотеки CAA File.

LStrong
16.10.2018, 12:41
Именно так.
OwenArchiever создаст архив с заданными параметрами на SD карте, где он будет постоянно вестись.
Библиотеки CAA File позволят копировать архив на USB Flash. И далее на ПК работать со снятым архивом.

Осинский Алексей
16.10.2018, 13:20
Именно так.
OwenArchiever создаст архив с заданными параметрами на SD карте, где он будет постоянно вестись.
Библиотеки CAA File позволят копировать архив на USB Flash. И далее на ПК работать со снятым архивом.

Если у Вас архив ведется в один файл, то используйте блок Copy из библиотеки CAA File.
Если же архив ведется как структура файлов, то директорию архива проще будет скопировать через команду Linux


cp -R путькпапке путькновомуместу

(в CAA File 3.5.5.0 нет ФБ для копирования директорий).

Дать команду на копирование можно при помощи библиотеки CmpSysExec (http://ftp.owen.ru/CoDeSys3/04_Library/02_Manual_installation/07_CmpSysExec/1.0.0.2/CmpSysExec_1.0.0.2.compiled-library).

LStrong
16.10.2018, 15:50
Алексей, спасибо, буду делать, пока в один файл, думаю все получится. Забрал в закладки :)
Пример не осилю, времени нет, ну как у всех, но постараюсь отписать что выйдет для начинающих понимать - а на хрена он нужен этот CoDeSys

LStrong
16.10.2018, 16:18
Если у Вас архив ведется в один файл, то используйте блок Copy из библиотеки CAA File.
Если же архив ведется как структура файлов, то директорию архива проще будет скопировать через команду Linux


cp -R путькпапке путькновомуместу

(в CAA File 3.5.5.0 нет ФБ для копирования директорий).

Дать команду на копирование можно при помощи библиотеки CmpSysExec (https://www.owen.ru/license-file?f=http://ftp.owen.ru/CoDeSys3/04_Library/02_Manual_installation/07_CmpSysExec/1.0.0.2/CmpSysExec_1.0.0.2.compiled-library).

На FTP я конечно попал, но если не вынести в начале адреса ссылку на сайт то веселые вещи происходят в FireFox, меню сайта не дают принять соглашение, выскакивают и перекрывают его.

Осинский Алексей
16.10.2018, 16:27
На FTP я конечно попал, но если не вынести в начале адреса ссылку на сайт то веселые вещи происходят в FireFox, меню сайта не дают принять соглашение, выскакивают и перекрывают его.

Прошу прощения. Изменил ссылку в сообщении на корректную.

LStrong
18.10.2018, 13:34
OwenArchiever отлично справляется, делал по примеру, из примера взял только индикацию записи, размер архива и пуск/стоп. На SD архив пишется.
Example_CAA_File_v2.project. использовал для копирования на USBFlash предварительно записанного на SD архива, получилось. Единственное неудобство - ручной ввод имени файла архива, не забывайте вводить полностью имя файла и расширение, в моем случае "ArhUSPS.csv" (для ввода точки меняйте шифтом регистр)
Сейчас пока полностью интегрирую пример Example_CAA_File_v2.project. в свою программу. Заработает попробую убрать лишнее. Хотя откуда там лишнее, все по делу.

Осинский Алексей
18.10.2018, 13:57
OwenArchiever отлично справляется, делал по примеру, из примера взял только индикацию записи, размер архива и пуск/стоп. На SD архив пишется.
Example_CAA_File_v2.project. использовал для копирования на USBFlash предварительно записанного на SD архива, получилось. Единственное неудобство - ручной ввод имени файла архива, не забывайте вводить полностью имя файла и расширение, в моем случае "ArhUSPS.csv" (для ввода точки меняйте шифтом регистр)
Сейчас пока полностью интегрирую пример Example_CAA_File_v2.project. в свою программу. Заработает попробую убрать лишнее. Хотя откуда там лишнее, все по делу.

Добрый день!
Спасибо за отзыв. Приятно, когда у наших клиентов все получается.
Если появятся вопросы - обращайтесь, мы поможем.

LStrong
22.10.2018, 10:22
Значит так.
CoDeSys 3.5 SP13 Patch1. (согласен, мажорство) Стиль визуализации - иначе не работает у меня.
39369
OwenArchiver установил, добавил в проект, появилось -
39370
Каждый архивируемый канал для каждого параметра делается отдельно, на фото пока 7 каналов REAL.
Задал три переменные и соотнес их с нужными мне для работы с архивацией тремя параметрами (REAIN убрал позже, нет необходимости).
39371
39372
Ну и задал параметры архивации, куда и как часто. С частотой переборщил, но для эксперимента нормально.
39373
Все. Запись пошла, запись останавливается и запускается, единственное Arh_START (старт/стоп архивирования) нужно будет в TRUE по умолчанию поставить чтобы при перезапуске СПК110 начинал писать сразу. Поправлю.

Для работы с архивом в режиме: запись на SD с последующим копированием на USBFlash ежедневно применил Example_CAA_File_v2 следующим образом:
-открыл свой проект и Example_CAA_File_v2
- сразу поменял стиль визуализации в проекте Example_CAA_File_v2 на тот что выше (иначе тормоза)
- все чего нет в моем проекте вставил из Example_CAA_File_v2 как есть в папку Application, чтобы не было косяков в адресации вставляемых переменных (когда пихал в отдельную папку замучился соотношения менять). Обязательно добавьте в проект библиотеки CAA DTUtil и CAA File. Не забывайте про MainTask, тоже все добавляем.
При добавлении, если совпадают имена то меняем в своей программе, имена из Example_CAA_File_v2 сохраняем, поверьте так надежнее :)
39374
PLC_PRG это именно из Example_CAA_File_v2, а свою я переименовал в PLC_PRG_SPK.

Был момент CoDeSys решил, что СПК это не СПК, дал две ошибки и поковырявшись я решил, что я не настолько умен, откатился на шаг назад и повторил все с начала. Так что сохраняйте проект с нарастающими именами при каждом удобном случае.
Далее перенес все папки в отдельную простым перетаскиванием.
Функционал Example_CAA_File_v2 обрезать не стал, может пригодиться да и не факт, что сделаю это правильно.
Главное все работает, один раз прописал название нужного файла для копирования и теперь когда втыкаю USBFlash вижу что она примонтирована, копирую, извлекаю, каширно.

Конечно не идеально, но работает, пока так, буду допиливать.

LStrong
23.10.2018, 17:47
Все работает, СПК отключается от питания, подключается, программа обновляется (дописываю), всегда архив корректно останавливается и снова запускается, единственное нужно смотреть пока USB Flash моргает - идет копирование архива (кнопка записи только инициирует запись, на ее индикатор не стоит обращать внимание)

Morozbl4
02.11.2018, 14:21
Добрый день!
Можно ли не используя функции CAA File (маркер последовательности байт) работать с русским языком в OwenArchiver?

Евгений Кислов
02.11.2018, 14:31
Добрый день!
Можно ли не используя функции CAA File (маркер последовательности байт) работать с русским языком в OwenArchiver?

Добрый день.
Можно, никаких дополнительных средств для этого не требуется.
Возможно, я не до конца понял ваш вопрос? Почему он у вас возник?

optikras
20.12.2018, 11:43
Добрый день.

Загрузил пакет OwenArchiver 3.5.4.9. Попробовал добавить архиватор в проект, как написано в инструкции. (Нажмите ПКМ на узел Device и добавьте компонент OwenArchiver, расположенный во вкладке Разн. (Miscellaneous)). Нет такой вкладки.
40456
Версия 3.5.5.5
Как добавить устройство?

Евгений Кислов
20.12.2018, 11:47
Добрый день.
Попробуйте галочки поставить внизу меню.

optikras
20.12.2018, 12:12
40459
Ничего не получилось...

Евгений Кислов
20.12.2018, 12:16
Попробуйте включить профессиональный режим настроек согласно п. 8.2 из документа:
https://ftp.owen.ru/CoDeSys3/11_Documentation/01_SPK/SPK_FAQ_v.1.3.pdf

optikras
20.12.2018, 12:26
Да. Появилось все. Спасибо, Евгений!

optikras
20.12.2018, 14:20
Еще появились вопросы.
Записал данные в память - все чудесно.
Попытался записать данные на флешку - результат в картинках:
40462
40463
Похоже, необходимо примонтировать флешку. Автоматически она не видна.
Как это сделать?

Флешка отформатирована в FAT32 4Гб.

Евгений Кислов
20.12.2018, 14:31
Судя по скриншоту - вы как раз в память пытаетесь архивировать.
Флешка автоматически монтируется, но вы в узле Drives не активировали канал Enable Drives - поэтому не видите информацию.

optikras
20.12.2018, 14:52
Проставил в Конфигурации архива - USB-flash
40464
А как этот канал Enable Drives активировать? Не нашел...

Евгений Кислов
20.12.2018, 14:58
В столбце Подготовленное значение задайте TRUE и запишите нажатием Ctrl+F7.

optikras
20.12.2018, 15:33
Подключил переменную, включил считывание информации
40465
А флешка все равно не монтируется автоматически.
Может флешку заменить? Или чего еще нажать?

Евгений Кислов
20.12.2018, 15:38
Попробуйте флешку отформатировать утилитой HP Format Storage Tool.

SA104
20.12.2018, 15:43
Добрый день.
Пробую архивировать в папку на FTP, проект взял из примера
Соединяюсь Total Commander ом , папку архива вижу, но в ней пусто, хотя СПК размер файла показывает
на флешку все ОК пишет
какие то нюансы есть для такого режима?

Евгений Кислов
20.12.2018, 15:45
Добрый день.
Пробую архивировать в папку на FTP, проект взял из примера
Соединяюсь Total Commander ом , папку архива вижу, но в ней пусто, хотя СПК размер файла показывает
на флешку все ОК пишет
какие то нюансы есть для такого режима?

Нюанс - надо прошивку обновить на ту, что на сайте (релизную). И таргет вместе с ней.

optikras
20.12.2018, 15:58
Все равно не монтируется в автомате. Завтра принесу другую...

SA104
20.12.2018, 16:02
Спасибо !

optikras
21.12.2018, 16:19
Спасибо - все работает.

LStrong
10.01.2019, 13:12
Жень, вопрос из прошлого года, сейчас архив суточный каждый божий день приходится читать через Excel (без графиков к сожалению никак), была надежда, что в перспективе программа от МСД200 тоже сможет читать эти текстовые файлы. Сам я пока ничего не сделал, все как у людей, нет времени на крупные дела т.к. начальство заставило заниматься ерундой.
Вопрос - планы еще есть или функция мало востребована и естественно не в приоритете. :) Задолбался я в Excel вставлять удалять и ждать пока он решит показать значение под курсором. Других адекватных решений со скроллингом не нашел.
Есть у меня варианты, если что пущу всю свою энергию туда, а это будет резервный архив :))))) Буду видеографический регистратор требовать, выпрашивать, ныть, угрожать и т.д....

LStrong
10.01.2019, 13:18
Проверил, пока никак. График ОВЕН (последний) ругается на неправильную структуру.

Евгений Кислов
10.01.2019, 13:35
Формат архива, совместимого с МСД200 - запланирован к разработке.

LStrong
18.01.2019, 12:32
Неожиданный сюрприз, пару месяцев шло архивирование, ограничение размера архива установлено 20 Мб, намотал он 27 Мб с копейками без каких либо ошибок и неожиданно встал.... Обнаружилось через сутки, при просмотре снятого архива. Что интересно после перезагрузки СПК110 на SD карте (там формируется и храниться архив) появился архивный файл ArhUSPS_old.csv (так и должно было быть) с записью до момента сбоя и появился новый ArhUSPS.csv со значениями уже после перезагрузки, почти сутки выпали.
Посмотрим что будет через пару месяцев при новом заполнении. Сейчас не могу даже найти время для "поковыряться".
Почему то не отработало штатно. Пока рекомендую контролировать размер архивного файла и до того как "трах тибидох" с переполнением произойдет "ручками" на карте делать новый файл, а старый сохранять под новым именем. В смысле наоборот, ну Вы поняли, старый сохранять потом новый делать и пихать SD обратно в СПК.

Осинский Алексей
18.01.2019, 15:25
Добрый день.
Спасибо за обращение.
Я проверю. Пришлите, пожалуйста, проект (projectarchive) на support@owen.ru с пометкой "Для Осинского Алексея".
Несколько вопросов, чтобы мне было проще воспроизвести ситуацию:

Неожиданный сюрприз, пару месяцев шло архивирование
Все пару месяцев СПК работал непрерывно (не выключался)?

неожиданно встал.... Обнаружилось через сутки, при просмотре снятого архива.
После того, как "встал" никаких ошибок не было?

Что интересно после перезагрузки СПК110 на SD карте (там формируется и храниться архив) появился архивный файл ArhUSPS_old.csv
А до перезагрузки его там не было? Или не смотрели?

при просмотре снятого архива.
Архив просматривается каждые сутки? SD-карта извлекается корректно? (Остановили архивацию -> Дождались подтверждения от архиватора -> Извлекли SD-карту через функционал таргет-файла -> Получили подтверждение -> Извлекли физически).
Или просто физически извлекаете SD-карту без этого процесса?

LStrong
23.01.2019, 12:12
Извиняюсь, был занят. Алексей, я все отписал на почту.
Сейчас я все основательно проверю сначала у себя, с "краш тестами" :), сейчас архивирование идет как ни в чем не бывало.
Буду мучать СПК110 по полной. Обязательно отпишусь. Потребуется время конечно на несколько циклов проверок. По результатам посмотрим. Тем более хочется СПК с 3 RS485 и юзернетом......, но думаю спалить USB контролер на СПК110 только коротким по питанию удасться.
К стати, а нельзя по окончании записи архива с SD на USB автоматом размонтировать USB флеш, а монтирование USB флеш наоборот только по команде??? Так дельнее будет.
Еще раз, СПК110 работал и продолжает работать без сбоев, единственный сбой архивирования проверяется :)

LStrong
23.01.2019, 12:37
Может подскажете, если сделать посуточный архив то как копировать с SD на USB эти папки. Может мне этот вариант применить? Копировать предыдущий и текущий день и все. Без ограничений размеров архива на SD.

Осинский Алексей
23.01.2019, 14:04
Добрый день.

К стати, а нельзя по окончании записи архива с SD на USB автоматом размонтировать USB флеш, а монтирование USB флеш наоборот только по команде??? Так дельнее будет.
Дело в том, что архиватор не единственный, кто может писать на внешний накопитель и при попытке размонтировать по окончанию работы архиватора может произойти 3 вещи:
1) накопитель не размонтируется т.к. занят кем-то еще;
2) накопитель размонтируется и все остальные не смогут продолжить работу;
3) накопитель размонтируется, и в его расположении (например /mnt/ufs/media/sda1) образуется RAM-диск и все, кто работали с FLASH-накопителем так и не узнают о том, что накопителя уже нет.
Именно поэтому перед размонтированием нужно удостовериться, что на накопитель не идет запись.

Я предполагаю, что причиной пропажи части архива в Вашем случае стал №3.

Осинский Алексей
23.01.2019, 14:16
Может подскажете, если сделать посуточный архив то как копировать с SD на USB эти папки. Может мне этот вариант применить? Копировать предыдущий и текущий день и все. Без ограничений размеров архива на SD.

Самым простым вариантом будет скопировать директорию архива при помощи команд Linux (выполнить их из CODESYS можно при помощи функционала библиотеки CmpSysExec).
Например, для полного копирования содержимого SD-карты (путь к ней /mnt/ufs/media/mmcblk0p1) на USB-Flash (путь /mnt/ufs/media/sda1) необходимо будет выполнить команду


cp -R /mnt/ufs/media/mmcblk0p1 /mnt/ufs/media/sda1


Либо можно скопировать файлы (сгенерировав их имена из текущей даты) при помощи ФБ Copy библиотеки CAA File.

Но это будет "костылем".
Я все же предлагаю совместно найти причины пропажи части архива, и устранить их.
Письмо Ваше получил, спасибо за развернутое описание. Пробую повторить.

LStrong
23.01.2019, 14:51
Про накопитель понятно, непонятно зачем пихать на USB пользователю или СПК еще что либо при наличии SD. В смысле при работе на объектах конечно.
Это не каприз. Когда я прихожу на участок (или не я, тем более) в кармане только флешка. Linux это где то в другой галлактике, ну как минимуум в Африке. Скаде на ПК я не верю, полюбому более слабое звено.
Любой знающий как играть в "косынку" должен без проблем снять архив, задача такая, при этом запись должна идти постоянно (опасный производственный обьект по версии ростехнадзора).
Так же реализовывался ввод уставок с панели СПК (резервный вариант) и-или из Скады в любом сочетании (отказ ПК со скадой возможен, а блокировка работы участка преступление), сделали же :-), Жень Кислов, спасибо еще раз. Сейчас решаю ввод значения с запятой со стороны СПК.
По возможному останову архивирования из-за "кривых рук", не хотел, но после окончания проекта буду ограничивать доступ "детей из КИПиА" к изменению параметров, пока так пугалку поставил.
Божатся что не трогали, значит все таки №3..
Тема интересная, пробуем тестим. Может мэтры подтянутся, поделятся опытом.

Осинский Алексей
23.01.2019, 15:12
Linux это где то в другой галлактике, ну как минимуум в Африке.
Просто, чтобы исключить возможное недопонимание:
обратите внимание, что я предлагал выполнять команды Linux из программы на CODESYS (не предполагая любого другого доступа к ПЛК) как более простой способ скопировать директорию т.к. стандартного функционала для копирования директорий с содержимым CODESYS нет (на сколько мне известно) и его пришлось бы изобретать самостоятельно.

LStrong
27.01.2019, 11:19
Это понятно.
Дописываю новый вариант программы и буду все это дело испытывать.
Сбой архива как выяснилось действительно вариант №3. КИПовцы не виноваты, не в этот раз :)
Аппаратчик ночью решил подключить USB флеш к ПК со Скадой. Пока на передней панели торчат в гермовводе два входа от шнурков идущих к СПК и ПК, мне это нужно для работы. ПК не запаролен (не успел грамотно сконфигурировать чтобы под пользователем при перезагрузке автоматом запускалась визуализация Скады) и новоявленный юзер напихал USB флеш во все "Дырки" :(. Win7 сдала его с потрохами.
Запись на SD продолжилась, а вот примонтировать USB флеш в 8.00 не вышло. Далее повторная попытка в 10.00 и уже я сам понатыкал чего не надо - размонтировал из программы SD карту соответственно архив встал....
Сейчас дописываю код под датчики переполнения резервуаров и разнесу и обозначу входа на передней панели шкафа. Скорее всего вход шнурка от СПК под пломбу. Плюсом разьяснительная беседа с персоналом.
Извините что пишу много, крупное кроется в мелочах, система должна работать без сбоев.

Осинский Алексей
29.01.2019, 11:17
размонтировал из программы SD карту соответственно архив встал....

Я понял. Спасибо, что сообщили. Это не поясняет почему при ограничении в 20мб архив разросся до 27 (я проверяю). Но уже легче.
Если появится еще информация - давайте знать пожалуйста.

LStrong
30.01.2019, 20:04
Конечно отпишу, добавлю архивируемых параметров, частоту записи и уменьшу размер. Примерно чтобы каждый час переполнялся.

LStrong
12.02.2019, 13:11
Что сделал. Записки эксплуататора.
1. Вписал имя архива, ID флешки USB и SD в дефолт, при перезагрузках СПК ненужно по новой выбирать откуда куда копировать. Это более чем логично при ежедневном снятии архива. см. фото.
2. При корректном извлечении SD можно вынимать, после возвращения в СПК продолжается запись в архив (просто пока нет SD нет новых данных в текстовом файле) и это здорово товарищи! Плюсом при всех заливках в СПК с USB флеш новой программы в записи появлялись строки с нулями и после загрузки СПК архив продолжал писаться корректно. Двойным плюсом после успешного падения СПК по причине неправильного загиба рук и успешного восстановления прошивки сразу после заливки программы архив пошел дописываться, звезда в шоке... см. фото
3. Переполнение архива отрабатывается корректно, предыдущий скидывается в "имя_архива"_old.csv но нужно сделать чтобы предыдущие архивы не затирались, пока не знаю как.
4. Подключение к СПК на лицевой стороне щита защитил убрав USB разьем из рабочей зоны на периферию и все это под камеру наблюдения.
5. Чудеса закончились. :-)

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

Осинский Алексей
13.02.2019, 09:55
3. Переполнение архива отрабатывается корректно, предыдущий скидывается в "имя_архива"_old.csv но нужно сделать чтобы предыдущие архивы не затирались, пока не знаю как.
Может Вам лучше использовать не архив одним файлом, а структуру?
Каждый день будет создаваться новый файл.
Старые будут удаляться только если превышено ограничение по размеру.


5. Чудеса закончились. :-)
Отлично!

LStrong
13.02.2019, 12:07
Здравствуйте Алексей, мне нравится оборудование ОВЕН, я имею возможность эксплуатировать его и в хвост и в гриву, соответственно я пытаюсь описать те моменты которые производитель не может учесть и испытать, не всякая эксплуатационная потребность очевидна, а также описать трудные моменты с которыми сталкивается пользователь.
Поэтому к сожалению много флуда от меня, ну а шо делать?
Как я снимаю архив:
- прихожу на участок примерно 7.30 - 8.05, проверяю соблюдение дисциплины (трудовой, производственной и т.д. и т.п.) минуты за три;
- сутки у нас считаются с 8.00 до 8.00, соответственно чтобы рассчитать суточный расход я снимаю с СПК110 архив;
сейчас это так: вставил флешь, перешел на главный экран, кликнул снять, кликнул извлечь, вернулся на информационно-развлекательный экран.
т.е. никаких вводов названия файлов, архив берется как есть, докуда записан. Единственное НО, может "выпасть" часть при переполнении размера в _old и придется вынимать SD.

Про каждый день, неплохо, но я еще не разбирался, нужно перекроить сутки на наш манер и не ясно как снимать архив, к примеру нужно за 3 дня (после выходных).
В перспективе - новый СПК110 с Юзернетом и не доконца использованы возможности скады работающей в паре с СПК110.

Сейчас я по техминимуму ввел АСУТП в пуско-наладочные и правлю программу, визуализирую все предупреждения и отработку защит. Архив работоспособен сейчас, обязательно заниматься буду, но безопасность в приоритете.

Флешку из СПК дергал вчера, но это его "родная", архив устоял. Сейчас другую подсуну раз 10 с NTFS посмотрим что будет. Надеюсь порт выдержит.

По мере поступления информации буду отписывать.

Осинский Алексей
13.02.2019, 12:35
Здравствуйте Алексей, мне нравится оборудование ОВЕН, я имею возможность эксплуатировать его и в хвост и в гриву, соответственно я пытаюсь описать те моменты которые производитель не может учесть и испытать, не всякая эксплуатационная потребность очевидна, а также описать трудные моменты с которыми сталкивается пользователь.
Поэтому к сожалению много флуда от меня, ну а шо делать?
Все ОК.
Мне, как разработчику, архиватора обратная связь очень полезна.


Как я снимаю архив:
- прихожу на участок примерно 7.30 - 8.05, проверяю соблюдение дисциплины (трудовой, производственной и т.д. и т.п.) минуты за три;
- сутки у нас считаются с 8.00 до 8.00, соответственно чтобы рассчитать суточный расход я снимаю с СПК110 архив;

В таком случае структура файлов не совсем подходит.
У нас создание нового файла происходит в 00:00.
Т.е. с утра Вам придется копировать 2 файла: за предыдущий день и за текущий день. Что не будет удобно.
Я подумаю, возможно, в будущих версиях введем настройку, отвечающую за то, во сколько происходит смена суток.



т.е. никаких вводов названия файлов, архив берется как есть, докуда записан.

При разработке не предусматривался такой сценарий использования.
Возможно, стоит предусмотреть возможность получить имя архива за текущий и предыдущий дни?



Единственное НО, может "выпасть" часть при переполнении размера в _old и придется вынимать SD.

Возможно стоит в настройках увеличить максимальный размер архива, чтобы не было ситуаций, когда за сутки появляется 2 файла?
Или при копировании сразу копировать оба файла: и стандартный и _old?


Обязательно заниматься буду, но безопасность в приоритете.
Когда будет нужно - обращайтесь, я почти каждый день здесь.

LStrong
20.02.2019, 13:44
В точку, когда архив переполнился (вижу по маленькому размеру нового архива) я просто считываю текущий архив, потом добавляю к названию _old и считываю предыдущий. Далее либо убрать _old чтобы завтра считать новый архив, либо для неопытных просто перезагрузить СПК110.
По размеру - больше 10 Мб уже возрастает время снятия архива до неприемлемого. 20 Мб снимал ваапще долго (по моим меркам :-))))
Сейчас все работает стабильно.
Я смотрю в сторону возможности выбрать нужный файл для копирования из меню просмотра содержимого SD. Меню просмотра есть, но можно только посмотреть......

yurya
22.02.2019, 14:39
Добрый день.
Вопрос по монтированию флэшки с целью создания архива на СПК110.
Размонтировать флэшку я могу, используя канал USB Unmount узла Drives.
А как грамотно смонтировать флэшку?

Осинский Алексей
22.02.2019, 15:28
как грамотно смонтировать флэшку?

Добрый день.
Как USB-Flash, так и SD-карта монтируются автоматически в момент подключения устройства.

alexx12
05.03.2019, 22:14
Добрый вечер. Осваиваю архиватор. Пишу 6 переменных типа WSTRING и одну переменную типа REAL. Екселевский формат. В строковых переменных-слова, введенные с русско-английской клавиатуры на русском языке. Наименования столбцов также на русском языке. Файл архива создается, переменные пишутся. Но не смог подобрать кодировку при открытия файла: Наименования столбцов отображаются верно, а переменные-крякозябрами. Какую кодировку надо выбирать в екселе, или каким образом настроить архиватор, чтобы архивируемые переменные были на русском языке? Контроллер 107 новой редакции.

Осинский Алексей
06.03.2019, 10:13
Добрый вечер. Осваиваю архиватор. Пишу 6 переменных типа WSTRING и одну переменную типа REAL. Екселевский формат. В строковых переменных-слова, введенные с русско-английской клавиатуры на русском языке. Наименования столбцов также на русском языке. Файл архива создается, переменные пишутся. Но не смог подобрать кодировку при открытия файла: Наименования столбцов отображаются верно, а переменные-крякозябрами. Какую кодировку надо выбирать в екселе, или каким образом настроить архиватор, чтобы архивируемые переменные были на русском языке? Контроллер 107 новой редакции.

Добрый день.
Я правильно понял, что Вы переменную типа WSTRING привязали к модулю переменной "STRING variable"?
41560

Если так, то не сработает: значение в переменной WSTRING кодируется двумя байтами, а переменная STRING - одним байтом.
Конвертируйте WSTRING в STRING при помощи функции UNICODE_TO_CP1251 из библиотеки OwenStringUtils (http://www.owen.ru/forum/showthread.php?t=25981).

LStrong
18.03.2019, 11:28
Манипуляциями с USB флешками архиватор сбить с толку не удалось. Но вот к сожалению повторилась ситуация с переполнением архива, старый превысил 10 Мб ( в итоге размер _old.csv файла 10241 Кб), а новый с 0 размером (сразу увидел в окне с размером файла архива). old скопировал, прочитал, новый ушел в отказ. Перезагрузил СПК он начал сразу писать новый архив (размер появился).
Это для информации. Разбираться придется непосредственно на СПК, буду совать почти полный архив и смотреть где "собака зарыта".
Во время сбоя никаких действий не производилось, выходные дни, только запись :)
Буду искать и отпишу если найду в чем причина, возможно некорректно удалил неиспользуемый мной функционал блока. Восстановлю все в полном обьеме и буду проверять. Пока так.

Осинский Алексей
18.03.2019, 11:46
Добрый день.
Я правильно понял, что "новый ушел в отказ" значит, что в новый файл не писались значения?



в итоге размер _old.csv файла 10241 Кб

Странно, посмотрю из-за чего могло на 1Кб переполнится.

LStrong
19.03.2019, 11:47
Возможно я что то упустил, но после копирования csv файла с флешки на компьютер он сильно потерял в весе при одинаковом количестве данных, судя по сравнению таблиц. То есть я каждый раз копирую с флешки на комп (так удобнее и быстрее) и тут заметил, что файл с флешки больше, а данные одинаковы.
ArhUSPS_old.csv оригинал с флешки, второй файл взят с компьютера.
Как всегда добраться до СПК не дают, как будто это только мне нужно, так что быстро не получиться посмотреть что там, но сделаю - отпишусь.

trejer
01.04.2019, 14:09
Здравствуйте.
СПК 107 М01.
Пишу архив на USB-flash. (OwenArchiver Версия: 3.5.4.9)
Можно ли как либо считывать файлы архива компьютером, по сети (Ethernet)?

Евгений Кислов
01.04.2019, 14:15
Здравствуйте.
СПК 107 М01.
Пишу архив на USB-flash. (OwenArchiver Версия: 3.5.4.9)
Можно ли как либо считывать файлы архива компьютером, по сети (Ethernet)?

Добрый день.
Можно по FTP, например - в архивации выбрать устройство Директория FTP.
Подключение рассмотрено тут, п. 9.7:
https://ftp.owen.ru/CoDeSys3/11_Documentation/03_3.5.11.5/CDSv3.5_Faq_v.2.0.pdf

RV9WFJ
01.04.2019, 14:16
Через SCP или FTP как вариант.

trejer
01.04.2019, 16:41
Добрый день.
Можно по FTP, например - в архивации выбрать устройство Директория FTP.
Подключение рассмотрено тут, п. 9.7:
https://ftp.owen.ru/CoDeSys3/11_Documentation/03_3.5.11.5/CDSv3.5_Faq_v.2.0.pdf

Спасибо Евгений.
Я всё понял. Проверка займёт некоторое время.

trejer
01.04.2019, 17:14
Добрый день.
Можно по FTP, например - в архивации выбрать устройство Директория FTP.
Подключение рассмотрено тут, п. 9.7:
https://ftp.owen.ru/CoDeSys3/11_Documentation/03_3.5.11.5/CDSv3.5_Faq_v.2.0.pdf

Евгений, ещё раз спасибо!
Всё работает.

plot1948
04.06.2019, 07:58
Здравствуйте Алексей.Применил в своем проекте OwenArchiver,мне функционала данного компонента вполне хватает,кроме периода архивации,хотелось бы почаще.Не собираетесь ли обновлять OwenArchiver в скорм времени? Пример с библиотеками CAA File быстро не осилю,знаний маловато, да и для меня он избыточен,а как всегда надо побыстрее запустится.

Осинский Алексей
04.06.2019, 08:39
Здравствуйте Алексей.Применил в своем проекте OwenArchiver,мне функционала данного компонента вполне хватает,кроме периода архивации,хотелось бы почаще.Не собираетесь ли обновлять OwenArchiver в скорм времени? Пример с библиотеками CAA File быстро не осилю,знаний маловато, да и для меня он избыточен,а как всегда надо побыстрее запустится.

Добрый день!
Спасибо за отзыв.

Какой период архивации Вам нужен?
Показания какого процесса архивируете?

Работы по архиватору запланированы на ближайшее будущее, более конкретных сроков, пока, не назову.

plot1948
04.06.2019, 10:49
У меня быстрый рост давления,потом резкое падение и мне надо зафиксировать высшую точку.На СПК110 я делал это через ArchiverSPK,период архивации был 200ms.

Осинский Алексей
04.06.2019, 13:18
У меня быстрый рост давления,потом резкое падение и мне надо зафиксировать высшую точку.На СПК110 я делал это через ArchiverSPK,период архивации был 200ms.

Если речь об одном параметре, то можно настроить архивацию по команде. В программе мониторить изменение давления и в высшей точке подавать команду на архивацию.
Так в архиве будут содержаться только высшие значения давления.
Такой способ подойдет только если скачки давления имеют период более 1с (т.к. в режиме архивации по команде архивация не чаще 1 раза в секунду).

plot1948
05.06.2019, 08:34
На данный момент так и сделал(по команде 1 раз в секунду), а дальше будем думать.Очень не хочется связываться с CAA File,стандартный компонент всем устраивает,да и не программист я.

plot1948
06.06.2019, 11:40
Добрый день,Алексей.При примонтировании флешки канал USB Mounted остается FALSE,канал ENABLE Drives TRUE до примонтирования.

Андрей_Б.
07.08.2019, 15:43
Коллеги, добрый день!
Почитал мануалы, потестировал примеры - всё работает. Прибор - СПК110 [М01].
Задача такая: несколько параметров считываются с датчиков. Их нужно архивировать с некоторой периодичностью. В любой момент оператор может подойти к прибору и просмотреть архив, как в табличном представлении, так и на графике.
Запись на SD потестировал с помощью OwenArchiver. Прекрасно работает. Думаю, что и CAA File я бы без проблем осилил.
Дальше - график.
Как я понял, тренд с заданной периодичностью складывает в свою таблицу значение переменной (или нескольких) и отображает их на графике. Где он хранит свою таблицу - не ясно, в настройках не нашёл прямого указателя на место сохранения. Потестировал: график строится, но на карте пусто. Что-то мне подсказывает, что связать его с OwenArchiver не получится..

Подскажите, как связать тренд и архив на карте памяти?

Евгений Кислов
07.08.2019, 18:13
Добрый день.
Проще всего привязать к тренду и OwenArchiver одни и те же переменные (т.е. компоненты будут работать независимо).

Андрей_Б.
08.08.2019, 10:18
Решение так себе, если честно. Если произойдёт перезагрузка контроллера - график в архив уже не заглянет, будет показывать только вновь накопленные данные. К тому же, если числе параметров будет полсотни, хватит ли ресурсов, с учётом того, что всё это не основная задача?
В примитивах есть ломаная линия, координаты каждой точки можно сопоставить с элементами массива - это даёт шанс разработать собственный визуальный компонент. Проблема с отображением текстовой информации вдоль осей: координаты текстовых блоков нельзя менять в run-time... Или можно?

Евгений Кислов
08.08.2019, 10:25
Решение так себе, если честно. Если произойдёт перезагрузка контроллера - график в архив уже не заглянет, будет показывать только вновь накопленные данные. К тому же, если числе параметров будет полсотни, хватит ли ресурсов, с учётом того, что всё это не основная задача?
В примитивах есть ломаная линия, координаты каждой точки можно сопоставить с элементами массива - это даёт шанс разработать собственный визуальный компонент. Проблема с отображением текстовой информации вдоль осей: координаты текстовых блоков нельзя менять в run-time... Или можно?

Можно менять, у элементов визуализации есть соответствующие параметры.

Андрей_Б.
08.08.2019, 10:49
Тогда попутно ещё вопрос: есть ли возможность разработки/установки сторонних визуальных компонентов, написанных на других языках (скажем, на си)?

Евгений Кислов
08.08.2019, 11:02
Тогда попутно ещё вопрос: есть ли возможность разработки/установки сторонних визуальных компонентов, написанных на других языках (скажем, на си)?

У пользователей такой возможности нет.

Serrk
07.11.2019, 14:18
Не подскажете почему СПК 107 м1 отказывается с WinSCP соединяться?

45499 45500

Евгений Кислов
07.11.2019, 14:25
Сначала надо в конфигураторе задать пароль на консоль.

Serrk
12.11.2019, 11:23
А , где его вводить ?

Евгений Кислов
12.11.2019, 11:34
См. скриншоты.

45546

45547

Serrk
12.11.2019, 16:07
Спасибо соединились. А путь для спк 107 м1 к флешке и CD карте не подскажете?

Евгений Кислов
12.11.2019, 17:12
для USB: /mnt/ufs/media/sda1
для SD: /mnt/ufs/media/mmcblk0p1

Спорягин Кирилл
27.01.2020, 19:48
Добрый вечер.

Подскажите, где найти коды ошибок для компонента OwenArchiver.
В документе по архивации сказано, следующее "Код последней ошибки архиватора. См. библиотеку
OwenArchiveErrors, содержащую функции декодирования ошибок".

Но не понятно, где эта библиотека. Да и просто хотелось бы коды знать.

Спорягин Кирилл
27.01.2020, 19:49
Нашел. Спасибо.

Спорягин Кирилл
27.01.2020, 19:57
Теперь другой вопрос.
Вынимаю флешку из СПК107 без записи переменной "USB Unmount".
Иногда переменная "USB Mounted" сбрасывается в false, а иногда нет.
От чего это зависит?

Как тогда мне определить в программе, что флешку вытащили "неправильно", т.е. без размонтирования?

Евгений Кислов
27.01.2020, 20:28
Никак - поэтому это и "неправильно".

Евгений Кислов
06.02.2020, 07:54
Документ обновлен до версии 2.2 - выполнена актуализация информации для CODESYS V3.5 SP14 Patch 3 и последних версий прошивок контроллеров.
Пример работы с библиотекой CAA File адаптирован для CODESYS V3.5 SP14 Patch 3: скачать (https://ftp.owen.ru/CoDeSys3/21_Examples/01_3.5.11.5/05_Archives/Example_CAA_File_3514v1.projectarchive)

Serrk
06.02.2020, 10:53
Подскажите пожалуйста. На СПК 107 м1
Тип: 4096
ID: 1628 0073
Версия: 3.5.11.57

На влешку писался архив. Через месяц перестал. Файл удалили, хоть и места оставалось валом. А дальше писать не хочет. Что делать нет ни каких идей.

Евгений Кислов
06.02.2020, 10:56
Подскажите пожалуйста. На СПК 107 м1
Тип: 4096
ID: 1628 0073
Версия: 3.5.11.57

На влешку писался архив. Через месяц перестал. Файл удалили, хоть и места оставалось валом. А дальше писать не хочет. Что делать нет ни каких идей.

Каким образом вы писали архив? Через OwenArchiver?
Флешку в процессе работы извлекали из контроллера?

Serrk
06.02.2020, 17:52
Да через OwenArchiver. На счёт извлекали, возможно. СПК на объекте.

Евгений Кислов
06.02.2020, 18:01
Да через OwenArchiver. На счёт извлекали, возможно. СПК на объекте.

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

Serrk
06.02.2020, 22:08
Попробуем перезагрузить. Спасибо. хорошо бы помогло.С помощью CodeSys "Сброс" не помогло. "Сброс холодный" и "сброс заводской" забоялся. Не подскажете в чём разница? И что они значат. А то панель от меня в 400км.

Евгений Кислов
07.02.2020, 06:29
Попробуем перезагрузить. Спасибо. хорошо бы помогло.С помощью CodeSys "Сброс" не помогло. "Сброс холодный" и "сброс заводской" забоялся. Не подскажете в чём разница? И что они значат. А то панель от меня в 400км.

Сброс - переинициализация переменных (кроме энергонезависимых)
Сброс холодный - переинициализация переменных, включая RETAIN
Сброс заводской - полное удаление программы из контроллера

Serrk
07.02.2020, 08:44
Сброс через СodeSys не помогает. Нужно выдернуть питание?

Евгений Кислов
07.02.2020, 08:53
Сброс через СodeSys не помогает. Нужно выдернуть питание?

Да, нужно перезагрузить контроллер по питанию.

r_vector
02.03.2020, 11:10
Здравствуйте. Судя по описанию в инструкции и по ошибкам компиляции (c0127: Недостаточно кодовой памяти), модуль OwenArchiver не годится для архивирования большого кол-ва переменных (50+/-) на СПК110 предыдущей модификации? Библиотеку CAA File возможно использовать, как альтернативу?

Евгений Кислов
02.03.2020, 13:18
Здравствуйте. Судя по описанию в инструкции и по ошибкам компиляции (c0127: Недостаточно кодовой памяти), модуль OwenArchiver не годится для архивирования большого кол-ва переменных (50+/-) на СПК110 предыдущей модификации? Библиотеку CAA File возможно использовать, как альтернативу?

Добрый день.
Да, все верно. Использование CAA File в качестве альтернативы, лишенной подобных ограничений - возможно.

Tacio
05.05.2020, 13:30
А можно ли сделать, чтобы в режиме архивирования "По изменению переменной", период архивации был 1 сек? По аналогии с режимом "По команде".
В архив пишутся значения переменных из нескольких FB и делать режим "По команде" в моём случае не очень удобно.

Евгений Кислов
05.05.2020, 13:41
А можно ли сделать, чтобы в режиме архивирования "По изменению переменной", период архивации был 1 сек? По аналогии с режимом "По команде".
В архив пишутся значения переменных из нескольких FB и делать режим "По команде" в моём случае не очень удобно.

Нет, так сделать нельзя.