PDA

Просмотр полной версии : ВОПРОС-ОТВЕТ (отвечаем на простые вопросы от новичков)



Страницы : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 [33] 34 35 36 37 38 39 40 41 42

сосна
14.09.2020, 10:20
Всем доброго дня. Есть такая тема. Мне нужно подсчитывать количество импульсов с энкодера в плк -150 за 1 секунду. Программа работает, но количество импульсов плавает, нет стабильности подсчета. Тогда я заменил энкодер на ФБ BLINK, результат тот же самый. Количество импульсов плавает, не т стабильности подсчета. С чем это может быть связано и если есть возможность как уйти от этого? Программку прилагаю.51034

Sulfur
14.09.2020, 11:12
Предполагаемая максимальная частота импульсов какая?

Егор Шелдышов
14.09.2020, 11:36
Добрый день, Такой вопросик. Если я использую библиотеки, значит мне конфигурировать модули в области ввода вывода ПЛК не нужно и наоборот? Правильно я понял?

сосна
14.09.2020, 14:17
Предполагаемая максимальная частота импульсов какая?

500 импульсов на оборот

сосна
14.09.2020, 14:18
Предполагаемая максимальная частота импульсов какая?

500 импульсов в секунду

Sulfur
14.09.2020, 16:18
В спецификации ПЛК указано что до 1000Гц. Но есть сомнения, так как нет аппаратных счетчиков, а программа (один цикл скана) должна выполняться за 1 мс с учетом времени на служебные нужны ПЛК.
Можно попробовать сделать свой ФБ
VAR_In
In:bool; Счетный вход.
Reset (Global): bool; Сброс счетчика.
---
Var_Out
Out:WORD (или DWORD); Результат счета.
----
Var_Global
Old_In:bool; Предыдущее состояние входа.
====
IF Reset THEN Out:=0; Reset:=FALSE; END_IF; Обнуляем счет по условию, сбрасываем флаг сброса.
IF In<>Old_In THEN Old_In:=In; Out:=(Out+1)/2; END_IF; Если состояние входа изменилось, то инкрементируем счетчик. Деление на 2 потому что будут считаться как передние фронты, так и задние.
---------
В ПЛЦ ПРГ
VAR Imp: DWORD; Количество импульсов в секунду.
Тащим на поляну наш ФБ.
1. Делаем постоянно работающий блинк с периодом верх\них по 500мс.
2. По переднему фронту блинка через R_TRIG считываем в переменную Imp из Оut сделанного ФБ, а так же делаем Reset ФБ = TRUE (он сбросится при вызове ФБ)

В результате получаем количество импульсов в секунду.
Но стабильности высокой ожидать не стоит, ибо скоростной счет не для данного ПЛК.
===========
Ну или как вариант в вашей проге поменять ТР10 на блинк с периодом верх\них по 500мс, и возможно вместо F_TRIG10 поставить R_TRIG.

Welldi
14.09.2020, 21:52
Значит принятый на работу в техподдержку чел еще не ознакомился с матчастью.
Modbus RTU over TCP это конкретная реализация. Овен-плк в конфиге - не поддерживает.

Настройки скады ?
Проект плк ? (живьем)
Настройков датчиков ?

В общем времени на эксперименты уже нет) буду делать ручками)
ПЛК опрашивает датчики по модбас мастер, внутри себя пересылает значения в модбас слэйв, а скада уже читает регистры ПЛК. В такой форме все работает.

Пишу с телефона. Проект отправить не могу.

сосна
15.09.2020, 11:11
В спецификации ПЛК указано что до 1000Гц. Но есть сомнения, так как нет аппаратных счетчиков, а программа (один цикл скана) должна выполняться за 1 мс с учетом времени на служебные нужны ПЛК.
Можно попробовать сделать свой ФБ
VAR_In
In:bool; Счетный вход.
Reset (Global): bool; Сброс счетчика.
---
Var_Out
Out:WORD (или DWORD); Результат счета.
----
Var_Global
Old_In:bool; Предыдущее состояние входа.
====
IF Reset THEN Out:=0; Reset:=FALSE; END_IF; Обнуляем счет по условию, сбрасываем флаг сброса.
IF In<>Old_In THEN Old_In:=In; Out:=(Out+1)/2; END_IF; Если состояние входа изменилось, то инкрементируем счетчик. Деление на 2 потому что будут считаться как передние фронты, так и задние.
---------
В ПЛЦ ПРГ
VAR Imp: DWORD; Количество импульсов в секунду.
Тащим на поляну наш ФБ.
1. Делаем постоянно работающий блинк с периодом верх\них по 500мс.
2. По переднему фронту блинка через R_TRIG считываем в переменную Imp из Оut сделанного ФБ, а так же делаем Reset ФБ = TRUE (он сбросится при вызове ФБ)

В результате получаем количество импульсов в секунду.
Но стабильности высокой ожидать не стоит, ибо скоростной счет не для данного ПЛК.
===========
Ну или как вариант в вашей проге поменять ТР10 на блинк с периодом верх\них по 500мс, и возможно вместо F_TRIG10 поставить R_TRIG.

Спасибо, буду пробовать

Миронов Илья
15.09.2020, 21:15
Добрый вечер, вопрос такого характера:
Во время выполнения программы, имеется несколько одинаково названных выходов. При выполнении программы, наблюдаю такую картину . Линия связи выхода FB или просто блока становится синей, соответственно выход отработал, но выходной блок подсоединенный к нему, не становятся активным TRUE. Проблема в неправильном порядке выполнении программы?
Выполнял расстановку в соответствии с топологическом порядке, эффекта 0.Программа написана на CFC codesys 2.3

Николай Суриков
16.09.2020, 07:23
...
Выполнял расстановку в соответствии с топологическом порядке, эффекта 0.Программа написана на CFC codesys 2.3

ПКМ на рабочем поле -> Порядок -> В соответствии с потоком данных

Миронов Илья
16.09.2020, 09:26
Оное вообще не запустится ибо синтаксическая ошибка. Видимо ложите разное в одно место.

Не проблема, а переприсвоение.
i := 1;
i := 2;
Чой то в i не 1 ?

PS
К вопросу проект кладут (на будущее)

Возможности приложить проект нету.51050

ASo
16.09.2020, 09:42
А что тут не устраивает?

Миронов Илья
16.09.2020, 09:48
Вроде нашел причину, спасибо за наводку

1XTR
16.09.2020, 18:31
День добрый. Есть ПЛК110-60-L и МК210-311. Подключены по Eth по инструкции отсюда (http://edu.owen.ru/mx210_txt1/). Единственное различие от мануала этого то, что у меня нет пункта Empty после добавления Modbus Master. SLOT оставил debug rs232.
Накидал проект для теста, подключаюсь, все норм работает и через какое-то время отваливается связь с ошибкой: Ошибка связи (#0): Произошло отключение.
В чем проблема может быть?

Версии ПО и target везде последние.
Для отладки получается коротки промежуток времени есть, пока не отвалилась связь. Не удобно.

a_gricaj
16.09.2020, 21:33
Добрый день, подскажите пж, как сравнить две структуры, например
VAR
Par: MUpar;
TmpPar: MUpar;
END_VAR
if Par<>TmpPar then - компилятор матерится
спс

saii
16.09.2020, 21:48
SysMemCmp из библиотеки SysLibMem

a_gricaj
16.09.2020, 21:52
СПС, а так вызов SysMemCmp сильно потянет время цикла? например 100 сравнений

a_gricaj
16.09.2020, 22:06
Сам вызов ничто.
100 * sizeof, вот оно тута порылось. А на хрена ?

Первый скан ПЛК копируем из ретейн в слейв модбас, а далее если в слейве поменялось пишем в ретейн, ну про 100 я загнул, ибо оператор с НМI не успеет поменять более одной структуры за цикл)
Просто страхуюсь....

a_gricaj
16.09.2020, 22:11
необязательно каждый цикл проверять

а как тогда посоветуете?

a_gricaj
16.09.2020, 22:15
А если не поменялось ?

в ретейн не пишем

a_gricaj
16.09.2020, 22:19
смысл сравнения ?

проверить не поменялось ли...)

a_gricaj
16.09.2020, 22:25
)))

if y <> x then
x := y;
end_if
vs

x := y;
сравните конечные результаты
х:=y; исполнится быстрее
но если они структуры? все равно?

a_gricaj
16.09.2020, 22:31
А зачем сравнение ?

одним махом проверить всю структуру, а не по "компонентно"

a_gricaj
16.09.2020, 22:36
а зачем если можно проще и

?

я вас понял, спс

a_gricaj
16.09.2020, 22:41
Ну вот.

А еще :
необязательно каждый цикл переносить

ну да, я так пид регуляторы делаю если их много, на одном цикле один регулятор исполняется...

a_gricaj
16.09.2020, 22:44
Их вообще есть смысл вызывать только когда данные обновились

да, вы правы

Belletein
17.09.2020, 08:02
Добрый день. При использовании в объекте библиотеки modbus.lib в режиме эмуляции срабатывает ошибка по сторожевому таймеру. Код я брал из примера на https://owen.ru/product/codesys_v2/example_program в разделе "Обмен через библиотеки Modbus и OwenNet". Более того, в данном примере в режиме эмуляции также срабатывает данная ошибка. Скажите, это нормально? Код будет работать на реальном железе?
Ошибка по ссылке https://cloud.mail.ru/public/Y7JF%2F2yE3a8SSj

Валенок
17.09.2020, 08:07
при использовании в объекте библиотеки modbus.lib в режиме эмуляцииошибка по сторожевому таймеру ...., это нормально? Код будет работать на реальном железе?.
намана
будет

denkrauss
20.09.2020, 07:04
Доброе утро!

Коллеги, будьте добры, кто владеет данной информацией,подскажите пожалуйста:
ПЛК 110-220-30-Р-М (М02), верхняя клеммная колодка, зажимы NC (not connected). Подключены ли они внутри ПЛК в какую либо электрическую цепь? Понимаю, что они не используются, но я хотел бы их использовать как промежуточную клемму (не на постоянке, при экспериментах мне так удобно по монтажу). Разбирать новый ПЛК не хочется ради такой проверки (но и спалить чего то внутри тоже не хочется). Может кто знает наверняка, или сам разбирал когда-то.

Спасибо!

VaBo
20.09.2020, 20:51
Доброго времени, вопрос следующий.
В проекте используются несколько равнозначных POU типа программа, вызываются по таймерам из конфигуратора задач.
А можно ли из одной программы вызывать другую? Типа QWE();
Компилятор не ругается, но пошаговая отладка показывает, что ничерта не происходит. Как можно реализовать?

GoodLuck
20.09.2020, 21:59
А можно ли из одной программы вызывать другую? Типа QWE();

Да, можно. Никогда проблем не возникало. Если программируете в CoDeSys 2.3, то синтаксис без скобок QWE;

VaBo
21.09.2020, 07:40
Попробовал без скобок. Результат такой же. Напишу простенький тест сейчас..

Sulfur
21.09.2020, 09:08
VaBo
По поводу синтаксиса. В окне программы, в которую надо положить вашу POU, устанавливаете курсор на нужное место, нажимаете F2, выбираете Пользовательские программы>Ваша POU>Ok. Все вставится как надо.

А можно ли из одной программы вызывать другую?
Можно. Только следует учесть, что вызываемая программа работает с локальными переменными в приоритете. Т. е. если в проекте есть глобальная переменная и локальная в вызываемой POU с одинаковыми именами, то будет обрабатываться локальная.

VaBo
21.09.2020, 09:38
Это все понятно, непонятно было, как пошагово отлаживать. Как выяснилось после тестового проектика, если в вызываемой программе не поставить точку останова, то вызывающая программа при проходе "по шагам" визуально не заходит в вызываемую (по факту - да). Блин, только сейчас увидел, что есть F8 - "шаг детальный", который все делает, как нужно. А до этого экранную кнопку тыкал, а на экране только "шаг поверху"...

Вячеслав@
22.09.2020, 09:52
Наверняка эта тема много раз обсуждалась, но прошу ткнуть ) Как в Codesys v2 лучше реализовать распаковку регистра в 16 bool, и назад? Так же, как в ОвенЛожик, с помощью PUTBIT и EXTRACT или есть другой вариант? Чтобы связать ПЛК и ПР200.

