Вот тут должен быть пример:
https://forge.codesys.com/forge/talk...ad/5553b4e24f/
Вид для печати
Вот тут должен быть пример:
https://forge.codesys.com/forge/talk...ad/5553b4e24f/
Не, aslSchedule!!! Скопировано из справки
Первый раз работаю с Codesys 3.5, не могу связаться с ПЛК-200-01-CS по Ethernet. По USB работает, хотя отваливается иногда. Таргет установлен, IP ПЛК стандартный, 192.168.0.10, порт Ethernet 1, на компьютере статический 192.168.0.1.
При этом вэб конфигуратор LuCI ПЛК видит стабильно. А Codesys при сканировании ничего не находит. Антивирус отключил. Что не так делаю?
Уважаемы, тут пытаюсь скопировать комментарии с CoDeSys2.3 и перенести их в CoDeSys 3.5, банально - Ctrl+C и Ctrl+V. При переносе таким способом CoDeSys3.5 принимает какую-то "АБРАКАДАБРУ". Скрин прилагаю.Вложение 54540
Копируй при включенной русской раскладке
Посмотрите тут: https://owen.ru/forum/showthread.php...l=1#post330018
Подскажите, в какое место КС3.5 необходимо поместить файл библиотеки OwenCommunication_v3.5.11.3.compiled-library? Уже замучался искать. Репозиторий не видит её нигде при вводе в поисковой строке.
Благодарю.
Добрый день. Как можно реализовать функцию выключения контроллера, как мы компьютер выключаем? Хочу реализовать для обхода ошибки трендов при не корректном выключении ПЛК
Добрый день!
В ходе разработки и эксплуатации накопился ряд вопросов:
1. Возникла проблема удаленной загрузки приложения в ПЛК210 через wan порт. Загрузка происходит с моего ПК, шлюзом является локальный ПК на объекте с установленным Codesys Gateway к нему подключение есть (зеленый индикатор), но при попытке подключения к ПЛК codesys выдет ошибку "не одно из устройств не отвечает запрос поиска" (активный путь указан ручным прописыванием IP адреса, согласно рекомендации). Тем временем подключение к web-конфигуратору есть и в межсетевом экране правила Allow-CODESYS-GATEWAY-TCP и Allow-CODESYS-GATEWAY-UDP разрешены.
2. Как в Codesys скрыть файлы и дерево проекта, оставив в нем только возможность загрузки проекта в ПЛК?
3. Есть ли какая-либо документация посвященная библиотеке NetVarUdp? Хотелось выцепить оттуда переменную наличия/отсутствия связи между двумя ПЛК в одном проекте.
Добрый день.
1. А из CODESYS на локальном ПК удается загрузить проект?
2. Можно запаролить объекты в дереве проекта. См. здесь: https://youtu.be/yhfUygKHYU4
3. Можно детектировать отсутствие связи по счетчику ответов с помощью глобальных диагностических переменных:
Вложение 54641
1. Не пробовал, но так как это ПК предприятия не хотелось бы на него ставить среду разработки
2-3. Спасибо!
1. Возможно, на этом ПК заблокированы нужные порты?
Проверка загрузки именно из CODESYS IDE сразу бы дала новую информацию по этому вопросу.
Добрый день. Для ПЛК 210(slave) и библиотеки MB_TcpSlave какое максимальное количество регистров контроллер может отдать мастеру за один групповой запрос?
Доброго времени суток!
Начинаю разбираться с CodeSys 3.5
Подскажите почему не отрабатывает ситуация когда я использую функции, точнее когда я тестировал их в простых арифметических действиях, то все отрабатывает, но если использовать функцию на FB такого рода как на скрине и подавать туда переменную при нажатию на кнопку то нет реакции.
В итоге в программе для каждого из входов тыкаю свой таймер с привязкой к переменной, разве нельзя описать функцию и подавать туда на вход переменную.
Немного не ясна работа функций тогда. Задача в данном конкретном случае подать глобальную переменную на вход функции и инвертировать ее через определенный промежуток времени.
Если несколько цепочек данного кода поместить просто в программу и привязать напрямую переменные все работает.
PS да можно сделать через ТР или TOF но это не принципиально в данном случае.
Вложение 54769
Здравствуйте, дорогие гуру или не совсем!
Возник вопрос по алгоритму. Задачка такая: надо по нажатии кнопок на визуализации прибавлять или убавлять некоторые фиксированные константы к работающей внутри ФБ переменной.
Я придумал алгоритм, тупой до омерзения. Внутри ФБ входная переменная всё время прибавляется к той переменной, которую нужно корректировать из визуализации. Следующим оператором в эту входную переменную сам ФБ пишет ноль. Ну и соответственно, кнопки из визуализации пишут свои константы в эту же входную переменную ФБ.
Вроде бы всё работает, но нет ли тут какого криминала, в том, что во входную переменную ФБ пишет не только визуализация, но и сам ФБ?
А зачем изнутри ФБ управлять его входами? Не проще прямо в действии кнопки прописать что-то типа iVar1:=iVar1+c_iConst;
Где iVar1 это вход вашего ФБ, а c_iConst константа которую прибавляете при нажатии
Тогда придётся делать переменную выходной, чтоб визуализация её видела, а потом чем-то в неё писать результат сложения с константой. Или я что-то недопонял во входных и выходных переменных?
Что-то не допоняли. Вы на вход ФБ подаете какую-то переменную. Вот и подавайте ее сразу в конечном виде. Зачем внутри ФБ конпку обрабатывать? Вы весь смысл ФБ хотите разрушить своими действиями иначе.
Потому что внутри ФБ эта переменная ещё и инкрементируется время от времени по нескольким условиям. И вытаскивать её наружу - это разломать весь ФБ почти что.
Зы. Видится абсолютно травоядный алгоритм: всё то же, что и было, плюс каждая кнопка ещё и меняет на противоположное состояние дополнительную битовую переменную на входе ФБ. А ФБ, увидев, что бит переключился, прибавляет константу к переменной
Ну не знаю. Мне пока кажется, что если к переменной внутри ФБ идёт с десяток обращений, примерно половина из них на чтение, а половина на запись. И если я эту переменную вынесу из ФБ, то проще вообще разломать весь ФБ, и все действия над переменной осуществлять в плс-прг.
Есть ещё мысль: никакую входную переменную в ФБ не сбрасывать, а просто завести ещё одну переменную, которой перманентно присваивать сумму входной переменной, которую прибавляет и убавляет визуализация, и той переменной, что пересчитывается алгоритмом самого ФБ. И уже этой суммарной переменной и оперировать в результате.
Тоже нормально и лаконично вполне. Но всё-таки изначальный вопрос о правомерности сбрасывания входной переменной силами самого фб хотелось бы разъяснить для себя
Добрый день, прошу помочь оценить возможную глубину временного интервала для записи 50 трендов с дискретностью в 1мин. на СПК.
Вопрос по стандартному блоку Blink: если во время работы ему изменить TIMEHIGH или TIMELOW, то он все равно доработает до конца цикла со старыми значениями и только потом начнет работать с новыми. Например, если они были равны 1 час и попытаться изменить их на 1 минуту, Blink все равно завершит цикл условно через два часа и только потом начнет мигать с периодичностью в 2 минуты.
Вопрос: можно ли блок как-то сбросить при изменении TIMELOW или TIMEHIGH?
Не выходит. Написал тестовый код:
Если TIMEHIGH и TIMELOW задать допустим 1 час, а потом 1 секунда, то в каких бы пропорциях не менялись значения en1 и en2, время в 1 час никак не сбрасывается.Код:VAR
blink1:BLINK;
time1 : TIME;
time2 : TIME;
en1 : BOOL;
en2 : bool;
ou1 : bool;
END_VAR
IF en2 THEN
blink1(enable:= en1, timelow := time1, timehigh := time2);
END_IF
ou1 := blink1.OUT;
Вариант с нужным вам поведением:
"Переключение" en1 (с TRUE на FALSE и обратно на TRUE) применит новые параметры времени.Код:PROGRAM PLC_PRG
VAR
blink1:BLINK;
time1 : TIME := T#1M;
time2 : TIME := T#1m;
en1 : BOOL;
en2 : BOOL;
ou1 : BOOL;
reset: BOOL;
END_VAR
VAR CONSTANT
blink2: BLINK;
END_VAR
IF en2 THEN
blink1(enable:= en1, timelow := time1, timehigh := time2);
END_IF
IF NOT(en1) THEN
blink1 := blink2;
END_IF
ou1 := blink1.OUT;
Не пойму, что не нравится компилятору?
Пишет: C0037: 'eState' не является входом 'PLC_PRG'
Ведь другие переменные видит...
Объявление в PLC_PRG:
Вложение 54968
В коде вызываемой функции:
Вложение 54969
Один POU не может произвести запись в локальные переменные другого POU.
Передача данных происходит через входные и выходные переменные.
Ясно. Спасибо!
Разбираемся дальше..Проект огромный у меня и притом первый ..но делать нужно за нами Москва...
Итак есть потребность в ПИД регуляторе ( управление чиллером ) я так понимаю что торопится с ним не стоит и поэтому ну думаю время для ПИД выставить ...хотя бы 1 мин ( 60 сек)
входной параметр - температура,пусть будет 5-30гр.Цельсия ,выходной - производительность чиллера в процентах...
подсмотрел в Библиотеке UTIL.Library есть PID и PID_FIXCYCLE ..прошу помощи...подойдут ли данные регуляторы для моей задачи или поискать что то еще...или может кто что посоветует?( если готовы помочь не только словом но и делом не откажусь от помощи за оплату)