Просмотр полной версии : Сброс программных модулей (PRG) Codesys 3.5 sp14
Gachok24
09.05.2023, 22:19
Добрый день.
Подскажите пожалуйста, как сбросить работу пользовательской программы (PRG) из другого модуля?
Описание задачи:
Есть 3 режима (ручной, по таймеру, по датчику) для работы по каждому из режимов написан программный модуль.
При смене режима необходимо сбрасывать работу модулей для остальных режимов.
Gachok24
10.05.2023, 13:03
Весь код выполнен CFC для наглядности. (не хотелосьбы переписывать на ST)
Именно так не пробывал, но пробывал со входами EN/ENO. Не помогло
Выпонение возобновляется.
Дополнение каждый модуль имеет много таймеров и тригеров и четкую последовательность
Gachok24
10.05.2023, 13:09
ну если следовать прям букве(".. при смене режима.. ") , то типа:
var
mstate_ :.... := -1; //-1 для старт-сброса
....
mstate :=...
prg1(OnReset := mstate <> mstate_ and mstate <> 1, Enable = mstate = 1);
prg2(аналогично..);
prg3(аналогично..);
mstate_:=mstate;
а во внутрях каждой prgx типа так:
if OnReset then //событие
... //что то там сброс
elsif Enable then
... //собсно работа..
end_if
Это если сам сброс не влияет на других
Не уловил в чем идея.
просто прописать сброс всех переменных не поможет (F_trig, TOF и тп)
kondor3000
10.05.2023, 15:47
Описание задачи:
Есть 3 режима (ручной, по таймеру, по датчику) для работы по каждому из режимов написан программный модуль.
При смене режима необходимо сбрасывать работу модулей для остальных режимов.
Без изменения кода всех программ вы не сможете сбросить их работу. Например чтобы сбросить таймер надо не только снять сигнал со входа, но и записать в PT=T#0ms.
И так со всеми таймерами. Вам придётся добавить 3 глобальных булевых переменных, по которым будут сбрасываться все входы (выходы) и обнулятся все таймеры.
Начните с одной программы, сделайте её отключение по переменной. Глобальные вам помогут управлять включением, выключением из других программ.
Такие вещи надо изначально продумывать и писать код под нужный алгоритм.
Powered by vBulletin® Version 4.2.3 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot