PDA

Просмотр полной версии : CODESYS V3.5. Вопросы и ответы



Страницы : 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

Игорь Владимирович
07.02.2022, 13:02
Опишите задачу на конкретном примере с конкретными значениями переменных.

Вот структура:

TYPE StTestKoKs: //Структура данных
STRUCT
//Входные данные
TestNomer: WORD; //Номер тестирования
TestDT: WSTRING(16); //Дата и время тестирования
TipKoKs: WSTRING(25); //Тип КО/КС

Razmer: WSTRING(5); //Размер
Model: WSTRING(50); //Модель
ZavodNomer: WSTRING(50); //Заводской номер
ZavodIzgotovitel: WSTRING(50); //Завод изготовитель
IzgotShtucera: WSTRING(50); //Изготовитель штуцера
ShlamoUlovitel: WSTRING(10); //Шламоуловитель
DlinnaShlamovoiTruby: WSTRING(10); //Длинна шламовой трубы
PropuskShlamoulovitely: WSTRING(10); //Пропускная способность шламоуловителя

Vladelec: WSTRING(50); //Владелец (Собственник)
Zakazchik: WSTRING(50); //Заказчик
Operator: WSTRING(50); //Оператор
//Статус испытаний
SEtap1: WSTRING(25); //Давление 1 этап
SEtap2: WSTRING(25); //Давление 2 этап
SEtap3: WSTRING(25); //Давление 3 этап
SEtap4: WSTRING(25); //Давление 4 этап
SEtap5: WSTRING(25); //Давление 5 этап
SEtap6: WSTRING(25); //Давление 6 этап
//Время испытаний
TimeEtap1: BYTE; //Время 1 этап
TimeEtap2: BYTE; //Время 2 этап
TimeEtap3: BYTE; //Время 3 этап
TimeEtap4: BYTE; //Время 4 этап
TimeEtap5: BYTE; //Время 5 этап
TimeEtap6: BYTE; //Время 6 этап
//Данные и результаты тестирования
PFact: ARRAY [0..599] OF WORD; //Давление фактическое
PUstavka: ARRAY [0..599] OF WORD; //Давление эталон
Resultat: WSTRING(25); //Результат тестирования (годен/негоден)
GlubinaArray: REAL; //Глубина массива графика
END_STRUCT
END_TYPE

этот массив структуры сохраняю в бинарный фаил, в этом бинарном файле нужно выполнить поиск по номеру испытуемого клапана

ZavodNomer: WSTRING(50); //Заводской номер

все записи которые есть те номера их

TestNomer: WORD; //Номер тестирования
вывести значения в массив подряд везде где номер клапана совпал со строкой поиска, по номеру в массиве уже буду вытаскиваеть нужное тестирование в протокол данных

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

в принцепи номер тестирования и номер клапана могу вытащить в отдельный массив для поиска в нем, но нужно сделать както эффективно так как записей может быть больше 100 000

Евгений Кислов
07.02.2022, 13:32
А теперь приведите конкретный пример, как должен работать поиск.
Пусть TestNomer = 123, ZavodNomer = "abcdef", и что дальше надо сделать-то?

Cs-Cs
07.02.2022, 13:51
так как записей может быть больше 100 000
Когда-то ОЧЕНЬ давно на Visual Basic я писал свой MP3-плеер, как аналог Foobar2000. Там у меня была база ID3-тэгов и статистики прослушивания песен.
База представляла собой массив структур в бинарном файле. Записей тоже было дофига - под 50 000. И поиск нужной был очень затруднён, конечно же.
Я решил это созданием индекса по хэшу пути и имени MP3-файла (а тут это будет номер клапана и какая-нибудь хэш-функция от него - наприсер CRC32 от строки, занимает 4 байта - я им и пользовался). Индексом был отдельный файл, в котором были блоки по 512 из массивов структур с указанием на данные.
Короче, на моём примере было так:
1. Описание одного объекта - структура STRUCT фиксированной длины (у меня 1024 байт вышло).
2. Ключ (ID) записи - функция CRC32 от полного пути файла (тут может быть CRC32 от серийника клапана). Это значение занимает 4 байта.
3. Описание индекса - это STRUCT длиной 8 байт из двух полей: ID (ключ) и смещение в файле данных на начало этого блока (куда надо перейти операцией Seek и сразу читать данные).
Грубо:

STRUCT IndexRecord
dwID : DWORD;
dwPos : DWORD;
END_STRUCT
4. Чтобы можно было быстрее читать индексы, они хранились в файле как вложенные STRUCT из индексных (где ID и Смещение):

STRUCT IndexData
dwCount : DWORD; (* Сколько штук записей заполнено *)
dwEmpty : DWORD; (* Чтобы и этот заголовок занимал 8 байт *)
arrIdx : ARRAY [1..63] OF IndexRecord;
END_STRUCT
Общая длина структуры IndexData была равна 512 байт, соответственно (512 - 8 (заголовок)) / 8 (длина IndexRecord) = 63 штуки.

Мой алгоритм при чтении быстренько читал индексы в память и потом рылся в них поиском по массиву IDшек. А зная IDшку он знал на какой байт файла данных встать, чтобы прочитать STRUCT оттуда.

Игорь Владимирович
07.02.2022, 13:51
А теперь приведите конкретный пример, как должен работать поиск.
Пусть TestNomer = 123, ZavodNomer = "abcdef", и что дальше надо сделать-то?

уже придумал как реализовать,
1 вопрос остаётся,
1 раз фаил открыл, выставил позицию, прочитал, фаил закрыл.
аможно 1 раз открыл, выставил позицию, прочитал, изменил позицию и прочитал? те незакрывая и открывая постоянно фаил читать разные значения?

Евгений Кислов
07.02.2022, 13:54
уже придумал как реализовать,
1 вопрос остаётся,
1 раз фаил открыл, выставил позицию, прочитал, фаил закрыл.
аможно 1 раз открыл, выставил позицию, прочитал, изменил позицию и прочитал? те незакрывая и открывая постоянно фаил читать разные значения?

Да, так можно сделать.

Игорь Владимирович
07.02.2022, 14:15
Да, так можно сделать.

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

Mr Helper
08.02.2022, 18:10
а есть готовый фб, для конвертации Dword в элементы времени?
Хочу по модбас получать 2 регистра Unix времени и перебрасывать его на rtc модуль для записи

Евгений Кислов
08.02.2022, 18:37
а есть готовый фб, для конвертации Dword в элементы времени?
Хочу по модбас получать 2 регистра Unix времени и перебрасывать его на rtc модуль для записи

Дмитрий, ну вы могли бы напрямую у коллег спросить.)
https://owen.ru/forum/showthread.php?t=28167&page=10&p=351122&viewfull=1#post351122

Pronto72
09.02.2022, 11:14
Элемент "Индикатор выполнения", можно ли его повернуть, чтобы он стал вертикальным, а не горизонтальным?

Евгений Кислов
09.02.2022, 11:17
Элемент "Индикатор выполнения", можно ли его повернуть, чтобы он стал вертикальным, а не горизонтальным?

К сожалению, данное пожелание до сих пор не реализовали.

59209

sssssaaaaabbbbb
09.02.2022, 12:37
Здравствуйе, смотрю видео про типизацию, структуры и фреймы https://www.youtube.com/watch?v=eHWSI_Ll8VU и все делаю по этому ролику. Вопрос такой, как можно сделать(с привяжкой) так, чтоб нажимая на кнопку [1], включалась лампа [1]. Не знаю куда вставить этот код, чтоб при нажатии кнопки лампа загоралась в каждом фрейме. 59214

Евгений Кислов
09.02.2022, 12:49
Добрый день.
Код надо разместить в POU - например, в программе PLC_PRG.

sssssaaaaabbbbb
09.02.2022, 12:54
а как то можно код привязать к структуре?

Евгений Кислов
09.02.2022, 12:56
а как то можно код привязать к структуре?

Поясните свой вопрос, пожалуйста.

Mr Helper
11.02.2022, 11:20
Дмитрий, ну вы могли бы напрямую у коллег спросить.)
https://owen.ru/forum/showthread.php?t=28167&page=10&p=351122&viewfull=1#post351122

Благодарю =)

sssssaaaaabbbbb
11.02.2022, 15:59
Спасибо ВАМ разобрался уже!

sssssaaaaabbbbb
11.02.2022, 16:05
Здравствуйте, не подскажете, почему в функции BLINK не работвет?59259

Mr Helper
11.02.2022, 16:08
Здравствуйте, не подскажете, почему в функции BLINK не работвет?59259

А зачем в функцию пихать ФБ?

Евгений Кислов
11.02.2022, 16:09
Здравствуйте, не подскажете, почему в функции BLINK не работвет?59259

Добрый день.
Потому что Blink - это ФБ, которому нужно сохранять значения своего таймера между вызовами.
А у функций по определению нет памяти.

dimessen
14.02.2022, 11:06
Здравствуйте!
В CoDeSys v3.5 в CFC не могу найти создание макросов; в описании тоже не нашёл, как их создавать. Подскажите, пожалуйста, кто знает, где скрывается эта опция

ASo
14.02.2022, 11:10
ФБ эта опция называется.

Евгений Кислов
14.02.2022, 11:17
Здравствуйте!
В CoDeSys v3.5 в CFC не могу найти создание макросов; в описании тоже не нашёл, как их создавать. Подскажите, пожалуйста, кто знает, где скрывается эта опция

Добрый день.
Если вы сравниваете с V2.3 - то по каким-то причинам функционал макросов в V3.5 из нее не перенесли.

59297

Как верно заметил ASo - придется создавать дополнительный ФБ, чтобы реализовать нечто подобное.

dimessen
14.02.2022, 15:49
ФБ эта опция называется.
Функц.Блок? - это понятно. Но интересовал именно макрос. Разбивать всё на дополнительные функциональные блоки в моём случае как раз очень неудобно - а вот объединить части схемы в блоки - это да!. - и на мониторе наглядно.

dimessen
14.02.2022, 15:51
Добрый день.
Если вы сравниваете с V2.3 - то по каким-то причинам функционал макросов в V3.5 из нее не перенесли.


Да, в v2.3 очень удобно. Очень странно, что в 3.5 этого нет

samthesuperhero
15.02.2022, 10:04
Добрый день!

Скажите, как настроить автоматический перезапуск приложения на ПЛК200 после перезагрузки в результате отключения / включения питания , ?

Спасибо!!

Евгений Кислов
15.02.2022, 10:10
Добрый день!

Скажите, как настроить автоматический перезапуск приложения на ПЛК200 после перезагрузки в результате отключения / включения питания , ?

Спасибо!!

Добрый день.
При подключении к контроллеру: Онлайн - Создать загрузочное приложение

samthesuperhero
15.02.2022, 10:29
Добрый день.
При подключении к контроллеру: Онлайн - Создать загрузочное приложение

а, и при подключении поставить галочку обновить загрузочное приложение, ?

Евгений Кислов
15.02.2022, 10:32
а, и при подключении поставить галочку обновить загрузочное приложение, ?

Можно и так.

Vadim_71
17.02.2022, 09:44
Здравствуйте коллеги! Подскажите советом. У меня есть энкодер инкрементальный, 100 имп,об., установлен на барабане, длинна окружности 0.5 метров, энкодер подключен к СИ-30, СИ-30 по 485 передает в СПК110 текущее значение счётчика в физических единицах. С дистанцией пройденного кабеля проблем нет. Возникла проблема как вывести на экран скорость вращения( а точнее скорость подачи кабеля). Может кто уже сталкивался с этим? Или может есть готовый макрос?

Евгений Кислов
28.02.2022, 11:12
подскажите какой библиотеки не хватает?5948759488

SysTime23

Но если вы используете наши современные контроллеры - все это вообще не надо.
Можно просто привязать переменные к каналам узла OwenRTC в дереве проекта:

59489

Евгений Кислов
28.02.2022, 11:37
Мне надо свою старую библиотеку перевести на новое ПО (к КДС и СПК 4 года не подходил, поэтому трудно). Проблема с ФБ "недельный таймер" и с функцией "FIND_NUM"

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

sssssaaaaabbbbb
28.02.2022, 12:26
Всем здравсвтвуйте! Хочу спросить вариант реализации удаленного программирования. Можно ли организовать процесс программирования через интернет. Предполагаемую схему прилагаю. Заходить в вебинтерфейс, управлять уже запрограммированным контроллером понятно как, но именно программировать удаленно контроллер не получается. Пробовал через KEENETIC SSTP , но увы не получилось. 59490

Валерий "mad Dog" Шмараев
28.02.2022, 12:54
Всем здравсвтвуйте! Хочу спросить вариант реализации удаленного программирования. Можно ли организовать процесс программирования через интернет. Предполагаемую схему прилагаю. Заходить в вебинтерфейс, управлять уже запрограммированным контроллером понятно как, но именно программировать удаленно контроллер не получается. Пробовал через KEENETIC SSTP , но увы не получилось. 59490
а что именно не вышло? он(контроллер) же вроде в VPN должен видится, через SSTP. Просто ношу в планах такой же путь(дома кинетики)

Валерий "mad Dog" Шмараев
28.02.2022, 12:56
Здравствуйте,
59492
на эту версию загрузил таргет-файлы - всё работает и запускается, это нормальный вариант или не регламентируемый?

Евгений Кислов
28.02.2022, 12:57
Здравствуйте,
59492
на эту версию загрузил таргет-файлы - всё работает и запускается, это нормальный вариант или не регламентируемый?

Добрый день.

В данный момент не регламентируемый.

sssssaaaaabbbbb
28.02.2022, 13:30
а что именно не вышло? он(контроллер) же вроде в VPN должен видится, через SSTP. Просто ношу в планах такой же путь(дома кинетики)

видится как веб сервер, пингуется, но как плк увидеть через кодесис(после нажатия сканировать сеть в кодесис35 не видится)?

Евгений Кислов
28.02.2022, 13:42
видится как веб сервер, пингуется, но как плк увидеть через кодесис(после нажатия сканировать сеть в кодесис35 не видится)?

https://owen.ru/forum/showthread.php?t=28167&p=330018&viewfull=1#post330018

sssssaaaaabbbbb
28.02.2022, 13:44
https://owen.ru/forum/showthread.php?t=28167&p=330018&viewfull=1#post330018

Если получится, то это будет мое спасение!!! СПАСИБО!

sssssaaaaabbbbb
28.02.2022, 14:44
https://owen.ru/forum/showthread.php?t=28167&p=330018&viewfull=1#post330018

УРААААААА!!!!!! ВС ЗАРАБОТАЛО!!!!

2s19
28.02.2022, 15:47
Добрый день помогите разобраться с типами данных, а именно выуживанию данных в формате REAL, есть массив:
TYPE UN1 :
UNION
arWORD: ARRAY [0..1] OF WORD;
wX: DWORD;
diX: DINT;
rX:REAL;
END_UNION
END_TYPE

Который связан с глобальной переменной:
VAR_GLOBAL
a1: UN1;
END_VAR

Вопрос как из него получить данные REAL с использованием CFC библиотек, и привязать эти данные к кнопке? Данные в формате двух переменных WORD на Slave устройстве получаю, а визуализировать не могу....

Валерий "mad Dog" Шмараев
28.02.2022, 16:04
Добрый день.

В данный момент не регламентируемый.

Спасибо. В перспективе же предполагается переход на х64?

Евгений Кислов
28.02.2022, 16:15
Спасибо. В перспективе же предполагается переход на х64?

Насколько я понимаю - вы говорите о разрядности среды разработки.

В данный момент я не вижу смысла использовать 64-битную версию, потому что не видел у наших клиентов проектов, при открытии которых среде бы не хватало 3 Гб оперативной памяти (это максимум для 32-битной версии CODESYS).
Технически такие сложные проекты можно представить - это системы уровня небольшого завода с десятками ПЛК в проекте, сотнями опрашиваемых устройств, тысячами функциональных блоков, сотнями экранов визуализации и т.д. Но в данный момент мы видим, что наши клиенты реализуют гораздо менее масштабные проекты (например, более одного ПЛК в проекте - это редкость).

У 64-битной версии есть и ряд неудобств:
- в ее дистрибутив не входит CODESYS OPC DA Server;
- она не поддерживает конвертацию проектов из версии V2.3;
- для наших ПЛК в ней не будет доступен режим симуляции (но это мы поправим в следующем релизе).

Переход на SP17 Patch 3 в наших планах есть - на днях приступили к тестированию.
Это не быстрый процесс (много модификаций ПЛК, много функционала), но для нас это крайне важная задача, которой мы уделяем повышенное внимание.

AllXXX
01.03.2022, 12:58
Здравствуйте.
Просмотрел пример Таблица тревог (расширенный пример) (https://ftp.owen.ru/CoDeSys3/21_Examples/01_3.5.11.5/02_Visu/01_Elements/11_2_14_Example_AlarmTableExtended_3516v1.projecta rchive)
Интересует такой вопрос в примере есть возможность из программы влиять на Таблицу тревог, а можно ли при какой-либо тревоге влиять на программу? (изменение переменной или вызов подпрограммы, ФБ)
Поясню: имеется датчик температуры подшипника и при температуре 50 гр. Выводиться предупреждение, а при 80гр. авария и хотелось бы в программе изменить переменную отвечающую за автоматический останов установки. Или в программе нужно дублировать подобное отслеживание?

Cs-Cs
01.03.2022, 13:13
при 80гр. авария и хотелось бы в программе изменить переменную отвечающую за автоматический останов установки.
Это моё любимое!! Можно глянуть тему, где я отвечал: https://owen.ru/forum/showthread.php?t=34145&p=345457&viewfull=1#post345457 - там можно достать полную информацию о тревоге и сделать по ней всё, что надо!

kondor3000
02.03.2022, 08:19
Добрый день помогите разобраться с типами данных, а именно выуживанию данных в формате REAL, есть массив:
TYPE UN1 :
UNION
arWORD: ARRAY [0..1] OF WORD;
wX: DWORD;
diX: DINT;
rX:REAL;
END_UNION
END_TYPE

Который связан с глобальной переменной:
VAR_GLOBAL
a1: UN1;
END_VAR

Вопрос как из него получить данные REAL с использованием CFC библиотек, и привязать эти данные к кнопке? Данные в формате двух переменных WORD на Slave устройстве получаю, а визуализировать не могу....

Вы можете толком объяснить, зачем вы используете UNION, а шапку сделали как у структуры. Может поэтому и не работает у вас нормально.

СергейНовосиб
04.03.2022, 10:31
Все привет!
У меня задачка: надо сделать 2 - 3 раздельных областей выходных регистров на одном СПК.
Первая область с 0 до 199 регистра, вторая с 500 до 899 регистра. При этом количество регистров идущих подряд в обоих областях может разное в зависимости от проекта.
Хочу сделать список регистров данных для передачи во внешний мир (SCADA? облако и т.д.) на все случаи жизни, а использовать в зависимости от набора данных и их количества.
Понятно, что надо использовать овеновскую библиотеку OwenCommunication, но из документации не понял как мне сделать.

Евгений Кислов
04.03.2022, 10:33
Все привет!
У меня задачка: надо сделать 2 - 3 раздельных областей выходных регистров на одном СПК.
Первая область с 0 до 199 регистра, вторая с 500 до 899 регистра. При этом количество регистров идущих подряд в обоих областях может разное в зависимости от проекта.
Хочу сделать список регистров данных для передачи во внешний мир (SCADA? облако и т.д.) на все случаи жизни, а использовать в зависимости от набора данных и их количества.
Понятно, что надо использовать овеновскую библиотеку OwenCommunication, но из документации не понял как мне сделать.

Добрый день.
А в чем должно проявляться разделение областей?

ASo
04.03.2022, 10:46
Например, для удобства описания в документации.
Скажем - 1*** - система 1, 2***- система 2...
Это стандартный подход. Рассмотрите ОВЕН ПЧВ.
Но поскольку нельзя - то нельзя.

Евгений Кислов
04.03.2022, 10:55
Например, для удобства описания в документации.
Скажем - 1*** - система 1, 2***- система 2...
Это стандартный подход. Рассмотрите ОВЕН ПЧВ.
Но поскольку нельзя - то нельзя.

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

СергейНовосиб
04.03.2022, 11:10
Первая группа регистров: 0 - ... или 34 или 157
Вторая группа регистров: 500 - ... или 568 или 752
например

Евгений Кислов
04.03.2022, 11:13
Первая группа регистров: 0 - ... или 34 или 157
Вторая группа регистров: 500 - ... или 568 или 752
например

Вы можете, например, объявить в качестве буфера слэйва ARRAY [0..752] OF WORD.

Или для вас принципиально, чтобы пользователь не мог ничего записать или прочитать из регистров 158...499?

СергейНовосиб
04.03.2022, 11:50
У меня вопрос в том, что бы лишних ресурсов СПК, которые в данном проекте не занимали. Или я могу сразу объявить хоть 10000 регистров, а использовать 150?

Евгений Кислов
04.03.2022, 11:52
У меня вопрос в том, что бы лишних ресурсов СПК, которые в данном проекте не занимали. Или я могу сразу объявить хоть 10000 регистров, а использовать 150?

Да, можете.

СергейНовосиб
04.03.2022, 11:57
Понял. Спасибо. Проще будет сделать.

Евгений Кислов
07.03.2022, 09:34
Подскажите как исправить? 59571

Выложите проект - подскажем.

Валерий "mad Dog" Шмараев
11.03.2022, 12:59
Здравствуйте..

вопрос по шаблонам устройств:

59636

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

Cs-Cs
11.03.2022, 13:17
Валерий "mad Dog" Шмараев Эээ.. а может тогда забить на шаблон и просто два регистра считывать напрямую через Modbus Slave?

Валерий "mad Dog" Шмараев
11.03.2022, 13:52
Тогда не будет красивой иконки в дереве устройств)