petera
22.09.2020, 11:37
Наверняка эта тема много раз обсуждалась, но прошу ткнуть ) Как в Codesys v2 лучше реализовать распаковку регистра в 16 bool, и назад? Так же, как в ОвенЛожик, с помощью PUTBIT и EXTRACT или есть другой вариант? Чтобы связать ПЛК и ПР200.

В кодесис есть адресация к битам через точку
Упаковать биты в регистр можно такой функцией

FUNCTION PACK_W : WORD
VAR_INPUT
B0: BOOL;
B1: BOOL;
B2: BOOL;
B3: BOOL;
B4: BOOL;
B5: BOOL;
B6: BOOL;
B7: BOOL;
B8: BOOL;
B9: BOOL;
B10: BOOL;
B11: BOOL;
B12: BOOL;
B13: BOOL;
B14: BOOL;
B15: BOOL;
END_VAR
VAR
END_VAR
(*Тело функции*)
PACK_W.0:=B0;
PACK_W.1:=B1;
PACK_W.2:=B2;
PACK_W.3:=B3;
PACK_W.4:=B4;
PACK_W.5:=B5;
PACK_W.6:=B6;
PACK_W.7:=B7;
PACK_W.8:=B8;
PACK_W.9:=B9;
PACK_W.10:=B10;
PACK_W.11:=B11;
PACK_W.12:=B12;
PACK_W.13:=B13;
PACK_W.14:=B14;
PACK_W.15:=B15;

В обратную сторону аналогично, используем Bxx:=W.xx, где хх=0,1,2,...15

А для случая "Чтобы связать ПЛК и ПР200" можно и без всяких "паков"
https://owen.ru/forum/showthread.php?t=24876&p=216361&viewfull=1#post216361

https://owen.ru/forum/showthread.php?t=22749&p=187668&viewfull=1#post187668

https://www.youtube.com/watch?v=pz4q38naDzg
Т.е. подправить файл hardware.cfg для таргета и получить в конфигурации "развернутые" 2byte или даже 4byte,
т.е. с возможностью доступа к любому биту как в модуле 8bits

Sulfur
22.09.2020, 11:41
Вячеслав@
Я создавал свой ФБ.
Допустим это будет аналог PUTBIT:

Входные_переменные
Ин1:bool
..
Ин16 :bool
--
ВЫходные_переменные
Out:WORD;
--
Тело
Out.0:=Ин1;
..
Out.15:=Ин16;
------
EXTRACT делается также, только наоборот.

Вячеслав@
22.09.2020, 12:24
А для случая "Чтобы связать ПЛК и ПР200" можно и без всяких "паков"
https://owen.ru/forum/showthread.php?t=24876&p=216361&viewfull=1#post216361

https://owen.ru/forum/showthread.php?t=22749&p=187668&viewfull=1#post187668

https://www.youtube.com/watch?v=pz4q38naDzg
Т.е. подправить файл hardware.cfg для таргета и получить в конфигурации "развернутые" 2byte или даже 4byte,
т.е. с возможностью доступа к любому биту как в модуле 8bits
Благодарю! Который раз уже помогаете!

Вячеслав@
22.09.2020, 12:25
Вячеслав@
Я создавал свой ФБ.
Допустим это будет аналог PUTBIT:

Входные_переменные
Ин1:bool
..
Ин16 :bool
--
ВЫходные_переменные
Out:WORD;
--
Тело
Out.0:=Ин1;
..
Out.15:=Ин16;
------
EXTRACT делается также, только наоборот.

Благодарю за ответ!

yurya
22.09.2020, 13:24
Добрый день.
В SCDA через переменную типа int задается время в минутах.
В ПЛК на это время надо запустить таймер TON.
Подскажите, пожалуйста, как преобразовать int в переменную time для таймера?

petera
22.09.2020, 13:42
Добрый день.
В SCDA через переменную типа int задается время в минутах.
В ПЛК на это время надо запустить таймер TON.
Подскажите, пожалуйста, как преобразовать int в переменную time для таймера?


VAR
VV: INT; (*В минутах*)
TTT:TIME;
END_VAR

TTT:= INT_TO_TIME(VV * 60) * 1000;

yurya
22.09.2020, 13:56
Спасибо за ответ!

yurya
22.09.2020, 13:58
.. PT := T#1m * i; // i : любой целый тип

Спасибо за ответ!

Вячеслав@
22.09.2020, 16:16
Прошу еще подсказать. Как реализовать пакетное чтение/запись по Modbus? Есть несколько ПР200, с которых мастер ПЛК 100 берет довольно много регистров, и часть из них напрямую отправляется на СП300. Вручную присваивать переменные и делать присвоения очень долго и некрасиво, особенно если кол-во регистров далеко за сотню...
Возможно ли сделать некий функциональный блок, который мог бы взять группу регистров с ПР200 (ModbusRTU) и записать их в СП300 (ModbusTCP)? То есть можно ли работать с Модбас регистрами, как с массивами, а не как с уникальными переменными?
До этого работал только с OwenLogic, сейчас разбираюсь с Codesys, честно пытаюсь найти ответ сам, но не всегда получается быстро найти ответ в интернете или с помощью поиска на форуме...

Вячеслав@
22.09.2020, 20:57
В конфигурации - string. Есть библиотеки.
Сами ПР-ки будут отвечать на групповые запросы ?

Ну да. Когда я работал напрямую СП300 - ПР200, там можно было по 11 регистров ПР опрашивать за раз, записывая их в нужные регистры СП. Хотелось бы и с ПЛК так же...

