Всем привет.
Подскажите пожалуйста, где почитать или как правильно работать и создавать объекты в дереве POU?
Вид для печати
Всем привет.
Подскажите пожалуйста, где почитать или как правильно работать и создавать объекты в дереве POU?
Всем добрый день. Проблема такая. Нарисовал схему включения и отключения выхода одной кнопкой.
Вложение 30473
Включение происходит, а выключение нет.
Проверка работы схемы в эмуляторе
R_TRIG должны иметь разные объявления (имена), у Вас один блок.
С разными тоже не работает
а кнопку старт еще раз отпустить и нажать ? R_Trig только передний фронт ловит.
Месье понимает толк в сложности.
Вложение 30474
Всем спасибо.
Добрый день!
как реализовать алгоритм сброса в FALSE значимых переменных при старте программы?
ПЛК 150 И.М
Если эти "значимые" переменные не находятся в слейве ПЛК(они будут retain и сохраняют значения при выключении ПЛК), то ничего делать не надо.
При старте программы ВСЕ переменные инициализируются начальными значениями, =0 для чисел или FALSE для BOOL. Если конечно Вы принудительно не задали начальные значения отличные от нулевых при объявлении переменных.
Вложение 30490
Конфигурация оборудования - ПЛК150 (master) - СП310 (slave) - ПЧВ (slave)
Система построена для насосной станции опресовки. Суть в том что когда с панели нажимаем кнопку старт (используется регистр PSW) происходит старт системы.
Если не перевести систему в режим стоп и выключить/включить питание происходит авто запуск (это не нужно)
Как реализовать функционал сброса переменной "СТАРТ" при выключении/включении питания.
Пробовал использовать функциональную область - все равно происходит кратковременный старт системы
Рекомендую при нажатии включать бит старт при отпускании сбрасывать бит старт и все будет хорошо.
Когда нажали кнопку в панели, контроллер ее увидел и зафиксировал старт у себя.
Когда отпустили панель сбросила старт.
Теперь если выключить контроллер , а потом включить - старта с панели не будет, потому что его нет, а автоматический режим в контроллере не сформируется пока не будет дан старт.
Так и реализовано! на панели 2 кнопки "СТАРТ" и "СТОП" (функция "включена пока нажата")
В ПЛК переменная типа BOOL "start_system" c функцией SET/RESET
Сответственно:
При кратковременном нажатии на кнопку "СТАРТ" на панели переменная "start_system" фиксируется в TRUE
При кратковременном нажатии на кнопку "СТОП" на панели переменная "start_system" фиксируется в FALSE
когда переменная "start_system" находится в TRUE если отключить/включить питание плк и панели, переменная "start_system" по прежнему будет находится в положении TRUE
Как сделать чтоб при востанавлении питания плк и панели, данная переменная сразу же находилась в FALSE
Ваша ошибка в том что вы используете одну переменную, а нужно для старта одна, для останова другая.
У контроллера переменные "не retain" сбрасываются при включении питания, посмотрите тип вашей переменной.
В переменной "start_system" отсутствует галочка "RETAIN"
Вложение 30495
ПАНЕЛЬ
Вложение 30496
Вложение 30497
В панеле правильно.
В контроллере "Нач.значение" укажите значение "0" и если не поможет сделайте принудительное обнуление при первом скане программы.
Еще посмотрите раздел в этом-же форуме "Инициализация переменных при запуске ПЛК 150"
Попробуйте сделать так.
Вложение 30498
в CDS нет явных обратных связей, может заработать, а может не заработать...
Проблема решилась только при использования модуля "Statistic" в конфигурации ПЛК. Всем спасибо за помощь!
Добрый день, работаю в CoDeSys на языке LD (мне так проще - я привык к релейным обозначениям), работаю в CoDeSys очень редко - по мере необходимости, иначе давно бы уже этот вопрос для себя решил. И вопрос следующий - Возможно ли на LD работать с аналоговыми величинами, выставлять уставки срабатывания и заводить их на катушку реле? Например для ПЛК100+МВ110-8А или ПЛК150? Подскажите пожалуйста, что почитать? Или примеры где посмотреть простенькой программы?
За ранее, спс
Да можно конечно и на LD, блоки поддерживает, например компаратор (сравнение)
LE,GE и т.п
Если сможете что-либо рассмотреть, то вот пример
https://www.youtube.com/watch?v=XOI72PK-gGY
Если сможете что-либо рассмотреть, то вот пример
Всем добрый день. Подскажите возможно ли организовать счет от 0 до 100 в одну сторону и от 0 до -100 в другую сторону на счетчике CTUD?
Спасибо Валенок.
Всем привет. Помогите разобраться в ST, залип на преобразовании переменных из bool_to_word. Заранее спасибо
Вложение 30746
http://www.kipshop.ru/CoDeSys/steps/codesys_v23_ru.pdf стр.312 пример на ST
Разобрался. Вопрос закрыт
Кто так пишет?
Тогда уже надо так
Хотя на нафига здесь BOOL_TO_WORD?Код:IF BOOL_TO_WORD(Alarm_M1) = 1 THEN
Вообще-то нужно так
А если еще окажется, что out_Alarm_M1 имеет тип BOOL, то нафига здесь вообще IF...THEN ?Код:IF Alarm_M1 THEN
out_Alarm_M1:=1;
END_IF
C IF...THEN только если нужно "защелкнуть" состояние Alarm_M1=TRUEКод:out_Alarm_M1:=Alarm_M1;
Я думаю, что это касается и 55 строки
Добрый день. Прошу помощи знатоков. Стоит задача модернизация 10 объектов (ЦТП) в плане телеметрии. Для ознакомления с программированием приобрел ПЛК-150. Задача с точки зрения программирования простая, опросить все датчики, счетчики и передать результат на верхний уровень. С нижнем уровнем проблем нет, создал простенький проект в Simpl Scada по Ethernet и RS-232 Debug с штатный кабелем который идет в комплекте через OPC сервер Codesys все работает. Проблема собственно в чем, связь с объектами будет производится по радио каналу и скорость обмена по RS-232 Debug необходима 9600 бит/сек. В конфигурации ПЛК создаю Modbas slave произвожу его настройку согласно инструкции соответствующие настройки вношу в настройки COM порта ПК прописываю переменную запускаю скаду она обращается к виртуальному COM порту (загорается светодиод преобразователя), а на ПЛК светодиод связь не загорается. Пробовал и кабелем КС1 и делал такой же только без перемычки и в ответ тишина. Что делаю не так?? Какой кабель нужен или может порт RS-232 Debug может использоваться только для программирования и отладки в Codesys?? В качестве скады планируется TRACE Mode т.к. она используется в данный момент и обращаться к ПЛК нужно будет не через ОРС а напрямую к регистрам.
Уважаемые форумчане, помогите пожалуйста написать программу на языке LD.
На вход подается один аналоговый сигнал, далее преобразуется(любым путем), и на выходе получается другой аналоговый сигнал.
Дипломная работа? Слишком мало вводных