Cs-Cs
11.03.2022, 14:12
Тогда не будет красивой иконки в дереве устройств)
Зато работать будет ещё быстрее! ;)

Евгений Кислов
11.03.2022, 14:19
Здравствуйте..

вопрос по шаблонам устройств:

59636

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

У пользователя нет возможности редактировать шаблоны.

Валерий "mad Dog" Шмараев
11.03.2022, 15:32
А там есть пункт в контекстном меню - "удалить", это не то?

kondor3000
11.03.2022, 15:34
А там есть пункт в контекстном меню - "удалить", это не то?

Удалите шаблон и добавьте нужные вам регистры.

Евгений Кислов
11.03.2022, 16:55
А там есть пункт в контекстном меню - "удалить", это не то?

Это позволит вам удалить весь шаблон из проекта.

Frants
13.03.2022, 19:01
Доброе время суток всем!
К вопросу "8.7 Как отладить проект без контроллера?" из документа "CODESYS V3.5 FAQ".
Рекомендуется обновить устройство на "CODESYS Control Win V3". Но действия после отладки никак не разъясняется.
После обновления реального текущего плк на CODESYS Control Win V3 - конфигурация будет утрачена, как откатиться назад?

Frants
13.03.2022, 19:02
Доброе время суток всем!
К вопросу "8.7 Как отладить проект без контроллера?" из документа "CODESYS V3.5 FAQ".
Рекомендуется обновить устройство на "CODESYS Control Win V3". Но действия после отладки никак не разъясняются.
После обновления реального текущего плк на CODESYS Control Win V3 - конфигурация будет утрачена, как откатиться назад?

kondor3000
13.03.2022, 19:08
Вообще то отладить программу можно в эмуляции. Виртуальный контроллер в некоторых случаях, позволяет отладить код через некоторые биб-ки, которые без контроллера не работают.
Прежде чем экспериментировать лучше сохранить ваш проект под другим названием. Отлаживать код можно и кусками.
Если вы лучше знакомы с Codesys 2.3, то можно написать и отладить код в нём, а потом конвертировать программу в Codesys 3.5.

Frants
13.03.2022, 19:12
Спасибо! В общем, от себя делаю вывод. Прежде чем следовать рекомендациям упомянутого пункта, нужно делать бэкап проекта.
Проект, подготовленный таким образом для отладки списываем на потери.
Или же, отладку выполнять на копии проекта.
-- -- -- --
Я в этой среде пока только неделю. Со средой разработки только знакомлюсь. Спасибо! :)

vileant92
13.03.2022, 22:51
Добрый день.
До этого решал задачи с помощью плк 110.
Вот решил опробовать плк 210.
Возник ряд вопросов:
1. Все выходы горят красным. Это нормально? На них нечего не подключено.
2. Пытаюсь подключить к быстрым входам абсолютный энкодер npn. Вроде все по инструкции. Но когда на клему SS кидаю +24 контроллер уходит в перезагрузку. Может я где-то напутал? 59670
59671596715967159672

Евгений Кислов
14.03.2022, 06:18
Добрый день.
До этого решал задачи с помощью плк 110.
Вот решил опробовать плк 210.
Возник ряд вопросов:
1. Все выходы горят красным. Это нормально? На них нечего не подключено.
2. Пытаюсь подключить к быстрым входам абсолютный энкодер npn. Вроде все по инструкции. Но когда на клему SS кидаю +24 контроллер уходит в перезагрузку. Может я где-то напутал? 59670
59671596715967159672

Добрый день.
1. Если вы используете модификацию ПЛК210-03 - то это нормально.

59673

2. Нарисуйте вашу схему подключения.
+24 В приходит от отдельного блока питания или от того же, от которого запитан ПЛК?

Frants
15.03.2022, 11:41
Доброе время суток всем!
Есть для языка LD функции (блоки) для контроля диапазона переменных, типа LIMIT, IN_RANGE, OUT_RANGE ? Хотелось бы ещё узнать в какой библиотеке их найти.

Евгений Кислов
15.03.2022, 11:42
Доброе время суток всем!
Есть для языка LD функции (блоки) для контроля диапазона переменных, типа LIMIT, IN_RANGE, OUT_RANGE ? Хотелось бы ещё узнать в какой библиотеке их найти.

Добрый день.
LIMIT - это оператор, он поддерживается во всех языках, доступных в CODESYS.
Аналог IN_RANGE / OUT_RANGE есть в библиотеке Util.

59692 59693

Frants
15.03.2022, 11:47
LIMITALARM мониторит и только сигнализирует о выходе за границы. Требуется же контролировать переменную, держать ее значение в заданном диапазоне.

Евгений Кислов
15.03.2022, 11:50
LIMITALARM мониторит и только сигнализирует о выходе за границы. Требуется же контролировать переменную, держать ее значение в заданном диапазоне.

Вы ошибаетесь. См. описание выхода IL.

Frants
15.03.2022, 11:55
Прошу прощения, но не совсем понятно, как блок с входными параметрами типа VAR_INPUT может влиять на входную переменную. Чтобы контролировать (удерживать) значение переменной в заданном диапазоне требуется подать ее на вход типа VAR_IN_OUT. Или здесь это не так?

Евгений Кислов
15.03.2022, 11:59
Прошу прощения, но не совсем понятно, как блок с входными параметрами типа VAR_INPUT может влиять на входную переменную. Чтобы контролировать (удерживать) значение переменной в заданном диапазоне требуется подать ее на вход типа VAR_IN_OUT. Или здесь это не так?

Извините, а как, на ваш взгляд, IN_RANGE и OUT_RANGE работают?

59694

Cудя по вашей фразе - вам все же оператор LIMIT нужен.
https://help.codesys.com/webapp/_cds_operator_limit;product=codesys;version=3.5.17 .0

Frants
15.03.2022, 12:08
Вообще интересует LIMIT.
У блока LIMITALARM все выходы BOOL, куда прикрутить, допустим INT ?

Евгений Кислов
15.03.2022, 12:09
Вообще интересует LIMIT.
У блока LIMITALARM все выходы BOOL, куда прикрутить, допустим INT ?

https://help.codesys.com/webapp/_cds_operator_limit;product=codesys;version=3.5.17 .0
https://youtu.be/HBykDVdMskA (для LD принцип использования аналогичен)

Frants
15.03.2022, 12:10
А про IN_RANGE и OUT_RANGE - прошу простить, сам забыл как работают.

Frants
15.03.2022, 12:12
Да, получилось. Непонятка с редактором вышла, не умею пока как следует правильно пользоваться. Спасибо за помощь!

Frants
15.03.2022, 13:47
У блока с параметром VAR_IN_OUT в редакторе LD над коннектором есть ещё одна линия, для чего этот "хвостик"?
59697

Евгений Кислов
15.03.2022, 14:00
У блока с параметром VAR_IN_OUT в редакторе LD над коннектором есть ещё одна линия, для чего этот "хвостик"?
59697

Это визуальный признак того, что расположенная под хвостиком линия ведет к переменной класса VAR_IN_OUT.

Frants
15.03.2022, 14:02
Ясно. Спасибо!

Спорягин Кирилл
16.03.2022, 08:36
Утро доброе, уважаемые форумчане!

Подскажите как залить программу в СПК110 М01 с использованием USB-флешки.
Поиск, а также беглое чтение документации на СПК110 результатов не дали.
В РЭ на СПК110 сказано только, что это возможно, а как это делать не описано.

Евгений Кислов
16.03.2022, 08:58
Утро доброе, уважаемые форумчане!

Подскажите как залить программу в СПК110 М01 с использованием USB-флешки.
Поиск, а также беглое чтение документации на СПК110 результатов не дали.
В РЭ на СПК110 сказано только, что это возможно, а как это делать не описано.

Добрый день.
https://youtu.be/UDi8OTZvvlI

Спорягин Кирилл
16.03.2022, 09:03
Евгений, благодарю!
Как всегда оперативно и точно!

Солнечный заяц
16.03.2022, 16:30
Здравствуйте, в шаблоне для модуля МВ110-8АС, есть переменная "статуса измерения" входа типа enumeration of UINT. Переменная отображается текстом, но если ее добавить в визуализацию, то она отображается как число. Как правильно вывести это значение в визуализацию в текстовом виде? Нужно конвертировать этот тип данных в текст и выводить как текстовую строку, или как? Спасибо.

Евгений Кислов
16.03.2022, 16:38
Здравствуйте, в шаблоне для модуля МВ110-8АС, есть переменная "статуса измерения" входа типа enumeration of UINT. Переменная отображается текстом, но если ее добавить в визуализацию, то она отображается как число. Как правильно вывести это значение в визуализацию в текстовом виде? Нужно конвертировать этот тип данных в текст и выводить как текстовую строку, или как? Спасибо.

Добрый день.
В библиотеке Mx110 Assistant (она автоматически добавилась в проекте вместе с шаблоном) есть перечисление с кодами ошибок аналоговых входов и функция для конвертация этого перечисления в WSTRING.

59719 59720

Солнечный заяц
16.03.2022, 16:44
Добрый день.
В библиотеке Mx110 Assistant (она автоматически добавилась в проекте вместе с шаблоном) есть перечисление с кодами ошибок аналоговых входов и функция для конвертация этого перечисления в WSTRING.

59719 59720
Понял, спасибо!

Frants
16.03.2022, 18:17
Доброе время суток всем!
Такой вопрос. Была начата работа над проектом для ПЛК210.
Самого плк в наличии не было, для разработки использовалось ПО CODESYS V3.5 SP16 Patch 3.
Привезли плк, прошивка у него 1.3.0309.1257.
Рекомендация ПО CODESYS V3.5 SP14 Patch 3. Получается, что надо сносить CODESYS V3.5 SP16 Patch 3
и устанавливать требующуюся версию? Или есть варианты?

Евгений Кислов
16.03.2022, 18:19
Доброе время суток всем!
Такой вопрос. Была начата работа над проектом для ПЛК210.
Самого плк в наличии не было, для разработки использовалось ПО CODESYS V3.5 SP16 Patch 3.
Привезли плк, прошивка у него 1.3.0309.1257.
Рекомендация ПО CODESYS V3.5 SP14 Patch 3. Получается, что надо сносить CODESYS V3.5 SP16 Patch 3
и устанавливать требующуюся версию? Или есть варианты?

Можно не сносить текущую версию, а поставить параллельно ей CODESYS V3.5 SP14 Patch 3.
Или же обновить прошивку ПЛК и продолжить работу в CODESYS V3.5 SP16 Patch 3.

Frants
16.03.2022, 18:23
Попытка установить 1.3.0419.1204 или 1.3.1005.2220 безуспешна. ПЛК не признал эти прошивки.

Евгений Кислов
16.03.2022, 18:28
Попытка установить 1.3.0419.1204 или 1.3.1005.2220 безуспешна. ПЛК не признал эти прошивки.

Как именно вы пытались их установить?

