Если вас унизил такой вопрос, то предлагаю, лично вам, не отвечать больше на мои вопросы в подобном тоне.
Добавил в черный список, можешь не напрягаться в личные сообщения писать ...
Вид для печати
В самом начале я про 1-600 минут писал, но это много 1-255 с шагом 1 минута за глаза. Плюс режим выбор из четырёх вариантов(пропуск, вода, химия_1 и химия_2).
Но памяти хватает даже если все в переменные загнать как у меня было, здесь я просто количество переменных уменьшить пытаюсь, что бы можно было с панелей оператора настраивать.
Так я же приложил проект, как раз в нем же дисплей как у Вас реализован:
Вложение 61686
Вложение 61687
Вложение 61688
Получается для второй уставки достаточно 8 бит(диапазон 0-255). В сумме получается надо 10 бит памяти на один шаг программы, короче, в одну ячейку(32 бита) матрицы памяти можно уставки для трёх шагов программы записать, 32 ячейки хватит на 96 шагов или 12 таких программ как у Вас поместится в одну матрицу памяти, а Вы говорите одной матрицы хватит на вашу программу!
Ну я имел ввиду на весь проект, 8 программ, даже если в настройку шагов держать в 8 битах.
Расширять до 12 особо смысла нет, хотя там я жестко прописал 8, а можно настраиваемый параметр на экран вынести и будет настраиваться максимальное количество.
Вот реально рабочая таблица, утвержденная технологом, в ней два шага придумать не смогли)
Вложение 61693
Но вопрос открытый остается как в один блок памяти за раз писать 10 бит, потом следующие 10 и так 8 раз) и самое страшное я еще не придумал как в процессе их читать из памяти, даже при теперешней реализации записи.
Так какие проблемы с чтением из матрицы памяти, мне кажется там проблем нет в принципе! У Вас же все шаги последовательно выполняются и таймер один потребуется, я вроде приводил пример по верхней ссылке!
Тем более Вы говорите, что когда Вы заходите в меню для редактирования уставки у Вас ранее установленное значение "подтягивается" на экран, значит на экран Вы можете значение вывести(ранее установленное в матрицу памяти), а в программу для таймера не можете, неужели нельзя поступить аналогично?!
И ещё, если целочисленная переменная 32 битная, как у нас в матрице памяти, то в слейве её придётся разбить на два регистра!
И ещё что хотелось сказать на форуме не одна тема была как продублировать экраны, чтобы можно было редактировать значения из двух мест(например экраны ПР200 и ИПП120), так вам намного проще надо, просто перенести экран на ИПП120(насколько смог понять)!
Короче, пробуйте, должно получиться!
Только конкретно и по одному пункту спрашиваете. Я просто не вижу проблем, даже совсем наоборот, в смысле, несколько вариантов решения обычно возникает!
Я обычно сначала делаю по первому пришедшему в голову варианту, когда всё работает, как хотелось, тогда пробую другие, более оптимальные и простые, короче, обычно сразу не получается сделать идеально!
Сформировать сигнал первого включения ПР, была не одна тема по инициализации при первом включении, где это можно подсмотреть, короче по этому сигналу взводить триггер и последовательно записывать значения во все 32 ячейки матрицы памяти из констант с помощью мультиплексора.
У меня и ПЗУ имеется на 257 ячеек, можно и из ПЗУ данные взять для инициализации, Вам конечно этого многовато будет, в смысле, сможете 8 разных уставок(программ) в памяти ПЗУ иметь!
Короче, я не понял, у Вас уставки будут с экрана меняться(редактироваться) или просто надо менять 8 постоянных уставок(программ), второе намного проще!
Вот проект с макросом ПЗУ:
Вложение 61770
Если затрудняетесь как сформировать импульс первого включения ПР(сразу после заливки программы) можно сделать немного проще, добавить в меню(программу) пункт заводские установки, при его активации происходит запись значений из ПЗУ в матрицу памяти(EEPROM), плюс в том, что можно всегда к ним вернутся и используя мой ПЗУ можно иметь 8 вариантов заводских установок, тогда перед активацией этого пункта нужно будет сделать выбор нужного варианта из восьми.
Вот заводские установки нарисовал(вариант механизма), с экрана активируете переменную "Старт" и процесс пошёл:
Вложение 61786
Вложение 61787