Поясню: у ПЛК110 М02 есть возможность заливать свободные программы для управления быстрыми входами-выходами. Ну, шаговые двигатели крутить, энкодеры обрабатывать и прочее.
Дело в том, что программы заливаются "через указатели, прямой доступ к памяти, вот это всё". Разумеется, при работе в симуляции обращения к памяти приводят к краху всей программы.
Поэтому и нужно как-то определять "online или simulation". Если такую проверку добавить, то КДС проект будет работать и в симуляции, и в online. Разумеется, в симуляции не будет симулироваться "блок управления ШД", но это не так страшно на текущий момент.
Разумеется, можно впилить какую-нибудь переменную, которую переключать туда-сюда, но это верный способ забыть про неё и т.п.
Взял человек проект. Запускает симуляцию, а у него "программа совершила недопустимую операцию и будет закрыта". Как из этого можно понять, что нужно поправить секретную переменную? Разумеется, никак. Поэтому и нужен механизм для автоматического распознавания simulation.
Откуда требование на "конфигуратор нельзя": сам блок (который работает с памятью) на самом деле автогенерируется (его генерирует среда Hardella). И с точки зрения прикладного разработчика, он импортирует этот блок как обычный *.exp.
Т.е.:
1) Написали программу (в Hardella)
2) Скомпилировали (получился *.exp)
3) Импортировали этот exp в основной проект
Нужно так, чтобы при этом импорте пользовательский проект не ломался. Сейчас это достигается тем, что в exp файл помещено только самое нужное. Т.е. импортируются только автогенерированные блоки, а всевозможные plc configuration/task configuration не трогаются.
Bad programmers worry about the code. Good programmers worry about data structures and their relationships
среди успешных людей я не встречала нытиков
Барбара Коркоран
экспортный файл удаляет объект в проекте, какая разница тогда стоял там модуль или нет
Bad programmers worry about the code. Good programmers worry about data structures and their relationships
среди успешных людей я не встречала нытиков
Барбара Коркоран
Допустим, пользователь уже добавил модуль статистики, и даже объявил нужные переменные в plc configuration.
Если как-нибудь удалим (на самом деле, через *.exp непонятно как удалять), то программа сломается. Мы же не знали как там пользователь обозвал переменную.
Обращаться по AT тоже не вариант, т.к. неизвестно какой будет адрес.
какая-то уже фигня пошла, а кто если не программист устанавливает экспортный файл к себе в проект, при первой же компиляции ошибки дадут о себе знать, вспомнит где стояла одна переменная с каким то узнаваемым именем вообще не сложно
Bad programmers worry about the code. Good programmers worry about data structures and their relationships
среди успешных людей я не встречала нытиков
Барбара Коркоран
Фигня не фигня, а меня почти каждый спросил "что значит ошибка identifier PRU_FB_GET_PARAMETER not defined": http://www.owen.ru/forum/showthread....TER#post233648
Кто-то по несколько раз на эти грабли наступал. Поэтому и хочу сделать "без библиотек".