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

Владислав Г.
12.03.2019, 14:18
Делить, делить и еще раз делить
Поделил, может можно проще...

Finik33
13.03.2019, 08:16
Добрый день, помогите со схемой подключения преобразователя АС3М к rs232 ПЛК110 М02. Пробовал через кабель КС16 не работает, подключаю СИ8 протокол ОВЕН.
Спасибо.

krollcbas
13.03.2019, 09:06
Вам нужен кабель КС17 с отрезанной перемычкой внутри DB9
3 - 5
7 - 2
8 - 3
Буквально вчера так сказал спаять наладчику и заработала связь.
То есть перепаяйте местами 2 и 3

Finik33
13.03.2019, 11:45
Вам нужен кабель КС17 с отрезанной перемычкой внутри DB9
3 - 5
7 - 2
8 - 3
Буквально вчера так сказал спаять наладчику и заработала связь.
То есть перепаяйте местами 2 и 3

Спасибо Вам, работает.

Wladislaw
17.03.2019, 22:22
Если в ПЛК110 при управлении быстрыми выходами несколько раз изменить состояние выхода в программе прерывания таймера, прокатит? Или будет только только одно изменение состояние.

RV9WFJ
18.03.2019, 05:52
Если в ПЛК110 при управлении быстрыми выходами несколько раз изменить состояние выхода в программе прерывания таймера, прокатит? Или будет только только одно изменение состояние.Сами то поняли что спросили?

JurijZ
19.03.2019, 19:04
Добрый день.
Подскажите, как в ПР200 запомнить состояние кнопки с фиксацией режима работы при аварийном вЫключении питания.
Чтобы при включении эта кнопка встала в состояние на момент вЫключения.

Andrew_Stranger
20.03.2019, 10:06
Существует проблема при опросе ПЛК160 панели СПК105 по радиомодему(ModbusRTU, 9600). Скорее всего из-за качества связи вместо данных идет мусор, с разной периодичностью от 2 до 6 часов. Что можно предпринять, фильтр программный?

capzap
20.03.2019, 12:57
Существует проблема при опросе ПЛК160 панели СПК105 по радиомодему(ModbusRTU, 9600). Скорее всего из-за качества связи вместо данных идет мусор, с разной периодичностью от 2 до 6 часов. Что можно предпринять, фильтр программный?

на modbus ASCII перейти

Andrew_Stranger
20.03.2019, 13:19
Ну а какие варианты ? Мусор - в топку. Переспрашивать пока не придет корректный ответ. Больше ничего. А как контроллер поймет что это мусор?

RV9WFJ
21.03.2019, 06:04
А какой радиомодем? Обычно в модеме уже заложена избыточность данных для восстановления на ходу. Проблемы обычно бывают при передаче коротких пакетов. Попробуйте групповой опрос. Ну и антенны надо настраивать так чтобы связь нормальная была, а шаманство с таймаутами сильно не поможет если связи нет.

Slava21
21.03.2019, 10:22
Здравствуйте.
Простая программа:
(*++++++++++++++++++++++++++++++++++++*)
PROGRAM PLC_PRG
VAR
Start_PLC: BOOL := TRUE;
Variable: BOOL;
END_VAR
(*++++++++++++++++++++++++++++++++++++*)
IF Start_PLC THEN
Variable := TRUE;
Start_PLC := FALSE;
END_IF
(*++++++++++++++++++++++++++++++++++++*)
Подскажите, почему переменная Start_PLC принимает значение TRUE только после загрузки программы в контроллер (ПЛК154), а затем, после отключения питания, её значение - FALSE?
Следовательно и Variable остаётся в состоянии FALSE.

Slava21
21.03.2019, 11:16
Спрашиваете или отвечаете ?
Знак вопроса в конце предложения я, вроде бы, поставил...
В принципе, проблему я уже решил.
Переписал программу, что бы контролировать по FALSE и получил, что теперь он запоминал TRUE.
Результат получился такой же, поэтому я сделал вывод, что контроллер просто "помнит", какое то время, переменные после выключения.
Подождал, включил. По FALSE отработало нормально, так как я хочу. Можно и по TRUE попробовать. Думаю, что результат будет тот же.
Как по мне, то это запоминание переменных немного лишнее. Может это защита от помех... Но тогда хватило бы и нескольких секунд (10 ... 20), а тут идёт разговор о минутах...
PS
Вернул всё, так как в примере. Проверил. Сброс переменных, примерно, через три минуты.

capzap
21.03.2019, 11:22
Знак вопроса в конце предложения я, вроде бы, поставил...
В принципе, проблему я уже решил.
Переписал программу, что бы контролировать по FALSE и получил, что теперь он запоминал TRUE.
Результат получился такой же, поэтому я сделал вывод, что контроллер просто "помнит", какое то время, переменные после выключения.
Подождал, включил. По FALSE отработало нормально, так как я хочу. Можно и по TRUE попробовать. Думаю, что результат будет тот же.
Как по мне, то это запоминание переменных немного лишнее. Может это защита от помех... Но тогда хватило бы и нескольких секунд (10 ... 20), а тут идёт разговор о минутах...

модуль статистики добавте в конфигурацию и посмотрите за параметром Time to backup power down

Slava21
21.03.2019, 12:16
модуль статистики добавте в конфигурацию и посмотрите за параметром Time to backup power down

Спасибо, попробую.

capzap
21.03.2019, 13:28
Спасибо, попробую.

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

Slava21
21.03.2019, 14:24
главное не попробовать, а выяснить что он обозначает из документации, чтоб не делать своих выводов лишний раз
А в чём проблема, если человек делает свои выводы?
В итоге - я добился своего, всё работает. СП307 - ПЛК154. При включении питания в любой последовательности рецепт из СП307 оказывается в ПЛК154. Просто добавил контроль копирования при включении и в процессе работы.
Дело в том, что я, в основном, работал с микроконтроллерами, а сейчас понадобилось написать программу для этих устройств.
Сижу вот... разбираюсь...

Gendos
23.03.2019, 13:19
Подскажите пожалуйста, как создать в modbus master/slave массивы регистров(более сотни) оптом?
Штатные средства CDS2.3 позволяют только поштучно их добавлять и адрес регистра тоже, да и штучные использовать в программе тоже не удобно. Основная цель - общение двух ПЛК.

Vass0_81
25.03.2019, 10:04
Подскажите где можно взять библиотеку Standard 3.5.7.0.

Александр5
25.03.2019, 13:08
Здравствуйте. Скажите пожалуйста, можно из трм 132м сделать плк 63? Если можно, то как? ставил прошивку от плк 63 2.12, не смог подключиться к CoDeSys V2.3, пишет при подключении "Выбранный профиль ПЛК не соответствует профилю целевой платформы"

Николай Суриков
25.03.2019, 16:41
Здравствуйте. Скажите пожалуйста, можно из трм 132м сделать плк 63? Если можно, то как? ставил прошивку от плк 63 2.12, не смог подключиться к CoDeSys V2.3, пишет при подключении "Выбранный профиль ПЛК не соответствует профилю целевой платформы"

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

zwer
25.03.2019, 20:52
День добрый! Есть ПР200-220.3.0.0 работает отлично но после задание параметров с клавиатуры, после снятие питания прибор возвращается к исходным уставкам, есть ли возможность после выключения питания сохранять уставки которые были введены в него на момент отключения питания!

Dmitro
25.03.2019, 23:44
У меня неудачно смонтирован ПЛК100(мастер) с СП315-Р (слейв) слишком близко к частотникам, из-за этого связь по Modbus RTU отвратительная.
Если я переделаю на связь на ModBus TCP станет лучше ? (витая пара, в экране...).
Насколько сложно переделать вид связи в Codesys 2.3? Можно ли просто грубо говоря заменить элемент "RS-485" на "Эзернет"?

Заранее спасибо

Александр5
26.03.2019, 00:44
В таблице переменных поставили галочку "энергонезависимость" ?

zwer
26.03.2019, 09:54
Да галочка стоит!

Александр5
27.03.2019, 00:24
Да галочка стоит!

При установке галочки "энергонезависимость" у входной переменной, состояние при выключении прибора должно сохраняться, обратитесь в службу поддержки Овен, возможно с контролером проблемы.

Александр5
27.03.2019, 00:37
ТРМ132 и ПЛК63 - это абсолютно разные вещи в одинаковом корпусе. Сделать из трм плк не получится, а вот из плк - трм... Но это уже совершенно другая история.

Звонил в службу поддержки Овен, сказали что можно, прошивка от плк63 встает, а вот подключиться не могу через CoDeSys, таргет файл не подходит или что то делаю не так. РС: Контролер отдали, думал под свои нужды приспособить, с плк и CoDeSys раньше не сталкивался.

Евгений Чита
28.03.2019, 09:50
Здравствуйте
Помогите реализовать на языке CFC переключение двухпозиционного регулятора (на автоматическое или ручное управление регулятором41955

Jakan
28.03.2019, 20:53
Добрый всем. Как сделать так чтобы пр 200 показывал температуру с - минусом. Датчик стоит по сопротивлению pt1000.

Николай Суриков
29.03.2019, 15:06
Здравствуйте
Помогите реализовать на языке CFC переключение двухпозиционного регулятора (на автоматическое или ручное управление регулятором41955

Примерно так
41985

Фенрир
29.03.2019, 15:07
Добрый день! Пишу программу в codesys на CFC и столкнулся с проблемой - не хватки рабочего места для написания программы. Можно его как-то увеличить? Прикладываю скрин, красной линией отделил рабочую область, в которой могу работать. И дальше просто не могу вставлять ФБ.
41986

Фенрир
29.03.2019, 15:55
Я знаю, что все это можно впихнуть в 1-2 ФБ и вызывать их, но вопрос был другой - можно ли увеличить рабочее пространство для написания программы.

kondor3000
29.03.2019, 23:56
Панель СП310 Р, контроллер ПЛК154А-М, надо просто вывести температуру (с термопар ТХК-L ) с 4 аналоговых входов самого контроллера на панель в виде цифровых индикаторов и графиков в реальном времени, в градусах цельсия конечно. Вроде просто, но неделю уже разбираюсь, все примеры для дискретных входов и с ними всё более-менее понятно, а вот тема аналоговых входов во всех примерах старательно обходится. С термопарами нет ни одного примера вообще!!! И на дисках и в видео ничего подобного нет. Ткните на нужный пример если не трудно.

flame
30.03.2019, 00:09
Как вызвать экземпляр функционального блока, чтобы смотреть значения переменных?

kondor3000
30.03.2019, 19:09
Подскажите, с термопары выходит 9,77888 мВ а на вход панели записывается 9,77888*е+30 степени, что надо сделать, что бы нормально читалось?

capzap
30.03.2019, 19:21
Подскажите, с термопары выходит 9,77888 мВ а на вход панели записывается 9,77888*е+30 степени, что надо сделать, что бы нормально читалось?

не врать, возможен вариант 1,03062191142125E+33 в случае если сигнал идет напрямую на отображение в панели, все остальное ошибки в коде

capzap
30.03.2019, 19:22
Как вызвать экземпляр функционального блока, чтобы смотреть значения переменных?

в режиме онлайн двойным щелчком на ФБ

kondor3000
31.03.2019, 14:48
не врать, возможен вариант 1,03062191142125E+33 в случае если сигнал идет напрямую на отображение в панели, все остальное ошибки в коде

У меня от -34 степени плавает до + 34 степени, смотри скрин42011

capzap
31.03.2019, 14:57
У меня от -34 степени плавает до + 34 степени, смотри скрин42011
ну вот это уже ближе к проблеме, кроме переворачивания слов еще можно переварачивать байты, комбинаций всего четыре, найдите ту котороя будет правильно отображать

kondor3000
31.03.2019, 16:49
ну вот это уже ближе к проблеме, кроме переворачивания слов еще можно переварачивать байты, комбинаций всего четыре, найдите ту котороя будет правильно отображать

Может подскажете как перевернуть?

Dmitro
02.04.2019, 14:02
Создал проект в codesys 2.3 win7 russian.
У заказчика win10 english.
Проект загружается в контроллер, температуры принимаются в плк150.
НО
Почемуто не работает Modbus:
все опросы по нулям, адреса и коды ошибок не бегают и стабильно нули.
По Модбасу нет обмена.
Почему? Что можно сделать?
Уже переустанавливав кодесис, сбрасывал контроллер.
Модбас стоит, инфо по шине не бегает.

krollcbas
02.04.2019, 14:28
"Нет обмена", если конвертером шину опросить, есть обмен?
Вышлите проект. Как можно иначе за Вас понять где ошибка?

Dmitro
02.04.2019, 23:13
"Нет обмена", если конвертером шину опросить, есть обмен?
Вышлите проект. Как можно иначе за Вас понять где ошибка?

Что-то случилось с ПЛК150, видимо "частичный" отказ блока. Его личные циферки бегали, а Модбас стоял на 0.
Помогло только снятие питания на 2 минуты, тогда Модбас опять ожил.

krollcbas
02.04.2019, 23:37
Ну нормально это перезагрузить контроллер при зависании шины. ПЛК100, ПЛК150 - ну норм, особенно если вносите кучу изменений.

Покупайте более дорогие ПЛК110, там такого не замечал

Фенрир
04.04.2019, 10:51
Добрый День! Столкнулся с проблемой, в режиме эмуляции напротив переменных стоят вопросы и этими переменными никак не могу управлять, а так же линии связи серого цвета. Переменные объявлены правильно, раньше все работало, но через какой-то момент времени появилась эта проблема. Объясните пожалуйста. Прикладываю скрин.
42070

Dmitro
04.04.2019, 10:53
Какая вероятность получить искаженный байт на протоколе RS485 ? То есть чтобы контрольная сумма была ок, но информация искажена?

У меня ситуация что от панели СП315-Р периодически,
раз в 1-2 минуты приходит рандомная информация -
обнуляются дискретные и параметрические слова,
сами собой "нажимаются" кнопки.
Очень сложно бороться с такой "правильной" неправильной информацией.
Может ли это быть брак панели?

krollcbas
04.04.2019, 11:30
Dmitro,

Задача, то что Вы делаете, судя по всему не сложная. Скорее всего Вы связываете ПЛК100 с СП315-Р. Коротким шнурком, внутри работающего шкафа.

Попробуйте вынуть оборудование из шкафа, положив его на полу. Соедините, запитайте. Осталась проблема?
Скорее всего это шум в линии. Проверьте шум в линии питания постоянного тока (иногда подмешивается синусоида)

RS485 - не протокол, это двупроводной интерфейс, витая пара, лучше экранированный и заземленный с одного из концов.
На обоих концах ставьте резисторы 100 - 120 Ом

АВТОСКАН
05.04.2019, 19:49
Подскажите как реализовать на CFC. У меня есть две переменных perem1:REAL; и perem2:WORD;. perem2 заданна жестко и к примеру равна 10, значение переменной perem1 увеличивается при помощи счётчика +1, +2 и т.д. И вот вопрос как сделать чтоб при достижении переменной perem1 значения 8 сработал вход или запись в другую переменную TRUE или FALSE не важно в общем. Простыми словами если perem2 больше perem1 на 2 то выход TRUE.

capzap
05.04.2019, 19:56
Подскажите как реализовать на CFC. У меня есть две переменных perem1:REAL; и perem2:WORD;. perem2 заданна жестко и к примеру равна 10, значение переменной perem1 увеличивается при помощи счётчика +1, +2 и т.д. И вот вопрос как сделать чтоб при достижении переменной perem1 значения 8 сработал вход или запись в другую переменную TRUE или FALSE не важно в общем. Простыми словами если perem2 больше perem1 на 2 то выход TRUE.

https://www.owen.ru/uploads/134/codesys_v23_ru.pdf стр.306

АВТОСКАН
05.04.2019, 19:58
https://www.owen.ru/uploads/134/codesys_v23_ru.pdf стр.306 Это я уже изучил. Интересует именно на указанное значение например на 2 меньше. а в блоках только конкретное сравнение если больше или меньше. А мне надо на конкретно указанное.

capzap
05.04.2019, 20:00
тогда страница 297 функция SUB

АВТОСКАН
05.04.2019, 20:08
тогда страница 297 функция SUB

Не совсем понял как реализовать с помощью этой функции. perem2=10 perem1=8 при достижении разницы в 2 срабатывает что-то.

ASo
05.04.2019, 20:34
Как в FORTRAN - ФБ GT.

АВТОСКАН
05.04.2019, 20:36
Как в FORTRAN - ФБ GT.

Мне бы не много подробнее))))

Dmitro
05.04.2019, 20:44
Dmitro,

Задача, то что Вы делаете, судя по всему не сложная. Скорее всего Вы связываете ПЛК100 с СП315-Р. Коротким шнурком, внутри работающего шкафа.

Попробуйте вынуть оборудование из шкафа, положив его на полу. Соедините, запитайте. Осталась проблема?
Скорее всего это шум в линии. Проверьте шум в линии питания постоянного тока (иногда подмешивается синусоида)

RS485 - не протокол, это двупроводной интерфейс, витая пара, лучше экранированный и заземленный с одного из концов.
На обоих концах ставьте резисторы 100 - 120 Ом

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

Может имеет смысл сделать какой-то дополнительный контроль данных уже после Modbus, если он не справляется?

Может надо добавить Parity или дополнительный стоповый бит (всего 2)?

ASo
05.04.2019, 20:50
Мне бы не много подробнее))))

Когда доберусь до компа - прведу скриншот.
Но вообще учитесь пользоваться документацией.

АВТОСКАН
05.04.2019, 20:59
еще подробней ?

Большое спасибо завтра проверю ))))

devilas
06.04.2019, 09:34
парни помогите в codesys 2.3 сделать программу, неважно на какой контроллер, и на какой языке
нужно вот такая прога:
После нажатия кнопки «Пуск» открывается клапан 1 и жидкость "1" заполняет аппарат до уровня "b". После этого открывается клапан 2 и продукт "2" подается в аппарат до достижения концентрации "конц.1". После этого делается пауза на 5 минут и снова продукт 2 подается в аппарат к концентрации "конц.2".

После этого жидкость выливается из аппарата и цикл повторяется.

trollik3
08.04.2019, 10:46
Привет всем. Пытаюсь с плк63 опросить два прибора ТРМ202 (4 канала) по протоколу ОВЕН. Одновременно опрашивать все 4 канала невозможно. Однако, при помощи инверсии на входах OWEN_GET_REAL удалось опросить один прибор и второй тоже опрашивается если на входах блоков поменять адрес. Вопрос в следующем: Как настроить поочередный опрос приборов? Можно ли вести одновременный опрос нескольких приборов например через MODBUS? Вообще планируется подключить 5 ТРМ202...

Sulfur
09.04.2019, 14:49
Вопрос по логике работы самого Кодесиса.
Сочинил такую конструкцию в ПЛЦ_ПРГ:

Программа 1;
CASE Условие OF
Условие 1: Программа 2;
Условие 2: Программа 3;
Условие 3: Программа 4;
END_CASE;
Программа 5;

Программы 2-4 содержат несколько таймеров и работает от 5 до 30 секунд, но необходимо что бы работали так же программы 1 и 5. Или программа 5 начнет работать только после завершения программ 2-4?

Newcomer
09.04.2019, 16:55
Вопрос по логике работы самого Кодесиса.
Сочинил такую конструкцию в ПЛЦ_ПРГ:

Программы 2-4 содержат несколько таймеров и работает от 5 до 30 секунд, но необходимо что бы работали так же программы 1 и 5. Или программа 5 начнет работать только после завершения программ 2-4?

Программа 5 будет выполняться в каждом цикле ПЛК, ей CASE по барабану
.

kondor3000
10.04.2019, 17:26
ну вот это уже ближе к проблеме, кроме переворачивания слов еще можно переварачивать байты, комбинаций всего четыре, найдите ту котороя будет правильно отображать

С этим разобрался

Sulfur
11.04.2019, 06:56
Newcomer
Спасибо.

АВТОСКАН
12.04.2019, 23:53
Доброго вечера. Выручайте. Как настроить обмен с устройством по MODBUS RTU. Контроллер плк110м2. Проблема наверное новичка. Мне нужно подключить и опросить датчик уровня топлива. Описание датчика :


- Адрес Modbus - служит для установки адреса Modbus.

- Скорость RS-485 - неизменяемый параметр, который всегда равен 19200 кбит/с.

- Формат кадра Modbus - неизменяемый параметр, который всегда равен 8-N-1.

- Регистр для чтения - неизменяемый параметр, который всегда равен 1 (01 hex).

- Команда Modbus для чтения данных - 0x03.


Главный вопрос как послать команду и прочитать результат ? Желательно на CFC. Возможно есть какой то универсальный способ чтения данных с универсальных устройств.

42255

krollcbas
13.04.2019, 00:14
Ну если только помощь за помощь...Есть и для Вас работенка

АВТОСКАН
13.04.2019, 00:18
Ну если только помощь за помощь...Есть и для Вас работенка

А что нужно делать ?

krollcbas
13.04.2019, 06:57
Нужно:
Используя интернет, найти и собрать контактную информацию по 50-ти фирмам(компаниям), имеющим сайт, относящиеся к интегаторам Умных Домов (расположение Россия).
Всего их около 2000, а собрана информация в данный момент по 71-й (повторы нужно исключить и собирать информацию только о тех, которых в списке нет)
Имя компании - телефон - Сайт - Емэйл - Адрес
https://yadi.sk/i/WXhKHjVV-bYLWA

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

Гут?

trollik3
14.04.2019, 05:55
Настроил опрос трм202 5шт с плк63 библиотекой owennet.lib, проблема в следующем: при обрыве датчика на дисплее трм зажигается error5, однако в программе плк63 показания датчика просто замирают. Соответственно невозможно настроить блокировки цепей управления... подскажите, как быть?

Dmitro
14.04.2019, 10:32
Добрый день.
У меня СП315-Р (Мастер) и ПЛК100 (Слейв)

Правильно ли я задал для ПЛК100 конфигурацию:

- ModBus (slave) (*входы от панели, ADR 1 *) [VAR]
- Modbus[FIX]
TCP[VAR] (* Remote port 502 *)
- 8 bits (*дискреты 1*) [VAR]

+ ModBus (slave) (*выходы на панель, ADR 1*) [VAR]
- Modbus[FIX]
TCP[VAR] (* Remote port 502 *)
- 8 bits (*дискреты 2*) [VAR]

То есть задал отдельно два Modbus TCP (один для чтения из панели, второй для записи).

Мне нужно чтоб "дискреты 1" начинались по адресу 256, а "дискреты 2" начинались с 300-го.

Как их разделить?
Получается что в обоих Modbus TCP Slave и дискреты 1 и дискреты 2 начинаются с 256-го адреса.

Заранее спасибо

A.Simonov
14.04.2019, 13:07
Добрый день.
У меня СП315-Р (Мастер) и ПЛК100 (Слейв)




То есть задал отдельно два Modbus TCP (один для чтения из панели, второй для записи).

Как вы написали, у Вас ПЛК Slave. Это значит что он не может ничего читать или записывать в панель.
Это панель читает или записывает регистры ПЛК.



Мне нужно чтоб "дискреты 1" начинались по адресу 256, а "дискреты 2" начинались с 300-го.

Зачем? Проще в СП315-Р указать нужные регистры ПЛК

Sulfur
15.04.2019, 08:40
АВТОСКАН

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

VitalyNef
16.04.2019, 19:35
Добрый день.
Не нашел ни где как можно сложить 2 строковые переменные, числовие и логические.
Например:
Line1:string;
Line2:string;
Nom:int;
Log:bool;
obs:string;

obs:=Line1+line2+nom+log;

capzap
16.04.2019, 19:56
Добрый день.
Не нашел ни где как можно сложить 2 строковые переменные, числовие и логические.
Например:
Line1:string;
Line2:string;
Nom:int;
Log:bool;
obs:string;

obs:=Line1+line2+nom+log;

https://ftp.owen.ru/CoDeSys23/06_Documentation/Cds23_Manual_v2.8.pdf раздел 10.9 Явное преобразование типов

VitalyNef
17.04.2019, 15:39
Благодарю!!!

capzap
17.04.2019, 20:24
d триггер на FBD

Dmitro
17.04.2019, 20:31
Здравствуйте

есть такой блок
42325

K3_ZAS_ 1_SP передается из ПЛК110 в СПК207 по RS485/115200 и там
на практике ИНОГДА получаем K3_ZAS_ 1_SP = 6400, 1240 или другие отфонарные числа!
Как такое может быть? В теории должно быть или 0 или 100.

Помехи в линии иногда имеются, но не так же.

ASo
17.04.2019, 20:38
При чем тут помехи в линии???
С большой долей вероятности эти переменные еще где то присваиваются в программе.

BorisAmar
18.04.2019, 08:22
Доброго дня!
Обьясните чайнику. С помощи CoDeSys можно извлечь из контролера программу для редактирования. Программа не нами намисаная.

Валенок
18.04.2019, 08:38
Доброго дня!
Обьясните чайнику. С помощи CoDeSys можно извлечь из контролера программу для редактирования. Программа не нами намисаная.
1. А она (исходник) там есть ?
2. К авторам обратится, не ? Или денег хочут ?

Подключится любым проектом
Браузер/dir - смотрим что есть (. pro)
Онлайн/"читать файл из плк" если есть нужное
Важно. Ни в коем не делать "заводской сброс" и "создать проект"

BorisAmar
18.04.2019, 10:18
Благодарю!!! Попробую.
Авторы (производитель из-за бугра) предлагает обновить, перейти на Сименс, в новой версии есть необходимые изменения. Для нас это обновление обернется в большие деньги.

Sulfur
18.04.2019, 10:44
Dmitro
А вот так не проще сделать?
42333

Dmitro
20.04.2019, 10:18
Dmitro
А вот так не проще сделать?
42333

Спасибо, попробую!!

ВладиславВладимирович
22.04.2019, 14:39
Добрый день!
Возникла необходимость прочесть число размером 32бита от -2147483648 до +2147483647 из регистров 0602H, 0603H из устройства, подключенного по modbus rtu.
Подскажите, как это сделать через конфигуратор? Пробовал считать как DWORD и преобразовать в DINT, но требуемый результат не получил (заранее знаю, что ответ должен быть 40000000).

Uniqum
22.04.2019, 16:11
Попробуйте найти ответ в библиотеках OSCAT http://www.oscat.de/component/jdownloads/category/2-oscat-basic.html?Itemid=0

Nachalo
23.04.2019, 15:59
Добрый день. Вопрос по библиотеке mercury. Она занимает целиком порт 485 или можно другие устройства на этот же порт посадить? Смущает конфигурация ресурсов:

42416

kondor3000
23.04.2019, 19:25
Привет, разобрался с термопарами и выводом температуры.

Newcomer
24.04.2019, 12:36
Добрый день.

Возникла проблема с установкой таргета PLC110.60-M_v2 на ПК с Windows7. Все таргеты из папки targets_v3.18 кроме вышеупомянутого устанавливаются корректно. После установки в папке PLC110.60_M_v2 отсутствует файл plc.trg.

ВладиславВладимирович
24.04.2019, 20:32
Попробуйте найти ответ в библиотеках OSCAT http://www.oscat.de/component/jdownloads/category/2-oscat-basic.html?Itemid=0

Может будет потом полезно: все оказалось намного проще. Все нормально читается как dword и потом переводится, но при чтении и записи 32bit чисел нужно было поменять порядок с trace_mode на native.

Doctor
29.04.2019, 23:01
Народ, подскажите, плс, в чём может быть дело.
Использую часть старого своего проекта, где к ПЛК было подключено два МВ и ещё несколько модулей. Работало всё без проблем. Сейчас подключил один МВ и ПЛК его не видит. Или видит, но данные по нулям. Конфигурация на скринах ниже.
42509

42510

42511

42512

42513
Результат:
42514

P.S. Насчёт 81-й ошибки читал (низкий поклон capzap-у), время опроса МВ менял - без результата.

krollcbas
29.04.2019, 23:31
Framing time - 10
Pooling time - 100
Amount repeat - 3

Doctor
29.04.2019, 23:40
Спасибо, попробую.

Hight_V
07.05.2019, 15:30
Добрый день! Уже неделю читаю Ваш форум, но даже этот раздел не осилил). Видеоуроки по codesys смотрел. Нужен "пинок". Естественно я впервые пытаюсь сам запрограммировать ПЛК (приобрел уже ПЛК110-60 и панель СП-307).
Задача автоматизировать станок по резке камня. Контроль по 3м осям с помощью энкодеров, и вот первый вопрос: как правильно реализовать (подводит оператор диск к заготовке в ручную, с помощью кнопок, задает параметры заготовки, глубину реза, к-во сляб) и нажимает "СТАРТ", нужно что бы показания энкодера обнулялись, или его параметры должны ходить неизменно с точки А "0" в точку В "к примеру 65535?, я о том что он с этого места входит в "автоматический режим" и начинает работу по заданным параметрам.

Hight_V
11.05.2019, 10:03
Ну оно то так. Но вот я узнал уже что для моего варианта, лучше всего "обнулять" данные при выставлении пилы вручную. Это будет условный "0", начала работы.

k501
13.05.2019, 23:36
Вопрос новичка. Есть ФБ со счетчиком CTU. Уставка PV этого счетчика "5". ФБ будет использоваться в основной программе несколько раз и каждый раз нужна другая уставка. Как это можно реализовать? Создавать новые ФБ, ФБ1, ФБ2,ФБ3... с разными PV?

Rednaxel
14.05.2019, 07:45
Вопрос новичка.

Согласен с capzap, Вы похоже недопонимаете смысл.

Вобщем примерно так (вложение): ФБ отдельно, потом вставляете в основную программу столько, сколько нужно. .
Для того и ФБ чтобы избежать дублирования кода. Алгоритм ФБ доработать в соответствии с данной концепцией ;-)

k501
14.05.2019, 09:57
Спасибо Rednaxel за (Алгоритм ФБ доработать в соответствии с данной концепцией). А ФБ выложил в виде проекта из-за спешки, извините.

Lexand
14.05.2019, 12:44
Доброго дня. Подскажите пожалуйста, как можно поменять пароль на библиотеку или снять его, пароль известен.
Заранее спасибо.

Евгений Кислов
14.05.2019, 12:50
Доброго дня. Подскажите пожалуйста, как можно поменять пароль на библиотеку или снять его, пароль известен.
Заранее спасибо.

Добрый день.

Проект - Опции - Пароли

Lexand
14.05.2019, 14:16
Добрый день.

Проект - Опции - Пароли

На сам проект пароль не установлен, пароль стоит только на БИБЛИОТЕКУ и как поменять или снять его.
И при загрузке проекта все время спрашивает пароль от библиотеки, можно его убрать.
Спасибо.

Евгений Кислов
14.05.2019, 14:20
На сам проект пароль не установлен, пароль стоит только на БИБЛИОТЕКУ и как поменять или снять его.
И при загрузке проекта все время спрашивает пароль от библиотеки, можно его убрать.
Спасибо.

Откройте библиотеку в Codesys (как проект) - в этом случае в упомянутом меню будет производиться работа с паролем библиотеки.

Lexand
14.05.2019, 15:17
Откройте библиотеку в Codesys (как проект) - в этом случае в упомянутом меню будет производиться работа с паролем библиотеки.

Спасибо, не догадался )))

Mr Green
15.05.2019, 10:35
Доброго дня! Подскажите пожалуйста как заставить CS2.3 добавлять новые подэлементы в Конфигурации ПЛК после имеющихся? Имеется Modbus [FIX] в котором уже определены значения некоторых переменных (8 bit, 2 byte) но при добавлени очередного значения (float) это определение становится предпоследним, внося в список смещение .
Сам разобрался- добавляем подэлементы ПКМ через родительский объект (в моем случае это ModBus [FIX]).

Елизавета Соколова
16.05.2019, 11:56
Доброго дня! Подскажите пожалуйста как заставить CS2.3 добавлять новые подэлементы в Конфигурации ПЛК после имеющихся? Имеется Modbus [FIX] в котором уже определены значения некоторых переменных (8 bit, 2 byte) но при добавлени очередного значения (float) это определение становится предпоследним, внося в список смещение .
Сам разобрался- добавляем подэлементы ПКМ через родительский объект (в моем случае это ModBus [FIX]).
Добрый день. Если вы нажимали ПКМ на последний по счёту подэлемент (2 byte, например), то новый вставляется перед ним. Для того, чтобы все подэлементы вставлялись в порядке очереди, стоит действительно нажимать ПКМ на Modbus (slave).

O Sole Mio
17.05.2019, 14:26
Дд, подскажите ключевые отличия ПЛК63 предыдущего поколения с мембранными кнопками от того, что сейчас на сайте продаж Овен.

Мария Мильчакова
17.05.2019, 14:47
Дд, подскажите ключевые отличия ПЛК63 предыдущего поколения с мембранными кнопками от того, что сейчас на сайте продаж Овен.

Замена корпуса ПЛК63 произошла в 2014 году. Применение данного корпуса и улучшенного блока резиновых кнопок позволило:

улучшить работу приборов в отрицательном диапазоне температур;
улучшить пыле-, влагозащиту лицевой панели приборов;
улучшить эргономику и повысить удобство управления прибором.


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

O Sole Mio
17.05.2019, 15:06
технические характеристики приборов не изменились
Спасибо большое.:o

Denchikkuzsty
17.05.2019, 15:39
Понимаю, тема уже была, нужна программа светофора на ПР110, на форуме файлы не скачиваются

Мария Мильчакова
17.05.2019, 15:59
Понимаю, тема уже была, нужна программа светофора на ПР110, на форуме файлы не скачиваются

Попробуйте запустить файл во вложении. У меня на компьютере запустился.
Он найден но ссылке: https://www.owen.ru/forum/showthread.php?t=16426&page=2

Std_
18.05.2019, 14:39
Здравствуйте. Разбираюсь в чужом коде Codesys 2.3, для чего выделенное красным не пойму. 42770