Rednaxel
23.09.2020, 12:50
Здравствуйте!
Может кто-нибудь подтвердить или опровергнуть работоспособность библиотеки PID_regulators.lib на ПЛК160 (https://owen.ru/forum/showthread.php?t=5455&p=340237&viewfull=1#post340237)? В описании библиотеки значится "ПЛК63, ПЛК100, ПЛК110, ПЛК150, ПЛК154" :(

A.Simonov
23.09.2020, 16:00
Здравствуйте!
Может кто-нибудь подтвердить или опровергнуть работоспособность библиотеки PID_regulators.lib на ПЛК160 (https://owen.ru/forum/showthread.php?t=5455&p=340237&viewfull=1#post340237)? В описании библиотеки значится "ПЛК63, ПЛК100, ПЛК110, ПЛК150, ПЛК154" :(

Перечень библиотек и список ПЛК, поддерживающих их, доступен здесь:
https://owen.ru/product/codesys_v2/libraries

Rednaxel
23.09.2020, 16:53
Перечень библиотек и список ПЛК, поддерживающих их, доступен здесь:
https://owen.ru/product/codesys_v2/libraries

Да-да, там стоит ПЛК1хх /ПЛК1хх [М02]. Открываем описание в PDF (https://ftp.owen.ru/CoDeSys23/05_Library/01_Manuals/PID_Regulators.pdf), ссылка там же, а там уже другое: ПЛК63, ПЛК100, ПЛК110, ПЛК150, ПЛК154.
Кому верить? В общем то понятно, что видимой причины нет, почему на 110 работает, а на 160-нет, но это догадки, а нужно знать точно. 160 под рукой нету, только 110й.

A.Simonov
24.09.2020, 09:28
Да-да, там стоит ПЛК1хх /ПЛК1хх [М02]. Открываем описание в PDF (https://ftp.owen.ru/CoDeSys23/05_Library/01_Manuals/PID_Regulators.pdf), ссылка там же, а там уже другое: ПЛК63, ПЛК100, ПЛК110, ПЛК150, ПЛК154.
Кому верить? В общем то понятно, что видимой причины нет, почему на 110 работает, а на 160-нет, но это догадки, а нужно знать точно. 160 под рукой нету, только 110й.

Добрый день.

Описание библиотеки было написано давно. Библиотека старая, относительно.
Я дал актуальный список библиотек. Подразумевалось что ему можно доверять.
Более того, 110 и 160 с точки зрения работы в Codesys - идентичны (кроме аналоговой части).

Вячеслав@
30.09.2020, 15:15
В ОвелЛоджик есть возможность использовать в программе задержки на один цикл, что очень удобно при всяких обратных связях. Правильно ли я понял, что в COdesys такой возможности нет и нужно искать другие способы решения?

capzap
30.09.2020, 15:24
В ОвелЛоджик есть возможность использовать в программе задержки на один цикл, что очень удобно при всяких обратных связях. Правильно ли я понял, что в COdesys такой возможности нет и нужно искать другие способы решения?

в КДС вообще всё неудобно, приходиться в комментариях писать что переменная в самом условии(а не после) bar это задержка на один цикл от переменной foo
IF foo and NOT bar THEN
;
END_IF;
bar := foo;

Вячеслав@
30.09.2020, 15:29
в КДС вообще всё неудобно, приходиться в комментариях писать что переменная в самом условии(а не после) bar это задержка на один цикл от переменной foo
IF foo and NOT bar THEN
;
END_IF;
bar := foo;

Благодарю за ответ. А в привычном мне CFC так можно сделать? Я пока работаю с CFC, так как пока нет времени вникать в ST.
P.S. мне после OwenLogic тоже КДС кажется неудобным. Но наверное дело привычки.

Вячеслав@
30.09.2020, 15:35
"В конфигурации - string. Есть библиотеки."
Благодарю, разбираюсь.

Вячеслав@
30.09.2020, 16:27
А выход любого блока заведите на вход ЭТОГО ЖЕ блока. Это и есть задержка на один цикл. Откуда думаете реальные данные на вход прилетают? Да с предыдущего вызова. В лоджике такого и нет небось

В общем ищете третью педаль в машине с автоматом

О, круто, благодарю. Да, я знаю, что ищу эту самую третью педаль, и что КДС намного круче, но мозги пока не перестроились.

Вячеслав@
02.10.2020, 18:00
"В конфигурации - string. Есть библиотеки."

Я дико извиняюсь, но я так и не нашел ответ. Просмотрел описание библиотек на сайте Овен, на форуме нашел только тему пятилетней давности, но без библиотек. В интернете тоже не удалось накопать ничего.
Прошу скинуть название библиотеки для упаковки/распаковки String в числовые переменные. Спасибо.

RV9WFJ
03.10.2020, 06:03
Что-то я ваш вопрос даже не пойму. А зачем String упаковывать? Он и так из байтов состоит. Может вам требуется считать эту область просто в виде чисел? Посмотрите на работу с указателями и библиотеку SysMem

Вячеслав@
03.10.2020, 10:28
Что-то я ваш вопрос даже не пойму. А зачем String упаковывать? Он и так из байтов состоит. Может вам требуется считать эту область просто в виде чисел? Посмотрите на работу с указателями и библиотеку SysMem

Да, слово "упаковать" неудачное. Мне нужно с помощью одной переменой Стринг отправлять / получать группу числовых переменных, чтобы не плодить десятки переменных модбас для каждого устройства. А в идеале - работать с ними массивами.
Благодарю за наводку, буду изучать указатели и SysMem.

petera
03.10.2020, 20:17
Что-то я ваш вопрос даже не пойму. А зачем String упаковывать? Он и так из байтов состоит. Может вам требуется считать эту область просто в виде чисел? Посмотрите на работу с указателями и библиотеку SysMem

Наводка про String подразумевает использовать в КОНФИГУРАЦИИ модули String input/output для ускорения обмена по шине ModBus, например
https://owen.ru/forum/showthread.php?t=22915&p=333593&viewfull=1#post333593
https://owen.ru/forum/showthread.php?t=22915&p=244022&viewfull=1#post244022

Вячеслав@
03.10.2020, 21:52
Наводка про String подразумевает использовать в КОНФИГУРАЦИИ модули String input/output для ускорения обмена по шине ModBus, например
https://owen.ru/forum/showthread.php?t=22915&p=333593&viewfull=1#post333593
https://owen.ru/forum/showthread.php?t=22915&p=244022&viewfull=1#post244022

Неужели все так просто? Это то, что нужно! Благодарю! Здоровья Вам и удачи!

gleb33
04.10.2020, 00:43
Прошу помощи с ПЛК 160 и СПК107 не хотят дружить и работать как надо. Проблема в том, что все очень тормознуто работает, и самый главный косяк, в том что при резком изменении, индикация на панели спк107 может как не зашечься так и не погасится в нужны момент. Боремся с этим уже 2 месяца, программы прикладываю, очень прошу помощи...

Так же недавно заметил что в конфигурации в разделе universal modbus device (запись в СПК) стоял параметр "Preset Multiple Registers", хотя правильно там выставлять "Preset Single Register" возможно проблема в этом?

https://yadi.sk/d/rg9a01K7yRHsBA
https://yadi.sk/d/hfm5H34cgE4_Lg

gleb33
04.10.2020, 09:54
странный подход, делать мастером плк если нужна быстрая реакция на панели, опыта же явно не хватает, один только трунк константы чего стоит

Опыта совершенно нет. Но проблема не в том что бы была быстрая реакция на панель, а хотя бы человеческая. В данный момент если быстро включить и выключить тумблер на щите управления, то на СПК107 лампа может зажешься и не потухнуть, а может в принципе даже не зажечься... И если она не тухнет и оборудование работает, по методике это не сдается... как можно это решить....

gleb33
04.10.2020, 10:42
К сожалению что бы заменить мастера на слейва и наоборот, это нужно все программы заново писать, верно? а уже идет сдача объекта. Как использовать квитирование?

gleb33
04.10.2020, 11:15
Первую часть понял, а вот на счет подтверждающего сигнала с панели и далее нет,

kondor3000
04.10.2020, 11:40
Неужели все так просто? Это то, что нужно! Благодарю! Здоровья Вам и удачи!

Пипец, вам эту ссылку уже неделю назад дал

gleb33
04.10.2020, 11:41
Часть Тумблеров заходит в МВ110 часть в ПЛК 160, подскажите где именно изменять значение в мс, для МВ110-16ДН я так понимаю в его настройках, в проекте так же есть МУ110... Где сделать both? переменных стринг в проекте нет.

kondor3000
04.10.2020, 13:02
Часть Тумблеров заходит в МВ110 часть в ПЛК 160, подскажите где именно изменять значение в мс, для МВ110-16ДН я так понимаю в его настройках, в проекте так же есть МУ110... Где сделать both? переменных стринг в проекте нет.

Both ставится во всех дискретных блоках, все REAL должны начинаться с чётных регистров, Polling для чтения и записи панели и дискретных блоков уменьшаем до 10mс, все 6 RegistrInput, 7 RegistrOutput, 7 RealOutput заменяем 3 String, как ссылки выше. Скорость обмена увеличится в десятки раз.

Вячеслав@
04.10.2020, 15:08
Пипец, вам эту ссылку уже неделю назад дал

Ох. Уважаемый Kondor. Сложно будет объяснять, как и почему меня так заглючило. В общем, я действительно дал маху и мне очень неловко) У меня последняя неделя была очень насыщенной, и с памятью и внимательностью произошли необъяснимые мутации. Благодарю за помощь и обещаю, что подобных казусов не повторится.
По теме вопроса теперь все понятно, на неделе проверю на практике, что у меня получилось.

Danilkhikhlukh
04.10.2020, 18:41
День добрый!
ПЛК 110 [M02] с модемом ПМ 01
Обрывается связь и модем делает пять попыток на соединение. На пятой попытке делает это с номером дозвона.
1. Пожалуйста, подскажите где меняется кол-во попыток?
2. Как сделать чтобы на первой попытке соединялся с номером дозвона?
3. И почему нету подключения без номера дозвона?
51243

oganek2
08.10.2020, 08:54
Добрый день. Пробую организовать связь двух ПЛК110 через сетевые переменные и возникла проблема не могу найти SysLibCallback.lib.Поделитесь ссылкой или файлом библиотеки.

capzap
08.10.2020, 09:11
Добрый день. Пробую организовать связь двух ПЛК110 через сетевые переменные и возникла проблема не могу найти SysLibCallback.lib.Поделитесь ссылкой или файлом библиотеки.

а если она совершенно не нужна для обмена, то тоже делиться?

oganek2
08.10.2020, 09:53
Делаю по примеру, а там она используется, вот и спросил. Если не нужна попробую без нее.Спасибо.

capzap
08.10.2020, 10:00
Делаю по примеру, а там она используется, вот и спросил. Если не нужна попробую без нее.Спасибо.
здесь C:\Program Files\3S Software\CoDeSys V2.3\Library не пробовали искать? Если там каким то чудом нет, то можно здесь (https://ftp.owen.ru/CoDeSys23/05_Library/cds23_libraries.zip)найти https://owen.ru/product/codesys_v2/libraries

oganek2
08.10.2020, 10:25
здесь C:\Program Files\3S Software\CoDeSys V2.3\Library не пробовали искать? Если там каким то чудом нет, то можно здесь (https://ftp.owen.ru/CoDeSys23/05_Library/cds23_libraries.zip)найти https://owen.ru/product/codesys_v2/libraries

Спасибо, в том то и дело,что на сайте нету, в папке библеотек после установки программы тоже нету.

capzap
08.10.2020, 10:36
Спасибо, в том то и дело,что на сайте нету, в папке библеотек после установки программы тоже нету.

ну как же нет на сайте если вот в файле Lib_setup все имеется 51288

Nomad
09.10.2020, 14:54
Добрый день!
Подскажите, пожалуйста по двум вопросам:
1. При программировании МВ210-212 к ПЛК110 [М02] в Кодесис2.3 ставить "Конфигурации ПЛК" МВ210-202 (204)... и руками дописывать оставшиеся каналы или есть какое-то обновление таргет-файлов?
2. Можно ли делать опрос ПЛК110 [М02] с ПК СКАДой по Ethernet (т.е. ПЛК slave) и читать этим же ПЛК модули МВ210 по Ethernet (т.е. ПЛК master), возможно ли так?
Спасибо.

RV9WFJ
10.10.2020, 05:53
1. Можно, можно вообще полностью все самому прописать
2. Можно, это же не rs485

sssssaaaaabbbbb
12.10.2020, 08:23
Здравствуйте, вот такой вопрос, как вообще пользоваться поиском? Вбиваю в поиск слово runtime(хотелось бы найти темы , и что то почитать), а мне выдает список тем. Может как то есть другой способ?

Rednaxel
12.10.2020, 08:58
Здравствуйте, вот такой вопрос, как вообще пользоваться поиском? Вбиваю в поиск слово runtime(хотелось бы найти темы , и что то почитать), а мне выдает список тем. Может как то есть другой способ?

Ну так Вам и выдает список тем, где встречается это слово, Вы же этого и хотели? ;) Что именно вы хотите узнать про RunTime, уточните: "что это вообще такое?" или "Примеры" или что-то еще.
Небольшой совет: не смотря на то, сто поиск на форуме ОВЕН вполне прилично работает, стоит попробовать, как вариант, забить в поиск Google такого типа строку: runtime: https://owen.ru/forum. Возможно результат Вам понравится больше?

capzap
12.10.2020, 09:12
Здравствуйте, вот такой вопрос, как вообще пользоваться поиском? Вбиваю в поиск слово runtime(хотелось бы найти темы , и что то почитать), а мне выдает список тем. Может как то есть другой способ?

ссылка расширенный поиск, вкладка по одному типу содержимого, тип поиска сообщения

sssssaaaaabbbbb
12.10.2020, 09:16
Да хотел узнать как runtime работает и вообще как с ним быть, куда вписывать. Знаю только что с ним переменные сохраняются при отключении, и все , больше ничего, в инете мало информации об этом.

capzap
12.10.2020, 09:17
Знаю только что с ним переменные сохраняются при отключении, и все , больше ничего, в инете мало информации об этом.

тогда не runtime а retain

kondor3000
13.10.2020, 12:36
Да хотел узнать как runtime работает и вообще как с ним быть, куда вписывать. Знаю только что с ним переменные сохраняются при отключении, и все , больше ничего, в инете мало информации об этом.

Вот видео по теме Retain , создаем проект с энергонезависимыми переменными https://www.youtube.com/watch?v=EKS_-vMNaLE
Советую все видео посмотреть

StrelecRUS
26.07.2021, 11:39
Добрый день. В программировании новичок. Помогите подружить ПЛК150 и МК210-301 через изернет, выдаёт ошибку при объявлении каналов
56245
вроде всё делаю по инструкции

kondor3000
26.07.2021, 20:03
Добрый день. В программировании новичок. Помогите подружить ПЛК150 и МК210-301 через изернет, выдаёт ошибку при объявлении каналов
56245
вроде всё делаю по инструкции

Зачем вы в верхней части PLC_PRG, пытаетесь присвоить другие переменные ?
Это место для объявления переменных. Вы хоть видео обучающее посмотрите))) Те переменные, которые в конфигурации, объявлять уже не надо, они и так глобальные. К переменным побитно, надо обращаться уже в программе.

Антон Андреевич
09.08.2021, 09:08
При попытке установить соединение с плк CoDeSys как то понимает что версии ПО отличаются. Вероятно где то в ПЛК хранится контрольная сумма программы. Как получить доступ к этим данным? Нужно в ПЛК73 выводить на дисплей версию программного обеспечения.

найдена тема связанная с моим вопросом https://owen.ru/forum/showthread.php?t=18291

capzap
09.08.2021, 09:12
При попытке установить соединение с плк CoDeSys как то понимает что версии ПО отличаются. Вероятно где то в ПЛК хранится контрольная сумма программы. Как получить доступ к этим данным? Нужно в ПЛК73 выводить на дисплей версию программного обеспечения.

Вы в проекте поставте точку с запятой и потом удалите её, у Вас так же напишет что программа изменена, как интересно Вы будете версионировать такие вещи?

Антон Андреевич
09.08.2021, 09:17
Вы в проекте поставте точку с запятой и потом удалите её, у Вас так же напишет что программа изменена, как интересно Вы будете версионировать такие вещи?

Ну так это и нужно! Я смогу быть уверенным в том что на двух контроллерах залита одна и та же программа например. Даже если это будет спустя 5 лет. Так же с помощью этой информации можно определять когда в последний раз были внесены изменения в ПО (очень ценные данные)

Николай Суриков
09.08.2021, 09:36
Ну так это и нужно! Я смогу быть уверенным в том что на двух контроллерах залита одна и та же программа например. Даже если это будет спустя 5 лет. Так же с помощью этой информации можно определять когда в последний раз были внесены изменения в ПО (очень ценные данные)

https://owen.ru/product/codesys_v2/libraries
Библиотека SysLibProjectInfo

Антон Андреевич
09.08.2021, 09:50
https://owen.ru/product/codesys_v2/libraries
Библиотека SysLibProjectInfo

Спасибо. Правда я так понял контрольной суммы через эту библиотеку я не получу.

kondor3000
09.08.2021, 15:32
Ну так это и нужно! Я смогу быть уверенным в том что на двух контроллерах залита одна и та же программа например. Даже если это будет спустя 5 лет. Так же с помощью этой информации можно определять когда в последний раз были внесены изменения в ПО (очень ценные данные)

Поставьте пароль на запись, без пароля, никто за 5 лет, не сможет даже точку с запятой изменить. Можно и на чтение пароль поставить.

TheGhost
10.08.2021, 11:14
Добрый всем день,
поможет кто-нибудь сочинить простенькую программу термостата
имеется ПЛК150 с релейными выходами,
датчики ПВТ10 и ПВТ100 на RS-485.
При превышении температуры выше Т1 любого из датчиков включаем реле 1, при понижении ниже Т2 включаем реле 2.
Заранее спасибо.

ВалераМ
10.08.2021, 12:22
Здравствуйте! Собираюсь передать через моксу с одного контроллера на другой регистры типа WORD, могу ли я на втором контроллере считать их одним стрингом, если передаю word?

kondor3000
10.08.2021, 14:07
Добрый всем день,
поможет кто-нибудь сочинить простенькую программу термостата
имеется ПЛК150 с релейными выходами,
датчики ПВТ10 и ПВТ100 на RS-485.
При превышении температуры выше Т1 любого из датчиков включаем реле 1, при понижении ниже Т2 включаем реле 2.
Заранее спасибо.

Вы начните и выложите свой проект, а мы поможем.

TheGhost
10.08.2021, 17:25
Я пытаюсь открыть пример чтения данных, ПЛК100+ТРМ, ругается на отсутствие библиотек. Одну я на просторах нашёл, две других - увы. systaskinfo и syscallback. Поиском по форуму вижу, что этот вопрос поднимался, но эти библиотеки найти не удалось.

Евгений Кислов
10.08.2021, 17:28
Я пытаюсь открыть пример чтения данных, ПЛК100+ТРМ, ругается на отсутствие библиотек. Одну я на просторах нашёл, две других - увы. systaskinfo и syscallback. Поиском по форуму вижу, что этот вопрос поднимался, но эти библиотеки найти не удалось.

Эти библиотеки входят в дистрибутив Codesys.
Отдельно можно скачать их здесь:
https://ftp.owen.ru/CoDeSys23/05_Library/cds23_libraries.zip

Victor N.
21.08.2021, 17:44
При подаче питания 220в на ПЛК-150 горят все индикаторы, это нормально?
Или как должно быть?

kondor3000
22.08.2021, 11:24
При подаче питания 220в на ПЛК-150 горят все индикаторы, это нормально?
Или как должно быть?

А подробней можно?
Перемычки на входах стоят или нет?
К компьютеру подключён или нет?
Все это какие, что все входы и выходы и работа и связь горят?
ПЛК на столе или на стенде?
Программа в ПЛК есть?

capzap
22.08.2021, 11:48
При подаче питания 220в на ПЛК-150 горят все индикаторы, это нормально?
Или как должно быть?

есть же документация, в ней можно воспользоваться разными советами, наиболее подходящий, когда ничего не понятно, сделать сброс 56660

ЗЫ вот еще тот же совет 56661

Mexatronik
24.08.2021, 08:54
Всем привет, подскажите в новом проекте вышла проблема с переменными - объявил все в GVL, использую их в блоках, компилятор ругается, что они не заданы. Работает только если прописывать полное имя "GVL.переменная", неудобно. Как это исправить?

Евгений Кислов
24.08.2021, 08:58
Всем привет, подскажите в новом проекте вышла проблема с переменными - объявил все в GVL, использую их в блоках, компилятор ругается, что они не заданы. Работает только если прописывать полное имя "GVL.переменная", неудобно. Как это исправить?

Добрый день.
Ваш вопрос, вероятно, про CODESYS V3.5 (тема про V2.3).

Чтобы обращаться к глобальным переменным без указания пространства имен (что, в общем-то, является не лучшим решением) - нужно в списке глобальных переменных удалить строку {attribute 'qualified_only'}

Mexatronik
24.08.2021, 10:18
Добрый день.
Ваш вопрос, вероятно, про CODESYS V3.5 (тема про V2.3).

Чтобы обращаться к глобальным переменным без указания пространства имен (что, в общем-то, является не лучшим решением) - нужно в списке глобальных переменных удалить строку {attribute 'qualified_only'}

тысяча чертей! спасибо!

Newcomer
24.08.2021, 15:12
Добрый день.

Правильно я понимаю, что для работы с элементами надо использовать такие адреса: 0, 1, 2, 3, 4, 6, 8, 10 ?

Мастеренко Иван
24.08.2021, 15:49
Добрый день.

Правильно я понимаю, что для работы с элементами надо использовать такие адреса: 0, 1, 2, 3, 4, 6, 8, 10 ?
Добрый день, да, верно.

Newcomer
24.08.2021, 15:56
Добрый день, да, верно.

Спасибо, добрый человек.

Спорягин Кирилл
24.08.2021, 17:03
День добрый, форумчане.

Можно ли отменить загрузку в Кодесис V2?
А то проект большой, через сим-карту заливается долго (10-15 минут), а иногда понимаешь, что сейчас проект еще раз нужно менять и перезаливать.

Sulfur
25.08.2021, 12:48
Правильно я понимаю, что для работы с элементами надо использовать
Можете перед буквами AT ткнуть курсором и написать имя переменной. Тогда к ней можно обращаться из любого места программы, ибо она будет глобальной. И не потребуется дополнительного описания.

Kickit
27.08.2021, 19:45
Скажите, можно ли как-то для сокращения размера кода проиндексировать экземпляры функциональных блоков (напр., TP), чтобы их можно было вызывать в цикле FOR..TO?

Kickit
27.08.2021, 20:36
x : array[a..b] of tp;
..
x[i](...)

Супер. Спасибо!

vit83
30.08.2021, 23:17
Имеется ПЛК 110-60.К с транзисторными n-p-n выходами, но нужны p-n-p выходы. В электронике не очень силён. Посоветуйте, пожалуста, что-нибудь.

Вольд
31.08.2021, 10:25
Имеется ПЛК 110-60.К с транзисторными n-p-n выходами, но нужны p-n-p выходы. В электронике не очень силён. Посоветуйте, пожалуста, что-нибудь.

Что надо коммутировать p-n-p выходами ?

vit83
31.08.2021, 10:50
Что надо коммутировать p-n-p выходами ?

Управлять нужно пневмоостровом, но не напрямую катушками пневмораспределителей, т.е. пневмоострову необходимы только сигналы +24В

Вольд
31.08.2021, 10:54
Управлять нужно пневмоостровом, но не напрямую катушками пневмораспределителей, т.е. пневмоострову необходимы только сигналы +24В

Ссылку на описание пневмоострова дай.

Sulfur
31.08.2021, 11:23
vit83
Есть твердотельные реле в корпусе 5мм шириной, с креплением на ДИН-рейку (колодка), и коммутирующие постоянное напряжение +24В. Например SSL1D03BD. Это если нет желания ставить обычные электромеханические реле.
Напрямую у выходам ПЛК нагрузку (катушки пневмоострова) подключает крайне не желательно.
Но в любом случае должна быть защита от обратного импульса катушки - либо в разъеме катушек, либо в виде отдельного узла.

vit83
31.08.2021, 11:56
Ссылку на описание пневмоострова дай.

Пневмоостров старый Festo VIMP-E-MIDI-8. Ссылку не нашёл. Обратился в техподдержку Festo, скинули manual на что-то похожее, но там по электрике ничего нет.

vit83
31.08.2021, 11:59
vit83
Есть твердотельные реле в корпусе 5мм шириной, с креплением на ДИН-рейку (колодка), и коммутирующие постоянное напряжение +24В. Например SSL1D03BD. Это если нет желания ставить обычные электромеханические реле.
Напрямую у выходам ПЛК нагрузку (катушки пневмоострова) подключает крайне не желательно.
Но в любом случае должна быть защита от обратного импульса катушки - либо в разъеме катушек, либо в виде отдельного узла.

Рассматривал вариант с твердотельными реле, но как обеспечить защиту при его пробое во включённом состоянии?

Sulfur
31.08.2021, 12:57
защиту при его пробое во включённом состоянии?
Кого? Реле? В представленной модели ток 3.5А. Не думаю, что катушка острова будет потреблять больше, даже в импульсе. Можно защитить силовой канал быстродействующим предохранителем. Есть реле чуть побольше габаритов, там уже до 12А постоянки. Уже даже не знаю что нужно сделать, что бы получить пробой в реле. Если только сгорит катушка, силовая цепь без предохранителя, а питание по току мощное.
Что бы не гадать, можете замерить сопротивление катушки острова?

vit83
31.08.2021, 13:13
Кого? Реле? В представленной модели ток 3.5А. Не думаю, что катушка острова будет потреблять больше, даже в импульсе. Можно защитить силовой канал быстродействующим предохранителем. Есть реле чуть побольше габаритов, там уже до 12А постоянки. Уже даже не знаю что нужно сделать, что бы получить пробой в реле. Если только сгорит катушка, силовая цепь без предохранителя, а питание по току мощное.
Что бы не гадать, можете замерить сопротивление катушки острова?

Ток там будет небольшой, т.к. сиглал подаётся не напрямую на катушку. Спасибо вам за предложение.

vit83
31.08.2021, 15:19
Разобрал пневмоостров. Поменял полярность - всё работает:). Всем спасибо за советы

