Полностью с Вами согласен код писался года полтора назад и это уже модернизированная версия в старой было значительно дичайше все было как то прикручено так на время но был реализован и SFC и работал причем со многими странностями. Нозачем эта приблуда в каждом кейсе статус плюс один, просто обычное присвоение на какой кейс уйти не достаточно?
есть стремление к правильному коду чтоб через полтора года смотря на старый свой код не задаваться мыслями как это может вообще работать Исходя из этого решил код перебрать больше нравиться ST
Замечание учтено и в статусе чисто присваиваю значение +1.Хотя
и даже при лишних манипуляциях при данном алгоритме данные в файл писаться должны.
И так начилась ночь с оккультными танцами с бубном и дальнейшей модернизации кода и вот результат на утро:
При вставленном кабеле прошивки со стороны разъема Debug 232 и не подключенном со второго конца ( при танцах с бубном просто запарился и не вынул и 232 разъема) ПЛК напрочь нечего не хотел писать в файл.
Результат выложенный в ST код так и не заработал
Переписанный SFC код дал результат от что было сделано:
От CASE отказался , в первом шаге SFC открываем файл проверяем дескриптор если <>0 переходим на шаг вниз иначе RETURN.
Во втором шаге при входе State_Write_Tools_Bather сбрасываем в FALSE в самом шаге получаем адрес начала файла в байтах и размер файла в байтах.
пишем данные файл на всякий пожарный даем время для записи находясь в данном шаге Status_Writing_Tools_Bathers :=Status_Writing_Tools_Bathers +1 пока Status_Writing_Tools_Bathers не станет =10
как только Status_Writing_Tools_Bathers =10 переходим на шаг ниже.
В третьем шаге входным действием Status_Writing_Tools_Bathers =0
в самом шаге закрываем файл находясь в данном шаге Status_Writing_Tools_Bathers :=Status_Writing_Tools_Bathers +1 пока Status_Writing_Tools_Bathers не станет =10 все равно каке -то уловие перехода нужно
как только Status_Writing_Tools_Bathers =10 возращаемся на начальный шаг сбрасываем Status_Writing_Tools_Bathers =0 стоим тут пока State_Write_Tools_Bather не станет TRUE и переходим на шаг ниже и т.д
В общем результат есть получалось сделать две независимые идентичные программы записи данных в разные файлы и две независимые идентичные программы чтения их них
И то чтоб был результат после каждого создания программ чтения записи в файл приходилось прошивать ПЛК результат появлялся только после прошивки . Точно магия какая то и это пугает!! Наверное что-то не доброе с ПЛК. Таргеты не переустанавливал.
Все же вопрос почему ????? аналогичный код за исключением того что он разнесен по шагам в SFC работает а в ST нет , и данный вопрос не дает покоя не откатываться же от ST и писать только в SFC если в нем код работает а в ST нет.
Многие шарахаются от ПЛК Овен , многие говорят зачем тебе эти танцы с бубном. Мое мнение что большей степени
основным признаком является правильность и грамотность кода к чему и стремлюсь чем странности оборудование.
P.S Но все равно плк Овен я не брошу для меня он в принципе хороший.
А еще есть действительно хороший а главное рабочий форум где есть хорошие и отзывчивые люди готовы дать дельный совет !