Sulfur
18.05.2019, 22:19
Это прямая адресация переменных в адресном пространстве памяти ПЛК. Данный проект точно для ПЛК Овен? Просто не уверен, что есть необходимость использовать прямую адресацию.

Std_
18.05.2019, 22:25
Нет этот проект не для ПЛК Овен. Просто не нашел где еще можно задавать вопросы по Codesys. А для чего так делать?

Rednaxel
18.05.2019, 22:57
.... А для чего так делать?
Прямая адресация в CodeSys чаще всего используется как способ обратится к определенному входу/выходу ПЛК
Это такой "продвинутый способ".

Другой вариант, попроще, состоит в том, чтобы присвоить имя входу или выходу как я сделал для входа AT%IX0.0:
42771

Std_
18.05.2019, 23:04
Получается во время объявления переменной, ей сразу присваивается значение с этой области памяти?

Rednaxel
18.05.2019, 23:33
Получается во время объявления переменной, ей сразу присваивается значение с этой области памяти?

Если написать это значение в конце объявления, то да, например:
Var01 AT %AX0.0: BOOL: =TRUE;

Но сработает только для выходов, естественно

Std_
19.05.2019, 00:55
Спасибо Вам за объяснения.

Evgenyi
19.05.2019, 11:25
Доброе утро!
Стоит задача, управлять температурой по зонам ленточной сушки. В зависимости от входящей температуры и влажности поступающего воздуха в систему подачи воздуха, необходимо задавать различные температуры в зоны сушки(зон 8).
Это реализовано и работает, сделан массив, исходя из условий задаются уставки по зонам, все работает хорошо.

Примерный вид
при Температуре < 8 и < 10 градусов
и влажности от 20 до 30 % зона 1 - 25 градусов, зона 2 - 27 градусов, и т. д. до 8 зоны
и влажности от 30 до 40 % -------//////////-------////////----------
и так до 110% влажности

при Температуре < 11 и < 15 градусов
и влажности от 20 до 30 % зона 1 - 27 градусов, зона 2 - 29 градусов, и т. д. до 8 зоны
и влажности от 30 до 40 % -------//////////-------////////----------
и так до 110% влажности

Я думал технолог 1 раз выдаст значения и все. Но технолог каждую неделю дает новые значения по зонам.
Меняются условия параметров входящего воздуха, так же значения температур по зонам. Т. е. был интервал 3градуса по температуре, 10 по влажности, новы данные могу быть 5 по температуре и влажности.

Каждый раз переписывать массив с данными много времени в пустую уходит. Да и достал.
Я смотрю в сторону чтения уставок из файла.

Как я это вижу. В название файла задать пределы температуры и влажности, в сам файл записать значения температуры по зонам. К примеру имя файла Tmin7_Tmax10_Fmin20_Fmax_30.
И тут я столкнулся с проблемой.
Как из программы ПЛК просмотреть все файлы что в него записаны?
Если изменятся пределы условий входящего воздуха, то изменится и имя файла.
или у меня не тот подход.
P. S. передавать со скада не вариант!

Rednaxel
19.05.2019, 13:26
сми2, ип320, сп3xx, скада, веб, самописное приложение ?

Не могу не согласится: для таких задач и придумали панели оператора.



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

Вот здесь (https://www.owen.ru/forum/showthread.php?t=20138) еще немного копий поломали на эту тему ;)

Какое оборудование автоматизации задействовано в проекте, позвольте поинтересоваться?

Evgenyi
19.05.2019, 14:44
Иначе это не проект, а разовая поделка.
Да, это разовая поделка.

передавать со скада не вариант!
Это просьба технолога, ему самому впадлу вводить все те значения что он придумывает! И вероятно я не совсем понятно написал, значения должны читаться из файла!
А данные которые поступают на плк отображаются в скаде.

Какое оборудование автоматизации задействовано в проекте, позвольте поинтересоваться?
Изначально проект не мой, я доделываю за "создателями".
ПЛК 110 собирает данные с приборов учета, задает уставку в ТРМ 212, выдает данные в скаду, и т д
ТРМ 212 регулирует температуру по зонам сушки,
СИ8 передает на плк110 данные скорости ленты,
ПЧВ для асинхронных двигателей
ТРМ 138 и что там еще.

Hight_V
20.05.2019, 12:44
Почитал, получается что нельзя так просто на плк 110 "обнулить" показания энкодера, подскажите пожалуйста как запомнить текущий координат, что бы от него "плясать"...

Sulfur
21.05.2019, 09:22
Hight_V

как запомнить текущий координат, что бы от него "плясать"...
А никак. Я долго плясал с бубном вокруг овеновских модулей энкодеров, в конце концов бросил это неблагодарное занятие и написал свои. В старой версии ПЛК программу в прерывания по таймеру 20мкс и SysLibPort, в новой версии ПЛК с помощью стороннего проекта HardellaIDE.
А вообще можете попробовать показания энекодера снимать не напрямую с регистра модуля, а из промежуточной ретайн-переменной, где аккумулируются относительные изменения регистра модуля энкодера.

PAG
21.05.2019, 18:01
К ТРМ202 подключен датчик ДТС 105-50М. ТРМ при плюсовой температуре показывает отрицательную. Причем при увеличении температуры на датчике прибор показывает понижение температуры. В чем может быть причина?

Валенок
21.05.2019, 19:59
К ТРМ202 подключен датчик ДТС 105-50М. ТРМ при плюсовой температуре показывает отрицательную. Причем при увеличении температуры на датчике прибор показывает понижение температуры. В чем может быть причина?А настройка в трм соотв. датчику ?

Джиби
22.05.2019, 12:34
Здравствуйте, 3 день изучаю CoDeSys 2.3, на руках плк63, из примеры обработки клавиш взял код 42825 и попытался его использовать для одной клавиши 42826, но сколько не пытался так и не смог понять почему не работает, попытался реализовать в CFC но опыт нулевой подводит...есть ли у кого пример? ещё если на экран вывести 2 числа как переключаться между ними, курсор переставлять? не меняя экран, стрелками вверх-вниз меняется номер экрана, может кто покажет пример как между двумя числами переключаться и редактировать их?=) или носом ткнет на пример

Sulfur
22.05.2019, 13:29
Валенок