yaroslavcik
09.09.2021, 23:24
Здравствуйте, задался таким вопросом:
Есть плк110 60м2 и панель сп310, соединены по рс485 MBRTU, под рукой сейчас железа нет. Подскажите, пожалуйста, если я буду в глобалах объявлять переменные типа "var1 AT %MX0.0 :BOOL;, var2 AT %MW1 :INT; и var3 AT %MD4 : DINT; и тд." я смогу к ним через панель оператора обратиться?
В шнайдере так можно, там и парсер есть под это дело, или нужно все через "Universal network module" и добавлять...добавлять...считать.. и тд. ил уже что то придумали ?
Как можно оптимизировать этот труд?

kondor3000
10.09.2021, 08:16
Здравствуйте, задался таким вопросом:
Есть плк110 60м2 и панель сп310, соединены по рс485 MBRTU, под рукой сейчас железа нет. Подскажите, пожалуйста, если я буду в глобалах объявлять переменные типа "var1 AT %MX0.0 :BOOL;, var2 AT %MW1 :INT; и var3 AT %MD4 : DINT; и тд." я смогу к ним через панель оператора обратиться?
В шнайдере так можно, там и парсер есть под это дело, или нужно все через "Universal network module" и добавлять...добавлять...считать.. и тд. ил уже что то придумали ?
Как можно оптимизировать этот труд?
Если вам писать надо меньше, то объявляйте в конфигурации. А если писать больше, то в глобальных и лучше, без AT%....

Юрий_Г
10.09.2021, 09:48
Добрый день! Есть необходимость считать извне по RS485 переменную типа TIME из ПЛК160[М02]. Как можно преобразовать TIME в WORD или DWORD в CodeSys V2.3?

Mr Helper
10.09.2021, 10:01
Создать функцию TIME_TO_WORD

Юрий_Г
10.09.2021, 10:27
А как это сделать на языке CFC?

kondor3000
10.09.2021, 11:23
А как это сделать на языке CFC?

В квадратик вставьте TIME_TO_DWORD и разделите полученное на 1000. Из этого числа уже можно получить часы, мин и сек , часы - разделив на 3600, и т. д.

Юрий_Г
10.09.2021, 12:05
Вот я чайник! Спасибо!

plk63
14.09.2021, 08:35
Добрый день!
У меня ПЛК63. Возник вопрос где можно почитать про функциональные блоки t_p_graph b t_o_graph. Для чего они нужны?

plk63
15.09.2021, 08:09
Добры день!
Мне необходимо связать по протоколу Modbas RTU мой контроллер ПЛК63 и счетчик СИ 30. Кто может скиньте прогу в Кодесис на Modbas RTU, для образца.

CAH
15.09.2021, 15:53
Подскажите, где можно скачать библиотеку oscat311.lib

CAH
15.09.2021, 16:07
На сайте нет 311

petera
15.09.2021, 17:51
На сайте нет 311

Удали в окне библиотек ссылку на oscat311.lib и добавь вместо неё oscat333.lib
и будет тебе счастье

aven
16.09.2021, 14:24
После выполнения SetIP через Debug-232, ПЛК-150 перестал подключаться по Ethernet
Адрес был возвращен на стандартный - 10.0.6.10
Никакими сбросами, отключением кабеля КС, выключением питания восстановить работу по сети не получается.
При этом ПЛК нормально пингуется

прошивка 2.17.0 (апрель 2017)
PIC upper version is 09
PIC lower version is 0f

capzap
16.09.2021, 14:25
После выполнения SetIP через Debug-232, ПЛК-150 перестал подключаться по Ethernet
Адрес был возвращен на стандартный - 10.0.6.10
Никакими сбросами, отключением кабеля КС, выключением питания восстановить работу по сети не получается.
При этом ПЛК нормально пингуется
так может кто еще есть в сети с таким адресом, вот он и отвечает на пинг

aven
16.09.2021, 15:01
так может кто еще есть в сети с таким адресом, вот он и отвечает на пинг

один пачкорд

начитался - решил кодесис переустановить.. ща посмотрим


P.S.
нет никакого толку
все таргеты и коннекшены остались как есть после Remove Codesys
ну и результат результат тот же.

Sergey666
16.09.2021, 15:31
P.S.
нет никакого толку
все таргеты и коннекшены остались как есть после Remove Codesys
ну и результат результат тот же.

Значит надо:
1. Выдохнуть, чудес не бывает;
2. Проверить настройки коннектов, где-то косяк!

petera
16.09.2021, 15:37
PLCInfo сделай
посмотри
GATE
MASK

aven
16.09.2021, 18:28
PLCInfo сделай
посмотри
GATE
MASK

57024

Я тут покуралесил уже с адресами нифига не выходит
Пытался контроллеры связать
Сетевые переменные вроде тоже не работают - грузил старые проекты.
Старые таргеты тоже не работают

И к роутеру пытался подключать - не видно их из роутера

capzap
16.09.2021, 18:42
57024

