• обязательно заполнить свой профиль на русском языке кириллицей
  • не писать свой вопрос в первую попавшуюся тему - вместо этого создать новую тему
  • дублирование сообщений приравнивается к спаму
  • за поиск и предложение пиратского ПО - бан без предупреждения
  • рекламу и частные объявления мы не размещаем ни на каких условиях

А есть в EBP чтото похожее на #define

Модератор: специалисты по Weintek

Ответить

Автор темы
Number17
здесь недавно
здесь недавно
Сообщения: 10
Зарегистрирован: 30 окт 2019, 09:57
Имя: Евгений
Страна: РФ
город/регион: Нижний Новгород

А есть в EBP чтото похожее на #define

Сообщение Number17 » 29 ноя 2019, 11:34

Возможно ли в EBP сделать определение вроде #define в С? Ну вот бывает нужна константа видимая во всём проекте...

Аватара пользователя

Madwolf
знаток Eplan
знаток Eplan
Сообщения: 1320
Зарегистрирован: 17 окт 2012, 10:24
Имя: Виталий
Страна: Беларусь
город/регион: Минск
Благодарил (а): 49 раз
Поблагодарили: 143 раза

А есть в EBP чтото похожее на #define

Сообщение Madwolf » 29 ноя 2019, 15:54

Вряд-ли. Там макросы представляют собой уже подпрограммы. К главному коду доступа нет. Если вам необходимо будет эту константу менять в процессе проектирования, то лучше выделить себе в памяти место под нее и задать при запуске каким-нибудь макросом.
Ну а так, в каждом макросе прописывать.


Автор темы
Number17
здесь недавно
здесь недавно
Сообщения: 10
Зарегистрирован: 30 окт 2019, 09:57
Имя: Евгений
Страна: РФ
город/регион: Нижний Новгород

А есть в EBP чтото похожее на #define

Сообщение Number17 » 03 дек 2019, 08:59

Madwolf писал(а):
29 ноя 2019, 15:54
Если вам необходимо будет эту константу менять в процессе проектирования
Да в том то и дело что не надо. Имеем фиксированные адреса, например, которые используется в разных макросах. Вот и приходится прописывать цифрами в каждом макросе. Неудобно. Через User Tag тоже не получается, т.к. он содержит кроме значения ещё и тип памяти и используется функциями вроде GetData и SetData. Способ один изобрёл, но он тоже неоптимальный: Присваиваем какой то ячейки памяти осмысленное имя через UserTag, например, adr_Temp1_value. Далее при запуске программы инициализируем эту ячейку значением адреса. А далее в макросах получаем значение адреса с помощью функции GetData и осмысленного имени adr_Temp1_value без надобности вспоминать конкретное значение адреса.

Аватара пользователя

Jackson
администратор
администратор
Сообщения: 11187
Зарегистрирован: 17 июн 2008, 15:01
Имя: Евгений свет Брониславович
Страна: Россия
город/регион: Санкт-Петербург
Благодарил (а): 193 раза
Поблагодарили: 402 раза

А есть в EBP чтото похожее на #define

Сообщение Jackson » 04 дек 2019, 14:37

Number17 писал(а):
03 дек 2019, 08:59
Да в том то и дело что не надо.
Так и используйте какую-то внутренюю переменную и никогда в неё ничего не пишите. Это называется "рецепт".

Отправлено спустя 1 минуту 23 секунды:
Madwolf писал(а):
29 ноя 2019, 15:54
Вряд-ли.
Мне тоже казалось что вряд ли, но не факт - надо документацию читать, возможно и есть такое. Но это бессмысленно при наличии рецептов.
По вопросам работы Форума можно обратиться по этим контактам.


Автор темы
Number17
здесь недавно
здесь недавно
Сообщения: 10
Зарегистрирован: 30 окт 2019, 09:57
Имя: Евгений
Страна: РФ
город/регион: Нижний Новгород

А есть в EBP чтото похожее на #define

Сообщение Number17 » 06 дек 2019, 14:13

Jackson писал(а):
04 дек 2019, 14:39
Это называется "рецепт".
Проводя аналогию с "С" "рецепт" более похож на Структуру чем на #define. Рецепт - это набор разнотипных данных.

Аватара пользователя

Jackson
администратор
администратор
Сообщения: 11187
Зарегистрирован: 17 июн 2008, 15:01
Имя: Евгений свет Брониславович
Страна: Россия
город/регион: Санкт-Петербург
Благодарил (а): 193 раза
Поблагодарили: 402 раза

А есть в EBP чтото похожее на #define

Сообщение Jackson » 06 дек 2019, 15:03

Number17 писал(а):
06 дек 2019, 14:13
Проводя аналогию
А зачем?
По вопросам работы Форума можно обратиться по этим контактам.


Автор темы
Number17
здесь недавно
здесь недавно
Сообщения: 10
Зарегистрирован: 30 окт 2019, 09:57
Имя: Евгений
Страна: РФ
город/регион: Нижний Новгород