8( Это которые в конфигурации ?
Именно. Напрочь отсутствует возможность обнуления у AB-энкодера, обнуление у ABZ - исключительно по сигналу FDI3.

Анатолий Рудь
22.05.2019, 16:58
К ТРМ202 подключен датчик ДТС 105-50М. ТРМ при плюсовой температуре показывает отрицательную. Причем при увеличении температуры на датчике прибор показывает понижение температуры. В чем может быть причина?
Проверьте, правильно ли подключен датчик к прибору. Схему подключения датчика вы можете найти по ссылке: https://www.owen.ru/product/trm200
Так же проверьте настройку: уровень Lvin - настройка in.t1. Данная настройка отвечает за тип датчика.

Джиби
23.05.2019, 02:45
Я много лет на C# пишу клиент-серверные приложения и т.д. но это не СИ С# какое-то убожество...два дня матерился разбирался, набросал програмку, а она не работает, глючит, прерывается, на другой компьютер пересел, включил тот же проект и всё хорошо, просто головная боль, пока во всем разберусь еще куча головной боли будет. В любом случае есть пример работы с разными данными на одном экране?

ASo
23.05.2019, 06:33
Переходите на монопольный режим экрана.

capzap
23.05.2019, 07:33
Я много лет на C# пишу клиент-серверные приложения и т.д. но это не СИ С# какое-то убожество...два дня матерился разбирался, набросал програмку, а она не работает, глючит, прерывается, на другой компьютер пересел, включил тот же проект и всё хорошо, просто головная боль, пока во всем разберусь еще куча головной боли будет. В любом случае есть пример работы с разными данными на одном экране?

документацию надо читать более внимательнее. В ПОУ написанном на CFC, если конечно понимаете о чем речь, нажимайте правой кнопкой мыши и в контекстном меню выбирайте порядок-> в соответствии с потоком данных, сразу выиграете в написании программы полдня а то и больше

Hight_V
25.05.2019, 09:11
А какие сложности с введением своего нуля ?

Продолжайте пожалуйста дискуссию, я с нетерпением со стороны наблюдаю за исходом

Std_
25.05.2019, 13:07
Здравствуйте. Разбираюсь с тем как в Codesys 2.3 нужно работать с rs-485 modbus RTU, отсюда вопрос как в PLCWinNT работать с портами компьютера? Когда запускаю PLCWinNT у него внизу автоматом проставляется СОМ1 как rs-232, можно ли его потом использовать для rs-485? Может есть примеры по моему вопросу?

CvetkOFF
25.05.2019, 15:28
Приветствую всех!
Редактирую чужой проект. В сети ПЛК110-60, модули МВ110, ПЧВ3 и ПЧВ103-2K2-A.
Установил библиотеку для ПЧВ, скачав её с сайта Овен. Также установлен таргет, скачанный тоже с Овена.
Но при загрузке программы в ПЛК110 выводится сообщение Неразрешенные ссылки на внешние POU: com_word_fb, com_word_fbinit, stat_word_fb, stat_word_fbinit и т.д.
Подскажите, пожалуйста, с чем это связано? Каково решение данной проблемы?
Заранее благодарен!

Добавлено: проблема, как оказалось, кроется в самой библиотеке. Ошибка появляется даже, если блоки не используются, но библиотека установлена в проекте. Устанавливать пробовал с двух разных компов. Прошивку на ПЛК обновлял до последней актуальной. Установка производилась из под Windows 10 и 7.

Разобрался сам.

Casper17
29.05.2019, 09:33
Подскажите пожалуйста. Имеется ПЛК100 220-P-M я так понимаю он работает только с CoDeSyS и с другими SCADA системами работать не будет? На данном этапе создал проект в связке с MB110-224.8A + датчик температуры + СМИ2. Сейчас стоит задача вывод информации на ПК и управление ПЛК. Какие способы для этого есть? Все делать с помощью CoDeSyS(визуализация)? Или можно написать свою программу и общаться с ПЛК по ModBus TCP? Если да, то как настроить интерфейс Ethernet для этого, если ПЛК будет в режиме мастера и по rs-485(ModBus) общаться с другими модулями? ПЛК будет стоять удаленно от ПК так, что подключение по rs-232 будет невозможна. Или нужна связка ПЛК - OPC - SCADA?

_Mikhail
29.05.2019, 20:52
Подскажите пожалуйста. Имеется ПЛК100 220-P-M я так понимаю он работает только с CoDeSyS и с другими SCADA системами работать не будет? На данном этапе создал проект в связке с MB110-224.8A + датчик температуры + СМИ2. Сейчас стоит задача вывод информации на ПК и управление ПЛК. Какие способы для этого есть? Все делать с помощью CoDeSyS(визуализация)? Или можно написать свою программу и общаться с ПЛК по ModBus TCP? Если да, то как настроить интерфейс Ethernet для этого, если ПЛК будет в режиме мастера и по rs-485(ModBus) общаться с другими модулями? ПЛК будет стоять удаленно от ПК так, что подключение по rs-232 будет невозможна. Или нужна связка ПЛК - OPC - SCADA?

В среде Codesys программируется только контроллер. Вывод данных на ПК любой скадой

Uniqum
30.05.2019, 09:58
Добавьте в конфигурации ПЛК Modbus (Slave) тип связи TCP. Создайте переменные которые нужны для информации 2 byte; Float. На ПК установите OPC сервер, настройте связь

sosna
30.05.2019, 14:34
Добрый день. Подскажите в PID регуляторе из библиотеки сохраняются ли параметры после автонастройки? Или каждый раз после включения ПЛК нужно заново проводить автонастройку?

sosna
31.05.2019, 09:08
Валенок , я оценил твой юмор. Очень смешно. А теперь по существу вопроса. Первый раз сталкиваюсь с пид регуляторами поэтому и пишу здесь. Вопрос первый. В пид регуляторе PID_2POS_IM_ANR выход от -100 до 100. Если я преобразую данные значения в напряжение 0-10 в и подам на регулятор мощности для нагрева тэна работать будет? Или выход с пид регулятора нужно преобразовывать в шим сигнал? И последнее как сохранить параметры пид после автонастройки?

Sulfur
31.05.2019, 10:53
sosna

Если я преобразую данные значения в напряжение 0-10 в и подам на регулятор мощности для нагрева тэна работать будет? Или выход с пид регулятора нужно преобразовывать в шим сигнал?
Это зависит собственно от регулятора мощности. Если регулятор управляется по 0..10В, то первый способ. Если в качестве "регулятора" используются ТТР с дискретным ходом, то необходим ШИМ.

И последнее как сохранить параметры пид после автонастройки?
В ретайн, не?

sosna
31.05.2019, 14:39
sosna

Это зависит собственно от регулятора мощности. Если регулятор управляется по 0..10В, то первый способ. Если в качестве "регулятора" используются ТТР с дискретным ходом, то необходим ШИМ.

В ретайн, не?

Спасибо. Если создать в программе ФБ PID_2POS_IM_ANR как переменную в VAR RETAIN то этого достаточно?

kondor3000
31.05.2019, 20:00
Подскажите, что не так с программой на ST. Работает только n=0, 1, 2, 3 , а присваивания задачи не работает


Пока на ST плохо получается, программа уже работает, считает время, переключает режимы, осталось только присваивание в режиме

_Mikhail
31.05.2019, 20:23
Подскажите, что не так с программой на ST. Работает только до n:=0, далее n:=1, 2,3 не работает
42977
42978
42979
Пока на ST плохо получается

Для начала : как можно входу присваивать значение?

IF blinput=FALSE THEN pusk:=false;
ELSE blinput:=false;
END_IF

ЭТО НЕ ПРАВИЛЬНО

kondor3000
31.05.2019, 20:47
Для начала : как можно входу присваивать значение?

IF blinput=FALSE THEN pusk:=false;
ELSE blinput:=false;
END_IF

ЭТО НЕ ПРАВИЛЬНО

Всё разобрался сам, который раз помощи не дождался (((
Программа уже работает, и пуск включает . И присваивание работает. Мне просто интересно, чем повторять неправильное, не проще 3 строчки правильно написать, хоть в личку было. Все примеры с форума поудаляли, а сами то тоже начинали когда то !

kondor3000
01.06.2019, 00:57
Строки 13..15 внимательней осмысли, особенно 14.

Который раз разобрался сам, короче помощи тут ни от кого не дождёшься, все умников строят из себя, а это раздел ВОПРОСЫ ОТ НОВИЧКОВ, если что.

capzap
01.06.2019, 05:03
Все примеры с форума поудаляли, а сами то тоже начинали когда то !

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

Sulfur
03.06.2019, 08:19
sosna

Если создать в программе ФБ PID_2POS_IM_ANR как переменную в VAR RETAIN то этого достаточно?
Есть предложение сделать копию этого ФБ под своим(другим) именем, модифицировать переменные отвечающие за P, I и D, т. е. объявить их глобальными и ретайн. Я не говорю что это сработает, я так не делал. А вдруг?

lxa85
03.06.2019, 09:38
Здравствуйте.
ПО досталось уже предустановленным на ПК. Админских прав нет, поэтому в возможностях ограничен.
Имеется: CodeSys 2.3.9.44 (2014)
При запуске пишет много строк код
Настройки целевой платформы "WAGO_ " в файле "C:\Program Files(x86)\WAGO\CodeSys\Targets\WAGO" не найдены.
Файлы отсутствуют физически, и в целом пока нафиг не нужны, тк мы работаем с другим вендором.

Вопрос: В каком месте прописываются пути до библиотек, или как отучить программу лазить куда не надо?
Желательно подробнее, как для бестолковых.
Заранее спасибо.

yurya
03.06.2019, 11:13
Добрый день. Среда программирования CODESYS 3.5.11.5. Как можно распечатать текст программы проекта?

lxa85
03.06.2019, 11:37
Второй вопрос.
Могу ли я каким-либо образом выгрузить конфигурацию ПЛК в отдельный файл, желательно человеко-читаемый?
xml вполне подойдет.
Дело в том, что при начальной конфигурации много описательной работы, а дергать каждый раз мышку малость напрягает.
Или есть какие-либо клавиатурные сочетания, чтобы было не так мучительно больно общаться с этой программой?

ASo
03.06.2019, 12:39
Экспорт проекта.

Sulfur
03.06.2019, 12:42
lxa85
Проект>Экспорт>отметить нужное>Сохранить. Полученный файл открывается блокнотом. Этот же файл можно затолкать обратно, например в другой проект с таким же таргетом.

lxa85
03.06.2019, 15:07
Sulfur, спасибо, нашел. Можете подсказать с первым вопросом - про пути отсутствующих библиотек?
В какую сторону смотреть?

lxa85
03.06.2019, 16:08
Валенок, нет такой вкладки, либо в упор не вижу :( Прошу прикрепить картинку со стрелками.

Massmeter
03.06.2019, 22:56
В ПЛК 150 2006 года рождения вздулась батарейка. Чем можно заменить?

Мария Мильчакова
04.06.2019, 09:01
Добрый день.

Тип аккумулятора в наших ПЛК обсуждался в теме: https://www.owen.ru/forum/showthread.php?t=12546
Вам мнеобходимо докупить батарейку и заменить ее.

Sulfur
05.06.2019, 10:07
Massmeter
Я в ПЛК110 старой серии ставил литий-полимерные акки 300-400 ма\ч с проволочными выводами. Места внутри ПЛК много. Работают где-то два-три года и опять дуются. Родная батарейка сдувалась в течении года.

Sulfur
05.06.2019, 10:13
lxa85

Прошу прикрепить картинку со стрелками.
Извольте, сэр:
43040

Солнечный заяц
07.06.2019, 12:30
Не смог найти в справке синтаксис функции set/reset в языке ST. Сначала я подумал, что эта функция просто не работает в CDS2, но буква R-то выделяется синим, значит она есть. Или я просто заработался и не вижу чего-то очевидного?

Sulfur
07.06.2019, 14:37
Солнечный заяц
Вы пытаетесь сбросить ВЫХОД ФБ (строка 0017). В ST это не получится сделать. Кстати, такие алгоритмы проще и нагляднее делать в LD. Создаете свою POU_LD, в PLC_PRG в нужном месте просто вызываете эту POU с пустыми параметрами.
-------
Строка 0016 - если DO6 это физический выход ПЛК, то нет смысла делать преобразование BOOL_TO_REAL, ибо выход по определению BOOL.

Солнечный заяц
07.06.2019, 15:33
Солнечный заяц
Вы пытаетесь сбросить ВЫХОД ФБ (строка 0017). В ST это не получится сделать.
Возможно, я недостаточно понятно описал проблему. Я сбрасываю переменную типа BOOL.

Строка 0016 - если DO6 это физический выход ПЛК, то нет смысла делать преобразование BOOL_TO_REAL, ибо выход по определению BOOL.
В ПЛК73 дискретные выходы типа REAL ;)


А set/reset в ST это не элемент синтаксиса, а программный (в виде ФБ SR/RS соотв.) и находятся в standart.lib

В CDS3 функции сброса и установки переменных (R= и S=) прекрасно работают (скриншот из CDS3 во вложении). В CDS2, возможно, другой синтаксис. Неужели никто не пользуется?

capzap
07.06.2019, 17:52
Возможно, я недостаточно понятно описал проблему. Я сбрасываю переменную типа BOOL.

В ПЛК73 дискретные выходы типа REAL ;)

В CDS3 функции сброса и установки переменных (R= и S=) прекрасно работают (скриншот из CDS3 во вложении). В CDS2, возможно, другой синтаксис. Неужели никто не пользуется?

На картинке конечно код огонь, во первых я бы сделал в место R= поставил бы NOT, а в принце r это в любом случае сброс булевой переменной, а s активация буля

Солнечный заяц
10.06.2019, 12:01
На картинке конечно код огонь
А что не так с кодом? Останов по конечнику и защита от разнонаправленного включения в 4 строки, вы бы сделали по другому? (Если вы о коде из CDS3)

во первых я бы сделал в место R= поставил бы NOT, а в принце r это в любом случае сброс булевой переменной, а s активация буля
NOT даст постоянную инверсию, а здесь нужен сброс
Придется заменять элегантную и читаемую конструкцию
a R= b; на
if b then
a:=false;
end_if

capzap
10.06.2019, 14:10
Ну хорошо, зафальшили Вы переменную а, а обратно как её будете поднимать, может все же тут нужен rs триггер...

Солнечный заяц
10.06.2019, 17:06
Ну хорошо, зафальшили Вы переменную а, а обратно как её будете поднимать, может все же тут нужен rs триггер...
Это часть кода конфигурации выходных сигналов. Просто устанавливаем управляющую команду в true в любой части программы и можно не думать о защитах и согласованности.
В части логики никаких проблем не возникает, просто хотелось сделать красиво, как в CDS3 :D

capzap
10.06.2019, 17:47
Красиво не есть надёжно, сет так же влияет на выход как и ресет, а вот портянку кода, где не понятно в каком именно месте оперативно искать ошибку это огонь

Михаил_И
27.06.2019, 10:48
Доброго времени суток, столкнулся с такой проблемой. Пытаюсь опрашивать частотник альтивар по modbus tcp ip. Опрос ведет pcl 160. Как только начинаю опрашивать хотя бы 1 регистр с альтивара, начинает обрываться связь между средой разработки codesys 2.3 и овном. Просто пишет подключение разорвано, после нескольких попыток соединение восстанавливается но буквально на 1-2 минуты снова разрывается. Если просто запускаю модбас сервер -связь работает нормально. В чем может быть причина, подскажите пожалуйста.
PLCInfo
PLC model MODEL PLC 160 &#194;&#229;&#240;&#241;&#232;&#255; &#207;&#206; &#236;&#229;&#242;&#240;: 2.0
Binary VERSION 2.17.0
Need Target version 2.10
Compiled: 14:22:27 Apr 6 2017
MAC 6A:77:00:FF:96:42
IP 10.1.1.16
GATE 10.1.1.1
MASK 255.255.255.0
PIC upper version is 15
Licence unlimited
43335

Миронов Илья
27.06.2019, 15:10
Здраствуйте!
В ходе разработки системы автоматизации тех. процесса столкнулся с проблемой (codesys начал изучать на днях в среде FBD), как можно привязать датчик вакуума или РРГ(регулятор расхода газа) с сомой программой? Разумеется если брать датчик вакуума то мы будем получать значения в виде Вольтажа, но как их перевести в Па, Торры или мм.рт.ст чтобы это все можно было отобразить на панели оператора и от этих значений строить последующую логику управления программой?


P/s Буду признателен за примеры.

Карбофос
28.06.2019, 08:02
Здравствуйте!

ПЛК110[M02] Подскажите, возможен ли одновременный опрос контроллера через один и тот же канал (ethernet) через OwenCloud и локальное сетевое устройство (операторская панель или OPC-сервер на компьютере в локальной сети)?

Rednaxel
28.06.2019, 08:43
ПЛК110[M02] Подскажите, возможен ли одновременный опрос контроллера ... через OwenCloud ...
Немного наоборот: не облако опрашивает контроллер, а он сам отправляет в облако новые значения переменных при их изменении, что, согласитесь, заметно эффективнее.



ПЛК110[M02] ... и локальное сетевое устройство (операторская панель или OPC-сервер на компьютере в локальной сети)
Мои телепатические способности подсказывают мне ;-) что переменных в Вашем проекте штук 5 - 10 не больше (поправьте если ошибся). Любой ПЛК способен опрашивать и отправлять на сторону сотни и даже тысячи переменных в секунду, параллельно производя тысячи вычислений, так что думаю напрасно Вы на эту тему беспокоитесь.

Rednaxel
28.06.2019, 09:14
Здраствуйте!
... привязать датчик вакуума или РРГ(регулятор расхода газа) с сомой программой?....
получать значения в виде Вольтажа, но как их перевести в Па, Торры или мм.рт.ст ....
P/s Буду признателен за примеры.

Поизучайте раздел документации по CodeSys (https://www.owen.ru/product/codesys_v2) (полагаю у вас v2 ?) на сайте, особенно Каталог примеров программ (https://www.owen.ru/product/codesys_v2/example_program) -- там много чего интересного.
Если хотите получить более конкретный ответ, задавайте конкретный вопрос ;) Не забудьте указать модели вашего ПЛК, датчиков панелей и т.п.
Успехов!

Карбофос
28.06.2019, 09:31
Немного наоборот: не облако опрашивает контроллер, а он сам отправляет в облако новые значения переменных при их изменении, что, согласитесь, заметно эффективнее.


Мои телепатические способности подсказывают мне ;-) что переменных в Вашем проекте штук 5 - 10 не больше (поправьте если ошибся). Любой ПЛК способен опрашивать и отправлять на сторону сотни и даже тысячи переменных в секунду, параллельно производя тысячи вычислений, так что думаю напрасно Вы на эту тему беспокоитесь.

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

ASo
28.06.2019, 10:37
Может ли ваш компьютер одновременно скачивать файл с вэб, получать почту и сохранять файл на сервере с MS Windows? Чем это отличается от ПЛК?

Rednaxel
28.06.2019, 10:49
На самом деле я беспокоюсь не за ограничения вычислительной мощности, а за принципиальную возможность такой схемы. Ведь панель опрашивает контроллер, и он одновременно, как вы правильно поправили, должен отдавать данные в облако. Поэтому возникли сомнения, не будет ли конфликта на уровне протокола, порт-то один.

Не путайте физический уровень (порт) с логическим (протокол). В общем случае запас пропускной способности первого и структура вторых предусматривает максимальную нагрузку наверняка больше чем вы сможете обеспечить. К слову для обмена с облаком и для связи с панелью обычно используются разные протоколы.
Чтобы сказать что-либо более конкретное для Вашего случае укажите конкретные данные проекта: сколько переменных, какое оборудование, какие протоколы предполагаете использовать и по каким каналам связи (скоростные параметры) ну и т.д.
Успехов в освоении!

sly2k
29.06.2019, 22:08
Вопрос по прошивке работающего в проекте ПЛК100 - в связи с желанием добавить в него поддержку облака.
ПЛК трудится над управлением насосами и отоплением. Получится ли его прошить на 2.17 без демонтажа? я так понял там перемычку надо снимать, а для этого снять крышку, следовательно придется открутить все провода -есть идея сделать аккуратно отверстие в корпусе напротив нее (допустим паяльником) - реально?
По порядку действий перепрошивки все ли я правильно понял?
1. имеем соединение с ПЛК через ethernet
2.подключаемся кодесисом и заливаем прошивку согласно инструкции (не слетят ли тут настройки IP у ПЛК? не нужно ли удалить проект с плк перед прошивкой?)
3. инсталлируем новый таргет на ПК, меняем его в свойствах проекта. и заливаем новый проект на ПЛК
Спасибо.

RV9WFJ
01.07.2019, 09:32
Странно, отсоединить 15 проводов с ПЛК вас смущает, а танцы с бубном при изменении прошивки нисколько не смущают. Вы точно понимаете, что собираетесь сделать? P.S.Сетевые настройки при перепрошивки слетают.

Rednaxel
01.07.2019, 11:07
Вопрос по прошивке работающего в проекте ПЛК100 - в связи с желанием добавить в него поддержку облака.
...

Согласен с RV9 - я бы тоже не стал на ходу перепрошивать. Процедура прошивки не случайно такая хитрозавернутая -- заставляет лишний раз подумать: "Оно мне надо?".
Ну если уже решили, то делайте все как положено и будьте готовы плясать с бубном, микросхемы заговаривать вплоть до заказа нового ПЛК на подмену. Шанс что все пройдет нормально все-же достаточно велик, но настоящий профи всегда готов к неожиданностям ;)