Я тут покуралесил уже с адресами нифига не выходит
Пытался контроллеры связать
Сетевые переменные вроде тоже не работают - грузил старые проекты.
Старые таргеты тоже не работают

И к роутеру пытался подключать - не видно их из роутера

после настройки адресов (айпишников) контроллеры перезагружались? Оставляли в выключеном состоянии на минут 15?

aven
16.09.2021, 19:01
зубачисткой тыкал каждый раз
и включал и выключал и программу перезаписывал

aven
16.09.2021, 19:28
Фух!
Я уже хотел винду восстанавливать и по-новой CoDeSys ставить

Оказалось файерволл заблокировал Gateway

Newcomer
16.09.2021, 19:41
Добрый день.

При компиляции проекта появляется сообщение INVALID_HANDLE. Что оно означает ?

Kickit
21.09.2021, 20:14
Здравствуйте! Подскажите, можно как-то в области объявления переменных привязать выходы контроллера к элементам массива?
Как-то так:
Status: ARRAY [1..2] OF BOOL :=
AT %IX1.11,
AT %IX1.12;

Kickit
21.09.2021, 21:29
В КДС2 - нет

Ок. Спасибо.

Александрррр
30.09.2021, 14:06
Добрый день!
ПЛК 110-60 забывает прошивку при продолжительном(больше 30 минут) отключении питания. При попытке подключения он говорит что у меня не та конфигурация. Но через какой то время без проблем снова дает возможность подключится к нему и залить заново прошивку. Как сделать так чтобы прошивка не слетала? Загрузочный проект, холодный сброс и старт через codesys я делаю, не работает. Повторяется ситуация в каждом первом случает при продолжительном отключении плк от сети.57227

kondor3000
30.09.2021, 14:10
Добрый день!
ПЛК 110-60 забывает прошивку при продолжительном(больше 30 минут) отключении питания. При попытке подключения он говорит что у меня не та конфигурация. Но через какой то время без проблем снова дает возможность подключится к нему и залить заново прошивку. Как сделать так чтобы прошивка не слетала? Загрузочный проект, холодный сброс и старт через codesys я делаю, не работает. Повторяется ситуация в каждом первом случает при продолжительном отключении плк от сети.57227

Меню/Онлайн/Создание загрузочного проекта

Александрррр
30.09.2021, 14:40
Загрузочный проект делал, и написал об этом.

kondor3000
30.09.2021, 15:12
Загрузочный проект делал, и написал об этом.

Если ругается на целевую платформу, проверяйте таргеты, может у вас ПЛК110_60_M v2, а платформа ПЛК110_60_М. Или у вас буква М, а таргет L. Проверяйте.
Контроллер старый или новый?

Lex Ф
30.09.2021, 16:36
Здравствуйте.
При подключении ПЛК210 по Ethernet не происходит автоматическое распознавание сети. Через USB - штатно. Виндовз10.

Евгений Кислов
30.09.2021, 17:14
Здравствуйте.
При подключении ПЛК210 по Ethernet не происходит автоматическое распознавание сети. Через USB - штатно. Виндовз10.

Добрый день.

1. Это тема о ПЛК, программируемых в CoDeSys V2.3
2. Что вы подразумеваете под "автоматическим распознаванием сети"?

Александрррр
01.10.2021, 06:03
Если ругается на целевую платформу, проверяйте таргеты, может у вас ПЛК110_60_M v2, а платформа ПЛК110_60_М. Или у вас буква М, а таргет L. Проверяйте.
Контроллер старый или новый?

На коробке с контроллером дата 10.09.2020. Таргеты в порядке, как я уже писал через какое то время эта же самая прошивка с этими же самыми таргетами проходит. Суть не в этом, а в том что ПЛК забывает свою прошивку при отключении питания. Создать загрузочный проект я делал - не помогает.

Александрррр
01.10.2021, 07:38
определитесь с терминологией. Что Вы понимаете под словом прошивка?
И вместо того чтоб говорить что написано на коробке, приложите скрины того что выдает команда PLCInfo в онлайн режиме

Я подразумеваю программу написанную в codesys 2.3 и загруженную в ПЛК.57242

Валенок
01.10.2021, 07:47
...........

Валенок
01.10.2021, 07:55
..........

Александрррр
01.10.2021, 11:01
соединение, заводской сброс, откл,
проект,
очистить все,
соединение, //кстати что спросил?
скрин filedir,
загрузочный проект,
скрин filedir

прошивка здесь эквивалент переустановки винды, а проект здесь загрузка любимой музыки. Первое вы не делали пока. Используйте здесь термины принятые здесь

Сделал. Скрин до:
57254
Скрин после:
57255
Проблема не исчезла. При отключении питания контроллер забывает программу.

Александрррр
01.10.2021, 11:02
ко всему прочему, в каком положении тумблер, это на всякий случай

Тумблер в положении работа. Вверх смотрит.

Валенок
01.10.2021, 11:17
..............

Александрррр
01.10.2021, 11:24
Забывают день рождения тещи. После передергивания питания (сек так на 20) DEFAULT'ы (см. 2й скрин #8156) остались ?
И какие вопросы от КДС при подключении ?

#8154
?

Инфы - нет. ПЛК видимо б/у. Где-то в конце 19-ого начале 20-ого были проблемы с железом. Поиск по formatFFS

Да если создать загрузочный проект и отключить не надолго то всё в порядке. Программа сохраняется и включается при включении питания. Но это и раньше действовало.
57256
А мне бы хотелось чтобы он сохранял программу при продолжительном отключении от сети. Это возможно?

#8154 поподробнее пожалуйста.

По новизне плк не в курсе, не я покупал. Но могу уточнить это если нужно.

kondor3000
01.10.2021, 11:33
#8154 поподробнее пожалуйста.

В посте номер #8154 спрашивали:

А кто и зачем делал formatFFS ?

Александрррр
01.10.2021, 11:42
А кто и зачем делал formatFFS ?

Если речь про команду из ПЛК браузер то я её не делал. Возможно кто то до меня её делал, поспрашиваю.

Валенок
01.10.2021, 11:57
...............

Александрррр
01.10.2021, 12:12
А кто и зачем делал formatFFS ?

Нет, никто её не делал.

