Спасибо, попутно еще пара вопросов:
1. #define внутри неглобального макроса относится только к этому макросу?
2. Чем нехорошим может "икнуться" использование "параллельного" режима макросов (циклических вычислений вроде не планируется)?
Спасибо, попутно еще пара вопросов:
1. #define внутри неглобального макроса относится только к этому макросу?
2. Чем нехорошим может "икнуться" использование "параллельного" режима макросов (циклических вычислений вроде не планируется)?
Последний раз редактировалось VaBo; 08.01.2018 в 16:31.
СODESYS V3.5: Repository Archive V3.5 SP4 (необходим для старых СПК) / Раздел CDS V3.5 на сайте
Форум: Вопросы и ответы / Визуализация / Настройка обмена с другими устройствами
Web-панель ВП110 / Modbus-индикатор СМИ2-М
Telegram: @JuneSmellsLikeBlood | e-mail: e.kislov@owen.ru | oscat.ru | Как обратиться в техподдержку?
Как отлаживать ошибки | Отладка проектов в CODESYS V3.5 | XY problem | Как правильно задавать вопросы | AnyDesk
Евгений, немного уточню и расширю вопросы VaBo.
1. Все-таки можно ли вызвать из Пользовательского макроса другой Пользовательский макрос и как это сделать?
2. Можно-ли в Глобальном макросе написать программку (не функцию) и вызывать Пользовательский макрос? И как это сделать?
Применение для 2.:
Сейчас так: Глобальная Функциональная область каждую секунду вызывает Пользовательский макрос.
Но хотелось бы так: В Глобальном макросе проверяется секундный бит (PSB4) и вызывается Пользовательский макрос (то есть без создания Глобальной Функциональной области).
Глобальный макрос сам по себе не работает.
По этому без ф.области не обойтись. А в ф.облсти можно вызывать только обычный макрос.
ЗЫ.
Нельзя.можно ли вызвать из Пользовательского макроса другой Пользовательский макрос и как это сделать
Но если нужные функции написать в глобальном макросе, то их можно вызывать в любом пользовательском макросе
Например
Глобальный макрос
Захват-1.png
содержит три функции
Имеется два пользовательских макроса
Макрос Таймер
Измеряет продолжительность включенного состояния бита PSB300 в секундах (дискретность 0,1 сек)
Захват-4.png
Макрос генерации случайных чисел в диапазоне от А до В
Захват-3.png
Последний раз редактировалось petera; 09.01.2018 в 13:18.
Мой канал на ютубе
https://www.youtube.com/c/ПетрАртюков
Библиотека ГМ для СП300
https://disk.yandex.com/d/gHLMhLi8x1_HBg
1. Да. Прикладываю пример.
Example_MacroInMacro.txp
2. Нет.
СODESYS V3.5: Repository Archive V3.5 SP4 (необходим для старых СПК) / Раздел CDS V3.5 на сайте
Форум: Вопросы и ответы / Визуализация / Настройка обмена с другими устройствами
Web-панель ВП110 / Modbus-индикатор СМИ2-М
Telegram: @JuneSmellsLikeBlood | e-mail: e.kislov@owen.ru | oscat.ru | Как обратиться в техподдержку?
Как отлаживать ошибки | Отладка проектов в CODESYS V3.5 | XY problem | Как правильно задавать вопросы | AnyDesk
Евгений и Петр, спасибо за подробные разъяснения.
Получается, что имеет право на существование следующая модель:
Создаем Пользовательский макрос, например с именем Main, вызываемый непрерывно Глобальной Функциональной областью.
В Main по необходимым условиям вызываем другие Пользовательские макросы.
Остаётся только вопрос с "режимом выполнения" - параллельный или последовательный. Как он в описанном случае устанавливается?
Правильно ли я понимаю, что "режим выполнения" имеет значение только для нескольких макросов в одной Функциональной области, т.е. определяет как им выполняться либо поочередно, либо одновременно?
Нет.
Если макрос выполняется последовательно - на на время его работы останавливаются все остальные процессы (отрисовка визуализации, обмен через элементы и т.д.).
Если параллельно - то остановки не происходит, каждой из задач достается сколько-то квантов времени.
Разумный пример использования параллельного режима - работа с файлами или другие ресурсоемкие операции.
СODESYS V3.5: Repository Archive V3.5 SP4 (необходим для старых СПК) / Раздел CDS V3.5 на сайте
Форум: Вопросы и ответы / Визуализация / Настройка обмена с другими устройствами
Web-панель ВП110 / Modbus-индикатор СМИ2-М
Telegram: @JuneSmellsLikeBlood | e-mail: e.kislov@owen.ru | oscat.ru | Как обратиться в техподдержку?
Как отлаживать ошибки | Отладка проектов в CODESYS V3.5 | XY problem | Как правильно задавать вопросы | AnyDesk
Подскажите пожалуйста как из панели передать текстовую строку в ПЛК110. панель master, плк slave. требуется передача до 20 символов
СODESYS V3.5: Repository Archive V3.5 SP4 (необходим для старых СПК) / Раздел CDS V3.5 на сайте
Форум: Вопросы и ответы / Визуализация / Настройка обмена с другими устройствами
Web-панель ВП110 / Modbus-индикатор СМИ2-М
Telegram: @JuneSmellsLikeBlood | e-mail: e.kislov@owen.ru | oscat.ru | Как обратиться в техподдержку?
Как отлаживать ошибки | Отладка проектов в CODESYS V3.5 | XY problem | Как правильно задавать вопросы | AnyDesk
Подскажите пожалуйста, существует ли возможность в панели СП310Р работать со структурами через глобальный макрос. Встроенный компилятор вроде как понимает написанный код через typedef struct, а вот объявить переменную с этой структурой уже не позволяет, ругается.
2018-01-15_11-12-58.png
2018-01-15_11-13-43.png