Frants
16.03.2022, 18:29
1.3.1005.2220 согласно рекомендации, с флешки.
1.3.0419.1204 через web

Frants
16.03.2022, 18:31
Первый опыт, может что не так.
59723

Евгений Кислов
16.03.2022, 18:31
1.3.1005.2220 согласно рекомендации, с флешки.
1.3.0419.1204 через web

Подробно опишите, пожалуйста, как вы это делали.

Frants
16.03.2022, 18:36
Формат флешки (fat32), размер 32 Гб.
Записал bin, reset_plc
Питание плк откл
Флешку в плк
Кнопку с гайкиным ключом ВКЛ
Питание плк вкл
Ждём, ждём .... ничего

Frants
16.03.2022, 18:37
ПЛК периодически (~2 c) щелкает своими реле (с упаковки). Это норм?

Прошивку 1.3.0419.1204 через web-conf, согласно инструкции.

Евгений Кислов
16.03.2022, 18:41
ПЛК периодически (~2 c) щелкает своими реле (с упаковки). Это норм?

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

Frants
16.03.2022, 18:42
Ясно. Спасибо! Завтра уже напишу.

2s19
17.03.2022, 10:04
Добрый день, помогите пожалуйста с таким вопросом: Есть кнопка без фиксации (в ней два контакта НО и НЗ), необходимо при одном нажатии на кнопку замкнуть катушку, при следующем разомкнуть катушку! Желательно на языке CFC/

2s19
17.03.2022, 10:07
Да забыл написать кнопка физическая подключена соответственно на два дискретных входа ПЛК.

vileant92
17.03.2022, 16:08
Спасибо большое. Подключил отдельное питание и все заработало. 👍

Frants
17.03.2022, 18:59
Доброе время суток всем! Пришлось сохранить проект, созданный в CODESYS V3.5 SP16 Patch 3 как проект для CODESYS V3.5 SP14 Patch 3.
Проект открывается в CODESYS V3.5 SP14 Patch 3, но выглядит так:
59739
Это можно исправить?

Евгений Кислов
17.03.2022, 19:05
Доброе время суток всем! Пришлось сохранить проект, созданный в CODESYS V3.5 SP16 Patch 3 как проект для CODESYS V3.5 SP14 Patch 3.
Проект открывается в CODESYS V3.5 SP14 Patch 3, но выглядит так:
59739
Это можно исправить?

Добрый день.
Судя по скриншоту - вам надо версию компонентов Modbus уменьшить (они не должны превышать 3.5.14.30).

Frants
17.03.2022, 19:06
Узнать бы, как это сделать... Может удалить всё что 3.5.16.0 ?

Евгений Кислов
17.03.2022, 19:14
Узнать бы, как это сделать... Может удалить всё что 3.5.16.0 ?

Напишите завтра утром мне на почту, предоставьте удаленный доступ - разберемся.

Frants
17.03.2022, 19:16
Спасибо! Поддерживаю Ваше предложение.

Frants
21.03.2022, 09:09
Доброе время суток всем! После включения ПЛК210, он пока грузится, зачем-то кратковременно включает DO3. Что бы это значило? Программа "пустая".
https://disk.yandex.by/i/nDBQ5SRdIEDBhw

ВиталийАТ
21.03.2022, 10:29
Что слышно по поводу перехода на SP17 ? Что сервис пак даёт сам по себе и когда подтянутся файлы от ПЛК210, библиотеки? Из видео про возможности SP16 было видно что кое-где косяки, и такие вещи как OPC серверы требуют настройки в среде, а не только в коде.

Евгений Кислов
21.03.2022, 10:35
Что слышно по поводу перехода на SP17 ? Что сервис пак даёт сам по себе и когда подтянутся файлы от ПЛК210, библиотеки? Из видео про возможности SP16 было видно что кое-где косяки, и такие вещи как OPC серверы требуют настройки в среде, а не только в коде.

Тестируем прошивки, обновляем документацию. Если не возникнет каких-то непредвиденных задержек - то к концу весны уйдет в релиз.
Про OPC-серверы лучше уточните ваш вопрос - с ними никаких проблем в SP16 не было, насколько я помню.


Что сервис пак даёт сам по себе

https://youtu.be/RLnvs60t-jE

Вместе с прошивкой будет выпущен документ "Новые возможности CODESYS V3.5 SP17".

ВиталийАТ
21.03.2022, 10:37
Подскажите где найти иформацию по созданию своих библиотек в CodeSys и свои визуальных форм (то как выгледят и как анимированы кнопки, лампы и т.д.) ?

Евгений Кислов
21.03.2022, 10:39
Подскажите где найти иформацию по созданию своих библиотек в CodeSys и свои визуальных форм (то как выгледят и как анимированы кнопки, лампы и т.д.) ?

Про создание библиотек можно почитать в справке:
https://help.codesys.com/webapp/_cds_guidelines_for_creating_libraries;product=cod esys;version=3.5.17.0

Про "визуальные формы":
https://oscat.ru/?p=352

ВиталийАТ
21.03.2022, 10:46
Уточняю по OPC - https://youtu.be/pycujpNRjaM?t=251 - тут говориться что ожидается от разработчика CodeSys для окучивания библиотеки OPC

Евгений Кислов
21.03.2022, 10:47
Уточняю по OPC - https://youtu.be/pycujpNRjaM?t=251 - тут говориться что ожидается от разработчика CodeSys для окучивания библиотеки OPC

Наших ПЛК это не касается в принципе, так как мы не приобретали лицензию на OPC UA-клиента.
Наши ПЛК работают только в режиме OPC UA Server.

ВиталийАТ
21.03.2022, 10:50
Про создание библиотек можно почитать в справке:
https://help.codesys.com/webapp/_cds_guidelines_for_creating_libraries;product=cod esys;version=3.5.17.0

Есть ли на русском (я хоть английский и понимаю, но впитывать такие объёмы серой подробной информации на нём не могу)? Видео может? Сам принцип хотя бы понять. Я, с одной стороны, могу накидать их функциями на ST, но в среде BR Automation у меня они оформлены библиотеками. Хочу и тут их сделать так же.

Евгений Кислов
21.03.2022, 10:54
Есть ли на русском (я хоть английский и понимаю, но впитывать такие объёмы серой подробной информации на нём не могу)? Видео может? Сам принцип хотя бы понять. Я с одной стороны могу накидать их функцями на ST, но в среде BR Automation у меня они оформлены библиотеками. Хочу и тут их сделать так же.

На русском не видел.
Но принцип - точно такой же, как при создании обычного проекта.
Файл - Новый проект - Библиотеки.

Далее, как и в обычном проекте, добавляете свои типы данных, функции, ФБ, глобальные переменные/константы и т.д. (обычно всё ограничивается перечисленными пунктами)

Мастеренко Иван
21.03.2022, 10:57
Доброе время суток всем! После включения ПЛК210, он пока грузится, зачем-то кратковременно включает DO3. Что бы это значило? Программа "пустая".
https://disk.yandex.by/i/nDBQ5SRdIEDBhw

Здравствуйте!
Выход наверное, не включается, а засвечивается индикация. Это штатные особенности во время запуска контроллера.

Frants
21.03.2022, 11:56
На засвет это не похоже. Если прикрутить к выходу нагрузку (лампочку), она не включается. Но индикация становится красного цвета. Если засвет, то откуда? Соседние индикаторы ведут себя по-разному.

Мастеренко Иван
21.03.2022, 15:40
На засвет это не похоже. Если прикрутить к выходу нагрузку (лампочку), она не включается. Но индикация становится красного цвета. Если засвет, то откуда? Соседние индикаторы ведут себя по-разному.
Я правильно понимаю, что вас смущает только свечение индикации входов/выходов в первые 5-10 секунд после подачи питания контроллера?
После полной загрузки контроллера входы/выходы работают корректно?

Frants
21.03.2022, 16:38
В общем, смущает. Поскольку до этого ни разу с таким не приходилось сталкиваться.
После загрузки плк выход из программы включается, подключенная к выходу лампочка (в качестве нагрузки) загорается. Т.е. выход вроде бы работает.
При загрузке плк эта же лампочка не загорается. Т.е., скорее всего, включается только светодиод дискретного выхода.
Но, согласитесь, это ведь странно... Ладно бы светодиоды у всей группы мигнули, можно понять, да и то, зачем?
Но из всей группы, только один, ... Это не только смущает, это вызывает настороженность, прошу правильно понять.

Frants
23.03.2022, 21:35
Доброе время суток всем! Подскажите, где можно подробнее ознакомится с информацией, как в ПЛК210 использовать MODBUS RTU для связи с устройствами сторонних производителей (не ОВЕН). В обучающих видео рассматривается продукция ОВЕН, а мне требуется, например, читать датчик давления фирмы ИЛЬМА. И ещё несколько других устройств, производитель которых не ОВЕН, но поддерживающих MODBUS RTU.

Cs-Cs
23.03.2022, 21:48
Frants А там принципы же похожие: добавляем в дерево проекта нужный интерфейс RS-485 или Ethernet. Под него добавляем Modbus Master, а под него - Modbus Slave, в которых прописываем то, что и как читать.
С какого момента что не понятно и где надо подробнее написать?

Frants
23.03.2022, 21:50
Ясно, спасибо! Благодарю Вас за помощь!

Cs-Cs
23.03.2022, 22:17
Ясно, спасибо! Благодарю Вас за помощь!
Ежели это не ирония - то без проблем, пожалуйста. Там главное понять принцип: как что заносить в дерево и как настраивать.
Вот, я ещё скриншотов сделал чуток! Красным пометил моменты, на которые надо обратить внимание
59843 59844 59845 59846 59847 59848 59849

Ааа! Ещё вот что добавлю!
Хорошо бы правильно называть сами компоненты дерева Modbus (переименовывать их).
Потому что дальше к ним можно обращаться программно, например, типа так: MB_External.xAllSlavesOK (пишу по памяти, могу ошибаться - флаг что все устройства работают нормально) или к устройству BHTP_Tualet.xError - флаг ошибки устройства.
Я у себя делаю аж диагностическую страницу, где все эти состояния устройств и датчиков вывожу, чтобы легко было неисправности диагностировать, во:
59850 59851

AlexBut
24.03.2022, 09:02
В CodeSys 2.3 есть механизм задания количества подключений к Modbus Slave(подэлемент TCP) и сколько таких подэлементов будет столько и возможно подключений(с разными портами. Хотя это может только PLC110 Owen, а у других контроллеров к одному порту возможно несколько подключений?-тут я плаваю))
А как в CodeSys 3.5 с этим как обстоит-можно ли настраивать количество подключений к Modbus Slave TCP?

Евгений Кислов
24.03.2022, 09:09
В CodeSys 2.3 есть механизм задания количества подключений к Modbus Slave(подэлемент TCP) и сколько таких подэлементов будет столько и возможно подключений(с разными портами. Хотя это может только PLC110 Owen, а у других контроллеров к одному порту возможно несколько подключений?-тут я плаваю))
А как в CodeSys 3.5 с этим как обстоит-можно ли настраивать количество подключений к Modbus Slave TCP?