Александрррр
01.10.2021, 12:19
Главное - по какой причине (#8158)
(Обычно 10.2.11.119 - после неё)

---
И ввиду внезапно открывшихся обстоятельств в виде собственной работой с файловой системой (см. source.dat, #8159) - уверены что сами с усами ?
Стандартное требование : выкладывайте проект
(Лично я не гарантирую что смогу посмотреть его в ближайшее время, но тут много народу)



Пока - нет, видимо

Проект попробую выложить, если конечно мне разрешат выложить проект на всеобщее обозрение. Я кое что делал с ПЛК чтобы заставить его работать. А именно команду updateCore. Но команду formatFFS я не нажимал. Если точнее то я проделал то что было сказано тут проделать (https://owen.ru/forum/showthread.php?t=31023). Это не помогло, проблема была до этих манипуляций и осталась после.

Врятли дело в проекте. Первая версия проекта состояла из обработки первого входа и нажатию первого выхода по сигналу из первого входа. И всё. Там негде было ошибиться. Но косяк с несохранением программы уже тогда был.

Валенок
01.10.2021, 12:41
............

Александрррр
01.10.2021, 12:45
Рукалицо, фигня какая )) Думаю что нужно будет туда же идти (по ссылке) и подробно, по шагам. С момента включения питания, даже если перерыв на кофе - упомянуть как долго, сколько сахара и т.п.

Я уже проделал всё что сказано в этой инструкции. Не совсем понял вас, ещё раз надо это же проделать?

Александрррр
01.10.2021, 12:55
Главное - по какой причине (#8158)
(Обычно 10.2.11.119 - после неё)

---
И ввиду внезапно открывшихся обстоятельств в виде собственной работой с файловой системой (см. source.dat, #8159) - уверены что сами с усами ?
Стандартное требование : выкладывайте проект
(Лично я не гарантирую что смогу посмотреть его в ближайшее время, но тут много народу)



Пока - нет, видимо

Вот проект который так же приводит к этой ошибке. Только что проверил.

Валенок
01.10.2021, 12:55
..........

Александрррр
01.10.2021, 13:44
А по какой причине туда вообще занесло ? Была "ошибка 80" ?
Под рук-вом представителя тех.поддержки овена (тел. внизу) уточнить соответствия прошивок/таргетов (скрин #8151) и, возможно, пройти этот путь заново (под его же рук-вом !)

Понял, пишу в тех поддержу. Спасибо что время уделили.

vinogradishev
04.10.2021, 07:49
Здравствуйте, пытаюсь соединить ПЛК150 и MK210, использую протокол modbus. Иду по инструкции, там надо вместо RS232 поставить "EMPTY", но у меня нет этого, у меня только "modem", "rs-485", "rs-323", может кто-то подскажет. Может библиотеку какую надо, я ещё совсем новичёк.

vinogradishev
04.10.2021, 09:05
Видео №6, https://www.youtube.com/watch?v=6AoMPByEKoY, там при создании modbus (master), нужно поставить вместо "RS-232" - "Empty", у меня нет такой в меню. Я понимаю, что скорее всего я туплю, но надеюсь получить помощь. Спасибо. Мне надо соединить ПЛК150 и МК210, для передачи сигнала управления ворота и для контроля шлейфов ОС и ПС. Спасибо.

capzap
04.10.2021, 09:28
Видео №6, https://www.youtube.com/watch?v=6AoMPByEKoY, там при создании modbus (master), нужно поставить вместо "RS-232" - "Empty", у меня нет такой в меню. Я понимаю, что скорее всего я туплю, но надеюсь получить помощь. Спасибо. Мне надо соединить ПЛК150 и МК210, для передачи сигнала управления ворота и для контроля шлейфов ОС и ПС. Спасибо.

так Вы видео смотрите с контроллером ПЛК110 М2, там и ОС другая и конфигурация иначе сделана.
Для Вашего плк достаточно один пункт изменить 57282

KirillKirpich
04.10.2021, 10:13
Здравствуйте! ПЛК100 подключен по Ethernet к OPC серверу, на ПЛК нужно фиксировать обрыв связи по Ethernet. Библиотеки OwenLibNetControl и OwenLibPing этот ПЛК не поддерживают, как я понимаю. Не подскажите как можно реализовать данную задачу?

Михаил_И
04.10.2021, 11:07
Здравствуйте, как с помощью конфигуратора создать на owen plc 110 -60 modbus slave RTU так , что бы регистры в нем были не с 0, а с какого я хочу ? Задача такая, мне надо написать модбас слейв на овне с тем что бы выкидывать информацию в адреса с 60 по 90. потом с 200 по 210 и так далее небольшими группами примерно до тысячного регистра. Где то значения int где то float- неважно. И что то я не вижу где в настройках конфигурация плк -> ModBus(slave) Modbus fix rs-485 -> 2 byte указать что бы эти самые 2 байта располагались не с 0 (ну или с 40001 регистра если кому то так привычней) а например сразу с 60. Существует уже готовая программа опроса контроллера , где по ряду причин опрос ведеться такими вот блоками, хочу подстроиться под нее.

IVM
04.10.2021, 11:35
Если делать обмен через конфигуратор, то придется застолбить 1000 регистров.

Еще есть возможность организовать обмен через библиотеку: https://owen.ru/forum/showthread.php?t=28996

tPorte
04.10.2021, 13:50
Здравствуйте! Нужно передать информацию о температуре из ПЛК160[М2] в сообщение приложения Телеграм на телефоне.
Подскажете пожалуйста как это реализовать на языке CFC? Есть ли у кого примеры программы или хотябы ссылки по форуму?
связь осуществляется по Ethernet. Телеграм бот настроен. Нужно на определенную web ссылку отправить запрос с текстом и он там отображается! Но я не пойму как этот самый запрос реализовать в программе Codesysy 2.3 на CFC.

capzap
04.10.2021, 14:07
Здравствуйте! Нужно передать информацию о температуре из ПЛК160[М2] в сообщение приложения Телеграм на телефоне.
Подскажете пожалуйста как это реализовать на языке CFC? Есть ли у кого примеры программы или хотябы ссылки по форуму?
связь осуществляется по Ethernet. Телеграм бот настроен. Нужно на определенную web ссылку отправить запрос с текстом и он там отображается! Но я не пойму как этот самый запрос реализовать в программе Codesysy 2.3 на CFC.

тут даже на ST долго объяснять что и за чем, а в графичесом языке это нужна куча свободного времени, чтоб приготовить пример. Брать отпуск из-за Вашей хотелки ни кто не будет

Lex Ф
05.10.2021, 15:05
Добрый день.

1. Это тема о ПЛК, программируемых в CoDeSys V2.3
2. Что вы подразумеваете под "автоматическим распознаванием сети"?

1. Мне уйти в другую тему чтобы не засорять эту?
2. До этого я подключал ПЛК через Ethernet к ПК (вин10), в разделе"центр управления сетями и общим доступом" появлялась новая сеть Ethernet,, которая распознавалась самим ПК как "общедоступная сеть". После подключения ПЛК к другому ПК больше эту сеть самостоятельно не распознаёт и подписывает её как "неопознанная сеть"

kondor3000
05.10.2021, 15:21
1. Мне уйти в другую тему чтобы не засорять эту?
2. До этого я подключал ПЛК через Ethernet к ПК (вин10), в разделе"центр управления сетями и общим доступом" появлялась новая сеть Ethernet,, которая распознавалась самим ПК как "общедоступная сеть". После подключения ПЛК к другому ПК больше эту сеть самостоятельно не распознаёт и подписывает её как "неопознанная сеть"

А вопрос то в чём? Пропишите IP ручками и какая разница как сеть называется? На 7 у меня тоже неопознанная сеть.
Если нет автоподключения, то скорее всего заблокировал брандмауэр или антивирус.

Алексей Н
19.10.2021, 05:28
Добрый день!

Руководством поставлена задача собирать данные по протоколу modbus-TCP с контроллера ПК-110-60, к контроллеру подключены по rS-485 панель Schneider Electric с положениями DI и цифровой мультиметр ЕМ-07, который показывает токи/напряжения/мощность. эти же параметры по ethernet нужно передавать в скаду.

Опыта работы с ОВЕН ПЛК нет совсем, а сроки поставленные как обычно "вчера должно быть все готово", как я понял из разговора с техподдержкой,необходимо подключиться к ПЛК, считать существующий проект и добавить список переменных которые будут передаваться по modbus-TCP и записать измененный проект в ПЛК.

Контроллер на действующем НКУ, внутри судя по всему прописана какая то логика, так как ПЛК управляет выходами DO в зависимости от состояния входных сигналов DI

Начну с первого вопроса - как можно считать проект с контроллера? Обучающие видео смотрел - по ним настроил подключение к ПЛК по ethernet и USB, какой следующий порядок действий, что бы не затереть существующий проект.

capzap
19.10.2021, 07:29
Начну с первого вопроса - как можно считать проект с контроллера?
а где есть свидетельства что он там есть? Тех.поддержка Вам объяснила порядок действий, но наличие должен подтвердить тот кто первый работал с контроллером и запустил на нем проект и теоретически мог загрузить исходники. Скомпилированный проект, которы запускает выхода и читает входа, Вам не поможет

Rednaxel
19.10.2021, 08:34
... и теоретически мог загрузить исходники...
Я бы еще добавил к этому: даже если проект там есть, то не факт, что он актуальной версии.

... Опыта работы с ОВЕН ПЛК нет совсем...
Нужно иметь достаточно навыков, чтобы всё исправить, если что-то пойдет не так, вплоть до написания всего проекта заново. Думаю без автора изначального проекта шансов у Вас нет и Вы сильно рискуете сломать то, что уже работает.

Алексей Н
20.10.2021, 13:49
Я бы еще добавил к этому: даже если проект там есть, то не факт, что он актуальной версии.

Нужно иметь достаточно навыков, чтобы всё исправить, если что-то пойдет не так, вплоть до написания всего проекта заново. Думаю без автора изначального проекта шансов у Вас нет и Вы сильно рискуете сломать то, что уже работает.

Спасибо за ответ, будем пытаться найти организацию, которая изначально делала ПНР.

W1nn1ep00h
20.10.2021, 23:39
Добрый вечер. Первый проект на ОВЕНЕ за 10 лет. Не могу понять в режиме эмуляции фильтр DIG_FLTR работает? Просто, как бы не играл с настройками, он выдает всегда на выходе 0.
Программа пишется под плк110[m2], таргет последний.

Гришка
21.10.2021, 06:26
Добрый день, прошу помощи простой код на CFC но не могу понять почему не отрабатывает так как нужно:57605

ОК-bool
ID-word
Id1-word

логика такая: Если ОК- TRUE сравниваем значение ID и ID1 если они равны. то сбрасываем ОК и присваиваем ID1=0, и все второй блок уже не должен обрабатываться т.к. OK-false. Но у меня выходит по другому, всегда значение ID присваивается ID1, почему если OK уходит в false ? Пробовал в режиме отладки проходить по точкам все идет ок, но после 10 шага ID1 присваивается значение ID, всю голову уже сломал почему так.

capzap
21.10.2021, 07:32
Наверное все дело, в шестом элементе, если уж сравнивать то через EQ

Гришка
21.10.2021, 07:46
6 элемент нужен чтобы сравнить совпадают значения или нет, если нет то выдать true, но он вроде как и не отрабатывает так как сброшеный ОК в первом блоке, во втором уже не взводится, но значение в 9 блоке все равно присваивается, хотя EN не активно.

kondor3000
21.10.2021, 09:58
6 элемент нужен чтобы сравнить совпадают значения или нет, если нет то выдать true, но он вроде как и не отрабатывает так как сброшеный ОК в первом блоке, во втором уже не взводится, но значение в 9 блоке все равно присваивается, хотя EN не активно.

Тут как раз и ошибка, Элемент NE с EN работает не так как вам надо, выход его не сбрасывается после сброса ОК. Также и выход EQ не сбрасывается. Поэтому из этих элементов EN/ENO, можно смело выкинуть, и просто менять значение ID.

Переходите на ST, там всё проще))

IF OK AND ID1=ID THEN
OK:=FALSE;
ID1:=0;
ELSIF OK AND ID1<>ID THEN
OK:=FALSE;
ID1:=ID;
END_IF

Гришка
21.10.2021, 10:52
Тут как раз и ошибка, Элемент NE с EN работает не так как вам надо, выход его не сбрасывается после сброса ОК. Также и выход EQ не сбрасывается. Поэтому из этих элементов EN/ENO, можно смело выкинуть, и просто менять значение ID.

Переходите на ST, там всё проще))

IF OK AND ID1=ID THEN
OK:=FALSE;
ID1:=0;
ELSIF OK AND ID1<>ID THEN
OK:=FALSE;
ID1:=ID;
END_IF

Спасибо за разъяснение но все равно не понятно EN на каких то элементах он работает на каких то нет?)) Буду в этой задаче делать на ST.

ST проще в таких случая, но мне удобно когда это визуально представлено)

kondor3000
21.10.2021, 11:19
Спасибо за разъяснение но все равно не понятно EN на каких то элементах он работает на каких то нет?)) Буду в этой задаче делать на ST.

ST проще в таких случая, но мне удобно когда это визуально представлено)

В вашем случае EN/ENO надо выкинуть, а вставить блок AND, и тогда всё ОК 57606
Для работы блока сравнения с EN, надо их использовать парами, тогда работает. Два GT или два GE например. И то не совсем правильно)

Гришка
21.10.2021, 11:42
до такого варианта я не до думался) еще раз спасибо.

W1nn1ep00h
21.10.2021, 14:04
Добрый вечер. Первый проект на ОВЕНЕ за 10 лет. Не могу понять в режиме эмуляции фильтр DIG_FLTR работает? Просто, как бы не играл с настройками, он выдает всегда на выходе 0.
Программа пишется под плк110[m2], таргет последний.

Повтор вопроса

melky
21.10.2021, 14:11
W1nn1ep00h насколько помню, данная библиотека всего лишь оболочка встроенной в ПЛК, должна работать только при связи с ПЛК и в эмуляции не работает.

Это вы ведь про ту, которая должна выдавать коды ошибок аналоговых датчиков ?

Rednaxel
21.10.2021, 14:21
Добрый вечер. Первый проект на ОВЕНЕ за 10 лет. Не могу понять в режиме эмуляции фильтр DIG_FLTR работает? Просто, как бы не играл с настройками, он выдает всегда на выходе 0.
Программа пишется под плк110[m2], таргет последний.

