Цитата Сообщение от Валенок Посмотреть сообщение
А на кой такая экзотика ? Раз есть оффлайн - есть исходник. Раз есть исходник - впилить переменную-селектор и вперед.
Поясню: у ПЛК110 М02 есть возможность заливать свободные программы для управления быстрыми входами-выходами. Ну, шаговые двигатели крутить, энкодеры обрабатывать и прочее.
Дело в том, что программы заливаются "через указатели, прямой доступ к памяти, вот это всё". Разумеется, при работе в симуляции обращения к памяти приводят к краху всей программы.

Поэтому и нужно как-то определять "online или simulation". Если такую проверку добавить, то КДС проект будет работать и в симуляции, и в online. Разумеется, в симуляции не будет симулироваться "блок управления ШД", но это не так страшно на текущий момент.

Разумеется, можно впилить какую-нибудь переменную, которую переключать туда-сюда, но это верный способ забыть про неё и т.п.
Взял человек проект. Запускает симуляцию, а у него "программа совершила недопустимую операцию и будет закрыта". Как из этого можно понять, что нужно поправить секретную переменную? Разумеется, никак. Поэтому и нужен механизм для автоматического распознавания simulation.


Откуда требование на "конфигуратор нельзя": сам блок (который работает с памятью) на самом деле автогенерируется (его генерирует среда Hardella). И с точки зрения прикладного разработчика, он импортирует этот блок как обычный *.exp.

Т.е.:
1) Написали программу (в Hardella)
2) Скомпилировали (получился *.exp)
3) Импортировали этот exp в основной проект

Нужно так, чтобы при этом импорте пользовательский проект не ломался. Сейчас это достигается тем, что в exp файл помещено только самое нужное. Т.е. импортируются только автогенерированные блоки, а всевозможные plc configuration/task configuration не трогаются.