PDA

Просмотр полной версии : Программирование ПЛК73



Сема
09.06.2014, 18:00
Добрый день, уважаемые специалисты. А у вас нету случайно программ написанных на CFC языке для контроллера ПЛК 73, у меня есть затруднения с ST языком, я просто всё перелопатил не нашёл таких примеров, не можете помочь с этим??

Вольд
09.06.2014, 18:11
Эх Сема, не садился бы ты в чужие сани. Займись чем-нибудь попроще, например стань начальником.

amn
09.06.2014, 19:18
Тут есть тема с примерами на нужном Вам языке.
http://www.owen.ru/forum/showthread.php?t=11341&p=68729&viewfull=1#post68729

Сема
10.06.2014, 08:58
Начальником тоже не так просто стать, как вам кажется, везде головняк и тараканы..

Вольд
10.06.2014, 10:09
Начальником тоже не так просто стать, как вам кажется, везде головняк и тараканы..
Ну тогда не знаю что и сказать.

Сема
11.06.2014, 12:06
Подскажите пожалуйста, вот я написал код, логика там простейшая, когда я нажимаю на кнопку F1, срабатывает один выход, а когда на F2 срабатывает другой выход, и я столкнулся с такой проблемой, при инициализации, при нажатии F2 выход второй срабатывает, а при нажатии F1 нет, хотя код по идее написан правильно, с чем эта проблема связана??

Вольд
11.06.2014, 12:21
Так ты второе условие внимательно посмотри. Почему у тебя там сначала out2, а потом uot стоит.

Вольд
11.06.2014, 12:27
Сема, а что такое головняк и тараканы ?

Yegor
11.06.2014, 12:33
Да, Сема, у вас там out вместо out2 в конце, и это отличный пример, показывающий, почему надо писать ...
out := kbrd = key_exitа не эту тавтологию:
IF kbrd = key_exit THEN out := TRUE; ELSE out = FALSE; END_IF

Сема
11.06.2014, 13:02
Вольд, я не намерен здесь с вами заниматься пустой болтовнёй, я не для этого форум посещаю..., без обид.

А есть такая библиотека Hysteresis. только чтобы на входе было число типа real, а не int, мне нужна еще возможность регулировать отрицательную температуру???

Вольд
11.06.2014, 14:54
Вольд, я не намерен здесь с вами заниматься пустой болтовнёй, я не для этого форум посещаю..., без обид.
Какой ты неблагодарный, Сема. Мы тут к тебе со всей душой, а ты даже не хочешь ответить на простой вопрос.

Сема
11.06.2014, 16:37
Благодарность никуда не делась бы, дорога ложка к обеду... Вопрос просто бессмысленный...

Василий Кашуба
11.06.2014, 17:33
Подскажите пожалуйста, вот я написал код, логика там простейшая, когда я нажимаю на кнопку F1, срабатывает один выход, а когда на F2 срабатывает другой выход, и я столкнулся с такой проблемой, при инициализации, при нажатии F2 выход второй срабатывает, а при нажатии F1 нет, хотя код по идее написан правильно, с чем эта проблема связана??
Достаточно ФБ "=", чтобы выполнить ваши "если".

Вольд
11.06.2014, 18:56
Вопрос просто бессмысленный...
А зачем ты вбросил эти бессмысленные понятия ?

Сема
16.06.2014, 17:25
Добрый день, благодарю вас за предыдущие ответы, мне очень помогло, подскажите пожалуйста, а на плк73 как можно задать границы унифицированного сигнала тока 4-20 мА. Первичным измерителем в проекте является трансформатор тока, и мне нужно задать диапазон, я не нашёл таких настроек, можете подсказать???

ASo
16.06.2014, 20:20
Никак.
4мА - 0
20мА - 100
Считайте это процентами.
Отнормируете самостоятельно, в КДС есть ФБ для этого. Или просто *-

Сема
17.06.2014, 09:09
С этим разобрался, спасибо....

Сема
18.06.2014, 14:14
Можете подсказать пожалуйста, а как работает APID_PWM выходы не срабатывают у него, вообще никаких признаков жизни...Как его правильно запустить??

lara197a
18.06.2014, 14:24
А после загрузки проекта пуск "нажимали"?
ПЛК у Вас похоже в стопе

Сема
18.06.2014, 14:48
Нажимал, не помогло, может надо замкнуть какие то входы?? Или какие то числа надо ввести?? И на задвижку ФБ тоже не захотел работать, в чем проблема, не понимаю..

Гарчев Евгений
18.06.2014, 19:23
Можете подсказать пожалуйста, а как работает APID_PWM выходы не срабатывают у него, вообще никаких признаков жизни...Как его правильно запустить??

Почему же не срабатывают ... Выход Y_Plus(out1)=65535, Y(out3)=1 (100% выходная мощность регулятора при уставке=5 и текущем значении параметра=-10). Только Вы на вход PV_Time подавайте не константу, а переменную из конфигурации ПЛК "время измерения" соответствующего входа ПЛК, значение Y_Manual задайте в диапазоне P_Min ... P_Max.

Да, и вход PV_0 - это значение поддерживаемого параметра при нормальных условиях (т.е. до начала процесса регулирования).

Абросимов Олег
27.06.2014, 23:56
Задам вопрос здесь (затюкают наверное :/), вроде по теме подходит, так как тоже только осваиваю программирование плк73. Столкнулся с ошибкой, не могу сообразить, что не так.
Текст программы:


IF auto:=TRUE THEN str_opros:='АВТО'
ELSIF auto:=TRUE AND auto_pusk:=TRUE
THEN str_opros:='Авт. режим, В РАБОТЕ'
ELSIF auto:=TRUE AND auto_pusk:=TRUE AND ed1:=TRUE
THEN str_opros:='АВТО, В РАБОТЕ ЭД-1'
ELSIF auto:=TRUE AND auto_pusk:=TRUE AND ed2:=TRUE
THEN str_opros:='АВТО, В РАБОТЕ ЭД-2'
ELSE str_opros:='РУЧНОЙ РЕЖИМ'
END_IF;

При компиляции получаю вывод: Ошибка 4024: Должно быть THEN перед ':=' (это первая строка кода)
Что здесь не так?

lara197a
28.06.2014, 00:15
IF auto=TRUE THEN

Абросимов Олег
28.06.2014, 00:17
Точно, спасибо, такая глупая ошибка:(

Абросимов Олег
28.06.2014, 01:23
Не всё так просто, как оказалось. При коде:


IF auto=TRUE THEN str_opros:=', Авт.режим';
ELSIF auto=TRUE AND auto_pusk=TRUE
THEN str_opros:=', Авт. режим, В РАБОТЕ';
ELSIF auto=TRUE AND auto_pusk=TRUE AND ed1=TRUE
THEN str_opros:=', Авт. режим, в работе ЭД-1';
ELSIF auto=TRUE AND auto_pusk=TRUE AND ed2=TRUE
THEN str_opros:=', Авт. режим, в работе ЭД-2';
ELSE str_opros:='РУЧНОЙ РЕЖИМ';
END_IF;

выводится только ', Авт.режим' в случае
auto=TRUE AND auto_pusk=TRUE AND ed2=TRUE вместо ', Авт. режим, в работе ЭД-2'

amn
28.06.2014, 09:57
Если первое условие IF выполняется, то остальные ELSIF уже не проверяются.

Валенок
28.06.2014, 10:28
и за "auto=true" сейчас кто-нить подзатыльник даст


if auto and auto_pusk then
if ed1 then
...
elsif ed2 then
...
else
...
end_if
elsif auto then
...
else
...
end_if

А те кого ковыряния флажков достали - юзают автоматы

Абросимов Олег
28.06.2014, 14:12
Валенок и amn спасибо :). В который раз убеждаюсь, что утро вечера мудренее.

и за "auto=true" сейчас кто-нить подзатыльник даст. Это - да:). Нужно подучить матчасть по st, а то после всяких зелио, альф да лого, реально мозг тупеть начинает.

Абросимов Олег
25.07.2014, 11:19
Столкнулся с ещё одной проблемой: есть переменная уставки, которую устанавливаю с панели, типа RETAIN

VAR_GLOBAL RETAIN
day_ust AT %QD2.1.0.0 :REAL;
END_VAR
13747
Есть код изменения уставки по смс

IF day_sms THEN
Ust_day_sms:=STRING_TO_REAL (MID (Text_IN_****3,6));
IF day_ust <> Ust_day_sms THEN
day_ust:=Ust_day_sms;
END_IF;
END_IF;
Всё отлично работает, кроме того, что после присваивания уставки из /смс/ она не сохраняется при исчезновении питания, сохраняется только значение присвоенное с панели.
Что я делаю не так?

ASo
25.07.2014, 11:27
Данный параметр в дереве контроллера конфигурационный или оперативный?

Абросимов Олег
25.07.2014, 11:32
Ставлю конфигурационным, так как при оперативном, он не сохраняется в памяти после отключения питания

Валенок
25.07.2014, 12:28
С после присваивания уставки из /смс/ она не сохраняется при исчезновении питания, сохраняется только значение присвоенное с панели.ю

Ставлю конфигурационным, так как при оперативном, он не сохраняется в памяти после отключения питания
что-то тут не сходицца

Абросимов Олег
25.07.2014, 12:59
Угу,вот только не могу понять что /)

petera
25.07.2014, 14:05
Угу,вот только не могу понять что /)
И не сохранится. Потому, что для сохранения изменений конфигурационного параметра, заданного в конфигурации ПЛК, нужно использовать библиотеку Arm7_Specific.lib, а не объявлять ее ретайн.
Смотреть пример на диске "Save_parameter.pro"

Валенок
25.07.2014, 14:35
Ну или как вариант - использовать оперативный с явным ретайном.


mn:.. в меню, оперативный
var
init : bool;
var retain
sv:..


if not init then
init:=true;
mn:=sv;
end_if
sv:=mn;
..

Абросимов Олег
25.07.2014, 16:27
petera
Спасибо, ступил...жара у нас...

Валенок
Этот вариант, я пробовал, но он у меня всё равно не сохранялся при отключении, доковырять руки не дошли

Валенок
25.07.2014, 16:55
не знаю, что там ковырять. Лично я с 63/73 если нужно программно менять параметры меню - только так. Ни разу проблем не было. Вариант от petera - рабочий, проверял. Но заломало как-то описание искать, несколько строк накидать быстрее было.

Абросимов Олег
25.07.2014, 21:35
не знаю, что там ковырять. Лично я с 63/73 если нужно программно менять параметры меню - только так. Ни разу проблем не было. Вариант от petera - рабочий, проверял. Но заломало как-то описание искать, несколько строк накидать быстрее было.
Согласен намного проще. Скорее всего у меня была где-то ошибка, по возможности проверю обязательно.