Должен работать, куда он денется? Но это не точно :)
Там смотрите: он может начать выдавать данные спустя немалое время. Ну и может какой WinPLC попробовать, если реально в эмуляторе не идет?
Мне лично в свое время помог с справиться с этим блоком Документ Библиотека PID_Regulators. Руководство по применению (https://ftp.owen.ru/CoDeSys23/05_Library/01_Manuals/PID_Regulators.pdf).

Николай Суриков
21.10.2021, 14:44
Должен работать, куда он денется? Но это не точно :)
Там смотрите: он может начать выдавать данные спустя немалое время. Ну и может какой WinPLC попробовать, если реально в эмуляторе не идет?
Мне лично в свое время помог с справиться с этим блоком Документ Библиотека PID_Regulators. Руководство по применению (https://ftp.owen.ru/CoDeSys23/05_Library/01_Manuals/PID_Regulators.pdf).

Внимание! У программных компонентов режим симуляции (Simulation Mode)
не предусмотрен. Отладка программы проводится при подключенном
контроллере, – программные компоненты при этом работают только в самом
контроллере.

Rednaxel
21.10.2021, 15:28
Ну реально! Теперь вспомнил: для тестирования проекта с этим модулем пришлось переделать его на другой ПЛК и потом назад

Eugenics
24.10.2021, 17:39
Всем привет, у меня вопрос по ОВЕН 110-60. Есть ли возможность подключиться к нему и сравнить проект который в ПЛК и на ПК? Боюсь того, что проект на ПК не актуальный, а испортить проект в ПЛК это не вариант.

VaBo
24.10.2021, 17:58
Подключитесь, CDS сам сравнит и если проект не совпадает, предложит загрузить текущий. От загрузки можете отказаться.

kondor3000
24.10.2021, 18:37
Всем привет, у меня вопрос по ОВЕН 110-60. Есть ли возможность подключиться к нему и сравнить проект который в ПЛК и на ПК? Боюсь того, что проект на ПК не актуальный, а испортить проект в ПЛК это не вариант.

Только учтите, что даже одна запятая меняет проект. А бывает и вообще проект ничем не отличается (просто перекомпилирован), но просит загрузить. Синие стрелочки показывают в каких блоках есть отличия. Вы можете вывести сравнение и посмотреть, что отличается. Также вы можете и залить проект онлайн и проверить в работе, главное не создавайте загрузочный проект и не загружайте файлы. Обычная заливка онлайн отменится, если перезагрузите ПЛК.

Mr_Camel
25.10.2021, 12:27
Товарищи! ПЛК110 (М02) работает с ПЧ Danfoss FC-202. ПЧ по RS-485 получает уставку по давлению от ПЛК, и пока включен все работает прекрасно, но как только ПЧ выкл и включить(снять питание) он перестает получать данные (уставку), вопрос решается только перезагрузкой контроллера(вкл/выкл). Не поймем куда копать, в проекте уставка постоянно отправляется в сеть, частотник тоже после включения переходит в режим AutoON и должен получить уставку без проблем.

kondor3000
25.10.2021, 12:40
Товарищи! ПЛК110 (М02) работает с ПЧ Danfoss FC-202. ПЧ по RS-485 получает уставку по давлению от ПЛК, и пока включен все работает прекрасно, но как только ПЧ выкл и включить(снять питание) он перестает получать данные (уставку), вопрос решается только перезагрузкой контроллера(вкл/выкл). Не поймем куда копать, в проекте уставка постоянно отправляется в сеть, частотник тоже после включения переходит в режим AutoON и должен получить уставку без проблем.

Думаю вся проблема в том, что уставка записывается в частотник по изменению. Если ПЛК не перезагружать, уставка не пишется. Это стандартная работа. Вам же надо завести бит включения частотника в ПЛК и по его приходу, кратковременно изменить уставку , хоть на 0.0001 и потом вернуть назад. Тогда всё запишется.
Или второй вариант, сделать отдельный UMD для уставки и поставить вместо By Value Change (по измению) настройку By Poll Time (циклически) выставить вместо 50 ms, например 1000 ms. И уставка будет писаться каждую секунду.

Mr_Camel
25.10.2021, 13:01
Думаю вся проблема в том, что уставка записывается в частотник по изменению. Если ПЛК не перезагружать, уставка не пишется. Это стандартная работа. Вам же надо завести бит включения частотника в ПЛК и по его приходу, кратковременно изменить уставку , хоть на 0.0001 и потом вернуть назад. Тогда всё запишется.

В том и беда, что после вкл. ПЧ, он не хочет менять уставку даже после изменения с ПЛК.

kondor3000
25.10.2021, 13:34
В том и беда, что после вкл. ПЧ, он не хочет менять уставку даже после изменения с ПЛК.

А связь восстанавливается? Что выдаёт Модбас мастер? Ошибка есть или 0 ( нет ошибок)
Связь через конфигурацию или через биб-ку?
Попробуйте сделать на ПЛК сброс-Старт или Стоп-Старт.

Провёл эксперимент, отключил панель оператора по питанию. В конфигурации, в Модбас мастере ошибка 81, после подачи питания связь с ПЛК восстановилась.

Ильнур
25.10.2021, 17:28
Добрый день!
Есть переменная типа STRING. Туда пишутся символы в кодировке UTF-8. Как можно получить код символа из слова?

Mr_Camel
25.10.2021, 18:03
А связь восстанавливается? Что выдаёт Модбас мастер? Ошибка есть или 0 ( нет ошибок)
Связь через конфигурацию или через биб-ку?
Попробуйте сделать на ПЛК сброс-Старт или Стоп-Старт.

Провёл эксперимент, отключил панель оператора по питанию. В конфигурации, в Модбас мастере ошибка 81, после подачи питания связь с ПЛК восстановилась.

Ошибок после вкл.ПЧ нет,делал в проекте проверку на 81 ошибку.После включения все по 0.Связь через конфигурацию.Причем данные с ПЧ забирает,в частности показания датчика например. А что даёт сброс старт?Пардон если вопрос не очень

kondor3000
25.10.2021, 18:11
Ошибок после вкл.ПЧ нет,делал в проекте проверку на 81 ошибку.После включения все по 0.Связь через конфигурацию.Причем данные с ПЧ забирает,в частности показания датчика например. А что даёт сброс старт?Пардон если вопрос не очень
По идее если связь восстанавливается и читает, значит и записывать должен.
Пытаюсь понять, что у вас не так. Если начинает работать после перезагрузки, хотел узнать что будет после стоп программа- старт программа и так же что будет после сброса ПЛК из Codesys и старта программы (обычный сброс обнулит все переменные, как будто первый запуск ( холодный сброс и заводской делать не надо)).

kondor3000
25.10.2021, 18:34
Добрый день!
Есть переменная типа STRING. Туда пишутся символы в кодировке UTF-8. Как можно получить код символа из слова?

Читаем справку Codesis по F1 библиотеки/Standart.lib/Строковые функции, получите отдельные символы в строке, их переведёте в кодировку. Или я не так понял, что вам надо?

Eugenics
25.10.2021, 19:40
Подключитесь, CDS сам сравнит и если проект не совпадает, предложит загрузить текущий. От загрузки можете отказаться.


Только учтите, что даже одна запятая меняет проект. А бывает и вообще проект ничем не отличается (просто перекомпилирован), но просит загрузить. Синие стрелочки показывают в каких блоках есть отличия. Вы можете вывести сравнение и посмотреть, что отличается. Также вы можете и залить проект онлайн и проверить в работе, главное не создавайте загрузочный проект и не загружайте файлы. Обычная заливка онлайн отменится, если перезагрузите ПЛК.
Спасибо, буду действовать.

Mr_Camel
26.10.2021, 07:25
По идее если связь восстанавливается и читает, значит и записывать должен.
Пытаюсь понять, что у вас не так. Если начинает работать после перезагрузки, хотел узнать что будет после стоп программа- старт программа и так же что будет после сброса ПЛК из Codesys и старта программы (обычный сброс обнулит все переменные, как будто первый запуск ( холодный сброс и заводской делать не надо)).
К сожалению оборудование довольно далеко от меня,как доберусь и попробую разобраться выложу все моменты.Спасибо за помощь

Александр Александр
27.10.2021, 20:16
Здравствуйте! Недавно начал изучать Codesys, имею на руках контроллер ПЛК-63. В нём имеется возможность добавления подменю для создания графиков. С этим всё хорошо, я выбираю график на 3 точки, задаю значения Х и значения Y. Далее используя ФБ GRxy пытаюсь получить значения с этого графика, но ничего не работает, в точке 1, вместо значения 10, выдаёт 0, как, собственно и в любой другой точке. Пытался найти какую-то более подробную документацию по указателям (подозреваю что неправильно их использую), но ничего, кроме нескольких строчек в инструкции, я не нашёл. Буду благодарен, если объясните как правильно использовать эти самые указатели или подскажете, где подробно про них почитать. 57698

ASo
27.10.2021, 20:57
Подайте на P ADR(%QB.2.0.0) и всё заработает.
В QB.... не забудьте записать реальное число точек.

Александр Александр
27.10.2021, 21:46
Не знал про ADR, вписывал QB без него и, конечно, ничего не получалось. Спасибо! А про указание реального числа точек в QB - что вы подразумеваете? Я указываю непосредственно в меню, что обвёл на скриншоте. В итоге процесс запускается, но от точки Х1=1 не возвращается Y1=10, как я задавал в QD2.0.1. Если это важно, то сейчас я не подключил ПЛК, просто в эмуляции разбираюсь с GRxy. 57699

kondor3000
27.10.2021, 22:56
Не знал про ADR, вписывал QB без него и, конечно, ничего не получалось. Спасибо! А про указание реального числа точек в QB - что вы подразумеваете? Я указываю непосредственно в меню, что обвёл на скриншоте. В итоге процесс запускается, но от точки Х1=1 не возвращается Y1=10, как я задавал в QD2.0.1. Если это важно, то сейчас я не подключил ПЛК, просто в эмуляции разбираюсь с GRxy. 57699

Вообще то правильней будет дважды щёлкнуть ЛКМ, по АТ в конфигурации и дать входу имя, например P_B, 57700
а в квадратик уже вставить ADR(P_B).
Так же можно называть и другие входы. А в программе обращаться к ним по имени.

Александр Александр
27.10.2021, 23:37
Про имена я знаю, но всё равно спасибо, что напомнили: как-то не связалось в голове, что адресация графика это та же адресация входа или выхода, и её можно переименовать в что-то попроще, нежели %QB...; В любом случае, в режиме эмуляции не хочет возвращать Y, когда задаю X на входе. Завтра попробую с контроллером.

ASo
28.10.2021, 07:51
Не знал про ADR, вписывал QB без него и, конечно, ничего не получалось. Спасибо! А про указание реального числа точек в QB - что вы подразумеваете? Я указываю непосредственно в меню, что обвёл на скриншоте. В итоге процесс запускается, но от точки Х1=1 не возвращается Y1=10, как я задавал в QD2.0.1. Если это важно, то сейчас я не подключил ПЛК, просто в эмуляции разбираюсь с GRxy. 57699
Именно число реально используемых точек графика. На самом деле, этот тип в меню ... НЕ БОЛЕЕ 3-х точек.

ASo
28.10.2021, 07:52
Про имена я знаю, но всё равно спасибо, что напомнили: как-то не связалось в голове, что адресация графика это та же адресация входа или выхода, и её можно переименовать в что-то попроще, нежели %QB...; В любом случае, в режиме эмуляции не хочет возвращать Y, когда задаю X на входе. Завтра попробую с контроллером.
Эта функция в эмуляции может и не работать. Она может быть встроена в прошивку, судя по библиотеке.

Eugenics
28.10.2021, 09:31
Всем привет. Переношу проект на другой ПК с CDSv.2, где нет библиотек. Копирую требуемые для проекта библиотеки в стандартную папку CDSv.2 library. В другой раз приношу на этот ПК точно такой же проект, но просто сохранённым под другим именем и тут опять начинается всё заново: не хватает библиотек, хотя они уже есть в CDSv.2 library. Что сделать, чтобы CDSv.2 не требовал библиотеки, которые уже есть.

Sulfur
28.10.2021, 09:49
Eugenics
Экспортировать проект целиком, включая библиотеки, пробовали?

kondor3000
28.10.2021, 10:29
Всем привет. Переношу проект на другой ПК с CDSv.2, где нет библиотек. Копирую требуемые для проекта библиотеки в стандартную папку CDSv.2 library. В другой раз приношу на этот ПК точно такой же проект, но просто сохранённым под другим именем и тут опять начинается всё заново: не хватает библиотек, хотя они уже есть в CDSv.2 library. Что сделать, чтобы CDSv.2 не требовал библиотеки, которые уже есть.
Скорее всего у вас указан неправильный путь к библиотекам в Codesys. У меня всё открывается без вопросов, даже скачанные чужие проекты. Максимум может написать, что версия библиотеки другая.

Александр Александр
28.10.2021, 10:47
Эта функция в эмуляции может и не работать. Она может быть встроена в прошивку, судя по библиотеке.

Так и есть, с подключенным контроллером ФБ работает без проблем. Ещё раз спасибо за помощь!

Eugenics
28.10.2021, 11:40
когда открываешь Project-options-directories в строке project: Libraries прописано старое расположение библиотек, меняю на такое же как в строке General. Ничего автоматически не подхватывается.

57702
57705

Eugenics
28.10.2021, 11:41
Eugenics
Экспортировать проект целиком, включая библиотеки, пробовали?

еще не умею

kondor3000
28.10.2021, 12:22
когда открываешь Project-options-directories в строке project: Libraries прописано старое расположение библиотек, меняю на такое же как в строке General. Ничего автоматически не подхватывается.


project: Libraries Вот эту верхнюю строку удалите и нажмите ОК в правом углу. Перекомпилируйте и сохраните проект. И дома сделайте тоже самое.
И поставьте уже русскоязычную версию))57707

Eugenics
28.10.2021, 13:49
project: Libraries Вот эту верхнюю строку удалите и нажмите ОК в правом углу. Перекомпилируйте и сохраните проект. И дома сделайте тоже самое.
И поставьте уже русскоязычную версию))57707

Спасибо. Русскоязычную не ставлю, английский закрепляю)).

Sulfur
28.10.2021, 14:00
Eugenics

еще не умею
CDS>Проект>Экспорт>Отметить все что можно>Ок>Назначить имя файла>Сохранить>Радоваться.

Eugenics
28.10.2021, 14:24
Eugenics

CDS>Проект>Экспорт>Отметить все что можно>Ок>Назначить имя файла>Сохранить>Радоваться.

Спасибо огромное, в хелпе до описания еще не дошёл.

Eugenics
30.10.2021, 06:23
Скажите пожалуйста, что означает эта стрелка после выполнения "Build"., потому что после "Save" или "Save As" программы, стрелка тоже сохраняется.
57749

kondor3000
30.10.2021, 10:13
Скажите пожалуйста, что означает эта стрелка после выполнения "Build"., потому что после "Save" или "Save As" программы, стрелка тоже сохраняется.
57749

Стрелка означает, что есть отличия в программе от программы в ПЛК и попросит залить изменения при онлайн подключении. Даже если вы просто перекомпилируете проект, ничего не меняя, появится стрелка.
Вы можете отказаться от заливки и посмотреть отличия. Если их нет, просто залейте проект онлайн ( запись в оперативную память).
А для сохранения программы в памяти, надо создать загрузочный проект ( запись в ПЗУ).

VladisVlad
30.10.2021, 10:38
Добрый день, разбираю чужой код программы, необходимо составить карту регистров ModBus. Столкнулся со следующей трудностью. В разделе глобальных переменных у разных переменных присваивается один и тот же элемент из конфигурации ПЛК Modbus Slave, эти данные должны передаваться на верхний уровень. Тип этого элемента Float (в конфигурации ПЛК - ModBus Slave). Это ошибка программиста или я чего-то не понимаю? Разве можно одному элементу присвоить разные переменные, которые потом уйдут на верхний уровень? А если можно, то как определить регистры? Палками не кидайте, только начинаю осваиваться
XE9_HG AT %QD8.129.0: REAL; (*Температура датчика*)
LOVATO_UA_HG AT %QD8.129.0: REAL; (*Напряжение фазы*)

