Это другое.
Я могу менять время горения и "негорения".
Но, попробую с простыми таймерами и триггерами - должно получится короче.
Вид для печати
Это другое.
Я могу менять время горения и "негорения".
Но, попробую с простыми таймерами и триггерами - должно получится короче.
:) Спасибо. Это праздник какой-то!
VAR
TON_BLINK_RED2: TON;
IDENT_RED2: BOOL:=FALSE;
DELAY_RED2: TIME;
COUNTER_RED2: INT:=1;
END_VAR
(*Моргание короткой записью от Capzap*)
IF TON_BLINK_RED2.Q=TRUE THEN
IDENT_RED2:=NOT IDENT_RED2; COUNTER_RED2:=COUNTER_RED2+1;
END_IF
IF IDENT_RED2=FALSE THEN
DELAY_RED2:=T#60S;
ELSE
DELAY_RED2:=T#30S;
END_IF
TON_BLINK_RED2(IN:=NOT TON_BLINK_RED2.Q AND COUNTER_RED2<=6000 , PT:=DELAY_RED2);
RED2:= NOT IDENT_RED2 AND COUNTER_RED2<=6000;
Всем добрый день. Вопрос такой. Можно ли остановить работу таймера TP в процессе выполнения программы ПЛК т.е. поставить на паузу когда он запустился и второе, обнулить его.
А к какой библиотеке относится данная функция [TIME()]? Не могу найти ее описание.
Подскажите, пожалуйста.
Если из программы вызывать функциональный блок, в описании переменных которого им присваивается значение
например (VAR U:BOOL:=FALSE; END_VAR)
- то каждый цикл прогона основной программы и вызова этого функционального блока - эта переменная будет ставиться в указанное значение?
Если да - то как сделать так, чтобы эта переменная оставалась такой, как и была в предыдущем цикле выполнения основной программы?
Это начальное значение при инициализации блока
Как это понять?
Эта инициализация происходит при первом вызове блока?
В дальнейшем, при его вызове в каждом цикле выполнения программы, он просто выдаёт выходную переменную, а сам работает по кругу?
А если надо иметь возможность менять переменные в блоке - нужно обозначить их как входящие; и вызывать блок с указанием изменённых переменных?
Пример с библиотекой modbus lib можете дать ссылку где посмотреть как работать с ней?
Здравствуйте!
Подскажите, как на ТРМ212 открыть конфигурацию второго входа.
Листаю параметры и на этапе когда должен перейти к нужному пункту(по инструкции) меня перекидывает к начальному параметру 1 входа.
Что я не сделал или сделал не так, пожалуйста, помогите.
всем добрый вечер!
учусь , программировать в SFC
есть несколько вопросов
1. входы
поскольку система еще в проекте, заранее неизвестен тип датчиков (нормально закрытый или НО)
можно ли как-то сделать так, чтобы глобально указать полярность каждого входа?
например, в LD, я обычно в начале программы присваиваю значение каждого входа внутренней переменной (обмотке) а в дальнейшем, вместо входа, подставляю значение обмотки. Это позволяет, быстро менять полярность входа на "живой" системе.
можно ли как-то решить эту задачу , при использовании SFC?
2. Чего можно и чего нельзя в режиме SFC
можно ли многократно использовать один и тот же таймер?
то есть в одном шаге, он используется для одного, в другом шаге, для другого
то же для обмоток и выходов, то есть в разных шагах обмоткам и выходам присваиваются разные значения
Здравствуйте.
Может кто-нибудь подскажет, каким образом лучше отправлять на HMI дату последней редакции PLC_PRG или название проекта (в моем случае это выглядит как ххххххх_15_03_2018.pro)? Хочу что бы на HMI можно было увидеть дату последнего обновления, без подключения доп устройств. В ручную каждый раз писать - не вариант. Хотелось бы использовать переменную.
Спасибо!
Добрый день. Используйте библиотеку SysLibProjectInfo.lib.
Вложение 36064
Вложение 36063
Огромное спасибо за подробный пример! У меня беда с ST, всю голову поломал))
Но, кое как добился результата, на знакомом для меня CFC.
Вложение 36073Вложение 36074
Может кому пригодится.
Только лучше добавить для функции вход EN и подавать туда единичный импульс при старте ПЛК - иначе вся информация будет считываться каждый цикл ПЛК, а в этом, собственно, нет нужды.
Пробовал сделать управление двигателем 1500 об/мин через частотник . Связь ПЛК 100 с частотником через RS485 . Сделал программу , чтобы плк считал количество оборотов вала двигателя и останавливал при достижении заданного числа оборотов . Соответственно 50Гц- первая скорость и 5гц вторая скорость ( для точной остановки ) Вторая скорость включается за 15 оборотов до требуемого . Датчик индуктивный , реагирует на пластинку , закреплённую на валу . Датчик до 1000гц.
Но двигатель не работал так как хотелось . То переходил с 50 до 5 герц и делал 1-3 оборота и останавливался точно (как я и хотел). Или с 50гц сразу останавливался , но делал 2 - 3 лишних оборота . Увеличивать число оборотов на медленной скорости не хотелось бы .
Думаю дело в скорости выполнения программы или обмена данными между ПЛК и частотником .
Что нужно сделать для того , чтобы моё устройство работало стабильно ?
добрый день!
что-то не нашёл ни поиском ни в документах, - есть ли какие-то "ограничения" в CDS на размерность уставок времени в таймерах (ТОN ТOF Blink....)в рамках одной программы? - только в миллисекундах к примеру, или можно придерживаться только одной размерности в одном проекте, допустим в секундах?
или могу я сделать допустим у Blink один вход в часах, другой в минутах, а где-то TON в миллисекундах?
Добра всем.
Помогите(ткните носом) как написать простейший генератор импульсов(до 4 кГц), какую может библиотеку использовать...и т.д. в кодесис для быстрых выходов на ПЛК110.
задача: один параметр на вход - задатчик частоты, один параметр на выход - частота меняется от 0 до 3,5кгц.
пробовал использовать BLINK из библиотеки Util, но выяснил что им до 3,5 кГц никак не получиться выжать....
Благодарен, за ранее.
Здравствуйте!
Прошу опытного совета новичку. С термопреобразователя ТРМ148 по rs485 приходит значение с датчика температуры. В codesys я получаю число типа REAL (для примера): 24,31396. В HMI визуализации codesys смотрится оно очень убого. Хочу преобразовать и выдать это число в формате: 24,3, - то есть округлить до десятых без нулей (если в INT преобразую то десятки уйдут). Что можете посоветовать в данном случае? Спасибо за внимание.
Добрый день. Используйте в визуализации форматированный вывод (в примере %.2f - два знака после запятой):
Вложение 36319
Добрый день!
Вопрос по синтаксису языка СFC
для программирования ПЛК110
Как на языке СFC
написать изменение бита в переменной типа WORD
аналогично тому, как я написал на языке ST?
OUT1:WORD;
OUT1.0:= nom_ust=1;
те как записать присвоение значение 1 нулевому биту переменной OUT1 типа WORD на языке CFC?
Спасибо заранее.
Оператор MOVE используется для присвоения значения одной переменной другой соответствующего типа. В CFC есть возможность управлять разрешением работы блока с помощью входов EN/EN0 (Вы сами и писали ранее).
Для такой задачи можно использовать и оператор EQ - так наиболее наглядно
День добрый!!!
Подскажите как с ПЛК отправлять готовый файл архива на ПК по ETHERNET ???? Скажем на диск С в корень (на ПК)?
Есть ли возможность это сделать с помощью готовых библиотек?
Если можно подробнее.Отправка интересует автоматическая и без запуска CDS.
ПЛК 110-60М!!!
разработать для плк библиотеку с протоколом samba, если же ПК может выступать в роли файлового сервера, то написать для плк клиент под этот сервер, в бибке oscat например есть реализация фтп-клиента, ну или отказаться от идеи что плк что то должен куда то отправлять, а занятся решением как с ПК можно получить файл, будь то plcio или что то еще по предпочтениям
capzap- Спасибо огромное !!!! облегчил задачу)))
capzap-Не сочтите за наглость:), а может есть готовое решение без участия человека по передаче файла в автоматическом режиме на пк????
метод с plc_io и plccommander конечно хороши, но оператору ковыряться в файлах ПЛК не надо и тем более с возможностью их удаления!!!!
если не сложно "пните" в правильном направлении)))))
В делфи и Си не силен(((((
можно попробовать на плк организовать подобие веб-сервера, посылаете запрос с ПК например командой curl в ответ приходит файл. В любом случае потребуется реализовывать самостоятельно, готовые решения обычно делаются "под себя" и могут отличаться от Ваших желаний
capzap-Спасибо за уделенное время!!)))
Получается надо программиста искать который сможет написать приложение для ПК?
для плк, на ПК можно просто браузер открыть с нужным url, но если нужен автомат то curl можно в cmd файле запускать по расписанию