PDA

Просмотр полной версии : Утилита plc_io читает файлы через один



Рашид
31.05.2022, 13:11
Всем доброго времени суток.
Возникла потребность в перекидывании файлов с одного ПЛК110 на другой. И это не один-два файла, тогда бы я обошёлся кодесисом, а порядка сотни и это не предел (если кто знает, как кодесисом 2.3 прочитать и записать сразу несколько файлов, прошу рассказать). Решил воспользоваться утилитой plc_io. Скачал последнюю версию с сайта овен, сделал соответствующий батник (во вложении, расширение изменил с bat на txt) и вот прикол, файлы читаются, но через один. Прямо строго через один, на непрочитанные файлы возвращается ошибка 120. Все файлы в ПЛК имеются, предварительно список файлов был получен через filedir. Если в этом батнике поменять местами имена файлов, то то, что раньше не читалось, теперь читается, а то, что читалось, возвращает ошибку 120. Читал ранее, что есть версии plc_io, с которой хорошо читается, а есть, с которой пишется. Попробовал и этот танец с бубном, без результата. Может кто сталкивался с этим и имеет по этому поводу идеи?

saii
31.05.2022, 15:00
По TCP файлы надо считывать по одному с интервалом примерно в минуту.
Например так:


plc_io /TCP192.168.126.75 /FLDR"data75" /get "file1"
timeout /t 60
plc_io /TCP192.168.126.75 /FLDR"data75" /get "file2"
timeout /t 60
...

Рашид
31.05.2022, 19:30
По TCP файлы надо считывать по одному с интервалом примерно в минуту.
Например так:


plc_io /TCP192.168.126.75 /FLDR"data75" /get "file1"
timeout /t 60
plc_io /TCP192.168.126.75 /FLDR"data75" /get "file2"
timeout /t 60
...


... Была такая мысль с таймаутом (только как это сделать, не знал). Теперь знаю, спасибо большое, попробую, отпишусь.

Рашид
01.06.2022, 12:17
... Была такая мысль с таймаутом (только как это сделать, не знал). Теперь знаю, спасибо большое, попробую, отпишусь.
Переделал, добавив таймаут. Время минимальное подобрал, для которого приём без ошибок происходит, 15 сек. Работает. Но 15 сек на таймаут, это жесть, конечно ... У меня 111 мелких файлов (в настоящее время), сама передача почти под все файлы около секунды, но из-за таймаутов растягивается процесс на полчаса.
С записью через plc_io такая же история (дичь?). Если передаче не давать таймаут 15 и более секунд, передача идёт с ошибками и через (с пропуском) файл.
Ещё замечено, что величина таймаута должна быть выбрана больше длительности свечентя индикатора "Связь". Т.е., я так понимаю, если была бы возможность по окончании передачи файла закрыть сеанс (или как оно называется) связи, то таймаут не понадобился бы. Передаёшь, закрываешь, передаёшь следующий и т.д.

Филоненко Владислав
02.06.2022, 07:38
ПЛК ну совсем не ЦХД, не NAS и даже не устройство, у которого файлообмен - главная функция.
Поэтому это низкоприоритетная задача. Скорость обмена низкая, нужны таймауты.
И вообще, что это за 111 файлов, которые надо часто вычитывать? Нельзя ли их:
1. Объединить
2. Сжать
3. Обработать в самом ПЛК, оставив самый цимус?

И если у Вас М02 - там есть tftp!

saii
02.06.2022, 14:19
И если у Вас М02 - там есть tftp!

А программу тоже по tftp можно залить?

Рашид
03.06.2022, 20:19
ПЛК ну совсем не ЦХД, не NAS и даже не устройство, у которого файлообмен - главная функция.
Поэтому это низкоприоритетная задача. Скорость обмена низкая, нужны таймауты.
И вообще, что это за 111 файлов, которые надо часто вычитывать? Нельзя ли их:
1. Объединить
2. Сжать
3. Обработать в самом ПЛК, оставив самый цимус?

И если у Вас М02 - там есть tftp!

Да, я прекрасно понимаю, что возможности ПЛК не безграничны. Но вроде и прошу не так много. Что касается п.1... п.3. Проект готовый, что-то править не планируется, да и нет смысла, каждому файлу соответствует своя технологическая программа, что весьма удобно, учитывая довольно низкую скорость обмена даже по ТСР.
Что касается tftp. Изучил эту тему (каюсь, бегло), но что-то в итоге не увидел преимуществ перед plc_io. Опять какая-то утилита либо консоль. Как я увидел - тоже plc_io, только вид сбоку.

Филоненко Владислав
06.06.2022, 07:35
видимо небольшую, раз 32к лимит

по частям заливать и внутри склеивать. Ограничения введены специально, чтобы не делали NAS из ПЛК, а потом не жаловались "Чё так медленно"

Рашид
07.06.2022, 08:38
А какие их размеры (и общий) в максимальном прогнозе ?
В настоящее время общий размер 962 кБ (именно файлы, связанные с технологическими программами, которые надо эпизодически обновлять, но не все, а те, которые были изменены технологами - вот он плюс в разбитии на программы-файлы, а не использование одного большого файла). Пять файлов по 55.5 кБ, остальные по 6.45 кБ. Всего 111 файлов. Сильного увеличения количества файлов не ожидается, в объёме это даст прирост ну может 200 кБ.

Рашид
09.06.2022, 13:15
Сомостоятельно принять всё это по tcp/udp (всосав в кучу, там несколько М) займет 1..3 сек (это к вопросу про якобы медленный tcp). Раскидать по файлам - ну еще несколько секунд , чтоб другому не мешать. Причем никто не запрещает сначала прочитать что есть, сравнить, и писать только новьё. Но это - продумывать форматы и прогить. Крест поставили сами же.

А эти файлы точно не имеют лишнего ?

К сожалению, квалификация моя не позволяет всё предложенное реализовать. Ну и проект готовый, моя задача тупо, если возникнет необходимость, обновлять необходимые файлы ну и на вновь вводимые в эксплуатацию ПЛК, записывать файлы технологических программ (всех). А файлы наверняка имеют лишнее, потому как размер файлов технологических программ одинаковый, при том, что сами программы весьма отличаются.

Филоненко Владислав
10.06.2022, 07:14
видимо небольшую, раз 32к лимит

почему 32? Вроде был 256