В принципе нормальное решение. Спасибо за совет
Вид для печати
По поводу комментарий согласен. Как писал ранее, за комментарий знаю, просто в этой итоговой программе опустил их. Программу начинал с самого начала несколько раз и по началу все комментировал. Ну и как не странно, порой из-за нехватки времени или энергии, после трудового дня, забрасывал все на 1-1,5 недели и потом возвращаясь к ней буквально за 5-10 минут понимал, что куда и откуда без комментов.
По поводу названий шагов можете пример привести? Просто тот же Сергей Романов так же называет шаги 0,1,10,20 и т.д.
Спасибо, попробую
Создаёте новый тип данных enStep (на вкладке типы данных) с примерно таким содержимым (имена и числа произвольно):
В программе используете например так:Код:TYPE enStep : (
gciStopped := 0, (* Остановлен *)
gciRun := 1, (* Запущен *)
gciPause := 10, (* Пауза *)
gciDelay := 30, (* Задержка *)
gciAvar := 31 (* Авария *)
);
END_TYPE
С типом данных "перечисление" можно работать, как с типом данных "INT"Код:
Step: enStep; (* Объявление *)
...
IF ALARM THEN Step:=gciAvar; END_IF
...
IF Step=gciPause AND ...
...
CASE Step OF
gciRun: RED:=TRUE; GREEN:=FALSE; YELLOW:=FALSE; ZOOMER:=FALSE;
...
Программа уже давненько написана, хотел по управлять через Скаду и продемонстрировать кое-кому. Все нарисовал, перенес с Codesys 2.3 в Codesys 3.5, но заметил проблему, что при длительном нажатии кнопки "Стоп", шаги пролетают, хотя должны отключаться по порядку с выдержкой времени. То, есть если мышкой кликнуть очень быстро, не задерживая палец на нажатии, то все ок). Не хочу вспоминать и разбираться в программе, можно поломать, то что работает. В общем как я понял, надо воткнуть R-Trig к кнопке "Стоп" и сделать это в скаде через скрипт. Но тут другое, Codesys 3.5 передает Word, а мне в скрипте надо как-то из него вытащить нужный бит, не пойму как. Например, в редакторе мнемосхем это делается просто и понятно, а как это сделать в списке активных каналов?
Ерунду пишите, вы из скады можете обратиться прямо к нужному биту, надо только посчитать номер бита. Типа 0х 4
А триггер можно поставить в программе ПЛК после принятия бита.
Мало того, у вас в соотнесении прописаны именно биты (непонятно зачем), а обращаетесь вы из скады к маске.