Цитата:
Сообщение от Arsie
Почему программист в СМАрт сразу не может выбрать исходное состояние входа?
|
Насколько я помню, исходная проблема, что модули MR и MC выдают разные значения на одних сигналах. При необходимости, переброска источника сигнала MR-MC -- зона ответственности программиста. Для этого используется первый XOR. Смена значений входного сигнала -- это зона ответственности эксплуатанта, для этого делается опция в настройках, для большей гибкости и используется второй XOR.
Почему я не стану делать правку в СМАрт (например, при перебросе входа с MR на MC)? Потому что СМАрт -- это уровень пользовательского интерфейса, это другая зона ответственности. Не должна она зависеть от физических значений сигналов.
Здесь я применяю принцип
разделения ответственности.
Если бы я не использовал это принцип, без проблем смешал бы в СМАрт все, и мух, и котлеты.
Цитата:
Вам принципиально важно, из какого дерева тащить прямоугольничек и цвет этого самого прямоугольничка?
|
Во всех популярных языках остаток от деления (как минимум, целочисленный) -- это базовый математический оператор. По-моему, логично, что базовые операторы должны быть в стандартном наборе блоков.
Если строить стандартный набор блоков исходя из минимализма (или базиса), то из SMLogix нужно выкинуть и все AND/OR/NOT/NOR/XOR/..., оставить только NAND, а остальные операции делать макросами.
Или, можно выкинуть SUB, MUL, оставив ADD и DIV. Можно выкинуть типы bool и int, оставить только long и real. И т.п. Выкинуть возможность задания числа входов.
Понятно ведь, что стандартный набор блоков строится не из минимализма, а из баланса удобства и полноты.
Я ни в коем случае не настаиваю в реализации этих хотелок, я высказываю свое мнение, столкнувшись на практике с SMLogix, основанное на своем многолетнем опыте разработки.