Здрасте всем.
Впервые столкнулся с программированием ПЛК, задачка такова:
в проекте пять ВУ: к1, к2, к3, к4(Р) и ttr (К) при их срабатывании необходимо засвечивать соответствующий светодиод. Как это реализовать? ПЛК73-ККККРРРР-М
Здрасте всем.
Впервые столкнулся с программированием ПЛК, задачка такова:
в проекте пять ВУ: к1, к2, к3, к4(Р) и ttr (К) при их срабатывании необходимо засвечивать соответствующий светодиод. Как это реализовать? ПЛК73-ККККРРРР-М
Делаю так:
А Вы на каком языке в CoDeSys пишете проект?
Сам проект на CFC
IF k1=1000 THEN svet:=s1;
ELSE svet:=0;
END_IF;
IF k2=1000 THEN svet:=S2;
ELSE svet:=0;
END_IF;
IF k3=1000 THEN svet:=s3;
ELSE svet:=0;
END_IF;
Запускаю ПЛК и срабатывает только третий светодиод
А какие значения у Вас стоят под s1,s2,s3?
Должны быть значения 1,2,4,8,16,32 по порядку и 0 конечно
PROGRAM swetodiod
VAR
END_VAR
VAR CONSTANT
s1:BYTE := 1;
s2:BYTE :=2;
s3:BYTE := 4;
s4:BYTE :=8;
s5:BYTE := 16;
END_VAR
Хм-м, если так посмотреть на программку Вашу, то получается что она сверху вниз проверяет все условия. И, в итоге, останавливается на последнем.
Т.е. k1=1000? да, значит 1 засвечивается (параметру Svet присваивается значение 1)
идем дальше k2=1000? да, засвечиваем второй (причем, первый гаснет, т.к. параметру Svet присваивается значение 2)
дальше k3=1000? да, засвечиваем третий (второй гаснет, т.к. параметру Svet присваивается значение 4).
алгоритм такой:
к1=1000 на 5сек (должен гореть первый 5 сек),
через 2 сек к2=1000 на 5 сек (должен гореть второй 5 сек),
через 2 сек к3=1000 на 5 сек (должен гореть третий 5 сек),
через 2 сек снова к1=1000 на 5 сек (должен гореть первый 5 сек),
через 2 сек снова к2=1000 на 5 сек (должен гореть второй 5 сек),
Из всего засвечивается только третий в момент к3=1000