Спасибо, попутно еще пара вопросов:
1. #define внутри неглобального макроса относится только к этому макросу?
2. Чем нехорошим может "икнуться" использование "параллельного" режима макросов (циклических вычислений вроде не планируется)?
Спасибо, попутно еще пара вопросов:
1. #define внутри неглобального макроса относится только к этому макросу?
2. Чем нехорошим может "икнуться" использование "параллельного" режима макросов (циклических вычислений вроде не планируется)?
Последний раз редактировалось VaBo; 08.01.2018 в 16:31.
Связь со мной: telegram: @JuneSmellsLikeBlood | e-mail: e.kislov@owen.ru (личка на форуме - не подходит)
Раздел CDS V3.5 на сайте | Основные темы по CDS V3.5 на форуме: Вопросы и ответы | Визуализация | Настройка обмена с другими устройствами
Repository Archive V3.5 SP4 (необходим для СПК207/СПК1хх без Eth/ПЛК3xx)
oscat.ru | Как обратиться в техподдержку? | Как отлаживать ошибки | Отладка проектов в CODESYS V3.5 | Проблема XY | Как правильно задавать вопросы | 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/ПетрАртюков
Мой канал на РУТУБЕ
https://rutube.ru/channel/23641433/
Библиотека ГМ для СП300
https://disk.yandex.com/d/gHLMhLi8x1_HBg
1. Да. Прикладываю пример.
Example_MacroInMacro.txp
2. Нет.
Связь со мной: telegram: @JuneSmellsLikeBlood | e-mail: e.kislov@owen.ru (личка на форуме - не подходит)
Раздел CDS V3.5 на сайте | Основные темы по CDS V3.5 на форуме: Вопросы и ответы | Визуализация | Настройка обмена с другими устройствами
Repository Archive V3.5 SP4 (необходим для СПК207/СПК1хх без Eth/ПЛК3xx)
oscat.ru | Как обратиться в техподдержку? | Как отлаживать ошибки | Отладка проектов в CODESYS V3.5 | Проблема XY | Как правильно задавать вопросы | AnyDesk
Евгений и Петр, спасибо за подробные разъяснения.
Получается, что имеет право на существование следующая модель:
Создаем Пользовательский макрос, например с именем Main, вызываемый непрерывно Глобальной Функциональной областью.
В Main по необходимым условиям вызываем другие Пользовательские макросы.
Остаётся только вопрос с "режимом выполнения" - параллельный или последовательный. Как он в описанном случае устанавливается?
Правильно ли я понимаю, что "режим выполнения" имеет значение только для нескольких макросов в одной Функциональной области, т.е. определяет как им выполняться либо поочередно, либо одновременно?
Нет.
Если макрос выполняется последовательно - на на время его работы останавливаются все остальные процессы (отрисовка визуализации, обмен через элементы и т.д.).
Если параллельно - то остановки не происходит, каждой из задач достается сколько-то квантов времени.
Разумный пример использования параллельного режима - работа с файлами или другие ресурсоемкие операции.
Связь со мной: telegram: @JuneSmellsLikeBlood | e-mail: e.kislov@owen.ru (личка на форуме - не подходит)
Раздел CDS V3.5 на сайте | Основные темы по CDS V3.5 на форуме: Вопросы и ответы | Визуализация | Настройка обмена с другими устройствами
Repository Archive V3.5 SP4 (необходим для СПК207/СПК1хх без Eth/ПЛК3xx)
oscat.ru | Как обратиться в техподдержку? | Как отлаживать ошибки | Отладка проектов в CODESYS V3.5 | Проблема XY | Как правильно задавать вопросы | AnyDesk
Подскажите пожалуйста как из панели передать текстовую строку в ПЛК110. панель master, плк slave. требуется передача до 20 символов
Связь со мной: telegram: @JuneSmellsLikeBlood | e-mail: e.kislov@owen.ru (личка на форуме - не подходит)
Раздел CDS V3.5 на сайте | Основные темы по CDS V3.5 на форуме: Вопросы и ответы | Визуализация | Настройка обмена с другими устройствами
Repository Archive V3.5 SP4 (необходим для СПК207/СПК1хх без Eth/ПЛК3xx)
oscat.ru | Как обратиться в техподдержку? | Как отлаживать ошибки | Отладка проектов в CODESYS V3.5 | Проблема XY | Как правильно задавать вопросы | AnyDesk
Подскажите пожалуйста, существует ли возможность в панели СП310Р работать со структурами через глобальный макрос. Встроенный компилятор вроде как понимает написанный код через typedef struct, а вот объявить переменную с этой структурой уже не позволяет, ругается.
2018-01-15_11-12-58.png
2018-01-15_11-13-43.png