УкраїнськаEnglishmRussian
Вход/Новый
В теме нет новых постов

Последовательность запуска модулей


Автор Сообщение
Сообщение создано: 14. 01. 2020 [08:57]
coro
Bkmz Bkmz
Создатель темы
Зарегистрирован(а) с: 08.10.2014
Сообщения: 12
Добрый день!
К элементу Protocol_Modbus прикручен шаблон с процедурой, в которой происходит вызов функций (JavaLikeCalc), которая формирует аварийное сообщение (SYS.DAQ.LogicLev[idk].alarmSet(tErr, levErr, idk + "*" + typez);) Из-за того, что Protocol_Modbus запускается и начинает исполнять процедуру раньше инициализации DAQ_LogicLev, получаем - на старте имеются несформированные сообщения. Подскажите, как лучше реализовать хотелки - надо поменять алгоритм действий, или можно поменять последовательность запуска модулей, или выставить задержку (слип не подходит) в теле процедуры?
Сообщение создано: 14. 01. 2020 [21:23]
roman
Roman Savochenko
Moderator
Contributor
Developer
Зарегистрирован(а) с: 12.12.2007
Сообщения: 3750
"coro" wrote:

К элементу Protocol_Modbus прикручен шаблон с процедурой, в которой происходит вызов функций (JavaLikeCalc), которая формирует аварийное сообщение (SYS.DAQ.LogicLev[idk].alarmSet(tErr, levErr, idk + "*" + typez);) Из-за того, что Protocol_Modbus запускается и начинает исполнять процедуру раньше инициализации DAQ_LogicLev, получаем - на старте имеются несформированные сообщения. Подскажите, как лучше реализовать хотелки - надо поменять алгоритм действий, или можно поменять последовательность запуска модулей, или выставить задержку (слип не подходит) в теле процедуры?

Не вызывать alarmSet() извне для объекта контроллера в неизвестном состоянии, которая собственно и предназначена для вызова из внутренних процедур этого объекта.

А вызывать тогда alarmSet() в параметрах этого объекта контроллера или прямо SYS.message().

"coro" wrote:

или выставить задержку (слип не подходит) в теле процедуры

Можно и подождать, поскольку там периодический вызов. Что написано в "Как сделать"!

Learn, learn and learn better than work, work and work.



9362