Добрый день.
Для стандартного компонента Modbus TCP Slave Device поддерживается до 32 (начиная с V3.5 SP16 - до 64) клиентских подключений.
Отредактировать это значение нельзя.

Frants
24.03.2022, 10:08
Ежели это не ирония - то без проблем, пожалуйста. Там главное понять принцип: как что заносить в дерево и как настраивать.
Вот, я ещё скриншотов сделал чуток! Красным пометил моменты, на которые надо обратить внимание
59843 59844 59845 59846 59847 59848 59849

Ааа! Ещё вот что добавлю!
Хорошо бы правильно называть сами компоненты дерева Modbus (переименовывать их).
Потому что дальше к ним можно обращаться программно, например, типа так: MB_External.xAllSlavesOK (пишу по памяти, могу ошибаться - флаг что все устройства работают нормально) или к устройству BHTP_Tualet.xError - флаг ошибки устройства.
Я у себя делаю аж диагностическую страницу, где все эти состояния устройств и датчиков вывожу, чтобы легко было неисправности диагностировать, во:
59850 59851

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

Cs-Cs
24.03.2022, 10:20
Frants Ну, раз "хватай вокзал - мешки отходят" - то тогда, когда будешь спрашивать, хоть подробнее опиши на что отвечать. Ну, скажи о том, что ты уже знаешь, а что не понятно. Например "Я понял как добавлять в дерево интерфейсы и устройства для протокола ОВЕН, а как быть с Modbus" - и сразу будет ясно, как ответить и каков уровень знаний.

Евгений Кислов
24.03.2022, 14:28
Frants "Я понял как добавлять в дерево интерфейсы и устройства для протокола ОВЕН, а как быть с Modbus".

Если кто-то понял, как в CODESYS V3.5 с помощью компонентов в дереве проекта опросить что-то по протоколу ОВЕН - то с Modbus у него вообще никаких вопросов не возникнет.)

AlexBut
25.03.2022, 07:49
а есть в ОВЕН очные курсы по СКАДА и CodeSys?

Евгений Кислов
25.03.2022, 07:53
а есть в ОВЕН очные курсы по СКАДА и CodeSys?

По CODESYS есть:
https://owen.ru/edu

По SCADA - есть курс "Программирование в среде MasterSCADA 4D", но там все же упор на ПЛК, а не на функционал SCADA.

Frants
25.03.2022, 10:04
Доброе время суток всем!
Является ли корректным привязка переменной типа STRUCT, состоящей из 32 бит к каналу модбас слэйва? Канал слэйва представляет собой два слова, биты которых соответствуют кнопкам этого устройства.
На первый взгляд, удобно в программе объявить переменную типа структуры с побитным представлением каждой кнопки и в коде обращаться к кнопке уже по имени типа [ПЕРЕМЕННАЯ_СТРУКТУРА].[КНОПКА_ТАКАЯ-ТО].
Пробовал так сделать, но в переменной-структуре взводится только первый бит (первая кнопка), для остальных выводится сообщение типа <Value of the expression cannot be retrieved>.

Евгений Кислов
25.03.2022, 10:15
Доброе время суток всем!
Является ли корректным привязка переменной типа STRUCT, состоящей из 32 бит к каналу модбас слэйва? Канал слэйва представляет собой два слова, биты которых соответствуют кнопкам этого устройства.
На первый взгляд, удобно в программе объявить переменную типа структуры с побитным представлением каждой кнопки и в коде обращаться к кнопке уже по имени типа [ПЕРЕМЕННАЯ_СТРУКТУРА].[КНОПКА_ТАКАЯ-ТО].
Пробовал так сделать, но в переменной-структуре взводится только первый бит (первая кнопка), для остальных выводится сообщение типа <Value of the expression cannot be retrieved>.

Корректно привязывать к каналу тот тип, название которого отображается рядом с каналом (для Modbus - WORD или ARRAY [..] OF WORD).
В коде можно конвертировать привязанную переменную к нужному типу.

kondor3000
25.03.2022, 10:17
Не понятно, зачем вам вообще структура в данном случае, вы и так можете обращаться "переменнная слейва". "бит такой то" Переменная должна быть типа WORD или DWORD.

Frants
25.03.2022, 10:17
Это так. Но работать через элементы массива с именованными сущностями не очень удобно. Если нельзя так, то может быть, можно отобразить массив на структуру?

Frants
25.03.2022, 10:19
Согласен. Здесь речь об удобстве. Когда имеется 32 кнопки, каждая имеет свое название. В программе удобнее пользоваться переменной PULT.VENTILYATOR_VKL чем PULT[10].
Ладно, придётся побитно привязывать в маппинге канала.

capzap
25.03.2022, 10:23
Доброе время суток всем!
Является ли корректным привязка переменной типа STRUCT, состоящей из 32 бит к каналу модбас слэйва? Канал слэйва представляет собой два слова, биты которых соответствуют кнопкам этого устройства.
На первый взгляд, удобно в программе объявить переменную типа структуры с побитным представлением каждой кнопки и в коде обращаться к кнопке уже по имени типа [ПЕРЕМЕННАЯ_СТРУКТУРА].[КНОПКА_ТАКАЯ-ТО].
Пробовал так сделать, но в переменной-структуре взводится только первый бит (первая кнопка), для остальных выводится сообщение типа <Value of the expression cannot be retrieved>.

