![]() |
![]() ![]() |
|
SMConstructor (вентиляция) Вопросы о работе Конструктора (Вентиляция и кондиционирование) |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#31 | |||
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 191
Благодарил(а): 15 раз(а)
Поблагодарили:
666 раз(а) в 608 сообщениях
|
![]() Цитата:
Цитата:
Цитата:
. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|||
![]() |
![]() |
![]() |
#32 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 191
Благодарил(а): 15 раз(а)
Поблагодарили:
666 раз(а) в 608 сообщениях
|
![]() Цитата:
Почему вы решили, что файл будет гораздо лучше консолидированного диалога? Почему вы решили, что этот файл вообще будет удобен, а не будет содержать большое количество треша от блоков памяти, никак не относящихся к меню - а это будет именно так. Поэтому попробуйте не судить, а понять. Попробуйте записать на бумажку содержимое всех блоков памяти из того же Конструктора и посмотреть как это всё выглядит. А потом поробуйте взять произвольную клиентскую разработку и повторить выписку. Это Конструктор расставляет блоки и макросы графически правильно, поэтому меню будет разорвано не на тысячу кусков, а всего лишь на десяток. Первая же клиентская программа покажет, что вы очень и очень и очень-очень-очень глубоко заблуждаетесь и не видите даже половины верхушки айсберга. Не говоря уже о его подводной части. Повторю ещё раз: нет способа сопоставить блок памяти строчке текста из Screen(str). Его просто тупо нет на этой планете и в этой вселенной. Это два разных блока, находящихся в разных частях программы. Максимум, который вы можете получить - это набор непонятных вам чисел, который будет работать только после загрузки обратно в ту же самую программу и никакую другую! Давайте уже закроем обсуждать эту тему. Тем более что СМАрт уже давно существует - он умеет сопоставлять блоки, т.к. сам их и производит. Осталось только прикрутить к нему работу с файлами. . __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
![]() |
![]() |
![]() |
#33 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 191
Благодарил(а): 15 раз(а)
Поблагодарили:
666 раз(а) в 608 сообщениях
|
![]() Цитата:
. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
![]() |
![]() |
![]() |
#34 | ||
Senior Member
Регистрация: Jul 2007
Адрес: Калининград
Сообщения: 422
Благодарил(а): 0 раз(а)
Поблагодарили:
1 раз в 1 сообщении
|
![]() Цитата:
А про то, о чем Вы говорили ранее Цитата:
__________________ Автомат АК - самый распространенный преобразователь стека в очередь |
||
![]() |
![]() |
![]() |
#35 |
Senior Member
Регистрация: Dec 2007
Адрес: Томск
Сообщения: 4 180
Благодарил(а): 242 раз(а)
Поблагодарили:
166 раз(а) в 158 сообщениях
|
![]()
вопщем насколь я понял:
блоки памяти не имеют имени/идентификаторов и потому выставить соответствие набору чисел/символов которые он обрабатывает не представляется возможным. так? другой вопрос или вопрос поставленный по другому: быть может имеется возможность каким-то образом сделать слепок уставок проекта не средствами лоджика-конструктора? как-то вот подобным образом http://forum.segnetics.com/showthread.php?t=323 пусть через опс или кактотак? |
![]() |
![]() |
![]() |
#36 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 191
Благодарил(а): 15 раз(а)
Поблагодарили:
666 раз(а) в 608 сообщениях
|
![]() Цитата:
В контроллере отсутствует выделенный участок памяти, называемый "уставки". . __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
![]() |
![]() |
![]() |
#37 | |
Senior Member
Регистрация: Dec 2007
Адрес: Томск
Сообщения: 4 180
Благодарил(а): 242 раз(а)
Поблагодарили:
166 раз(а) в 158 сообщениях
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#38 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 191
Благодарил(а): 15 раз(а)
Поблагодарили:
666 раз(а) в 608 сообщениях
|
![]() Цитата:
Переменная - это структура в памяти, может занимать одну и/или более ячеек. Чтобы считать переменную, нужно знать эту структуру: с какой ячейки она хранится и сколько ячеек она всего занимает. Имея только прямой доступ к памяти невозможно прочесть переменную, т.к. неизвестна её структура. -------------------------- Поставьте на выходе каждого блока памяти по модбас-переменной. Таким образом вы получите описание структуры и поэтому сможете корректно её прочитать. . __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
![]() |
![]() |
![]() |
#39 |
Senior Member
Регистрация: May 2010
Адрес: Novosibirsk
Сообщения: 761
Благодарил(а): 1 раз(а)
Поблагодарили:
10 раз(а) в 10 сообщениях
|
![]()
Предложение сформировалось такое. Каждый блок EEPROM имеет значение инициализации в Лоджике. При записи проекта в контроллер без иницилизации EEPROM значения самой EEPROM не затрагиваются. Следовательно можно средствами Лоджика считать эти значения, предупредить пользователя, что значения изменились и сохранить ввиде значений инициализации EEPROM. Сейчас можно в блоке EEPROM не иметь обязательных значений инициализации, а можно иметь.
Тогда добавление блока будет решаться просто - Сохраняем текущую версию с последними значениями, добавляем блок, изменяем проект, затем записываем с инициализацией EEPROM. Вроде несложно выглядит 2. Не понял как это реализовано в системном меню. Почитаю справку и посмотрю как работает. Для однотипных контроллеров и так все понятно достаточно быстрый и удобный способ. У меня просто накопилось много различных вариантов и 2010 и 2Г 02хх и 2Г 04хх. Программа быстро переносится с одного на другой контроллер, а с настройками сложнее. |
![]() |
![]() |
![]() |
#40 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 191
Благодарил(а): 15 раз(а)
Поблагодарили:
666 раз(а) в 608 сообщениях
|
![]() Цитата:
Да и время загрузки проекта немало подрастёт - это тоже не нужно скидывать со счетов. А если в контроллере заполненный модуль памяти на 256k - время сравнения будет измеряться минутами, если не десятками минут. Т.е. сама идея понятна, но как её реализовать, чтобы она оказалась реально работающей (т.е. ей было удобно пользоваться) - это не понятно. . __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
![]() |
![]() |
![]() |
#41 |
Senior Member
Регистрация: May 2010
Адрес: Novosibirsk
Сообщения: 761
Благодарил(а): 1 раз(а)
Поблагодарили:
10 раз(а) в 10 сообщениях
|
![]()
Что настройки изменены сообщит сам Лоджик при отключении от контроллера. Можно добавить пункт типа включить чтение EEPROM.
|
![]() |
![]() |
![]() |
#42 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 191
Благодарил(а): 15 раз(а)
Поблагодарили:
666 раз(а) в 608 сообщениях
|
![]() Цитата:
. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
![]() |
![]() |
![]() |
#43 |
Senior Member
Регистрация: May 2010
Адрес: Novosibirsk
Сообщения: 761
Благодарил(а): 1 раз(а)
Поблагодарили:
10 раз(а) в 10 сообщениях
|
![]()
Если кнопка читать EEPROM выключена, значит пользователю не надо и Лоджик читать и сообщать об изменениях не будет.
|
![]() |
![]() |
![]() |
#44 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 191
Благодарил(а): 15 раз(а)
Поблагодарили:
666 раз(а) в 608 сообщениях
|
![]() Цитата:
На основании опыта введения кнопки "А" и кнопки "ЕЕ" - 80% знающих об этой функции людей будут забывать вовремя её включать и/или выключать. В результате кнопка "EE" была автоматизированна тотальным образом. Лоджик следит за проектом и если структура памяти изменилась, то предлагает загрузить предустановленные значения. Кнопка ЕЕ стала попросту не нужна. Это как пример несостоятельной идеи реализации несомненно нужной функции. Кнопка была тупиковым путём, а силы на неё были потрачены. Предложите действительно быстрый и достойный вариант, который сможет заменить ведение баз занных на контроллере и я первый, кто пойдёт на митинг в вашу поддержку. . __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
![]() |
![]() |
![]() |
#45 |
Senior Member
Регистрация: May 2010
Адрес: Novosibirsk
Сообщения: 761
Благодарил(а): 1 раз(а)
Поблагодарили:
10 раз(а) в 10 сообщениях
|
![]()
Сходу ничего путнего предложить не могу. Так что митинг отменяется.
С ведением баз данных на контроллере тему можно обсуждать долго. С программируемыми контроллерами давно работаю еще с Ремиконта Р-130. У него памяти ПЗУ - 32 кБайт, ОЗУ 8 Кбайт, ППЗУ 8 кБайт. Вся программа была максимум 8 кБайт, загружалась в ОЗУ ручками в виде нескольких таблиц в течении 6-8 часов. Затем можно было записать это программу в ППЗУ (РФ с ультрафиолетовым стиранием) и при сбое ОЗУ восстанавливать. Как все там было организовано? Возможно правильно организованная база данных без излишеств. |
![]() |
![]() |
![]() |
#46 |
Senior Member
Регистрация: Aug 2010
Сообщения: 718
Благодарил(а): 1 раз(а)
Поблагодарили:
15 раз(а) в 12 сообщениях
|
![]()
Посидел тут полночки....
Если правильно понимаю (поправьте меня, если не так) - конструктор всегда создает меню Настройки с одним и тем же составом подменю и переменных. В зависимости от выбранной конфигурации в некоторх подменю могуь быть "пустышки" вместо блоков хранения, но переменные при этом обозначены выходами. Считать скадой все настройки, сотню переменных ровно ![]() ![]() проверил панелькой Weintec-овской. Уперся пока в один момент - адресация переменных в памяти из-за тех пустышек разная в разных конфигурациях получается. Пока не придумал более-менее толкового варианта ее сформировать.Ц общих чертах представление есть, надо подумать как это сделать не совсем коряво ![]() p.s. У меня, совсем еще только начинающего программаста Лоджика, ушло на все размышления,разбирательства, осознание, написание и проверку 5 часов. Вот почему-то абсолютно уверен, что Арсению, если б захотел он, понадобилось бы не больше часа с перекуром ![]() *** P.P.S. придумал, как частично ручном режиме сделать запись корректно.. Последний раз редактировалось ViS, 28.01.2012 в 07:13 |
![]() |
![]() |
![]() |
#47 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 191
Благодарил(а): 15 раз(а)
Поблагодарили:
666 раз(а) в 608 сообщениях
|
![]() Цитата:
![]() __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
![]() |
![]() |
![]() |
#48 |
Senior Member
Регистрация: Aug 2010
Сообщения: 718
Благодарил(а): 1 раз(а)
Поблагодарили:
15 раз(а) в 12 сообщениях
|
![]()
Элементарный
![]() Сознаться, что вам лень (некогда, запрещено политикой партии и т.д. и т.п.) реализовать столь пользительную хотелку. Не такие уж там глобальные переделки нужны |
![]() |
![]() |
![]() |
#49 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 191
Благодарил(а): 15 раз(а)
Поблагодарили:
666 раз(а) в 608 сообщениях
|
![]() Цитата:
Перво-наперво, я жёстко против такой возможности. Второе, я с удовольствием посмотрю, как вы почти 200 уставок примете из модбаса и запишете в память, используя максимум 50 блоков и не разрушая существующей структуры меню. Вам есть что показать? ![]() __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
![]() |
![]() |
![]() |
#50 |
Senior Member
Регистрация: Aug 2010
Сообщения: 718
Благодарил(а): 1 раз(а)
Поблагодарили:
15 раз(а) в 12 сообщениях
|
![]()
Речь об уставках только из меню "Настройки". Там их не 200, а ровно 100 всех, если не просчитался, включая разделители. В реальном проекте задействованы, в зависимости от конфигурации, не все, а только их часть. В проекте стандартной водяной приточки их задействовано всего 35, включая разделители.
Далее, чтобы залить их : 1. В скаде нужен спиок список переменных вида "адрес-значение". Где адрес - порядковый номер строки уставки, получающейся при прокрутке меню на контроллере, включая разделители. 2. В проекте в макросе меню "Настройки" нужен слегка модифицированный MultiString. (прилагается) 3. Скада выбирает из списка нужные уставки, выставляя соответсвуюющие значения на входы того MultiString-a и давая импульс на запись. 4. Это - работает, проверено. Неужели подготовка такого списка, хотя бы просто в текстовом файлике, конструктором при создании в нем проекта связана с глобальными переделками структуры меню? |
![]() |
![]() |
![]() |
#51 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 191
Благодарил(а): 15 раз(а)
Поблагодарили:
666 раз(а) в 608 сообщениях
|
![]() Цитата:
![]() Перво наперво, нужно внятно объяснить зачем это нужно. Причём вариант "чтобы можно было подстроить не заходя на соседний этаж" не считается за аргумент. К передаче данных такого рода предъявляются следующие требования: 1) Контроль на допустимость диапазона каждого из параметров 2) Контроль доступа (не забываем modbus-TCP и случайные записи во время настройки и модернизации системы диспетчеризации) 3) Защита от разрушения всего блока данных, что несомненно может вывести вентустановку из строя Как ваш макрос решает поставленные мною задачи? __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
![]() |
![]() |
![]() |
#52 |
Senior Member
Регистрация: Aug 2010
Сообщения: 718
Благодарил(а): 1 раз(а)
Поблагодарили:
15 раз(а) в 12 сообщениях
|
![]()
1. Контроль диапазона - в самой скаде. Это забота того, кто программит скаду.
2. Контроль доступа - так в скаде же контроль. Честно говоря не понял даже озвучивания этого здесь и сейчас. 3. Данные пишутся не блоком, один параметр - один цикл записи. Ничто не мешает скаде после записи параметра произвести его контрольное считывание. 4. Зачем нужно? Например имеем здание в 10 этажей, 10 идентичных установок, 10 одинаковых сетей воздуховодов. Настраиваем ОДНУ систему, заливаем настройки в остальные 9, проверяем работу, не отходя от кассы корректируем (да-да, именно чтоб не бежать на "соседние" 9(ДЕВЯТЬ) этажей в неэксплуатируемом еще здании с неработающими лифтами. P.S. По 1 и 2 - не пробовал Автоскаду, разве там это не на уровне скады контролируется для изменения уставки температуры, например, из меню "Параметры"? |
![]() |
![]() |
![]() |
#53 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 191
Благодарил(а): 15 раз(а)
Поблагодарили:
666 раз(а) в 608 сообщениях
|
![]() Цитата:
Далее по пунктам:
Меню "Параметры" и общие алгоритмы управления построены так, что в нём невозможно физически разрушить вентустановку. Максимум - слегка побаловаться. Резюмируя: вы хотите пробить гигантскую дыру в устойчивости системы ради экономии пары часов при пуско-наладке. Воля ваша, именно поэтому вам дана возможность редактировать созданные Конструктором программы. Возможно в вашем случае в эту дыру ничего не свалится (локальное подключение, пожизненное сопровождение и т.д.), но это не значит, что этих проблем не возникнет ни у кого. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
![]() |
![]() |
![]() |
#54 |
Senior Member
Регистрация: Aug 2010
Сообщения: 718
Благодарил(а): 1 раз(а)
Поблагодарили:
15 раз(а) в 12 сообщениях
|
![]()
Хмм.... Читая этот форум, порой складывается впечатление, что под ником Arsie пишут два совершенно разных человека, один - абсолютно адекватный специалист, вникающий в проблемы пользователей и дающий дельные советы, второй - манагер, ничего не понимающий и не желающий слышать клиента, толкующий исключительно о своем. ЧуднО!... *** Конец лирического отступления***
По делу. Повторюсь, что речь идет о меню "Настройки", а не "Параметры". Данные записываются по raise, если скада/ сеть заглючит - они не запишутся. При нахождении в меню на самом контроллере - не запишутся (предвосхищая отсыл на возможную ситуацию с одновременным редактированием с контроллера и со скады). Причем тут общие алгоритмы??? Никто их не предлагает трогать, речь, таки опять повторюсь, идет об уставках из меню "Настройки", ДОСТУПНЫХ НА ЭКРАНЕ КОНТРОЛЛЕРА ДЛЯ ДАННОГО ПРОЕКТА, вероятность порушить систему такая же, как при тыканье кнопок на самом контроллере! Кстати, о контроле диапазона вводимых значений... А в конструкторских проектах таковой контроль, при вводе с клавиатуры, отлажен от и до? Фигушки - I рекуператора спокойно вводится меньше 10, хотя по документации диапазон 10-9999.. Ввод с клавиатуры контроллера некорректного значения для системы безопаснее такого же ввода ЭТОГО ЖЕ значения через скаду? Multistring позволяет писать блоками, а не 1 ячейку за 1 цикл записи? В данном случае? Последний раз редактировалось ViS, 31.01.2012 в 20:16 |
![]() |
![]() |
![]() |
#55 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 191
Благодарил(а): 15 раз(а)
Поблагодарили:
666 раз(а) в 608 сообщениях
|
![]() Цитата:
Согласен, дилемма. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
![]() |
![]() |
![]() |
#56 |
Senior Member
Регистрация: Aug 2010
Сообщения: 718
Благодарил(а): 1 раз(а)
Поблагодарили:
15 раз(а) в 12 сообщениях
|
![]()
Воооттт.. посидел я еще 3 часа, поковырял меню "Настройки"...
В результате имеем у макроса"Система меню" на "головной" поляне проекта : 1.Вход "SC Par №" - номер параметра для считывания или записи из меню "Настройки". Номер определяется порядковым номером строки параметра на экране контроллера, начиная с 0, или просто соответствует "Адрес", формируемому MultiString-ом в меню "Настройки" 2. Вход "SC Par Val" - Значения параметра для записи в контроллер 3. Вход "SC Par^wr" - импульс или уровень на нем записывает значение параметра в контроллер. 4. Выход "Par_Addr" - адрес все того же параметра для считывания из контроллера 5. Выход "Par Value" для считывания парметра из контроллера Выходы динамически меняются при перемещении по меню на самом контроллере. Кстати, может тоже оказаться полезным именно для диспетчеризации - легко отследить скадой эти перемещения/изменения и занести в журнал для возможного последующего "разбора полета" чьих-то шаловливых пальчиков по месту установки контроллера ![]() Запись параметра разрешается только в том случае, если не осуществлен вход в меню "Настройки" непосредственно на самом контроллере. То бишь тыканье в кнопки контроллера имеет высший приоритет, чем удаленка. Все доработки могут элементарно ставиться конструктором: 1. 1 ФБ добавляется в каждый mem(real,int,boolint) всех подменю из меню "Настройки". Постоянный, не меняющийся/ставящийся в зависимости от заданной конфигурации. 2. в каждое подменю (Меню-ВоКал, Меню-ЭКал и т.д.) добавляется 1 маленький макрос 3. В само меню "Настройки" добавляется такой же макрос Пункты 2 и 3 - динамические, формируются и ствятся в зависимости от конфиурации, также, как и большинство остальных макросов при сборке проекта конструктором. Принцип работы конструктора, в зависимости от конфигурации ставящего в проект нужные блоки-макросы и создающий связи, позволит с такой же легкостью поствить в нужные места и эти. Все это элементарно, еще раз подчеркну, может сделать именно конструктор, перетряхивать ручками меню каждый раз может оказаться весьма муторным занятием, особенно в "больших" конфигурациях. |
![]() |
![]() |
![]() |
#57 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 191
Благодарил(а): 15 раз(а)
Поблагодарили:
666 раз(а) в 608 сообщениях
|
![]() Цитата:
Я против самой идеи. И я уже объяснил, почему. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
![]() |
![]() |
![]() |
#58 |
Senior Member
Регистрация: Aug 2010
Сообщения: 718
Благодарил(а): 1 раз(а)
Поблагодарили:
15 раз(а) в 12 сообщениях
|
![]()
1. Быстро. Ну об этом даже говорить смешно.
У меня, ламера в Лоджике и вообще программировании ушло на то нескольько часов всего на то, чтоб разобраться как можно сделать в принципе. 2. Надежно. Чем ввод параметров из скады/с панели ненадежнее ввода с клавиатуры контроллера? Только не надо про заглючившую сеть/скаду - это не аргумент. 3. Экономично. Я в своих экспериментах "оприходовал" дополнительно меньше полусотни ФБ. Это на стандартную водяную приточку пошло, 28, кажется, параметров в меню выводится, вкючая разделители. Вполне эконмично. Никак не могу понять вашего категорического мнения против такого функционала. Весомых аргументов вы пока не привели. |
![]() |
![]() |
![]() |
#59 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 191
Благодарил(а): 15 раз(а)
Поблагодарили:
666 раз(а) в 608 сообщениях
|
![]() Цитата:
Просто примите как данность: в рамках Конструктора предлагаемого вами решения не будет никогда. Рано или поздно удалённое администрирование конечно же появится, но точно не в виде открытой всем ветрам проекции в сеть. Скорее всего это будет какой-нибудь веб-интерфейс или что-то в этом роде. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
![]() |
![]() |
![]() |
#60 |
Member
Регистрация: Jul 2006
Сообщения: 54
Благодарил(а): 0 раз(а)
Поблагодарили:
3 раз(а) в 2 сообщениях
|
![]()
Хотел создать такую тему. Прочитал про бесперспективность, но все-таки опишу свою задачу:
у меня около трех десятков настроек, которые я делаю при пусконаладке "ручками". В ходе работы бывает поменяешь и забудешь. Поэтому я бы хотел видеть кнопку: считать ЕЕпром.. тут вопрос куда. Идеальный вариант - набор настроек типа "конфигурация ЕЕПРОМ" для проекта, который можно в дальнейшем назначить уставками, прошиваемыми при инициализации. Помечтал ![]() |
![]() |
![]() |