PDA

Просмотр полной версии : ПЛК100 работа с файлами не получается



SlavikP
31.01.2020, 11:55
Решил поучиться работе с файлами, посмотрел описание, сделал тестовый пример.
ПЛК100, без М, самый простой.
Файл открывается, пишется, но не закрывается.
Уже все по шагам проверяю, на каждый чих - свой статус, и ничего.
Файл фактически создается, его видно браузером, после перезагрузки контроллера его можно удалить из браузера. Скачать из контроллера - нельзя.

ЧЯДНТ?

(в примере EN1 - надо дергать руками).

capzap
31.01.2020, 12:10
тяжело же Вам будет в дальнейшем, раз не используете модуль button, как раз от него бы и запитали свой en1
А так на вскидку всё что после элемента сравнения writecount с нулем работать не будет

SlavikP
31.01.2020, 13:41
Переусложнили. Все очень просто - открыли, писнули, закрыли. Ровно 3 строки. А сейчас побили/порушили все напрочь небось, что перепрошить нужно.

начал как раз с простоого, не заработало.
Полез вглубь, по шагам смотрю.
Затык именно в закрытии файла.
Ничего не побито, все живо. Залил другую программу все ок.
Почему может не закрываться файл?
Дескриптор правильный.

SlavikP
31.01.2020, 13:46
тяжело же Вам будет в дальнейшем, раз не используете модуль button, как раз от него бы и запитали свой en1
А так на вскидку всё что после элемента сравнения writecount с нулем работать не будет

так там после сравнения только и осталось, что файл закрыть. Stage3 в тру переключается, значит есть контакт.
Причем на функцию закрытия управление приходит. Но файл не закрывается. Почему?

electromash
31.01.2020, 14:31
Добрый день! Есть цель:сделать сохранение значения цифровых входов на борту самого плк,с дальнейшим извлечением информации и созданием отчета...может кто то посоветовать уроки обучающие по этому направлению?заранее спасибо!

SlavikP
31.01.2020, 14:45
Добрый день! Есть цель:сделать сохранение значения цифровых входов на борту самого плк,с дальнейшим извлечением информации и созданием отчета...может кто то посоветовать уроки обучающие по этому направлению?заранее спасибо!
Смотрите все на тему "модуль архивации" или "архиватор".

SlavikP
31.01.2020, 15:21
контроллер на работе, у меня уже 22:30 вечера.
Завтра попробую прогнать ваш пример. Аж интересно стало, я изначально почти так же делал, но на CFC.

SlavikP
31.01.2020, 23:38
А как качаете ? Если plc_io, то гуляет инфа что некоторые версии плохо читают, а некоторые плохо пишут ))
Процитирую сам себя:

Файл фактически создается, его видно браузером, после перезагрузки контроллера его можно удалить из браузера. Скачать из контроллера - нельзя.
Соответственно все действия по просмотру и удалению делал ПЛК браузером и скачивать пытался кодесисом.

electromash
03.02.2020, 09:51
1.для начала нужна оценка предполагаемой максимальной частоты коммутации. Не во всех случаях будет адкватным решение хранения на плк
2.т. к. нужен отчет, то видимо нужна и метка времени. Вне зависимости от архиватор/руками нужно подумать об синхронизации времени с пк (вы читать будете, а значит и соединятся) чтоб не расчитывать на надежность батареек (или что там) плк. Ведь отчет это точное время а не абы какое.
3.Особо про архиватор не ведаю (обхожусь без него, он не гибкий), самое компактное это сохранять маску входов только при ее изменении. Но это по задаче и п. 1 - иногда можно и прям в файлик писать по-русски типо "закрылся клапан такой-то"
Частота коммутации примерно 50 значений входов в сутки,плюс каждые 2 минуты съем значений температуры,т.е. около 800 значений за сутки. Да,время тоже нужно чтобы было указано,но на счет синхронизации я не думал,потому что на плк будет постоянно подано напряжение ,и значения времени будем принимать на основе плк.

Филоненко Владислав
03.02.2020, 15:00
Валенок, не путайте людей. Актуальная версия plc_io отлично работает в любом направлении. Ранее были версии с нюансами, но это такая древняя история...

SlavikP
04.02.2020, 03:28
т.е. на каком-то этапе некорректно что-то сделали и порушили "фат-таблицу". Причем допускаю что порушили именно по этому имени файла (исходных кодов ОС у меня нету - звиняйте) а с другим (в примере выделил) филенаймом может быть вполне себе.
так вроде овены декларируют журналируемую ФС на этом контроллере? Это вам не дос, а чутка получше.
Сегодня освобожусь от навалившихся дел, возьму в руки ПЛК100 и проверю ваш "тестовый" код

Филоненко Владислав
04.02.2020, 07:48
В ПЛК журналируемая ФС. Конечно, разрушить можно все, но это одним действием не сделаешь, добавим сюда имеющуюся диагностику в загрузочном логе, по которой можно понять состояние ФС

electromash
04.02.2020, 12:07
то electromash
Что обрисовали - совсем мало. Можно хоть как писать, ниочем не думая

Это радует...Можно чтобы вы скинули ссылку на подобные уроки?буду очень признателен!

SlavikP
05.02.2020, 09:46
Дотянулся руками до контроллера. В целом код работает, но не совсем так, как ожидалось.
Сначала запустил оригинальный код, во второй раз - нацеплял переменных для проверки результатов функций.
Закрытие файла все равно корректно не отрабатывает.
Результат работы SysFileClose() - всегда false, т.е. закрытие не происходит. Но, файл создается, пишется и читается.
Может это ошибка в библиотеке?

Евгений Кислов
06.02.2020, 09:28
Может это ошибка в библиотеке?

Это особенность реализации - SysFileClose никогда ничего не возвращает на свой выход (т.е. он всегда равен FALSE).

SlavikP
06.02.2020, 10:53
Это особенность реализации - SysFileClose никогда ничего не возвращает на свой выход (т.е. он всегда равен FALSE).

Вот же....
А я как непонятно кто, справку читаю...
Спасибо, буду знать.