если руководствовались этим Обращение к битам в структурах (https://help.codesys.com/webapp/_cds_datatype_structure;product=codesys;version=3. 5.13.0) то почему проигнорировали это Битовый доступ к переменной с использованием глобальной константы (https://help.codesys.com/webapp/_cds_operands_variables_accessing_bits;product=cod esys;version=3.5.13.0) , можно было бы просто иметь 32-разрядное(двойное) слово а не создавать под это структуру

Евгений Кислов
25.03.2022, 10:25
Если нельзя так, то может быть, можно отобразить массив на структуру?

Да, можно.

Frants
25.03.2022, 10:36
если руководствовались этим Обращение к битам в структурах (https://help.codesys.com/webapp/_cds_datatype_structure;product=codesys;version=3. 5.13.0) то почему проигнорировали это Битовый доступ к переменной с использованием глобальной константы (https://help.codesys.com/webapp/_cds_operands_variables_accessing_bits;product=cod esys;version=3.5.13.0) , можно было бы просто иметь 32-разрядное(двойное) слово а не создавать под это структуру

Если через глобальные константы, то верно ли я понял: чтобы обращаться к 32 битам в слове нам понадобится 32 константы?

capzap
25.03.2022, 10:59
Если через глобальные константы, то верно ли я понял: чтобы обращаться к 32 битам в слове нам понадобится 32 константы?

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

Frants
25.03.2022, 11:12
Если так, то для работы с 32 битами нам понадобится 32 константы типа INT. Итого, затраты памяти составят 34 слова... Задача, конечно, решается, но это как-то избыточно, что ли...
Пожалуй, я ещё подумаю, поищу варианты. Или же, просто сделаю привязку переменных BOOL в канале.
Спасибо всем за участие!

Frants
25.03.2022, 11:15
Да, можно.

Если Вас не затруднит, подскажите пожалуйста, ссылку на информацию.

Евгений Кислов
25.03.2022, 11:19
Если Вас не затруднит, подскажите пожалуйста, ссылку на информацию.

https://oscat.ru/?p=473
Вся статья посвящена отображению одних данных на другие.

Frants
25.03.2022, 11:21
Спасибо! Продолжаю изучение матчасти.

capzap
25.03.2022, 11:33
Если так, то для работы с 32 битами нам понадобится 32 константы типа INT. Итого, затраты памяти составят 34 слова... Задача, конечно, решается, но это как-то избыточно, что ли...
Пожалуй, я ещё подумаю, поищу варианты. Или же, просто сделаю привязку переменных BOOL в канале.
Спасибо всем за участие!

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

Frants
25.03.2022, 11:50
Да, тут что ни день, то новость или сюрприз. До ограничения памяти ещё, наверное, далеко. Ещё хотелось бы узнать, где в Codesys посмотреть сводку ресурсов в плане есть/занято? Project information что-то не очень информативен...

Евгений Кислов
25.03.2022, 11:54
Да, тут что ни день, то новость или сюрприз. До ограничения памяти ещё, наверное, далеко. Ещё хотелось бы узнать, где в Codesys посмотреть сводку ресурсов в плане есть/занято? Project information что-то не очень информативен...

Какие именно ресурсы вас интересуют?

Frants
25.03.2022, 12:00
Какие именно ресурсы вас интересуют?

Что-то вроде того что на этом скрине 59896

Хотя понятия может и не очень совместимые, память в основном интересует, вдруг уже заканчивается...

Евгений Кислов
25.03.2022, 12:05
Что-то вроде того что на этом скрине 59896

Хотя понятия может и не очень совместимые, память в основном интересует, вдруг уже заканчивается...

Оценить объем свободной памяти можно в узлах дерева проекта Debug (RAM-память) и Drives (Flash-память) при подключении к контроллеру.
Я пока не видел проектов, в которых бы имело смысл беспокоиться о том, что память начала заканчиваться.

Frants
25.03.2022, 12:15
Оценить объем свободной памяти можно в узлах дерева проекта Debug (RAM-память) и Drives (Flash-память) при подключении к контроллеру.
Я пока не видел проектов, в которых бы имело смысл беспокоиться о том, что память начала заканчиваться.

Да шутка это насчёт "закончится". Но, в некоторых системах (не будем их называть сейчас), действительно её бывает не хватает.

Frants
25.03.2022, 12:21
Оценить объем свободной памяти можно в узлах дерева проекта Debug (RAM-память) и Drives (Flash-память) при подключении к контроллеру.
Я пока не видел проектов, в которых бы имело смысл беспокоиться о том, что память начала заканчиваться.

Посмотрел Debug при подключении 59897

Прошу простить, но наверное неправильно я смотрю, или не то.

Ааа, всё, понял! Надо было взвести xEnable. Спасибо!

Frants
25.03.2022, 12:39
SIZEOF Вам в помощь, чтоб узнать какой размер имеет созданная Вами структура. И попутно вопрос, Вы уже достигли ограничений по памяти в своем проекте?

Спасибо за совет, SIZEOF помог посмотреть на структуру из BOOL...

Frants
25.03.2022, 12:45
И всё-таки. 59899
Не мог же я уже столько кода написать... Примерно 39%, только начал. Или это информация не к пользовательской программе?

Евгений Кислов
25.03.2022, 12:51
И всё-таки. 59899
Не мог же я уже столько кода написать... Примерно 39%, только начал. Или это информация не к пользовательской программе?

Эта информация относится к операционное системе ПЛК.
Загрузите пустой проект и посмотрите, чему будет равна эта цифра - скорее всего, она будет примерно такой же, как и у вас сейчас.

Frants
25.03.2022, 12:57
Ясно. Спасибо!

Frants
25.03.2022, 14:18
Некоторый итог дискуссии по вопросу наложения битовой структуры на IO канал.
Получилось, работает. Дискретные сигналы от устройства, собранные в двойном слове IO канала, теперь побитно поименованы. Спасибо всем за помощь.
Тип переменных в структуре использован BIT (32 переменных BIT) вместо BOOL (спасибо capzap за SIZEOF).
Первая неудача была обусловлена использованием BOOL в структуре (про BIT я не знал, это неожиданность, для меня BOOL и был BIT).
Работать-то работает, но может кто-нибудь подскажет какие подводные камни есть у этого решения? Или это приемлемый вариант?

Евгений Кислов
25.03.2022, 14:21
Некоторый итог дискуссии по вопросу наложения битовой структуры на IO канал.
Получилось, работает. Дискретные сигналы от устройства, собранные в двойном слове IO канала, теперь побитно поименованы. Спасибо всем за помощь.
Тип переменных в структуре использован BIT (32 переменных BIT) вместо BOOL (спасибо capzap за SIZEOF).
Первая неудача была обусловлена использованием BOOL в структуре (про BIT я не знал, это неожиданность, для меня BOOL и был BIT).
Работать-то работает, но может кто-нибудь подскажет какие подводные камни есть у этого решения? Или это приемлемый вариант?

Это приемлемый вариант.

qroot
26.03.2022, 16:03
The CODESYS Group is currently suspending all business relations with the Russian Federation and the Republic of Belarus. Therefore, it is currently not possible for customers from the Russian Federation and the the Republic of Belarus to register, download software, or purchase products from the CODESYS Store.
1. Это как то отразится на ПЛК210? Если нет, то почему?
2. Почему они так сильно подорожали? Опустится ли цена?
3. Есть ли у вас планы сделать ПЛКа на китайских микроконтроллерах?

Frants
26.03.2022, 16:07
Доброе время суток всем!
Что-то пошло не так, не могу понять как воспользоваться константами из MB_ErrorCodes. Библиотека IoDrvModbus подключена. Но, к примеру, в операторе сравнения константу RESPONSE_SUCCESS применить не получается, программа не знает такой. Подскажите, пожалуйста, как это исправить.

capzap
26.03.2022, 16:12
Доброе время суток всем!
Что-то пошло не так, не могу понять как воспользоваться константами из MB_ErrorCodes. Библиотека IoDrvModbus подключена. Но, к примеру, в операторе сравнения константу RESPONSE_SUCCESS применить не получается, программа не знает такой. Подскажите, пожалуйста, как это исправить.

про префикс не забыли?

Евгений Кислов
26.03.2022, 16:13
1. Это как то отразится на ПЛК210? Если нет, то почему?
2. Почему они так сильно подорожали? Опустится ли цена?
3. Есть ли у вас планы сделать ПЛКа на китайских микроконтроллерах?

1. Нет. Дистрибутив CODESYS, как и раньше, можно загрузить с нашего сайта. Доп. компоненты из CODESYS Store для наших ПЛК и ранее не были доступны из-за отсутствия поддержки механизма лицензирования.
2. Из-за увеличения цен на комплектующие и изменения курса валют.
Мы не в восторге от вынужденного повышения цен, так как наша стратегия подразумевает продавать недорого, и повышение цен снижает спрос на нашу продукцию.
Снижение курса и улучшение ситуации с поставками комплектующих, безусловно, приведет к снижению цен, чтобы повысить конкурентоспособность продукции.
3. Мы прорабатываем такую возможность.

Frants
26.03.2022, 16:18
про префикс не забыли?

В общем, одна часть оператора сравнения получается, это Modbus_Slave_COM_Port.byModbusError.
А вот RESPONSE_SUCCESS не получается. Она ни с каким префиксом что-то не вводится.

Евгений Кислов
26.03.2022, 16:19
В общем, одна часть оператора сравнения получается, это Modbus_Slave_COM_Port.byModbusError.
А вот RESPONSE_SUCCESS не получается. Она ни с каким префиксом что-то не вводится.



IF Modbus_Slave_COM_Port.byModbusError = IoDrvModbus.MB_ErrorCodes.RESPONSE_SUCCESS THEN
; // нужный код
END_IF

Frants
26.03.2022, 16:21
Благодарю Вас! Учиться, учиться, учиться,.... И отдыхать, ещё бы

Frants
26.03.2022, 16:37
IF Modbus_Slave_COM_Port.byModbusError = IoDrvModbus.MB_ErrorCodes.RESPONSE_SUCCESS THEN
; // нужный код
END_IF


Ещё хотелось бы узнать, почему Input Assistant не помог мне в построении этой конструкции. Символ IoDrvModbus он в упор не видит.

Евгений Кислов
26.03.2022, 16:49
Ещё хотелось бы узнать, почему Input Assistant не помог мне в построении этой конструкции. Символ IoDrvModbus он в упор не видит.

Обычно видит:

59914

Чтобы понять, что происходит конкретно у вас - предоставьте, пожалуйста, удаленный доступ по AnyDesk.

Frants
26.03.2022, 16:54
Это да, суфлёр видит (я в LD работаю). Не работает вот это 59915

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

Frants
26.03.2022, 17:02
Предложение по AnyDesk актуально?

Евгений Кислов
26.03.2022, 17:03
Предложение по AnyDesk актуально?

Да, актуально.

Frants
26.03.2022, 17:16
Спасибо! Всё-таки лучше, наверное, начинать работать с Codesys на одной версии продукта. Пока навык не выработается.

turkish945
26.03.2022, 19:04
Всем добра!

подскажите, как преобразовать word в enum?

есть переменная типа:
TYPE TSH_RecuperatorModes :
(
Standby:=0,
Away:=1,
Normal:=2,
Intensive:=3,
Boost:=4,
Kitchen:=5,
Fireplace:=6,
Override:=7,
Holiday:=8,
AirQuality:=9,
Off:=10,
Undefined:=100
) WORD;
END_TYPE

как ей присвоить переменную word?
Неужели без UNION или CASE не обойтись?

ASo
26.03.2022, 19:09
1. Нет. Дистрибутив CODESYS, как и раньше, можно загрузить с нашего сайта. Доп. компоненты из CODESYS Store для наших ПЛК и ранее не были доступны из-за отсутствия поддержки механизма лицензирования.


Вопрос конечно юридический, но, возвращаясь к обсуждению, ОВЕН продолжит выпуск ПЛК без оплаты лицензий РТ КДС в связи с действиями производителя и по постановлению Правительства РФ? Просто ответьте - ДА или НЕТ?

Евгений Кислов
26.03.2022, 19:27
Вопрос конечно юридический, но, возвращаясь к обсуждению, ОВЕН продолжит выпуск ПЛК без оплаты лицензий РТ КДС в связи с действиями производителя и по постановлению Правительства РФ? Просто ответьте - ДА или НЕТ?

Мы приобретаем лицензии не у CODESYS Group, а у их официального дистрибьютора и системного партнера в России - ПК "Пролог" (http://prolog-plc.ru/about).
Информации от Пролога о каких-то проблемах с поставками лицензий нет.
Если вам интересно, как в текущей ситуации взаимодействуют Пролог и CODESYS Group - то это вопрос не к нам, а к ним.

Извините за занудство, но еще раз напомню - я занимаюсь техническими вопросами, а не юридическими.

qroot
27.03.2022, 07:35
Всем добра!

подскажите, как преобразовать word в enum?

есть переменная типа:
TYPE TSH_RecuperatorModes :
(
Standby:=0,
Away:=1,
Normal:=2,
Intensive:=3,
Boost:=4,
Kitchen:=5,
Fireplace:=6,
Override:=7,
Holiday:=8,
AirQuality:=9,
Off:=10,
Undefined:=100
) WORD;
END_TYPE

как ей присвоить переменную word?
Неужели без UNION или CASE не обойтись?

Убрать или закомментировать:
//{attribute 'strict'}

turkish945
27.03.2022, 14:41
Убрать или закомментировать:
//{attribute 'strict'}

а на что это еще может повлиять?

qroot
28.03.2022, 06:52
а на что это еще может повлиять?
Эта инструкция запрещает компилятору ряд действий. Вам нужно больше изучить про типы данных и их конвертации друг у друга.

Frants
28.03.2022, 15:16
Доброе время суток всем!
Изучаю вопрос подключения ОП Weintek к ПЛК210.
Вопрос -
1) следует ли в проекте Codesys добавить новое устройство Modbus TCP Master и к нему прикручивать ОП?
2) или же, можно прикрутить ОП к существующему Modbus TCP Master'у, к которому подключены сигнальные модули (DI, DO, и т.д.) ?
Я склоняюсь к первому варианту (мне так кажется, что это верно).
Конечно же, хотелось бы узнать какой из вариантов "правильный", нет достаточного опыта работы с этим устройством.

Евгений Кислов
28.03.2022, 16:04
Доброе время суток всем!
Изучаю вопрос подключения ОП Weintek к ПЛК210.
Вопрос -
1) следует ли в проекте Codesys добавить новое устройство Modbus TCP Master и к нему прикручивать ОП?
2) или же, можно прикрутить ОП к существующему Modbus TCP Master'у, к которому подключены сигнальные модули (DI, DO, и т.д.) ?
Я склоняюсь к первому варианту (мне так кажется, что это верно).
Конечно же, хотелось бы узнать какой из вариантов "правильный", нет достаточного опыта работы с этим устройством.

Добрый день.
Если у панель не MT8xxxiP, а любой другой серии (iE, cMT и т.д.) - то проще всего настроить обмен по OPC UA, а не по Modbus TCP.
Панель будет клиентом, ПЛК - сервером.

Frants
28.03.2022, 16:15
Одна eMT3070, другая MT8090XE. Спасибо, может быть есть более подробная информация по данной теме (под рукой), потому что по OPC UA вообще не плавал ни разу, абсолютный ноль.

Евгений Кислов
28.03.2022, 16:20
Одна eMT3070, другая MT8090XE. Спасибо, может быть есть более подробная информация по данной теме (под рукой), потому что по OPC UA вообще не плавал ни разу, абсолютный ноль.

Настройка OPC UA сервера для наших ПЛК:
https://youtu.be/iO5phx9zENM

Настройка OPC UA клиента для Weintek:
https://www.rusavtomatika.com/upload_files/drivers/OPC_UA_Client.pdf

Frants
28.03.2022, 16:37
Очень благодарю Вас! Буду смотреть.

Frants
28.03.2022, 19:00
Настройка OPC UA сервера для наших ПЛК:
https://youtu.be/iO5phx9zENM

Настройка OPC UA клиента для Weintek:
https://www.rusavtomatika.com/upload_files/drivers/OPC_UA_Client.pdf

Прошу простить за настойчивость, всё-таки вернусь к вопросу. Дело здесь ещё вот в чём. Хочется понять, так сказать, в общих чертах, как поступают в таких случаях, если с устройством надо работать через Modbus TCP. Мастер один на всех, или же отдельно. На первом мастере висит родное железо (ОВЕН), и как-то не хочется примешивать туда стороннее (если таковое появится).