А есть в EBP чтото похожее на #define

Сообщение Number17 » 06 дек 2019, 15:41

Jackson писал(а):
06 дек 2019, 15:03
А зачем?
Очень уж похоже. Сама собой проводится).
По рецептам... Пробовал использовать, но вот натолкнулся сразу же на непонятное: как только я добавляю в проект какой либо рецепт, то при запуске симуляции проекта на ПК вываливается ошибка com_e30.exe. Удаляю рецепты - всё работает. Что не так?

Аватара пользователя

Jackson
администратор
администратор
Сообщения: 11187
Зарегистрирован: 17 июн 2008, 15:01
Имя: Евгений свет Брониславович
Страна: Россия
город/регион: Санкт-Петербург
Благодарил (а): 193 раза
Поблагодарили: 402 раза

А есть в EBP чтото похожее на #define

Сообщение Jackson » 06 дек 2019, 16:23

Number17 писал(а):
06 дек 2019, 15:41
Что не так?
Глючный симулятор. Проверяйте на живой панели.
По вопросам работы Форума можно обратиться по этим контактам.

Аватара пользователя

Madwolf
знаток Eplan
знаток Eplan
Сообщения: 1320
Зарегистрирован: 17 окт 2012, 10:24
Имя: Виталий
Страна: Беларусь
город/регион: Минск
Благодарил (а): 49 раз
Поблагодарили: 143 раза

А есть в EBP чтото похожее на #define

Сообщение Madwolf » 06 дек 2019, 22:22

Симулятор норм. но надо учитывать, что рецепты хранятся в панели. Поэтому нужно при симуляции эти рецепты загрузить в симуляцию (ПК) Сори. но более внятно не могу написать.


Автор темы
Number17
здесь недавно
здесь недавно
Сообщения: 10
Зарегистрирован: 30 окт 2019, 09:57
Имя: Евгений
Страна: РФ
город/регион: Нижний Новгород

А есть в EBP чтото похожее на #define

Сообщение Number17 » 07 дек 2019, 09:12

Madwolf писал(а):
06 дек 2019, 22:22
нужно при симуляции эти рецепты загрузить в симуляцию (ПК
Создал рецепт для размещения в памяти RW. Как его "загрузить в симуляцию"?

Аватара пользователя

Madwolf
знаток Eplan
знаток Eplan
Сообщения: 1320
Зарегистрирован: 17 окт 2012, 10:24
Имя: Виталий
Страна: Беларусь
город/регион: Минск
Благодарил (а): 49 раз
Поблагодарили: 143 раза

А есть в EBP чтото похожее на #define

Сообщение Madwolf » 08 дек 2019, 00:09

Лично я не знаю как это сделать, в этом и проблема. Симуляция оперирует собственными рецептами. Но их можно набрать вручную, есть сделать такую возможность. И при этом, при последующих симуляциях они будут сохраняться. Может можно как-то загрузить, но мне это было не нужно, поэтому я особо не заморачивался.

Аватара пользователя

Jackson
администратор
администратор
Сообщения: 11187
Зарегистрирован: 17 июн 2008, 15:01
Имя: Евгений свет Брониславович
Страна: Россия
город/регион: Санкт-Петербург
Благодарил (а): 193 раза
Поблагодарили: 402 раза

А есть в EBP чтото похожее на #define

Сообщение Jackson » 08 дек 2019, 11:23

Madwolf писал(а):
08 дек 2019, 00:09
Лично я не знаю как это сделать, в этом и проблема.
Вот про это я и говорил, имея в виду "глючный симулятор". Это не единственная проблема там. Так что проверять лучше на живой панели.
По вопросам работы Форума можно обратиться по этим контактам.


Автор темы
Number17
здесь недавно
здесь недавно
Сообщения: 10
Зарегистрирован: 30 окт 2019, 09:57
Имя: Евгений
Страна: РФ
город/регион: Нижний Новгород

А есть в EBP чтото похожее на #define

Сообщение Number17 » 09 дек 2019, 10:50

Jackson писал(а):
08 дек 2019, 11:23
Так что проверять лучше на живой панели.
Пробовал работать с разными рецептами: и теми что в RW сохраняются, и с теми что в виде базы данных. Те что в RW видимо никак нельзя загрузить в симулятор, если только через макрос инициализировать ячейки памяти в RW. При загрузке в панель вроде бы всё работает.
Теперь про рецепты в виде БД: как уже писал выше, при добавлении рецепта в настройках симулятор начинал глючить и выдавать ошибку модуля com_e30.exe. Но вдруг ошибка пропала сама собой, не понял что и сделал. При симуляции полная непонятка. То данные рецепта нормально отображаются в объекте просмотра рецептов, то вообще ничего не отображается, то отображаются, но данные совсем не те. И зависят эти явления от типа данных элементов рецепта. При загрузке в панель всё отображается как надо.

Ответить

Вернуться в «WEINTEK (операторские панели)»