Удалять проект и заливать его по новой процедура прошивки не предусматривает, а вот про Ethernet забудьте -- RS232 или USB.
Удачи!

Rednaxel
01.07.2019, 11:23
... стоит Овен ут24.

Это Вы не в ту тему. Здесь по CodeSys и ПЛК.
У Вас устройство довольно простое... проверьте все ещё раз внимательно... Может оно у Вас, например, просто в режиме "программирование" осталось.
Если не разберетесь, попробуйте попросить помощи в разделе Эксплуатация (https://www.owen.ru/forum/forumdisplay.php?f=10). Только подробно, пошагово опишите алгоритм работы УТ. Что куда подключено укажите.
Много раз было, что в процессе задавания вопроса, сам начинал понимать в чем проблема ;)
Успехов!

sly2k
01.07.2019, 23:52
Ну если уже решили, то делайте все как положено и будьте готовы плясать с бубном, микросхемы заговаривать вплоть до заказа нового ПЛК на подмену. Шанс что все пройдет нормально все-же достаточно велик, но настоящий профи всегда готов к неожиданностям ;)

Удалять проект и заливать его по новой процедура прошивки не предусматривает, а вот про Ethernet забудьте -- RS232 или USB.
Удачи!
Спасибо за совет быть осторожным. Не часто прошивал овены (только когда купил для этого проекта парочку и то перед началом работ по ним, и все уже подзабыто).
Так что спасибо, пожалуй куплю б/ушный, прошью его и поменяю их местами.
А по пунктам я все правильно понял? (на счет момента когда таргет в проекте менять)

Rednaxel
02.07.2019, 00:42
А по пунктам я все правильно понял? (на счет момента когда таргет в проекте менять)

С пунктами 1 - 2 все ОК, а вот по пункту 3 есть замечание: мне кажется Вы не до конца понимаете что такое таргеты.

Таргет файлы предоставляет среде программирования CoDeSys описание (главным образом конфигурацию входов/выходов) конкретной аппаратной платформы (в Вашем случае ПЛК 100). Без них Вы можете создать проект, но не сможете задать соответствие ваших переменных входам и выходам ПЛК, понимаете? Копируются таргет файлы не в ПЛК, а в CoDeSys.

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

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

Понятно, что вы захотите таки проект доработать, чтобы задействовать связь с облаком, но это вовсе не обязательно и вполне можно отложить на потом, когда Вы убедитесь что все прошло нормально, а Ваше сердце перестанет учащенно биться ожидании шаманских "плясок с бубном" ;)

Если таргет у Вас не подходящей версии, CoDeSys просто ругнется при попытке подключится к обновленному ПЛК и потребует их обновить, только и всего. Ну вот примерно так. Еще раз удачи ;)

З.Ы. И да, потренируйтесь подключатся к ПЛК через RS232 или USB и настраивать IP прежде чем шить.

capzap
02.07.2019, 07:23
Заметьте, что при обновлении версии прошивки, совсем не обязательно Вам потребуется обновлять таргеты; они просто должны быть не ниже определенной версии.
.
Зря Вы так утверждаете, плк может себя повести очень не адекватно, сам с этим сталкивался и всегда советую как раз наоборот, переустановить таргет

Rednaxel
02.07.2019, 08:16
Зря Вы так утверждаете, плк может себя повести очень не адекватно, сам с этим сталкивался и всегда советую как раз наоборот, переустановить таргет

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

Dimooon
02.07.2019, 20:12
По умолчанию
Здравствуйте. Подскажите пжс, в бибке util есть счетчики ctu, ctd i ctud. Но они все считают в переменную word. А мне надо в real. В минус мне надо. Есть ли такой счетчик и в какой библиотеке, или с этими можно как-то судьбу обмануть. Спасибо

Dimooon
02.07.2019, 22:01
По умолчанию
Здравствуйте. Подскажите пжс, в бибке util есть счетчики ctu, ctd i ctud. Но они все считают в переменную word. А мне надо в real. В минус мне надо. Есть ли такой счетчик и в какой библиотеке, или с этими можно как-то судьбу обмануть. Спасибо

vovksextra
02.07.2019, 23:33
По умолчанию
Здравствуйте. Подскажите пжс, в бибке util есть счетчики ctu, ctd i ctud. Но они все считают в переменную word. А мне надо в real. В минус мне надо. Есть ли такой счетчик и в какой библиотеке, или с этими можно как-то судьбу обмануть. Спасибо

Собственно можно написать любой ФБ за 2 минуты, а что именно нужно?

Rednaxel
03.07.2019, 07:47
По умолчанию
... есть счетчики ctu, ctd i ctud. Но они все считают в переменную word. А мне надо в real.
Все не так, как Вам кажется ;)
Правильно они считают. Минус 3 коровы не бывает! :) И не надо вам счетчик в Real.


По умолчанию
В минус мне надо.
Не буду спрашивать зачем Вам минус, но какая проблема из ноля вычесть результат работы счетчика? Из Real Word можно вычитать? И будет вам минус 3 коровы ;-)

Но лучше опишите всю задачу. Может все не так, как Вам кажется?

Rednaxel
03.07.2019, 08:07
Все не так, как Вам кажется ;)
...какая проблема из ноля вычесть результат работы счетчика? Из Real Word можно вычитать? И будет вам минус 3 коровы ;-)

Лучше преобразовать сперва пожалуй. Типа такого:
43448

Sulfur
03.07.2019, 08:48
Dimooon

А мне надо в real.
Такой устроит?
43449

Dimooon
03.07.2019, 12:08
Да я real сказал- первое, что под руку попалось. Можно и инт, что удобнее для плк. С энкодера буду импульсы считать, выбрал плк 110-60. Там два быстрых входа. Кстати, можно их заменить на элемент "энкодер", но я мануал для плк нечитал еще, но уже непонятно. Ведь у энкодера два сигнальных выхода туда сюда, а в элементе энкодер- всего один. Оставить быстрые входы?
И как можно энкодер в симуляции симулировать?)))

Sulfur
03.07.2019, 12:30
Dimooon
Для энкодера нет нужды использовать реал. INT вполне достаточно. В элементе "энкодер" один регистр, оттуда считываются уже посчитанные импульсы, причем с учетом направления. Т.е. крутим вперед - показания (содержимое регистра) увеличиваются, крутим назад - уменьшаются. Серьезный недостаток этого модуля в том, что невозможно программно сбросить\установить показания энкодера, и при выключении ПЛК он не запоминает последние данные (сбрасывается в ноль). Для ПЛК110-60 можно использовать ABZ-энкодер, тогда по импульсу Z (FDI3) регистр будет обнуляться. Если такой функционал не устраивает, то изучайте проект HardellaIDE (стороннее ПО), в нем можно воплотить все свои хотелки на быстрых входах\выходах.

