PDA

Просмотр полной версии : Пользовательский функциональный блок



fill-forty
15.08.2009, 22:05
Добрый день, уважаемые знатоки...
Люди с "бородой", не первый год сидящие на "бесплатной" CodeSys :)

Программа хорошая, ничего плохого не скажу. Но мануала по ней на русском не много. Как и по средам программирования, которая она "тянет"
Много фрагментарных знаний, но целостных нет. И как и везде, приходится дёргать по ниточкам с разных источников.

А теперь к делу... Ко мне пришёл один хороший знакомый. И приволок ПЛК 100 К.

Накидал схемку, спросил реально ли это? (Именя опыт программирования в delphi, visual, 1C)
Естественно, я сказал, что реально. То тому как из IF THEN ELSE, можно хоть чёрта лысого запрограммировать. И всё бы ничего....
Да только надо мне, с ваять пользовательский функциональный блок. Который бы мог понимать. Когда при нажатии на одну и ту же кнопку, аппарату надо выключится, или включится.
Но как не бился, не понял я, на каком принципе это осуществить.
И вообще, реально ли это???? В этой программе сделать пользовательский блок.
Вот мои скромные наброски...

SA1 Это та самая кнопка которая может включать и выключать установку одним нажатием.
check_1 Это булевский объект. Меняет своё состояние. Тем самым, может управлять разными цепями.


IF SA1=TRUE THEN
IF check_1=TRUE THEN
check_1:=FALSE;
ELSIF check_1=FALSE THEN
check_1:=TRUE;
END_IF;
END_IF;
push_unpush:=check_1;


Хоть какую нибудь инфу. Мне всего то надо с ваять квадратик с одним входом и двумя выходами, булевского происхождения.

И где мне вообще, найти мощную, русскую поддержку, по этой среде разработки. Где конкретно могут разбираться примеры с объяснениями, а не сухие термины на 57 страниц, из который кроме "какие мы молодцы" и "вот что наша программа может", ничего выудить нельзя, А мяса, МЯСА нету. Если не считать два скудных примера, которые решаются частями сразу в 5 языках, причём, любые 2 из них, чисто по складу ума любой человек не в состоянии обработать.
За ранее благодарен, с уважением...

Nik
15.08.2009, 23:19
Нет уважаемый. Твой код генератор импульсов скважностью - цикл ПЛК. Особеность МЭК61131-3. Писать пример и разъяснять нет времени. Может кто пожелает на форуме. Дополнительную информацию посмотрите на www.prolog-plc.ru.

nikita
16.08.2009, 09:20
fill-forty, если я правильно понял задачу, то вот текст:

trigvkl(clk:=a);

IF trigvkl.Q THEN
c:=c + 1;
END_IF

IF c=1 THEN
b:=TRUE;
END_IF

IF trigvkl.Q AND c=2 THEN
b:=0; c:=0;
END_IF

Первое нажатие кнопки a - включение выхода b, следующее - выключение, следующее - включение, следующее - выключение и т. д. до бесконечности.

trigvkl - триггер по переднему фронту, объявлен как trigvkl: R_TRIG, с - переменная типа int

Программка работает, отпишитесь, пожалуйста, помогло это или нет

Малышев Олег
16.08.2009, 15:47
Смотрим хелп на ФБ SR(или RS) триггеры - это оно.
Извините что не сдержался, понты про разные языки программирования - и наезды на Кодесис - не предмет для первого сообщения.

nikita
16.08.2009, 18:39
ну не знаю, у меня всё работает:), и библиотечку я свою из этого сделал - тож работает

fill-forty
16.08.2009, 19:53
Конечно, и так видно, что будет работать, в этом сомнения нет.
Но только проверить сейчас не могу. Прибор забрали, а в режиме эмуляции, схема не запускается. CoDeSys SP RTE два раза выругался, что у меня полное демо, а потом сказал, что у него из-за этого сбой службы.
По этому работать он вообще не будет. Уже 2 раза сносил code sys. Не хочет работать. Как на заводе поставят моё детище. Тогда узнаем...
;)
Всем большое благодарю. :)

lara197a
17.08.2009, 08:49
1502Я выкладывал пример на2 или 3-х языках пару недель на зат на точно такую же тему.