Евгений Кислов
28.03.2022, 19:39
Прошу простить за настойчивость, всё-таки вернусь к вопросу. Дело здесь ещё вот в чём. Хочется понять, так сказать, в общих чертах, как поступают в таких случаях, если с устройством надо работать через Modbus TCP. Мастер один на всех, или же отдельно. На первом мастере висит родное железо (ОВЕН), и как-то не хочется примешивать туда стороннее (если таковое появится).

В принципе - разницы нет. Обычно используется один мастер - так просто проще.

Frants
28.03.2022, 19:57
Ясно, спасибо!

Frants
28.03.2022, 21:00
В общем, попробовал OPC, не в восторге. ПЛК конкретно не понравилось как ОП обратилась к нему, ушел в стоп с еррорами.
59975

Надо всё-таки использовать Modbus TCP Master, он до стопа не доведёт. Понятно, что может криво настроил, но это не повод падать в стоп, далеко не повод...

Ник12
28.03.2022, 21:18
Добрый день, как настроить режим эмуляции на Codesys 3.5 без подключения к ПЛК?

kondor3000
28.03.2022, 23:27
Добрый день, как настроить режим эмуляции на Codesys 3.5 без подключения к ПЛК?

Не надо настраивать, пишите программу и компилируете (чтобы без ошибок), ставите галку в Онлайн/Эмуляция, запускаете Онлайн/Логин и потом Отладка/Старт. Читайте руководство по Codesys 3.5.

Евгений Кислов
29.03.2022, 06:20
В общем, попробовал OPC, не в восторге. ПЛК конкретно не понравилось как ОП обратилась к нему, ушел в стоп с еррорами.
59975

Надо всё-таки использовать Modbus TCP Master, он до стопа не доведёт. Понятно, что может криво настроил, но это не повод падать в стоп, далеко не повод...

У меня таких проблем не наблюдается.
На скриншоте не видно, чтобы ПЛК ушел в стоп - почему вы решили, что это произошло?
Выкладывайте проекты для СODESYS и EasyBuilder - посмотрим.

59977 59978 59979 59980

Ник12
29.03.2022, 14:07
Не надо настраивать, пишите программу и компилируете (чтобы без ошибок), ставите галку в Онлайн/Эмуляция, запускаете Онлайн/Логин и потом Отладка/Старт. Читайте руководство по Codesys 3.5.

В программе нужно же указать пути входа и выхода на контроллере, иначе не понимает... Как это сделать?5998659987

Евгений Кислов
29.03.2022, 14:12
В программе нужно же указать пути входа и выхода на контроллере, иначе не понимает... Как это сделать?5998659987

На первом скрине вам осталось нажать Отладка - Записать значения или Ctrl + F7.
Если вы уже привязали эти переменные в входам-выходам ПЛК - то вместо этого нажмите Отладка - Фиксировать значения (F7).

Frants
29.03.2022, 15:06
У меня таких проблем не наблюдается.
На скриншоте не видно, чтобы ПЛК ушел в стоп - почему вы решили, что это произошло?
Выкладывайте проекты для СODESYS и EasyBuilder - посмотрим.

59977 59978 59979 59980

В общем, и у меня таких проблем не наблюдается. Пробную модификацию проекта я не сохранил. Попытался воспроизвести проблему, сконфигурировал по новой OPC, и всё нормально работает...
Хотелось бы ещё узнать вот что.
1) Так же как и на Вашем скриншоте появляется предупреждение типа "There are 1 configured variable which are not referenced by the IEC code."
Что это и чем грозит? Вроде бы переменные все "нормальные", чем они не нравятся?
2) В проекте ОП нужно будет использовать примерно 1,5 тыс. переменных, и выбирать их мышкой по объекту Symbol Configuration будет, наверное, утомительно.
Может быть есть какие-то инструменты по импорту/экспорту тегов.

Евгений Кислов
29.03.2022, 15:58
1) Это означает, что в символьной конфигурации есть переменные, которые не используются в коде. В нормальных обстоятельствах их быть не должно.
2) Можно использовать атрибут 'symbol':
https://help.codesys.com/webapp/_cds_pragma_attribute_symbol;product=codesys;versi on=3.5.17.0

В принципе, вы можете все свои переменные, нужные для панели, выделить в отдельную программу или GVL, и пометить ее этим атрибутом.
Тогда не придется "накликивать" 1.5 тыс. переменных в символьной конфигурации.

Frants
29.03.2022, 16:02
Ясно. Спасибо!

Ник12
29.03.2022, 16:03
Спасибо помогли!"

Frants
29.03.2022, 20:52
Настройка OPC UA сервера для наших ПЛК:
https://youtu.be/iO5phx9zENM

Настройка OPC UA клиента для Weintek:
https://www.rusavtomatika.com/upload_files/drivers/OPC_UA_Client.pdf

Ещё один вопрос. В ОП Weintek не видны выбранные теги из проекта пока не зальёшь проект в ПЛК.
Так должно быть? Если это так, то как конфигурировать ОП без живого ПЛК?

Евгений Кислов
29.03.2022, 20:56
Ещё один вопрос. В ОП Weintek не видны выбранные теги из проекта пока не зальёшь проект в ПЛК.
Так должно быть? Если это так, то как конфигурировать ОП без живого ПЛК?

Так и должно быть.
Без живого ПЛК - можно использовать виртуальный контроллер CODESYS Control Win V3.

Frants
29.03.2022, 20:58
Ясно. Спасибо!

Frants
29.03.2022, 21:28
Так и должно быть.
Без живого ПЛК - можно использовать виртуальный контроллер CODESYS Control Win V3.

Ещё вопрос... 59989

Какой узел выбрать для привязки тегов? И в одном и в другом есть ПЛК. Server или DeviceSet ?

Евгений Кислов
30.03.2022, 06:29
Ещё вопрос... 59989

Какой узел выбрать для привязки тегов? И в одном и в другом есть ПЛК. Server или DeviceSet ?

Любой. В контексте наших ПЛК - разницы нет.

Frants
30.03.2022, 16:06
Доброе время суток всем!
Начало появляться такое вот сообщение после перехода в онлайн на Codesys 60007
Информация не особо встречается по такому сообщению.
Как с этим бороться? Пожалуйста подскажите.

Евгений Кислов
30.03.2022, 16:17
Доброе время суток всем!
Начало появляться такое вот сообщение после перехода в онлайн на Codesys 60007
Информация не особо встречается по такому сообщению.
Как с этим бороться? Пожалуйста подскажите.

Добрый день.
Уточните версию прошивки контроллера и выложите простейший пример, на котором эта проблема воспроизводится.

Frants
30.03.2022, 16:20
Если возможно, проще предложить сеанс удалённой связи.
Просто до какого-то момента было всё нормально.

Евгений Кислов
30.03.2022, 16:29
Если возможно, проще предложить сеанс удалённой связи.
Просто до какого-то момента было всё нормально.

Возможно - напишите мне завтра утром.

Frants
30.03.2022, 20:34
Добрый день.
Уточните версию прошивки контроллера и выложите простейший пример, на котором эта проблема воспроизводится.

Возможно, проблема решилась. Дело в том, что в нескольких ФБ изменился интерфейс. А вот сделать update в точке вызова в блоках вызывающих эти блоки (простите за масло масляное) забыл. Скорее всего это и привело к exception'ам и упомянутому выше сообщению. Тестить уже сегодня не стал, скорее всего это оно.
Странно, что система согласилась залить такое в плк. Было бы хорошо как-нибудь запретить заливать такие... ляпы.

Newcomer
30.03.2022, 20:43
Почему переменные объявленные как глобальные не видны в PLC_PRG ?

Евгений Кислов
30.03.2022, 20:47
Почему переменные объявленные как глобальные не видны в PLC_PRG ?

Нужно указывать имя списка глобальных переменных для доступа к его переменным.
Например:


GVL.iTest := 11;

P.S. - спустя 3 года пошли по второму кругу).
https://owen.ru/forum/showthread.php?t=20069&p=303335&viewfull=1#post303335

Newcomer
30.03.2022, 20:50
Нужно указывать имя списка глобальных переменных для доступа к его переменным.
Например:


GVL.iTest := 11;

https://owen.ru/forum/showthread.php?t=20069&p=303335&viewfull=1#post303335

Спасибо. Что бы мы без вас делали.

Newcomer
30.03.2022, 21:01
А тут то же глобальные переменные с префиксом указывать. Что-то компилятор ошибок не дает.
На какой картинке правильно ?

Евгений Кислов
31.03.2022, 06:16
А тут то же глобальные переменные с префиксом указывать. Что-то компилятор ошибок не дает.
На какой картинке правильно ?

На второй. На первой видно, что компилятор обнаружил ошибку, так как не нашел объявление PID_1 в PLC_PRG.

Newcomer
31.03.2022, 08:51
Какой элемент визуализации можно использовать для ввода числа ?

Евгений Кислов
31.03.2022, 08:53
Какой элемент визуализации можно использовать для ввода числа ?

Прямоугольник.

Newcomer
31.03.2022, 09:04
Прямоугольник.

Не понятно как в свойствах сделать привязку этого прямоугольника к переменной в программе ?

Евгений Кислов
31.03.2022, 09:05
А как сделать привязку этого прямоугольника к переменной в программе ?

https://ftp.owen.ru/CoDeSys3/11_Documentation/03_3.5.11.5/CDSv3.5_Faq_v.2.6.pdf

п. 7.6 и 7.7.
Остальные тоже рекомендую изучить.

Newcomer
31.03.2022, 09:08
https://ftp.owen.ru/CoDeSys3/11_Documentation/03_3.5.11.5/CDSv3.5_Faq_v.2.6.pdf

п. 7.6 и 7.7.
Остальные тоже рекомендую изучить.

Спасибо. Этому документу нет цены. ;)

Newcomer
31.03.2022, 09:13
https://ftp.owen.ru/CoDeSys3/11_Documentation/03_3.5.11.5/CDSv3.5_Faq_v.2.6.pdf

п. 7.6 и 7.7.
Остальные тоже рекомендую изучить.

Для переменной типа REAL в поле Текст формат такой должен быть %f3,1

Евгений Кислов
31.03.2022, 09:18
Для переменной типа REAL в поле Текст формат такой должен быть %f3,1

Нет. В вашем случае - %.1f

Newcomer
31.03.2022, 09:23
Нет. В вашем случае - %.1f

Это 1 знак после запятой ?

Евгений Кислов
31.03.2022, 09:25
Это 1 знак после запятой ?

Да, именно так.

dvm1
04.04.2022, 15:41
Здравствуйте всем. не знаю в эту ли тему вопрос. нужно загрузить проект в СПК107, скачал codesys 3.5 sp5 , но не могу установить SPKxxx_target. codesys пишет не найден PackageManagerCLI.exe. ну и по факту его тож нет, ставил и sp11,14,16 тоже самое. Подскажите как лечить (PS проект создан как оказалось в SP11).