vladi5700
04.07.2019, 15:18
Всем доброго дня. Впервые имею дело с СПК207 от OWEN. Понадобилось заменить вышедший из строя СПК207 на новый, производитель оборудования прислал прошивку для контроллера (я так понимаю это уже откомпилированные файлы проекта?) Application.crc , Application.app и папка visu с ресурсами интерфейса. С помощью какой программы можно все это загрузить в контроллер?

UPD получилось загрузить через флешку из конфигуратора, но все же интересно как правильно загружать с ПК

Dimooon
04.07.2019, 21:41
Dimooon
Серьезный недостаток этого модуля в том, что невозможно программно сбросить\установить показания энкодера, и при выключении ПЛК он не запоминает последние данные (сбрасывается в ноль).

А если устанавливать показания энкодера так - например насчитало 110, хочу, чтобы это было нулем и начинаю отнимать 110 . А запоминать- в ретайн переменную последнее значение записывать, при включении ретайн прибавлять к изначальному нулю. Будет так работать?

Sulfur
05.07.2019, 13:27
Нет. Алгоритм должен быть немного другим.
43493

В архиве экспорт этого ФБ. Для вставки в проект его надо импортировать.
Следует учитывать, что конкретно данное решение довольно медленное, т. е. оно работает с частотой, зависящей от времени цикла ПЛК. Для высокоскоростного счета (более 300Гц частоты импульсов энкодера) требуется другое решение.

Sulfur
05.07.2019, 13:31
vladi5700

как правильно загружать с ПК
Вероятно имея на руках проект, среду КоДеСис нужной версии, таргеты к СПК, сам СПК и шнурок для связи.

Dimooon
05.07.2019, 13:57
Спасибо. Этой скорости хватит. Сегодня попробую

VanoKing
05.07.2019, 18:53
контроллер овен ПЛК110-60(М2) в codesys при заливке тормозится на загрузке и выдает обрыв связи через USB
подскажите как исправить
43497

Dimooon
06.07.2019, 10:44
Нет. Алгоритм должен быть немного другим.
У Вас вход ФБ INT а на быстром входе энкодера Word. Подскажите пжс, как сделать симулятор энкодера, программно покрутить энкодер, чтобы посмотреть в симуляции - как Ваш ФБ работает

Вроде сделал счетчик, шобы в минус считал, но получается, что я просто использую два дискретных входа, а регистр Zю как присоседить - недопонял
Самое главное - к каким физическим входам цеплять энкодер , если в конфигурации выбран элемент фаст энкодер?

Rednaxel
06.07.2019, 12:36
контроллер овен ПЛК110-60(М2) в codesys при заливке тормозится на загрузке и выдает обрыв связи через USB
подскажите как исправить
43497

Какое положение граблей ;) в виде переключателя "Работа / Стоп / Сброс" на передней панели?
По Ethernet или RS-232/485 пробовали подключаться?
Версия прошивка какая?

В конце концов бывают и в проекте проблемы. Когда использовал библиотеку "SysLibSocets" пришел к выводу что типа проект перегружает каналы связи ПЛК. Точно Попробуйте подкл. и не заливать проект, остановить его выполнение а затем залить. Пробуйте сбросить удалить проект из ПЛК перед заливкой.

VanoKing
06.07.2019, 13:59
сброс и остановка не помогли
залил новую прошивку через UpdateCore по USB и он ожил

Dimooon
06.07.2019, 22:10
Нет. Алгоритм должен быть немного другим.

А можно сделать так, чтобы при ResetEnc =1 обнулялась и Delta и Old Data?

Rednaxel
07.07.2019, 09:11
А можно сделать так, чтобы при ResetEnc =1 обнулялась и Delta и Old Data?

Похоже Вы собрались разработать счетчик. За 5 минут. И они уже прошли. Может стоит уже дать проекту имя? Давайте назовем его CTU_NEW ;)
И в отдельную ветку его. Чтобы все уже как положено.

Dimooon
07.07.2019, 09:17
https://www.owen.ru/forum/attachment.php?attachmentid=43512&d=1562418866
А какой тогда смысл в булевом входе обнуления. Как хошь называйте- а эта хрень с энкодером работает криво

Yaroslav_22
09.07.2019, 09:41
Здравствуйте.

Установил версию CDS 2.3.8.1 + русификатор (русская версия выдает какие то ошибки, но тоже устанавливается)

Проблемы:

1. не работает Ctrl+C, Ctrl+V - работает
2. не устанавливается таргет из BUT файла, только в ручную
3. при русификации выдает какие то иероглифы
43558

Что не так делаю?

Rednaxel
09.07.2019, 16:42
Здравствуйте.

Установил версию CDS 2.3.8.1 + русификатор (русская версия выдает какие то ошибки, но тоже устанавливается)

Проблемы:

1. не работает Ctrl+C, Ctrl+V - работает
Вообще-то на сайте Овен есть версия 2.3.9.41 (https://owen.ru/product/codesys_v2). Русифицированная. За те же деньги ;) Попробуйте ее, может все проблемы сами собой уйдут?
Аналогичные команды по ПКМ работают? Не все в CodeSys можно скопировать и вставить. Уточните: в каком месте у вас не работает?


2. не устанавливается таргет из BUT файла, только в ручную
Попробуйте запустить пакетный файл от имени администратора.


3. при русификации выдает какие то иероглифы
См. п.1: зачем Вам нужна эта устаревшая версия с кривым русификатором?

Yaroslav_22
11.07.2019, 07:57
как то установилась русская версия без ошибок
43572
подскажите какая кодировка XML должна стоять, а то русский шрифт не корректно отображается.

в этой версии заработало Ctrl+C!

поставил кодировку ISO8859-5 (Cyrillica) - все равно нет русского текста

Rednaxel
11.07.2019, 10:26
как то установилась русская версия без ошибок
43572
подскажите какая кодировка XML должна стоять, а то русский шрифт не корректно отображается.

Как раз должна стоять ISO8859-5 (Cyrillica).
Это у вас со шрифтом на вкладке редактор проблема. Проверьте (https://www.screencast.com/t/4QK9qtNM8k)
За одно советую поставить моношириный шрифт Corier.

Yaroslav_22
11.07.2019, 10:33
действительно, изменил шрифт и поставил кириллицу, все заработало

Спасибо большое Rednaxel!!!

31kip
12.07.2019, 15:53
Добрый день. Подскажите пожалуйста, возможно ли вывести переменную из конфигурации ПЛК110 на СМИ2. Из примеров с сайта получается это сделать только из программы, программа достаточно большая(для меня). Если можно пример на CFC или подсказку где посмотреть, почитать.

_Mikhail
12.07.2019, 18:50
Добрый день. Подскажите пожалуйста, возможно ли вывести переменную из конфигурации ПЛК110 на СМИ2. Из примеров с сайта получается это сделать только из программы, программа достаточно большая(для меня). Если можно пример на CFC или подсказку где посмотреть, почитать.
На странице СМИ2 все достаточно подробно объяснено и выложены примеры
https://owen.ru/product/smi2/example
Если это для Вас очень сложно, то ...........?

31kip
13.07.2019, 09:12
В том то и дело что в примерах собраны все возможные возможности СМИ2 мне же нужно понять принцип внесения переменной в СМИ2. Я так понимаю, что для этого нужно переменную типа REAL(в моем конкретном случаи), преобразовать в массив байт и передать этот массив байт на панель. Вопрос стоит в том имеет ли возможность панель принять непосредственно переменную, а не массив, и ,если да, то какое подустройство мне нужно выбрать в universal modbus devise

Р.Александр
13.07.2019, 11:58
Насколько я помню, СМИ2 подключается через отдельную библиотеку, поэтому в Конфигурацию ПЛК ее порт не включается.
Однако, панель поддерживает протокол Modbus RTU, поэтому в принципе можно попробовать и через ОРС, нужно брать регистры, соответствующие необходимому вам формату данных. К примеру, если вам нужно отобразить в панели переменную WORD, берете Register output module, и установить номера этих регистров согласно карте регистров Modbus, имеющейся в инструкции к панели.
Насколько мне помнится, там есть все форматы, не нужно делать никаких преобразований.

31kip
13.07.2019, 14:04
В теории все правильно, то только на практике не получается, пробовал и WORD и REAL. Адрес прибора в сети 25, переменная типа REAL, в конфигурации - Real output module, адрес регистра, согласно руководства СМИ2 для типа Float 27-28, следовательно в настройках ставлю 16#27 код функции записи 0х10. Пробовал ставить 16#1027, результат тот же.

Rake Runner
13.07.2019, 14:19
Как в руководстве СМИ2 называется столбец, в котором указан адрес регистра 27-28?

31kip
13.07.2019, 14:24
номер регистра(DEC)

Rake Runner
13.07.2019, 14:30
Что такое 16# знаете?

31kip
13.07.2019, 14:30
могу сбросить скрины или проект, только не знаю как(( Насколько я понимаю, я что то не добиваю в настройках, скорее всего какая то мелочь, но... третий день!

31kip
13.07.2019, 14:31
перевод из десятичной в шетнадцатиричную систему

Rake Runner
13.07.2019, 14:35
Отлично, теперь осталось ответить на последний вопрос - что означает DEC?

31kip
13.07.2019, 14:37
номер регистра в десятичном исчислении

Rake Runner
13.07.2019, 14:41
Теперь подытожим: в руководстве сказано, что адреса в десятичном исчислении.
Зачем делать "перевод из десятичной в шетнадцатиричную систему" ?

31kip
13.07.2019, 14:46
видимо не стоило, но тем не менее с регистром 27 тоже лучше не стало

31kip
13.07.2019, 15:11
интересен еще один момент, через некоторое время работы СМИ показывает что от мастера сети не поступают запросы

31kip
13.07.2019, 16:16
В byte sequence стоит Trace mode, в 17 загоняю, значение не появляется

31kip
13.07.2019, 16:31
спасибо всем откликнувшимся большое, проблема была где то в моей программе создал чистую, все работает, запись в 27 регистр и все. В 17 можно ничего не вносить, попробовал и так и так.

perunov
17.07.2019, 07:06
Добрый день! Мучаюсь с проблемой несколько дней уже. Очень прошу совета. Нужен блок, который за заданный промежуток времени (10, 200 или например 630 секунд) постепенно поднимает или снижает значение на заданную величину (например с от 0 до 1000 или 800 до 600). Есть похожие ступенчатые регуляторы для муфельных печей, в которых реализован выход на уставку за заданный интервал времени. Подскажите пожалуйста как реализовать такое в CoDeSys 2.3. Спасибо!

ASo
17.07.2019, 08:08
Блок GEN из Util.lib

perunov
17.07.2019, 10:51
Блок GEN из Util.lib

Большое спасибо за наводку. Подошёл блок RAMP

inspectorcot
17.07.2019, 19:40
Здравствуйте, подскаите пожалуйста по библиотеке SysLibCom
Брал пример с форума, но скорость не могу поменять, как и остальные параметры, кроме номера порта, скорость всегда 9600

VAR CONSTANT
port: COMSETTINGS := (Port := 0, dwBaudRate := 9600);

END_VAR

IF NOT portOpened THEN

portOpened := SysComOpen(port.Port) = 0 = SysComSetSettings(port.Port, ADR(port));


END_IF;

Regedit
24.07.2019, 11:36
Добрый день! Подскажите! Как добавить в проект булевую переменную устройства модбас? Создаю универсальное устройство, далее там можно создать переменную типа word, Dword, byte.... Как здесь bool найти?)

Sulfur
24.07.2019, 13:15
Никак. Создаете регистр 8bits , там откроется возможность управлять отдельными битами. Либо применять конструкцию Var.0--Var.15, где Var - переменная типа WORD или регистр 2byte, а цифры после точки - номер бита.

Пьер
25.07.2019, 11:27
Здравствуйте. У меня в основной программе стоит функциональный блок (мною написанный), в этом блоке еще один подобный блок. Как мне во втором блоке из основной программы изменять переменные. В ручном режиме, в онлайне, я могу присваивать значения этим переменным, а программно не получается. Подскажите, возможно ли такое?

Спорягин Кирилл
25.07.2019, 12:02
Здравствуйте. У меня в основной программе стоит функциональный блок (мною написанный), в этом блоке еще один подобный блок. Как мне во втором блоке из основной программы изменять переменные. В ручном режиме, в онлайне, я могу присваивать значения этим переменным, а программно не получается. Подскажите, возможно ли такое?

Сделайте их типа Input_var, а не Var.

Yaroslav_22
26.07.2019, 05:53
Здравствуйте.
43757

Не могу понять почему так происходит: назначаю регистры значениям REAL, вылетает ошибка, при чем все значениям, начинающимся с 250 адреса это происходит в области как в глобальных так и в глобальных энергонезависимых переменных, все остальное компелируется без проблем.

(СП310, ПЛК110-60 - М [M02], CS2.3.9.41)

В чем может быть причина?

Sulfur
26.07.2019, 08:48
(СП310, ПЛК110-60 - М [M02], CS2.3.9.41)
В чем может быть причина?
А сразу в конфигурации ПЛК создавать регистры FLOAT\REAL не? При явной адресации всегда есть вариант нарваться на конфликт. При адресации в конфиге КДС сам распределяет память, исключая конфликты.

Пьер
26.07.2019, 08:56
Как это поможет, кроме как переменные не будут изменяться внутри второго блока?

Через точку можно дойти до любой переменной, Пьер

Через точку не получается. Ошибка. Например хочу обнулить bool (тип VAR) . В основной проге PLC_PRG пишу блок1.блок2.bool:=False; (так тоже не получается)
ОШИБКА 4020: PLC_PRG (757): Операндом дл ST,STN,S,R должна быть переменная или прямой адрес, доступный по записи.

Пьер
26.07.2019, 09:13
Ну так зачем назначать имена переменным ключевые слова языка программирования?

Это просто пример. у меня блок1.блок2.переменная1:=переменнаяизосновнойпрогр аммы;

Yaroslav_22
26.07.2019, 10:19
.............................del

Yaroslav_22
26.07.2019, 10:20
Sulfur ,согласен с Вами, и изначально думал так делать, но начал создавать переменные в глобальной области - мне так удобней контролировать процесс. Но КДС видимо думает иначе)

Хотя странно, у контроллера зарезервирована большая область памяти под это, а тут оказывается, что не вся и еще не везде - надеюсь что кто-нибудь сможет разъяснить как так получается, а пока буду переделывать проект...
если что то "нарою" по этому, напишу.

capzap
26.07.2019, 11:33
Через точку можно дойти до любой переменной, Пьер

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

Пьер
26.07.2019, 11:49
Виноват, сам не проверял когда отвечал. Вот исправленный вариант

Спасибо, спасибо!

Валенок
26.07.2019, 20:24
Но КДС видимо думает иначе).
По радио сказали что один идиот по встречке едет. А их тут сотни..


Хотя странно, у контроллера зарезервирована большая область памяти под это, а тут оказывается, что не вся и еще не везде - надеюсь что кто-нибудь сможет разъяснить как так получается,.
Ключевое слово - выравнивание. КДС - умеет. Вы - нет.


но начал создавать переменные в глобальной области - мне так удобней контролировать процесс.
Одна единственная переменная через at%. Структурная. Редчайший случай пользы абсолютной адресации.

Валенок
26.07.2019, 20:32
Через точку не получается. Ошибка. Например хочу обнулить bool (тип VAR) ..
А это

Сделайте их типа Input_var, а не Var.
чем не устроило ?

Rednaxel
27.07.2019, 18:13
Всем привет!
Для отображения в панели нужно присвоить биту модуля ModBus Slave значение Дискретного выхода ПЛК.
Создал для этого отдельный от основного программный модуль и в нем, чтобы не дублировать переменные пытаюсь использовать прямую адресацию:
AT%QX2.0 := MbFDo01;
и получаю ошибку компиляции 4250: Требуется (ST)-выражение или окончание POU.

Приходится вместо этого создавать повторно в модуле переменную для каждого выхода и для каждого бита обратной связи, связывать её с адресом выхода и с адресом Modbus,
ну или задавать как глобальные переменные. Неоптимально как-то :(
Хотя в справке читаю:

Оператор присваивания
Перед оператором присваивания находится операнд (переменная или адрес), которому присваивается значение выражения, стоящего после оператора присваивания.

Как вообще правильно и красиво делать подобную обратную связь для панели, посоветуйте пожалуйста?

petera
27.07.2019, 22:15
Всем привет!
Для отображения в панели нужно присвоить биту модуля ModBus Slave значение Дискретного выхода ПЛК.
Создал для этого отдельный от основного программный модуль и в нем, чтобы не дублировать переменные пытаюсь использовать прямую адресацию:
AT%QX2.0 := MbFDo01;
и получаю ошибку компиляции 4250: Требуется (ST)-выражение или окончание POU.

Приходится вместо этого создавать повторно в модуле переменную для каждого выхода и для каждого бита обратной связи, связывать её с адресом выхода и с адресом Modbus,
ну или задавать как глобальные переменные. Неоптимально как-то :(
Хотя в справке читаю:

Как вообще правильно и красиво делать подобную обратную связь для панели, посоветуйте пожалуйста?

Ну так и напиши
%QX2.0 := MbFDo01;
К чему тут ключевое слово АТ?
43779

capzap
27.07.2019, 22:24
чтобы не дублировать переменные пытаюсь использовать прямую адресациюни одна переменная не использовалась, так же не использовались ни АТ ни проценты

Rednaxel
28.07.2019, 08:46
Ну так и напиши
%QX2.0 := MbFDo01; К чему тут ключевое слово АТ?
43779
Точно, есть такое! Просто привычка сработала. Этот же ответ и сам нашел в РП CodeSys: читайте инструкции, господа ;)
Благодарю за подсказку!


ни одна переменная не использовалась, так же не использовались ни АТ ни проценты

В общем-то тоже вариант, только это и есть глобальные переменные, что не совсем оптимально.
К тому же давно решил для себя что удобнее и наглядней использовать прямую адресацию чем переменные в Конфигурации ПЛК.
А вот в варианте %QX7.1.0.0:=%QX2.0; точно ни одна переменная не использовалась и получилось очень компактненько. Недостаток по сравнению с Вашим методом, что если добавить элемент области Ввода/Вывода перед операндом, то все полетит к чертям :(

Спасибо за обсуждение!

Валенок
28.07.2019, 11:02
только это и есть глобальные переменные, что не совсем оптимально. А чем видение оптимальности ?

%QX7.1.0.0:=%QX2.0; точно ни одна переменная не использовалась и получилось очень компактненько
Получилась полная жесть. В чем компактность ? Даже символов и нажатий на клавиатуру больше ))

что если добавить элемент области Ввода/Вывода перед операндом, то все полетит к чертям :(
"К чертям" - это станет более надежным ? Вы любитель экстрима )) ? Или самое сложное пока - светофор ?

Благодарю за подсказку!
Вам petera показал фичу типа упоминания гужевого транспорта в ПДД, а вы это за новую технологию приняли ))

К тому же давно решил для себя что удобнее и наглядней использовать прямую адресацию чем переменные в Конфигурации ПЛК!
Просто этап такой. Через него проходят и идут дальше. Но кто-то видимо и остается. Бывает.
Первые кто прошел сказали примерно так - "машинам - машинное, а мы делом займемся". Но все равно - удачи.

melky
28.07.2019, 11:29
%QX7.1.0.0: - ага, а потом через время вспоминай, че эта такое ? давление, температура, авария или еще что....

Валенок
28.07.2019, 12:09
%QX7.1.0.0: - ага, а потом через время вспоминай, че эта такое ? давление, температура, авария или еще что....
Дык они скажутъ что это у нас - деменция. А они - наизусть помнютъ.
"Маладой еще" (С)

Rednaxel
28.07.2019, 16:24
А чем видение оптимальности ?

Ладно, готов согласится: вряд ли мне удастся заполнить предназначенную для Глобальных переменных область памяти.


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

В общем случае думаю Вы правы, но в данном конкретном случае задача была просто отобразить значение выхода в модуле ModBus, не создавая при этом кучу промежуточных переменных что, в общем-то и получилось (методом "copy/paste" между прочим, при чем здесь нажатия?) :
43781 И совсем не обязательно вставлять модули перед, можно и после, а если понадобится -- ну поправим циферки.


Просто этап такой. Через него проходят и идут дальше. Но кто-то видимо и остается. Бывает.
Первые кто прошел сказали примерно так - "машинам - машинное, а мы делом займемся". Но все равно - удачи.
Ну не знаю. В чем проблема когда все переменные в одном месте, легко доступные для обозрения и не нужно прыгать по разным окнам? Особенно актуально при отладке с ноутбука на объекте
43782
А если приходится переходить на другую модель ПЛК, что не так уже и редко, то тоже не нужно все переменные вместе с комментариями снова вносить в области ввода/вывода, достаточно пройтись по цифрам.

Самое главное, как итог:
я (а может и тот, кто прочтет) теперь гораздо глубже понимаю тонкости разных подходов и смогу выбирать более осознанно :)
Так что не зря спросил и спасибо за обсуждение!

Sulfur
29.07.2019, 06:49
Для отображения в панели нужно присвоить биту модуля ModBus Slave значение Дискретного выхода ПЛК.


Поскольку дискретные выходы ПЛК не имеют аппаратного контроля состояния (т. е. считается что он всегда исправен, и если на выход подано TRUE, то он действительно TRUE), то я бы сделал проще.


(*Назначенные аппаратные выходы*)
DO1:bool;
DO2:bool;
..
DO16:bool;
(*Переменная статуса, возможно в виде регистра 2byte в области Модбас для обмена с ОП*)
OutStatus:WORD;
----
OutStatus.0:=DO1;
OutStatus.1:=DO2;
..
OutStatus.15:=DO16;

В ОП нужным битовым элементам присваивать значение нужного бита статус-слова.
Присваивание значений статус-слову можно сделать в виде своей программы, и вставить в конце PLC_PRG.
В PLC_PRG останется только присваивать значения выходам DO1..DO16, статус-слово будет генерироваться автоматически.
Никакой прямой адресации, более легкая читаемость кода.
43785

Rednaxel
29.07.2019, 09:37
....
43785
Ок, спасибо за пример. Принимаем на вооружение, особенно в части передачи битов состояния с помощью Word ;)

Yaroslav_22
29.07.2019, 10:31
А сразу в конфигурации ПЛК создавать регистры FLOAT\REAL не? При явной адресации всегда есть вариант нарваться на конфликт. При адресации в конфиге КДС сам распределяет память, исключая конфликты.

при таком раскладе как в конфигураторе обозначать ретейновские переменные?