kondor3000
30.10.2021, 10:53
Добрый день, разбираю чужой код программы, необходимо составить карту регистров ModBus. Столкнулся со следующей трудностью. В разделе глобальных переменных у разных переменных присваивается один и тот же элемент из конфигурации ПЛК Modbus Slave, эти данные должны передаваться на верхний уровень. Тип этого элемента Float (в конфигурации ПЛК - ModBus Slave). Это ошибка программиста или я чего-то не понимаю? Разве можно одному элементу присвоить разные переменные, которые потом уйдут на верхний уровень? А если можно, то как определить регистры? Палками не кидайте, только начинаю осваиваться
XE9_HG AT %QD8.129.0: REAL; (*Температура датчика*)
LOVATO_UA_HG AT %QD8.129.0: REAL; (*Напряжение фазы*)
С такими вопросами, сразу смотрите курс видео программирования ПЛК ОВЕН для новичков, на ютуб. Большая часть вопросов отпадёт сразу).
А по поводу присвоения одному элементу разных переменных, пишите подробней, какому элементу, какие переменные , лучше со скринами или выкладывайте проект.

VladisVlad
30.10.2021, 14:17
На первом рисунке VAR_GLOBAL, на втором конфигурация ПЛК. У меня не стыкуется в голове
5775357754

Валенок
30.10.2021, 15:38
...............

Sulfur
30.10.2021, 15:58
VladisVlad
По опыту знаю, что явная адресация физических входов\выходов\регистров в VAR_GLOBAL приводит к ошибкам, конфликтам и путанице. Внешние связи достаточно объявить в конфигурации, они будут глобальными и доступными из любого места проекта.

kondor3000
30.10.2021, 16:20
На первом рисунке VAR_GLOBAL, на втором конфигурация ПЛК. У меня не стыкуется в голове
5775357754

На левом скрине конечно не правильно, адресация должна меняться. Похоже проект не закончен был.
На правом скрине всего лишь подписи, адреса регистров проставляются не здесь. Тупо копипастом добавлял регистры, а подписать правильно забыл, главное что бы адреса проставлены были.
Автор конечно тоже отчудил))) Прямую адресацию сделал зачем то ). Это же в 3 раза больше писанины). Адресацию по AT%... лучше не делать, имена даются прямо в конфигурации ( двойным щелчком мыши по AT), они будут глобальными и больше их нигде прописывать не надо. Обращаться к регистру надо по имени.

Видео посмотрели?

VladisVlad
31.10.2021, 06:52
Проект изучаю, так как получил задание составить карту регистров, и вот столкнулся с таким вопросом. Программирование ПЛК только начинаю осваивать

VladisVlad
31.10.2021, 06:54
Смотрел видео о ПЛК 110 Овен, codesys 2.3, вебинар по программированию на ST. И меня тоже удивило, что применяется адресация в глобальных переменных, а не в конфигурации ПЛК. Спасибо за помощь

VladisVlad
31.10.2021, 07:05
Т.к. это

Варианты :
1. Банальный просёр (проект - работает ? зачем его изучаете ?)
2. Мусор из предыдущего проекта (зачищайте от мусора сначала, после изучайте. Если после изменения имени компилится - смело удаляйте)
3. Разнесенная по времени работа с разными данными. Сегодня в самосвале дрова, завтра в нём мешки с цементом. Изучайте логику юзания.

И вообще - к AT% переходите в старшем классе. И не надо про "я умею" - пока возникают такие вопросы не умеете.
А пока не умеете - забудьте про оное и вбейте имена прям в конфигурации.

Да, проект кочует из одного ПЛК в другой и применяетс как основа, предполагаю недоглядели или код не актуальный

Eugenics
01.11.2021, 07:49
Скажите пожалуйста, что означает эта стрелка после выполнения "Build"., потому что после "Save" или "Save As" программы, стрелка тоже сохраняется.
57749

спасибо за разъяснение.

Newcomer
11.11.2021, 17:59
Добрый день.

Странно работает ПИД - регулятор в ПЛК. На первой картинке формула ПИД - регулятора, на второй - то, что отрабатывается в ПЛК, на третьей - работа ПИД в симуляторе. В симуляторе все верно работает. В ПЛК на выходе ПИД очень маленькое число, а должно быть 300. Замечу, что в формуле ПИД при данном раскладе все слагаемые положительные.

Newcomer
11.11.2021, 20:57
Кажется я понял в чем дело. Числитель в дроби дифференциальной составляющей в формуле ПИД может принимать отрицательные значения тем самым уменьшая сумму.

Newcomer
12.11.2021, 10:00
Не поверите но даже с положительным числителем может быть такая же ситуация. У Вас на картинке числитель как раз положительный. И-часть может завести куда угодно.
Разница симулятора и ПЛК в разнице начальных/входных условиях и/или временных тиках.

Где видно что числитель дифсоставляющей положительный ? Ошибка и выход ПИД положительные, это видно. Вклад И-составляющей в моем случае мизерный и она имеет положительный знак. Все портит Д-составляющая. Или что-то не так с ПЛК.

keysansa
13.11.2021, 17:10
Добрый день, разбираю чужой код программы, необходимо составить карту регистров ModBus.
Большинству технологических процессов хватает погрешности, при передаче сигналов в 12 бит. В Modbus обычно используется 16 бит. Передачу температуры по Modbus в виде REAL - считаю извращением. 16 бит хватит для передачи температуры доменной печи в 0.1С, плюс там же будут ошибки АЦП.


Т.к. это

Варианты :
1. Банальный просёр (проект - работает ? зачем его изучаете ?)
2. Мусор из предыдущего проекта (зачищайте от мусора сначала, после изучайте. Если после изменения имени компилится - смело удаляйте)
3. Разнесенная по времени работа с разными данными. Сегодня в самосвале дрова, завтра в нём мешки с цементом. Изучайте логику юзания.

И вообще - к AT% переходите в старшем классе. И не надо про "я умею" - пока возникают такие вопросы не умеете.
А пока не умеете - забудьте про оное и вбейте имена прям в конфигурации.

Согласен, дополню;
4. Датчик предусмотрен, но сейчас его нет (и возможно не будет). К пустому входу привязать нельзя, так как будут ошибки. Привязали к похожему.

keysansa
13.11.2021, 17:17
Где видно что числитель дифсоставляющей положительный ? Ошибка и выход ПИД положительные, это видно. Вклад И-составляющей в моем случае мизерный и она имеет положительный знак. Все портит Д-составляющая. Или что-то не так с ПЛК.

Вы не учитываете интегральную составляющую, как вам указали. Она может "полностью игнорировать" дифф (для этого она и придумана).
В отладке вы не учитываете интегральную, так как медленно анализируете. В работе, же время "течет быстро".

IVM
13.11.2021, 22:45
Вы не учитываете интегральную составляющую, как вам указали. Она может "полностью игнорировать" дифф (для этого она и придумана).
В отладке вы не учитываете интегральную, так как медленно анализируете. В работе, же время "течет быстро".

При положительной ошибке пропорциональная и интегральная составляющие тоже положительны. При таком большом KP на выходе ПИД и должно быть то, что видно в симуляторе (это легко считается). Почему в реале на выходе ПИД такое мизерное значение непонятно.

keysansa
14.11.2021, 22:42
При положительной ошибке пропорциональная и интегральная составляющие тоже положительны. При таком большом KP на выходе ПИД и должно быть то, что видно в симуляторе (это легко считается). Почему в реале на выходе ПИД такое мизерное значение непонятно.

В реале мы видим ошибку лишь на момент "фото".

ЗЫ. На одном из форумов, ведущий задал вопрос:
- Использует ли кто-нибудь из присутствующих модули автонастройки PID регулятора?
Из более 200 человек, ни один не поднял руку, при личном общении, все, кого я спросил, ответили, что "ссыкотна". И все эти люди не первый PID настраивают. И не 10-й.
Поэтому, возник вопрос, а на форуме кто-то использует?

Newcomer
15.11.2021, 10:03
В реале мы видим ошибку лишь на момент "фото".

ЗЫ. На одном из форумов, ведущий задал вопрос:
- Использует ли кто-нибудь из присутствующих модули автонастройки PID регулятора?
Из более 200 человек, ни один не поднял руку, при личном общении, все, кого я спросил, ответили, что "ссыкотна". И все эти люди не первый PID настраивают. И не 10-й.
Поэтому, возник вопрос, а на форуме кто-то использует?

То что на фото стоит и не меняется.

Pogreb
15.11.2021, 10:03
Добрый день! Подскажите, пожалуйста, есть ли инструкция по корректному удалению CodeSys из операционной системы? Чистый ноутбук с ОС Win10, стал устанавливать Codesys 2.3 и появились ошибки. Я отменил установку. Стал устанавливать заново и получаю ощибку 57927
Как мне удалить все файлы из операционной системы, чтобы установка прошла корректно, не хочется Windows переустанавливть.
Спасибо!

Newcomer
15.11.2021, 12:14
В реале мы видим ошибку лишь на момент "фото".

ЗЫ. На одном из форумов, ведущий задал вопрос:
- Использует ли кто-нибудь из присутствующих модули автонастройки PID регулятора?
Из более 200 человек, ни один не поднял руку, при личном общении, все, кого я спросил, ответили, что "ссыкотна". И все эти люди не первый PID настраивают. И не 10-й.
Поэтому, возник вопрос, а на форуме кто-то использует?

Где вы прочитали, что я использовал автонастройку ПИД ? В итоге выяснилось, что в реале картину портит дифсоставляющая. Если сделать TV = 0, то ПИД начинает вести себя адекватно.

kondor3000
15.11.2021, 12:41
Добрый день! Подскажите, пожалуйста, есть ли инструкция по корректному удалению CodeSys из операционной системы? Чистый ноутбук с ОС Win10, стал устанавливать Codesys 2.3 и появились ошибки. Я отменил установку. Стал устанавливать заново и получаю ощибку 57927
Как мне удалить все файлы из операционной системы, чтобы установка прошла корректно, не хочется Windows переустанавливть.
Спасибо!

Зачем у вас установка Codesys запущена одновременно с программой M110 ? Остановите всё лишнее.
Для удаления, надо остановить все фоновые процессы Codesys, в том числе лицензию, CoDeSys OPC Configurator, CoDeSys ENI Server (Можно вообще не ставить). В принципе можно сделать Remove из программы. Если до этого пункта не доходит, то удаляйте средствами Винды или CCleaner например.
Во время установки не надо ничего менять, только после установки. Там будет модификация и удаление. После полного удаления, перед установкой, перезагрузите комп.
После установки надо сразу установить библиотеки и Таргеты.

Pogreb
15.11.2021, 13:42
Зачем у вас установка Codesys запущена одновременно с программой M110 ? Остановите всё лишнее.
Для удаления, надо остановить все фоновые процессы Codesys, в том числе лицензию, CoDeSys OPC Configurator, CoDeSys ENI Server (Можно вообще не ставить). В принципе можно сделать Remove из программы. Если до этого пункта не доходит, то удаляйте средствами Винды или CCleaner например.

После перезагрузки ПК, когда М110 была не запущена, CodeSys так же не устанавливался.
- Как остановить лицензию?
- Службы CoDeSys ENI Server нет в списке
Remove сделан из Программы и Приложения, т.е. что то удалилось, а что то осталось.
Я предполагаю, что именно из за остатков каких то файлов и происходит та ошибка, что на скриншоте
Я делал поиск по диску "С" по слову CodeSys и удалил все найденные файлы, может еще реестр чистить?

Pogreb
15.11.2021, 14:38
Вопрос закрыт. Я сбросил ноутбук к заводским настройкам и все корректно установилось

Iv_Str_NDT
15.11.2021, 17:47
Здравствуйте.
Начали работу над проектом в среде CoDeSys v2.3 на языке CFC.
Все бы хорошо, но вот места в редакторе вдруг стало мало, а для нормального чтения программы лепить в притык не хочется.
Может быть кто-то знает, как увеличить размеры редактора?
Спасибо.

Newcomer
15.11.2021, 18:41
Здравствуйте.
Начали работу над проектом в среде CoDeSys v2.3 на языке CFC.
Все бы хорошо, но вот места в редакторе вдруг стало мало, а для нормального чтения программы лепить в притык не хочется.
Может быть кто-то знает, как увеличить размеры редактора?
Спасибо.

Надо было начинать на ST, а не на CFC. ;)