Евгений Кислов
04.04.2022, 16:04
Здравствуйте всем. не знаю в эту ли тему вопрос. нужно загрузить проект в СПК107, скачал codesys 3.5 sp5 , но не могу установить SPKxxx_target. codesys пишет не найден PackageManagerCLI.exe. ну и по факту его тож нет, ставил и sp11,14,16 тоже самое. Подскажите как лечить (PS проект создан как оказалось в SP11).

Добрый день.

1. Запустите CODESYS V3.5 SP11.
2. Инструменты - Менеджер пакетов - Установить - выберите нужный файл формата .package

dvm1
04.04.2022, 16:21
Так и делаю но вылетает ошибка "не найден PackageManagerCLI.exe".

Евгений Кислов
04.04.2022, 16:28
Так и делаю но вылетает ошибка "не найден PackageManagerCLI.exe".

Вы запускаете CODESYS от имени администратора?

dvm1
05.04.2022, 02:28
Этого файла физически нет на компе. у меня учетка админская.

Евгений Кислов
05.04.2022, 06:27
Этого файла физически нет на компе. у меня учетка админская.

Корректно удалите все версии CODESYS, отключите антивирусы, установите CODESYS V3.5 SP11 Patch 5.
Если всё пройдет корректно - то файл PackageManagerCLI.exe появится в <директория установки CODESYS>\CODESYS\Common

AlexBut
05.04.2022, 10:14
Залил рабочую(т.к. крутится на другом таком контроллере) программу для СПК110[M01] через USB-всё замечательно-ошибок нет можно прилогиниться, но через USB. И хотя в программе есть подключённый ethernet с адресом 192.168.88.100 , этого адреса в сети нет. (Перезагружал по питанию, перезаливал, отключал USB ну и само собой сначала изменил адрес своего компа в ту же подсетку -192.168.88.3(маска 255.255.255.0 хотя и 255.255.0.0 тоже пробовал)-такое ощущение где-то надо щёлкнуть а где не знаю

Евгений Кислов
05.04.2022, 10:45
Залил рабочую(т.к. крутится на другом таком контроллере) программу для СПК110[M01] через USB-всё замечательно-ошибок нет можно прилогиниться, но через USB. И хотя в программе есть подключённый ethernet с адресом 192.168.88.100 , этого адреса в сети нет. (Перезагружал по питанию, перезаливал, отключал USB ну и само собой сначала изменил адрес своего компа в ту же подсетку -192.168.88.3(маска 255.255.255.0 хотя и 255.255.0.0 тоже пробовал)-такое ощущение где-то надо щёлкнуть а где не знаю

Зайдите в web-конфигураторе через USB и посмотрите, какой у него реальный IP-адрес.

2s19
05.04.2022, 12:40
Добрый день, столкнулся с задачей получать данные на OPC сервер. Данные получаю в формате REAL от термодатчика аналогового. Сделал модем, под модемом сделал slave устройство, но в нем легко и просто передается на OPC, булевые переменные и переменные формата WORD. Есть функция которая переводит REAL в DWORD, пытался всячески преобразовать DWORD в WORD не получается... Может быть задача и простая но я с типами данных как свинья в апельсинах.... Если можно помогите с этим вопросом. (WORDы без проблем в OPC сервере отображаются). Заранее спасибо. И если можно то решение на CFC потому что эта среда наиболее наглядная, а я сам учусь и параллельно студентам рассказываю.

Евгений Кислов
05.04.2022, 12:43
Добрый день, столкнулся с задачей получать данные на OPC сервер. Данные получаю в формате REAL от термодатчика аналогового. Сделал модем, под модемом сделал slave устройство, но в нем легко и просто передается на OPC, булевые переменные и переменные формата WORD. Есть функция которая переводит REAL в DWORD, пытался всячески преобразовать DWORD в WORD не получается... Может быть задача и простая но я с типами данных как свинья в апельсинах.... Если можно помогите с этим вопросом. (WORDы без проблем в OPC сервере отображаются). Заранее спасибо. И если можно то решение на CFC потому что эта среда наиболее наглядная, а я сам учусь и параллельно студентам рассказываю.

Добрый день.

Посмотрите здесь п. 4.8 - на CFC там тоже есть примеры:
https://ftp.owen.ru/CoDeSys3/11_Documentation/03_3.5.11.5/CDSv3.5_Modbus_v2.2.pdf

2s19
05.04.2022, 15:10
Евгений, спасибо большое!!! Нашел стараюсь разобраться!!!

AlexBut
06.04.2022, 05:24
Да спасибо, разобрался. Но другая проблема появилась- не могу подключиться по модбас(Modbus Poll) к СПК110 хотя
сам ip-адрес у СПК есть , CodeSYS 3.5 подключается и заливает программу без проблем но при подключении
Modbus Poll выдаёт: "Gateway Path unavailable" ? Хотя модуль ModbusTCP_Slave_Device в Ethernet тот же и определён
как и раньше(в CodeSYS)

Евгений Кислов
06.04.2022, 06:15
Да спасибо, разобрался. Но другая проблема появилась- не могу подключиться по модбас(Modbus Poll) к СПК110 хотя
сам ip-адрес у СПК есть , CodeSYS 3.5 подключается и заливает программу без проблем но при подключении
Modbus Poll выдаёт: "Gateway Path unavailable" ? Хотя модуль ModbusTCP_Slave_Device в Ethernet тот же и определён
как и раньше(в CodeSYS)

https://owen.ru/forum/showthread.php?t=28167&p=373724&viewfull=1#post373724

ASo
06.04.2022, 07:47
Вы бы еще добавили в руководство по МОДБАС особенности работы с холдингами и катушками в SP16 в режиме чтение-запись из программы. Там такое... что можно стучаться головой об стену.

Евгений Кислов
06.04.2022, 07:54
Вы бы еще добавили в руководство по МОДБАС особенности работы с холдингами и катушками в SP16 в режиме чтение-запись из программы. Там такое... что можно стучаться головой об стену.

Так добавлено же одновременно с релизом прошивок с поддержкой SP16.
Если есть какие-то замечания и предложения, как сделать какие-то формулировки более понятными - всегда рад выслушать.
Или что именно вы называете "особенностями"?

ASo
06.04.2022, 07:59
То, что надо вводить по сути несколько переменных (для программы, экрана, обмена) и обрабатывать их в программе.
То, что були нельзя привязать к холдингам.
Скажем так, доберусь до нужного компа - выложу простой пример. На самом деле, он элементарен - буль привязанный к экранной кнопке и ворд в числовому полю и привязанные к модбас тср.

Вот из того, что есть сейчас под рукой. Без программной обработки не работает.

Евгений Кислов
06.04.2022, 08:13
То, что надо вводить по сути несколько переменных (для программы, экрана, обмена) и обрабатывать их в программе.
То, что були нельзя привязать к холдингам.

Насчет визуализации - я понял, что вы имеете в виду, спасибо за замечание.
Примечание про этот момент добавлю.

Для обмена и программы можно обойтись одной переменной.


То, что були нельзя привязать к холдингам.

Это не так.

ASo
06.04.2022, 08:37
Хорошо, тогда поправьте этот пример с кнопкой хотя бы до двух переменных, в идеале - до одной.

Евгений Кислов
06.04.2022, 09:07
Хорошо, тогда поправьте этот пример с кнопкой хотя бы до двух переменных.

Две переменные на каждый объект слэйва.
+ переменная команды записи со стороны программы


в идеале - до одной.

Если требуется такое - то OwenCommunication к вашим услугам.

dvm1
06.04.2022, 12:40
60149
Здравствуйте, подскажите как с этим бороться.
Проект не мой, нужно срочно залить в контроллер.

Евгений Кислов
06.04.2022, 12:47
60149
Здравствуйте, подскажите как с этим бороться.

Добрый день.

Установкой нужной версии CODESYS, архива репозитория и нужной версии шаблонов.

dvm1
06.04.2022, 12:58
Codesys поставил, а где остальное искать. Репозиторий тоже. Единственное что сайт говорит про SP5 path5. А проект создан в Path11.

Евгений Кислов
06.04.2022, 13:08
Codesys поставил, а где остальное искать. Репозиторий тоже. Единственное что сайт говорит про SP5 path5. А проект создан в Path11.

Ссылка на архив репозитория - в моей подписи.
Чтобы понять, какая версия шаблонов вам нужна - выложите скрин вкладки Информация для, например, MV110_32DN.
В проекте таргет старого СПК - так что при правильном подходе он должен был быть создан в SP5 Patch 5.
То, что его создали в SP11 - и привело к проблемам, с которыми вы разбираетесь.

dvm1
06.04.2022, 14:05
Codesys поставил, а где остальное искать.60157

Евгений Кислов
06.04.2022, 14:19
Codesys поставил, а где остальное искать.60157

Шаблоны:
https://ftp.owen.ru/CoDeSys3/04_Library/04_Components/Mx110Drivers_v3.5.4.13.package

Выложите скриншот вкладки Информация для Modbus Master.

dvm1
06.04.2022, 14:46
60158 такое

Евгений Кислов
06.04.2022, 16:09
60158 такое

По скриншоту - такое ощущение, что вы так и не установили SP5 Patch 5.

Если всё же установили - ПКМ на Modbus Master - Обновить устройство - выбрать версию 3.5.5.0.
Шаблоны нужно удалить и добавить заново - ссылку на пакет я выложил выше, устанавливается через Инструменты - Менеджер пакетов.

kondor3000
06.04.2022, 16:20
такое
Если щёлкнуть мышью по самому проекту, то он автоматически открывается в последней установленной версии. Открывать проект надо по ярлыку нужной версии, в которой уже вызывать проект.
Сам долго привыкал)

dvm1
06.04.2022, 16:42
Спасибо всем. Проект открылся ток с другими ошибками.60165

Евгений Кислов
06.04.2022, 16:45
Спасибо всем. Проект открылся ток с другими ошибками.60165

Проект - Установки проекта - Профиль визуализации - выберите V3.5 SP5 Patch 5
+
установите эту библиотеку:
https://ftp.owen.ru/CoDeSys3/04_Library/02_Manual_installation/07_CmpSysExec/1.0.0.2/CmpSysExec_1.0.0.2.compiled-library

GoodLuck
07.04.2022, 10:01
Добрый день!

После установки CoDesys SP5 Patch5 некоторые старыепроекты стали компилироваться с ошибками. "Ругается" на библиотеки ModulsOwenLib и SysCom. SysCom, как я понимаю, вообще некорректно установился (в Менеджере библиотек при выборе ФБ этой библиотеки в правой части отсутствует описание).

Переустановка CoDesys и CODESYS Repository Archive Complete V3.5 SP4 не помогла.

В SP11 Patch5 и SP14 Patch3 все проекты работают корректно. Проблем с данными библиотеками не обнаружено.

kmk
07.04.2022, 10:19
Добрый день!
Я только начал разбираться,( прошу прощения если не в ту тему)
Попробовал проверить программу создав виртуальный контроллер - не получается, пишет нет библиотеки, а попытка её загрузить - неудача.
Скрин 60176