PDA

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



Страницы : 1 2 3 4 5 6 7 [8] 9 10 11 12 13

shamilnizaev@mail.ru
14.12.2018, 16:02
Возникла проблема (начинаю разбираться с Методами).
Задача.
Вызывать метод по событию (в моем случае вызов метода осуществляется при появлении сигнала TRUE на выходе функционального блока см PLC_PRG)
Есть три метода:
METH имеет объявленную переменную Event, в зависимости от TRUE/FALSE записывается значение во внутреннюю переменную bLight: BOOL; bLight описана в AI (FB) как внутренняя переменная. (см. скрин)
SetBOOL (передает METH TRUE)
ResBOOL (передает METH FALSE)

В итоге переменная Event при выполнении программы имеет значение ???
Компилятор не выдает ошибок, только Предупреждение что НЕОБХОДИМО ДОБАВИТЬ РЕАЛИЗАЦИЮ МЕТОДА
Я предполагаю следующее:
1. Методы SetBOOL и ResBOOL из PLC_PRG вызываются и передают значения а вот MEHT не принимает значения (его нужно вызвать)ю

PalLORD
17.12.2018, 11:50
Добрый день! Столкнулся со следующей сложностью.
Было несколько переменных (типа REAL), значение которых выводились в текстовые поля. Я создал объект и его свойства, которые должны были заменить данные переменные. Однако я не могу эти значения этих свойств вывести напрямую в текстовые поля, он принимает название лишь самого экземпляра. Есть ли возможность без лишних усилий вывести в текстовое поле значение свойства объекта? Или мне придётся использовать промежуточную переменную? Заранее спасибо.

RV9WFJ
17.12.2018, 12:06
Объявите в визуализации переменную в которой будете хранить ссылку на экземпляр и далее в текстовом поле используйте эту ссылку как указатель на экземпляр объекта. Таким образом имя экземпляра придется передать один раз на всю визуализацию. Еще проще никак, это противоречит ООП.

Евгений Кислов
17.12.2018, 12:10
Доброе день! Столкнулся со следующей сложностью.
Было несколько переменных (типа REAL), значение которых выводились в текстовые поля. Я создал объект и его свойства, которые должны были заменить данные переменные. Однако я не могу эти значения этих свойств вывести напрямую в текстовые поля, он принимает название лишь самого экземпляра. Есть ли возможность без лишних усилий вывести в текстовое поле значение свойства объекта? Или мне придётся использовать промежуточную переменную? Заранее спасибо.

Установки проекта - Визуализация - Доп. настройки - Активировать обработку свойств во всех свойствах элементов
https://help.codesys.com/webapp/_cds_dlg_project_settings_visualization;product=co desys;version=3.5.10.0

shamilnizaev@mail.ru
17.12.2018, 14:59
Подскажите как использовать переходы. (может есть какой то пример).
Возможно ли использовать переходы на ST ? (есть же возможность добавлять Методы, Переходы и т.п. под POU, скорее всего возможно использовать и переходы.)
При создании Перехода - открывается пустое поле (не знаю как его заполнить)

Profa
17.12.2018, 23:42
Здравствуйте. Возникла ошибка при компиляции
[ERROR] Менеджер визуализации](Web-визуализация): Заданная стартовая конфигурация <Visualization1> не имеет экземпляров. Содержит ли она интерфейс?
Подскажите пожалуйста в какую сторону копать?

shamilnizaev@mail.ru
18.12.2018, 07:35
Добрый день, подскажите, возможно ли из программы FB (написанной на языке ST) в условии сделать переход на выполнении другой программы (внутри FB)

Пример:
IF (A=TRUE) THEN
B:=C;
ELSE
метка на другую часть кода внутри описания этого ФБ

Евгений Кислов
18.12.2018, 07:47
Здравствуйте. Возникла ошибка при компиляции
[ERROR] Менеджер визуализации](Web-визуализация): Заданная стартовая конфигурация <Visualization1> не имеет экземпляров. Содержит ли она интерфейс?
Подскажите пожалуйста в какую сторону копать?

Откройте экран Visualization1, вверху раскройте вкладку Редактор интерфейсов. Если там объявлены VAR_INPUT или VAR_IN_OUT переменные - удалите.

Profa
18.12.2018, 08:52
Спасибо. Помогло.

Позвольте еще раз обратиться. Кажется ошибка ерундовая, но самостоятельно исправить пока не получается.
Где физически находится ошибка компилятор не показывает.
Если нужна доп. информация о проекте, то могу предоставить.

[ERROR] Visualization1 [Device: Plc Logic: Application]: C0007: Вместо ')' требуется выражение
Компиляция завершена -- 1 ошибок, 0 предупреждений

Евгений Кислов
18.12.2018, 09:33
Спасибо. Помогло.

Позвольте еще раз обратиться. Кажется ошибка ерундовая, но самостоятельно исправить пока не получается.
Где физически находится ошибка компилятор не показывает.
Если нужна доп. информация о проекте, то могу предоставить.

[ERROR] Visualization1 [Device: Plc Logic: Application]: C0007: Вместо ')' требуется выражение
Компиляция завершена -- 1 ошибок, 0 предупреждений

Возможно, на каких-то кнопках висит ST-код с ошибкой.
Можно удалять элементы по одному (или пачками), пока ошибка не пропадет - так можно будет определить "проблемный" элемент.

Profa
18.12.2018, 12:46
Спасибо. Помогло.
Позвольте обратиться еще раз.
Ошибка вроде ерундовая, но самостоятельно не устраняется. Компилятор не указывает на место ошибки.
если нужна доп. информация, то напишу.

[ERROR] Visualization1 [Device: Plc Logic: Application]: C0007: Вместо ')' требуется выражение

Profa
19.12.2018, 18:23
Возможно, на каких-то кнопках висит ST-код с ошибкой.
Можно удалять элементы по одному (или пачками), пока ошибка не пропадет - так можно будет определить "проблемный" элемент.

Проблема была в конфигурации по one mouse click. Случайно добавил функционал (изменить отображаемую визуализацию), но ничего ему не присвоил.

Удалил переменные. Заново прописал конфигурацию и ошибка ушла.

Sargon
19.12.2018, 19:09
Подскажите, как изменить вид экрана области объявления переменных, с отображением VAR, END_VAR?40445

Евгений Кислов
19.12.2018, 19:21
Инструменты - Опции - Редактор объявления

Sargon
19.12.2018, 19:51
Благодарю, изменил. Правда изменения отобразились при новом вызове программы,это правильно?

Евгений Кислов
19.12.2018, 19:59
Благодарю, изменил. Правда изменения отобразились при новом вызове программы,это правильно?

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

Sargon
19.12.2018, 20:25
Как я понял, табличный режим дублирует обычный. Вводимые переменные в обычном режиме представлены в табличном в виде таблицы.Для удобства работы?

Евгений Кислов
19.12.2018, 20:31
Как я понял, табличный режим дублирует обычный. Вводимые переменные в обычном режиме представлены в табличном в виде таблицы.Для удобства работы?

Да, все верно. Кроме того, с определенной версии CODESYS в табличном режиме появилась возможность сортировать столбцы.

Sargon
20.12.2018, 10:16
Подскажите по следующему вопросу - ранее в КДС 2.3 при работе с ПЛК и СП данные (например весовые или температурные уставки) хранились в определенных регистрах и передавались по протоколам обмена, а как в СПК 1хх? Тот же принцип? Ведь экран и ПЛК в одном корпусе и по-видимому аппаратно связаны?
Так же в версии 2.3 мы в конфигурации настраивали соединения, где указывали биты, байты и т.д.. В СПК тот же принцип?

Евгений Кислов
20.12.2018, 10:25
Для передачи данных в визуализацию настройка обмена вообще не требуется, это одно из ключевых преимуществ подобных устройств.
Посмотрите учебное видео: https://www.youtube.com/watch?v=YBaWlXs-UxM

shamilnizaev@mail.ru
24.12.2018, 13:53
Подскажите, не совсем понял _CommState относится к PLC или к PLC и OPC.
Тогда что такое _CommStateOK ? это только к OPC ?
For each configured PLC the OPC Server V3 generates the status variables _CommState and
_CommStateOK. _CommState can be interpreted from an OPC Client and the following states can be
requested:
STATE_TERMINATE = -1
STATE_PLC_NOT_CONNECTED = 0
STATE_PLC_CONNECTED = 1
STATE_NO_SYMBOLS = 2
STATE_SYMBOLS_LOADED = 3
STATE_RUNNING = 4
STATE_DISCONNECT = 5
STATE_NO_CONFIGURATION = 6

CommStateOK is a Boolean variable indicating in state TRUE a communication with the OPC server. The
name of the plc can be taken from the prefix of the Boolean variable. If the variable is FALSE, currently no
communication is possible. This happens for example during download.
In redundant groups the status variables are generated for each plc in the group. Then for differentiation the
name of the status variables follows the syntax:
__CommStateOK<PLCName>
__CommState<PLCName>

shamilnizaev@mail.ru
26.12.2018, 09:54
Подскажите возможно ли сделать самому вот такую кнопочку "Параметры" ?40574

shamilnizaev@mail.ru
26.12.2018, 09:55
На мои сообщения почему то вообще никто не отвечает )))) Веселоооо....:):):):):):):):):):):):):):):)

Евгений Кислов
26.12.2018, 10:10
Подскажите возможно ли сделать самому вот такую кнопочку "Параметры" ?40574

http://www.owen.ru/forum/showthread.php?t=28167&p=271279&viewfull=1#post271279

shamilnizaev@mail.ru
26.12.2018, 12:26
http://www.owen.ru/forum/showthread.php?t=28167&p=271279&viewfull=1#post271279
Указал, но почему то кнопочки Параметры нет, только добавился дополнительный вход FB

Евгений Кислов
26.12.2018, 13:06
Покажите скриншотами область объявления ФБ и блок экземпляра на холсте.

Салихов Ильдар
26.12.2018, 13:19
Добрый день. Подскажите, пожалуйста. Запутался...
CODESYS 3.5, подключил библиотеку OSCAT BASIC. Могу обращаться к элементам библиотеки через префикс OSCAT_BASIC, например OSCAT_BASIC.CYCLE_TIME. А что нужно сделать чтобы обращаться без префикса?
Спасибо!

Евгений Кислов
26.12.2018, 13:28
Добрый день. Подскажите, пожалуйста. Запутался...
CODESYS 3.5, подключил библиотеку OSCAT BASIC. Могу обращаться к элементам библиотеки через префикс OSCAT_BASIC, например OSCAT_BASIC.CYCLE_TIME. А что нужно сделать чтобы обращаться без префикса?
Спасибо!

Попробуйте так: Проект - Информация проекта - Свойства, найдите свойство LanguageModelAttribute и удалите у него значение Qualified Access Only.

PalLORD
28.12.2018, 13:11
Объявите в визуализации переменную в которой будете хранить ссылку на экземпляр и далее в текстовом поле используйте эту ссылку как указатель на экземпляр объекта. Таким образом имя экземпляра придется передать один раз на всю визуализацию. Еще проще никак, это противоречит ООП.

Объясните, пожалуйста, чуть подробнее. Я объявил указатель, сразу присвоил ему адрес нужного мне экземпляра. Но как ни обращайся к свойству, выдаёт ошибку.


Установки проекта - Визуализация - Доп. настройки - Активировать обработку свойств во всех свойствах элементов
https://help.codesys.com/webapp/_cds_dlg_project_settings_visualization;product=co desys;version=3.5.10.0

Спасибо, этот вариант работает.

Sergeba
30.12.2018, 17:54
Возникла необходимость адресовать биты в переменной word. Знаю, что можно использовать вариант Имя_переменной.Номер_бита, но это не совсем удобно, невозможно применять в циклах с адресацией через счётчик i. Пробовал через UNION, но оказалось, что тоже такое объединение не работает:
TYPE Bool_Word :
UNION
Value:Word
BitArray:ARRAY [0..15] OF BOOL;
END_UNION
END_TYPE

Такое объединение почему-то не работает. Ошибку не выдаёт, но и не объединяет... Переменные ведут себя независимо.
Есть ещё варианты?

Евгений Кислов
30.12.2018, 18:24
См. в библиотеке Util функции Extract и Putbit.

krollcbas
30.12.2018, 21:46
В своих проектах использую глобальные переменные, а в слова упаковываю и распаковываю по маскам

Запись из бита в булевую переменную:
IF (BURN_CMD AND 4)<>0 THEN TEN_OUT_R:=TRUE; END_IF;
IF (BURN_CMD AND 8)<>0 THEN TEN_OUT_R:=FALSE; END_IF;
Обратно:
IF TEN_OUT THEN BURN1_TMP1:=BURN1_TMP1 OR 1; ELSE BURN1_TMP1:=BURN1_TMP1 AND NOT 1; END_IF;(**)

Gribanin
10.01.2019, 23:36
Здравствуйте, подскажите пожалуйста где искать блок управления трехходовым краном в Codesys3.5. Уже все библиотеки перерыл.

RV9WFJ
11.01.2019, 06:50
Здравствуйте, подскажите пожалуйста где искать блок управления трехходовым краном в Codesys3.5. Уже все библиотеки перерыл.Отправил вам свой ФБ в личку.

Gribanin
11.01.2019, 23:01
Спасибо, попробую.

trejer
16.01.2019, 16:23
Здравствуйте.
СПК 105
Библиотека SPK_Tools, 1.3.13 (Owen)
Функциональный блок Real_Time_Clock
с выхода Hour (UINT) (Текущий час) выдаёт неправильное время. Может правильное выдать, может не правильное.
Подхожу, как то, к СПК в 11.55, а на экран выводится 8.55. Подождал пять минут, переменная часов не экране изменилась с восьми на девять.
Минуты идут правильно.
Лезу в сервисное меню - там всё правильно.
Перезагружаю СПК - всё работает.
СПК у меня считает время работы пяти станков за смену (и ещё управляет скоростью насосов охлаждения одного из них).
Подскажите, были ли у кого подобные проблемы?
Как можно решить эту проблему?

i`m
16.01.2019, 16:32
В VISU был выбран элемент "Тренд". Codesys v3.5 sp5.
Вставляю, привязываю переменную, но при компиляции выдаются ошибки
[ ERROR ] visutrendstorageaccess , 3.5.5.0 ( system ): TrendFbTable: C0086 : Не найдено определения для интерфейса ' STO .ITable2'
[ ERROR ] visutrendstorageaccess , 3.5.5.0 ( system ): TrendFbRow : C0086 : Не найдено определения для интерфейса ' STO .IRow2'
[ ERROR ] visutrendstorageaccess , 3.5.5.0 ( system ): TrendFbCursor: C0086 : Не найдено определения для интерфейса 'STO.ICursor2'
[ ERROR ] visutrendstorageaccess , 3.5.5.0 ( system ): TableOpen [TrendFbStorage]: C0032: Невозможно конвертировать тип 'TrendFbTable( visutrendstorageaccess , 3.5.5.0 ( system ))' в тип 'ITable(caa storage, 3.5.4.0 (caa technical workgroup))'
[ ERROR ] visutrendstorageaccess , 3.5.5.0 ( system ): TableOpen [TrendFbStorage]: C0032: Невозможно конвертировать тип 'TrendFbTable( visutrendstorageaccess , 3.5.5.0 ( system ))' в тип 'ITable(caa storage, 3.5.4.0 (caa technical workgroup))'
[ ERROR ] visutrendstorageaccess , 3.5.5.0 ( system ): CursorOpen [TrendFbTable]: C0032: Невозможно конвертировать тип 'TrendFbCursor( visutrendstorageaccess , 3.5.5.0 ( system ))' в тип 'ICursor(caa storage, 3.5.4.0 (caa technical workgroup))'
[ ERROR ] visutrendstorageaccess , 3.5.5.0 ( system ): RowDelete2 [TrendFbTable]: C0032: Невозможно конвертировать тип 'LINT' в тип 'DWORD'
[ ERROR ] visutrendstorageaccess , 3.5.5.0 ( system ): RowDelete2 [TrendFbTable]: C0032: Невозможно конвертировать тип 'LINT' в тип 'DWORD'
[ ERROR ] visutrendstorageaccess , 3.5.5.0 ( system ): RowSelect [TrendFbTable]: C0032: Невозможно конвертировать тип ' TrendFbRow ( visutrendstorageaccess , 3.5.5.0 ( system ))' в тип 'IRow(caa storage, 3.5.4.0 (caa technical workgroup))
........
Компиляция завершена -- 44 ошибок, 3 предупреждений
Компиляция завершена -- 44 ошибок, 3 предупреждений : загрузка невозможна!

Подскажите пожалуйста в чём проблема:(

Евгений Кислов
16.01.2019, 17:11
В VISU был выбран элемент "Тренд". Codesys v3.5 sp5.
Вставляю, привязываю переменную, но при компиляции выдаются ошибки
[ ERROR ] visutrendstorageaccess , 3.5.5.0 ( system ): TrendFbTable: C0086 : Не найдено определения для интерфейса ' STO .ITable2'
[ ERROR ] visutrendstorageaccess , 3.5.5.0 ( system ): TrendFbRow : C0086 : Не найдено определения для интерфейса ' STO .IRow2'
[ ERROR ] visutrendstorageaccess , 3.5.5.0 ( system ): TrendFbCursor: C0086 : Не найдено определения для интерфейса 'STO.ICursor2'
[ ERROR ] visutrendstorageaccess , 3.5.5.0 ( system ): TableOpen [TrendFbStorage]: C0032: Невозможно конвертировать тип 'TrendFbTable( visutrendstorageaccess , 3.5.5.0 ( system ))' в тип 'ITable(caa storage, 3.5.4.0 (caa technical workgroup))'
[ ERROR ] visutrendstorageaccess , 3.5.5.0 ( system ): TableOpen [TrendFbStorage]: C0032: Невозможно конвертировать тип 'TrendFbTable( visutrendstorageaccess , 3.5.5.0 ( system ))' в тип 'ITable(caa storage, 3.5.4.0 (caa technical workgroup))'
[ ERROR ] visutrendstorageaccess , 3.5.5.0 ( system ): CursorOpen [TrendFbTable]: C0032: Невозможно конвертировать тип 'TrendFbCursor( visutrendstorageaccess , 3.5.5.0 ( system ))' в тип 'ICursor(caa storage, 3.5.4.0 (caa technical workgroup))'
[ ERROR ] visutrendstorageaccess , 3.5.5.0 ( system ): RowDelete2 [TrendFbTable]: C0032: Невозможно конвертировать тип 'LINT' в тип 'DWORD'
[ ERROR ] visutrendstorageaccess , 3.5.5.0 ( system ): RowDelete2 [TrendFbTable]: C0032: Невозможно конвертировать тип 'LINT' в тип 'DWORD'
[ ERROR ] visutrendstorageaccess , 3.5.5.0 ( system ): RowSelect [TrendFbTable]: C0032: Невозможно конвертировать тип ' TrendFbRow ( visutrendstorageaccess , 3.5.5.0 ( system ))' в тип 'IRow(caa storage, 3.5.4.0 (caa technical workgroup))
........
Компиляция завершена -- 44 ошибок, 3 предупреждений
Компиляция завершена -- 44 ошибок, 3 предупреждений : загрузка невозможна!

Подскажите пожалуйста в чём проблема:(

Тренды поддержаны только на контроллерах СПК1хх [М01], которые программируются в CODESYS V3.5 SP11 Patch 5.

Евгений Кислов
16.01.2019, 17:13
Здравствуйте.
СПК 105
Библиотека SPK_Tools, 1.3.13 (Owen)
Функциональный блок Real_Time_Clock
с выхода Hour (UINT) (Текущий час) выдаёт неправильное время. Может правильное выдать, может не правильное.
Подхожу, как то, к СПК в 11.55, а на экран выводится 8.55. Подождал пять минут, переменная часов не экране изменилась с восьми на девять.
Минуты идут правильно.
Лезу в сервисное меню - там всё правильно.
Перезагружаю СПК - всё работает.
СПК у меня считает время работы пяти станков за смену (и ещё управляет скоростью насосов охлаждения одного из них).
Подскажите, были ли у кого подобные проблемы?
Как можно решить эту проблему?

Библиотека не рекомендуется к использованию как устаревшая и содержащая ошибки.
Попробуйте получать системное время таким способом:
https://ftp.owen.ru/CoDeSys3/11_Documentation/01_SPK/SPK_SystemTime_v.1.1.pdf

Если ситуация не изменится - необходимо обновить прошивку до актуальной и если в проекте используется обмен по RS - желательно поднять скорость до 115200.

i`m
16.01.2019, 17:19
Благодарю Вас за скорую помощь. И всё же позвольте мне уточнить для себя...
Если у меня ПЛК СПК 110, то тренды я не выведу даже используя среду CODESYS V3.5 SP11 Patch 5?
Был бы Вам бесконечно признателен за ещё один ваш, очень важный для меня, ответ.

Евгений Кислов
16.01.2019, 17:22
Если у вас модель из старой линейки (без Ethernet) - то тренды никак не вывести.

i`m
16.01.2019, 17:42
Если у вас модель из старой линейки (без Ethernet) - то тренды никак не вывести.

Как раз такой..:(. Благодарю Вас за помощь, бился три дня над проблемой.

dimka_pro
18.01.2019, 13:22
Добрый день.
Не могу добавить "Список текстов"
https://cloud.mail.ru/public/B2Zy/JumqANqhN

Евгений Кислов
18.01.2019, 13:35
Добрый день.
Не могу добавить "Список текстов"
https://cloud.mail.ru/public/B2Zy/JumqANqhN

Добрый день.
См. здесь п. 8.2:
https://ftp.owen.ru/CoDeSys3/11_Documentation/01_SPK/SPK_FAQ_v.1.3.pdf

dimka_pro
18.01.2019, 13:40
Добрый день.
См. здесь п. 8.2:
https://ftp.owen.ru/CoDeSys3/11_Documentation/01_SPK/SPK_FAQ_v.1.3.pdf
Благодарю!

RV9WFJ
19.01.2019, 19:49
Я ранее уже писал, что GateWay CS 3.5 SP11 Path 5 не связывается с контроллерами СПК207 если в поле контроллера ввести IP адрес. (CS 3.5 SP5 Path 5 это делал без проблем). Тогда я все списал на разницу версий GateWay и RunTime контроллера. Но проблема оказывается намного глубже. Новый GateWay через IP и с контроллерами СПК1хх М01 не связывается по IP если контроллер в другой подсети. При этом маршрут на него настроен, Ping идет. Если же контроллер в той же подсети то GateWay работает.

Евгений Кислов
19.01.2019, 20:15
Новый GateWay через IP и с контроллерами СПК1хх М01 не связывается по IP если контроллер в другой подсети

У меня, например, связывается:

40820

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

RV9WFJ
20.01.2019, 16:32
Весь день сегодня просидел пытаясь подключиться через разные компьютеры, по разному пробрасывая маршрут - все бесполезно. Потом я стал процесс наблюдать в Wireshark и у меня создалось ощущение, что дело или в таймауте или новый GateWay немного другой запрос отправляет который умирает раньше. Результат один GateWay 3.5 SP5 цепляется даже к СПК1хх М01 а GatWay 3.5 SP11 не цепляется ни к чему если соединение через 3G. Готов предоставить вам доступ в рабочее время.

trejer
24.01.2019, 17:57
Библиотека не рекомендуется к использованию как устаревшая и содержащая ошибки.
Попробуйте получать системное время таким способом:
https://ftp.owen.ru/CoDeSys3/11_Documentation/01_SPK/SPK_SystemTime_v.1.1.pdf

Если ситуация не изменится - необходимо обновить прошивку до актуальной и если в проекте используется обмен по RS - желательно поднять скорость до 115200.

Здравствуйте Евгений.
Использовал библиотеку рекомендованную Вами.
Не помогло. Реакция та же. При чём, при считывании в переменный и при считывании на прямую
визуализацией реакция одинакова (данные одинаковы, изменяются, но не совпадают с реальным

временем).
Повысил прошивку с 3.947 на 5.482, (слегка упростил проект) пока всё работает (сутки).
(Неделю буду тестировать.)
В сети (Mod Bus) - два частотника, МВ110-8А, два теплосчётчика ВЗЛЕТ ТСР-К.
Не могу я повысить скорость сети выше 4800 (из за этих теплосчётчиков).
Ещё у меня архив пишется на флешку.

Нельзя ли уточнить, чем (или как) скорость сети может помешать чтению системного времени?
Не подскажите, что за функция такая MOVE?
Я её скопировал из примера, а что это, не пойму.

RV9WFJ
25.01.2019, 07:26
Здравствуйте Евгений.
Повысил прошивку с 3.947 на 5.482, (слегка упростил проект) пока всё работает (сутки).
(Неделю буду тестировать.)
В сети (Mod Bus) - два частотника, МВ110-8А, два теплосчётчика ВЗЛЕТ ТСР-К.
Не могу я повысить скорость сети выше 4800 (из за этих теплосчётчиков).
Странно, что опрос у вас вообще работает, официально СПК207 не поддерживает скорость ниже 9600.

Евгений Кислов
25.01.2019, 07:39
А вы хотя бы раз устанавливали корректное время в Конфигураторе СПК?


Нельзя ли уточнить, чем (или как) скорость сети может помешать чтению системного времени?

Чтение, конечно, не помешает. Мы неоднократно наблюдали ситуации, когда у СПК наблюдалось значительное отставание времени (например, за сутки время могло "убежать" за несколько часов от реального).
Эта проблема редуцировалась увеличением скорости обмена до 115200. Причины я прокомментировать не могу, но, по всей видимости, они были связаны с тем, что время из микросхемы RTC вычитывалось только при старте контроллера, и дальше CODESYS работал с системными часами Linux, которые могли отставать в ряде случаев. В более поздних прошивках добавили регулярную синхронизацию часов Linux и RTC.
Но у вас, насколько я понял, другая ситуация.


Не подскажите, что за функция такая MOVE?

Это оператор присвоения.
a--->MOVE--->b эквивалентно b:= a;

trejer
25.01.2019, 11:18
Странно, что опрос у вас вообще работает, официально СПК207 не поддерживает скорость ниже 9600.

Здравствуйте RV9WFJ.
Спасибо. Буду аккуратнее в подборе оборудования.
У меня СПК105. Всё пока работает правильно.
У новых 107 и 110 тоже есть скорость 4800 (я по документации посмотрел).
Если не стане - вот это будет проблема.

Евгений Кислов
25.01.2019, 11:24
4800 работало всегда. Раньше не работало все, что ниже (1200, 2400). На новых СПК1хх поддержаны и низкие скорости.

trejer
25.01.2019, 11:30
Я нашёл инструкцию на СПК207.
Там написано - скорость от 1200 до 115200

Евгений Кислов
25.01.2019, 11:39
Инструкции не правились, так как прибор уже снимался с продажи.
Ну и строго говоря - низкие скорости были доступны, просто требовалось настраивать их через Linux, а не CODESYS.

trejer
25.01.2019, 11:58
Инструкции не правились, так как прибор уже снимался с продажи.
Ну и строго говоря - низкие скорости были доступны, просто требовалось настраивать их через Linux, а не CODESYS.

Спасибо Евгений.
У меня всё работает, надеюсь будет работать, когда куплю новый СПК107 и разделю ModBus на две сети, с низкой и высокой скоростью.
А эти настройки через Linux, доступны мне как пользователю? Где почитать?

Евгений Кислов
25.01.2019, 12:05
Спасибо Евгений.
У меня всё работает, надеюсь будет работать, когда куплю новый СПК107 и разделю ModBus на две сети, с низкой и высокой скоростью.
А эти настройки через Linux, доступны мне как пользователю? Где почитать?

Они вам действительно нужны? Вы планируете опрашивать какие-то приборы на скорости 1200 или 2400?

trejer
25.01.2019, 13:11
Они вам действительно нужны? Вы планируете опрашивать какие-то приборы на скорости 1200 или 2400?

Для имеющегося оборудования не нужны. Для подбора нового - буду ориентироваться на минимальную скорость 4800.
Для меня это, как новый МИР. Я никогда не влезал в операционную систему СПК.
Можно сказать тема закрыта, пока.

dimka_pro
29.01.2019, 11:10
Добрый день.
Есть возможность русскоязычного ввода на СПК110?
40982

Евгений Кислов
29.01.2019, 11:15
Добрый день.
Есть возможность русскоязычного ввода на СПК110?
40982

В 3.5 SP5 Patch 5 простых способов для русскоязычного ввода нет.

dimka_pro
29.01.2019, 11:36
В 3.5 SP5 Patch 5 простых способов для русскоязычного ввода нет.

А какие есть варианты? Русская раскладка очень нужна.

Евгений Кислов
29.01.2019, 11:42
А какие есть варианты? Русская раскладка очень нужна.

Делать русскоязычную клавиатуру самому.
Или обновиться, например, до 3.5 SP7 Patch4 - в ней будет работать русскоязычная клавиатура от ПК Пролог.
http://www.owen.ru/forum/showthread.php?t=22038&page=41&p=214830&viewfull=1#post214830

dimka_pro
29.01.2019, 11:46
Делать русскоязычную клавиатуру самому.
Или обновиться, например, до 3.5 SP7 Patch4 - в ней будет работать русскоязычная клавиатура от ПК Пролог.
http://www.owen.ru/forum/showthread.php?t=22038&page=41&p=214830&viewfull=1#post214830

Не подскажете, где скачать СП7? Тут не нашел: https://www.owen.ru/product/codesys_v3

Евгений Кислов
29.01.2019, 11:48
https://ftp.owen.ru/CoDeSys3/01_CODESYS/CODESYS_3.5_SP7_Patch4.zip

dimka_pro
29.01.2019, 12:04
https://ftp.owen.ru/CoDeSys3/01_CODESYS/CODESYS_3.5_SP7_Patch4.zip

Спасибо. С библиотеками, таргетами и т.д. проблем не будет?

Евгений Кислов
29.01.2019, 12:13
Спасибо. С библиотеками, таргетами и т.д. проблем не будет?

При использовании корректных версий - нет.

ilinsarov
01.02.2019, 23:34
Здравствуйте! Подскажите пожалуйста, скачал Codesys 3.5 c сайта овен. Дополнение не устанавливал. Вопрос: можно ли с эмулировать работу Modbus? В codesys: device controle win v3, modbus com настроил как по книге Овен, виртуальный эмулятор Modbus slave (вот тут проблемы) нашел, настроил, вроде подключается в сеть ПК, но в Codesys Modbus slave не запущен, в чем проблема или так эмитировать нельзя? Может есть какой-то другой способ без физических устройств?

ilinsarov
03.02.2019, 00:17
Здравствуйте! Подскажите пожалуйста, скачал Codesys 3.5 c сайта овен. Дополнение не устанавливал. Вопрос: можно ли с эмулировать работу Modbus? В codesys: device controle win v3, modbus com настроил как по книге Овен, виртуальный эмулятор Modbus slave (вот тут проблемы) нашел, настроил, вроде подключается в сеть ПК, но в Codesys Modbus slave не запущен, в чем проблема или так эмитировать нельзя? Может есть какой-то другой способ без физических устройств?

Отвечу сам себе, можно и все работает. Как говориться: приятно поговорить с умными людьми.

Zerling
06.02.2019, 04:22
Здравствуйте!
На работе поставили ТЗ - овладеть программированием контроллеров. Пришлось разбираться с новой темой.

Вот только не получается на поставить CDS на другой комп - возникает ошибка с библ IoDrvModbus, хотя на другой машине все норм (поставил ее коллега полтора года назад и все работает - CDS3.5\sp7\4; говорит, что проблем не возникало).

Пробовал CDS3.5\sp7\4 - не работает должнымм образом то Mx110 assistent не появляется, то IoDrvModbus "радует", танцы вокруг библ и репо не помогли.
Переставил видну, сейчас CDS V3.5 SP11 Patch 5 Hotfix 4 -- те же грабли.
сейчас удаляю кдс и буду искать следы по системе.

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

upd
проект делаю под spk1xx(на растерзание дали старый спк); по невнимательности выбрав spk1xx[M01] и написав пробный скетч радовался отсутствию ошибок( естественно пока не обнаружил неверный таргет). на этой неделе должны привезти модули и новый спк, так что времени разбираться у меня крайне мало(((

Евгений Кислов
06.02.2019, 06:44
Добрый день.
Посмотрите, пожалуйста, учебное видео:
https://www.youtube.com/watch?v=gnO555SF5kA&list=PL2EcVEe6E9SAdn1IY4zPFn1AxcDpUfIWQ

Zerling
06.02.2019, 06:59
Я с этого видео и начинал...
собственно и пытаю кдс по этому скетчу41067

Евгений Кислов
06.02.2019, 07:04
У вас версии Modbus-компонентов остались от SP11.
На моменте 4:50 из этого видео
https://www.youtube.com/watch?v=0m5vbe7z6Ek&list=PL2EcVEe6E9SAdn1IY4zPFn1AxcDpUfIWQ&index=3

вы должны поставить галочки Показывать все версии и Показывать устаревшие версии, чтобы выбрать подходящие версии компонентов (Modbus COM 3.4.0.0, Modbus Master 3.5.5.0, Modbus Slave 3.5.4.x).

Zerling
06.02.2019, 07:50
41068
удалил mx110drivers3.5.11.4;

очень смущает, что в имеющейся версии в вкладке MX110_driver_соотнесение вхдв и выходов нет "привязки к выводам"
ЧЯДНТ?!

vinam
06.02.2019, 07:56
Здравствуйте.
Обзавелся СПК107[M01].
Соответственно стал устанавливать CODESYS V3.5 SP11 Patch 5.
При установке выскочила ошибка с проблемой профиля (см. скрины) и просьбой отключить инструмент, выбрал -"Нет".
Установил.
При запуске CODESYS постоянно выскакивает эта же ошибка, нажимаешь "Да" - CODESYS закрывается, нажимаешь "Нет" - загружается, но не получается найти СПК хотя сам СПК пингуется отлично (опыт работы CODESYS V3.5 SP5 имеется).
Думал CODESYS стал "криво", удалил и 2 и 3, почистил Windows, установил заново - такая же фигня...
41069
41070
Что я сделал не правильно?

Евгений Кислов
06.02.2019, 08:00
41068
удалил mx110drivers3.5.11.4;

очень смущает, что в имеющейся версии в вкладке MX110_driver_соотнесение вхдв и выходов нет "привязки к выводам"
ЧЯДНТ?!

Вы шаблоны не той версии поставили.
Вот у этих вкладка есть:
https://ftp.owen.ru/CoDeSys3/04_Library/04_Components/Mx110Drivers_v3.5.4.13.package

Евгений Кислов
06.02.2019, 08:05
Здравствуйте.
Обзавелся СПК107[M01].
Соответственно стал устанавливать CODESYS V3.5 SP11 Patch 5.
При установке выскочила ошибка с проблемой профиля (см. скрины) и просьбой отключить инструмент, выбрал -"Нет".
Установил.
При запуске CODESYS постоянно выскакивает эта же ошибка, нажимаешь "Да" - CODESYS закрывается, нажимаешь "Нет" - загружается, но не получается найти СПК хотя сам СПК пингуется отлично (опыт работы CODESYS V3.5 SP5 имеется).
Думал CODESYS стал "криво", удалил и 2 и 3, почистил Windows, установил заново - такая же фигня...
41069
41070
Что я сделал не правильно?

Добрый день.
Если есть возможность - свяжитесь со мной по skype, пожалуйста.
Если нет - напишите в support@owen.ru

Zerling
06.02.2019, 08:48
[ERROR] Без имени9: Менеджер библиотек [Device: Plc Logic: Application]: Невозможно открыть библиотеку 'IECStringUtils, 3.5.5.0 (System)'. (Причина: Библиотека 'IECStringUtils, 3.5.5.0 (System)' не установлена в системе.)

Евгений Кислов
06.02.2019, 09:03
Вот нужная библиотека.
https://dropmefiles.com/VZOMt

Zerling
06.02.2019, 09:49
я, несколько потраченных дней и куча убитых нейронов хотят выразить большую БЛАГОДАРНОСТЬ!
скетч скомпилировался и запустился в спк)
З.Ы. академический интерес - почему кдс не мог найти эту библиотеку? она должна идти с каким-то пакетом?..

Евгений Кислов
06.02.2019, 09:50
я, несколько потраченных дней и куча убитых нейронов хотят выразить большую БЛАГОДАРНОСТЬ!
скетч скомпилировался и запустился в спк)
З.Ы. академический интерес - почему кдс не мог найти эту библиотеку? она должна идти с каким-то пакетом?..

Она устанавливается при установке CODESYS V3.5 SP5 Patch 5.
Для "старых" СПК1хх (без Ethernet) рекомендуется именно эта версия среды.

yurya
10.02.2019, 12:15
Добрый день.
Проект создавался для СПК 110, CDS 3.5.5.5. Новые СПК 110 программируются в CDS 3.5.11.5. Вопросы:
1. Нужно ли перед установкой CDS 3.5.11.5 удалить CDS 3.5.5.5?
2. Как проект, созданный в CDS 3.5.5.5, перекомпилировать для CDS 3.5.11.5?

Евгений Кислов
10.02.2019, 12:22
Добрый день.
Проект создавался для СПК 110, CDS 3.5.5.5. Новые СПК 110 программируются в CDS 3.5.11.5. Вопросы:
1. Нужно ли перед установкой CDS 3.5.11.5 удалить CDS 3.5.5.5?
2. Как проект, созданный в CDS 3.5.5.5, перекомпилировать для CDS 3.5.11.5?

Добрый день.
1. Нет. Достаточно поставить 3.5.11.5 в отдельную папку.
2. См. документацию: https://ftp.owen.ru/CoDeSys3/11_Documentation/03_3.5.11.5/CDSv3.5_ProjectAdaptation_v2.0.pdf

gorunov
17.02.2019, 23:58
Всем доброй ночи.

в codesys 2.3 был конвектор real_to_word , в версии codesys 3.5 не работает.
как перевести значение real в word ?
За ранее спасибо за ответ

krollcbas
18.02.2019, 02:45
FUNCTION_BLOCK REAL_AS_WORD
VAR_INPUT
a:REAL;
END_VAR
VAR_OUTPUT
W1: WORD;
W2: WORD;
END_VAR
VAR
pt: POINTER TO WORD;
END_VAR


pt:=ADR(a);
W1:=pt^;
pt:=pt+2;
W2:=pt^;

capzap
18.02.2019, 07:55
может нужно wValue := UDIN_TO_WORD(REAL_TO_UDINT(rValue))

gorunov
18.02.2019, 08:30
FUNCTION_BLOCK REAL_AS_WORD
VAR_INPUT
a:REAL;
END_VAR
VAR_OUTPUT
W1: WORD;
W2: WORD;
END_VAR
VAR
pt: POINTER TO WORD;
END_VAR


pt:=ADR(a);
W1:=pt^;
pt:=pt+2;
W2:=pt^;


может нужно wValue := UDIN_TO_WORD(REAL_TO_UDINT(rValue))

большое спасибо )

VladimirVRN
22.02.2019, 12:31
Доброго времени суток.
СПК110[M01]
CodeSys v3.5 SP11 Patch5 32bit.
Компиляция проекта проходит.
при типизации кода происходит ошибка:
[ERROR] pr2_v002: Network [Device]: Network: An item with the same key has already been added.
[ERROR] pr2_v002: Network [Device]: Network: Адрес %QB742 уже используется
[ERROR] pr2_v002: Network [Device]: Network: Адрес %QB745 уже используется
[ERROR] pr2_v002: Network [Device]: Network: Адрес %QB749 уже используется
[ERROR] pr2_v002: Network [Device]: Network: Адрес %QB753 уже используется

В проекте переменные объекта Network не используются.
Куда копать подскажите пожалуйста.

Евгений Кислов
22.02.2019, 12:55
Добрый день.
Архив проекта выложите, пожалуйста (Файл - Архив проекта).

VladimirVRN
22.02.2019, 15:45
Если уменьшить кол-во устройств RS485 то ошибка пропадает.

Евгений Кислов
22.02.2019, 18:18
Если уменьшить кол-во устройств RS485 то ошибка пропадает.

Архив проекта выложите, пожалуйста (Файл - Архив проекта).

VladimirVRN
24.02.2019, 13:42
Вот архив.
41398

Ильнур Гибадуллин
24.02.2019, 15:49
Вот архив.
41398

Здравствуйте!

Вам следует зайти в узел Screen и очистить адреса, в которых стоит значок "M". Очистка происходит следующим образом: двойной щелчок ЛКМ по адресу - удалить все символы (оставить поле пустым) - нажать Enter. Аналогично для второго параметра.

41400

VladimirVRN
24.02.2019, 16:21
Спасибо. Все заработало.
А как вы это определили? Каков вообще алгоритм поиска подобных ошибок?
Не обращаться же каждый раз на форум? Я скоро буду на объекте, где интернета нет!

Ильнур Гибадуллин
25.02.2019, 09:41
Спасибо. Все заработало.
А как вы это определили? Каков вообще алгоритм поиска подобных ошибок?
Не обращаться же каждый раз на форум? Я скоро буду на объекте, где интернета нет!

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

VladimirVRN
25.02.2019, 15:01
Спасибо понятно. Скорее всего случайно получилось когда экспериментировал с яркостью дисплея. Специально ручную адресацию каналов не вводил. Про переменные полностью согласен.

жекон
28.02.2019, 07:21
СПК110 как сделать очистку истории тревог?

RV9WFJ
28.02.2019, 07:32
СПК110 как сделать очистку истории тревог?Они хранятся в файле SQLLite можно просто этот файл удалять, программа вполне адекватно в SP5 на это реагировала и новый создавала.

жекон
28.02.2019, 10:05
С Люнексом не разу не работал, как это примерно выглядит

Салихов Ильдар
19.03.2019, 13:41
Существует ли библиотека, позволяющая получить TIMESTAMP (DT) за один цикл? CAA DTUtil знаю, но к сожалению он выдает результат не сразу. Или как можно получить TIMESTAMP (DT) в первом цикле ПЛК?

Евгений Кислов
19.03.2019, 13:46
Вам поможет библиотека SysTimeRtc

Салихов Ильдар
19.03.2019, 15:13
Вам поможет библиотека SysTimeRtc

Спасибо, работает. А какие плюсы тогда у DTUtil ?

Евгений Кислов
19.03.2019, 15:19
Спасибо, работает. А какие плюсы тогда у DTUtil ?

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

Салихов Ильдар
20.03.2019, 12:16
Кто-нибудь может показать пример кода блокирующей записи строки в файл? Какую библиотеку можно использовать?

Евгений Кислов
20.03.2019, 12:19
Если почему-то нужна именно блокирующая запись - то см. библиотеку SysFile.
Вот упрощенный пример:
http://www.owen.ru/forum/showthread.php?t=23389&p=197459&viewfull=1#post197459

yurya
20.03.2019, 15:38
Добрый день.
Для штатной установки CODESYS 3.5.11.5 необходим интернет?

Ильнур Гибадуллин
20.03.2019, 15:51
Добрый день.
Для штатной установки CODESYS 3.5.11.5 необходим интернет?

Добрый день!

Нет.

Салихов Ильдар
22.03.2019, 10:01
Может, кто подскажет?
ФБ с RETAIN переменными описанным в проекте работает без замечаний (переменные сохраняются). Потом поместил ее в библиотеку, вызываю в программе соответственно библиотечный экземпляр, а RETAIN переменные не сохраняются... Что то упустил?

Евгений Кислов
22.03.2019, 10:50
Не уверен, должно ли это вообще работать, но в любом случае это плохой подход - потому что если хотя бы одна переменная ФБ является RETAIN, то в RETAIN-память помещаются ВСЕ переменные каждого экземпляра ФБ (при этом энергонезависимость фактически наблюдается лишь у переменных с идентификатором RETAIN). Энергонезависимая память при таком подходе может закончиться очень быстро.

В большинстве случаев разумно забирать с выходов ФБ те данные, которые реально надо сохранять, и копировать их в RETAIN-переменные программы или GVL.

KyJIeP
22.03.2019, 10:55
Добрый день. Не могу найти пример реализации счётчика наработки для Codesys3.5

Салихов Ильдар
22.03.2019, 10:58
Евгений,спасибо за ответ. Значит буду искать другое решение.

Салихов Ильдар
22.03.2019, 11:05
Добрый день. Не могу найти пример реализации счётчика наработки для Codesys3.5

у меня вот так реализовано. на CFC
41853

// структура для хранения данных типа МОТОЧАСЫ
TYPE MOTOHOURS_STRUCT :
STRUCT
second: USINT;
minute: USINT;
hours: WORD;
END_STRUCT
END_TYPE

САН12
24.03.2019, 12:42
Добрый день. Все сдаюсь, полдня брожу по форуму, сайтам и т.д. подскажите где можно почитать...
Задача:С помощь эмулятора, без железа(СПК1хх) пока, проверить возможность работы по RS485 Modbus с весовым терминалом.
Задача похожа на #1860 ilinsarov "В codesys: device controle win v3, modbus com настроил как по книге Овен" где эта Волшебная книга?

Евгений Кислов
24.03.2019, 13:08
Добрый день.
Речь, вероятно, шла об этом:
https://ftp.owen.ru/CoDeSys3/11_Documentation/01_SPK/SPK_Modbus_v.1.1.pdf (п. 4)

Документ рассчитан на СПК, но разница с виртуальным контроллером - только в выборе таргета и номера порта.

САН12
24.03.2019, 14:03
Спасибо, что откликнулись. Этот док я читал. Как я понял из #1860 человек решил задачу в режиме симуляции, а виртуальный контроллер это несколько иное, кстати если можно дайте ссылку на доки или видео по этой теме. Как я себе представляю нужно как то связать Modbas_COM в Device с физическим COM ПК (например Com4 ) В качестве эксперимента взял ТРМ212 в режиме Modbus. Физическую связь проверил в режиме Овен с конфигуратором.

Евгений Кислов
24.03.2019, 15:24
Спасибо, что откликнулись. Этот док я читал. Как я понял из #1860 человек решил задачу в режиме симуляции, а виртуальный контроллер это несколько иное, кстати если можно дайте ссылку на доки или видео по этой теме. Как я себе представляю нужно как то связать Modbas_COM в Device с физическим COM ПК (например Com4 ) В качестве эксперимента взял ТРМ212 в режиме Modbus. Физическую связь проверил в режиме Овен с конфигуратором.

В симуляции обмен не работает в принципе. В остальном все верно - в Modbus COM нужно указать номер COM-порта ПК.
На тему запуска виртуального контроллера - например, вот:
https://factoryio.com/docs/tutorials/codesys/sample-codesys-mb/

Vass0_81
25.03.2019, 08:47
Скачал архив программы с СПК107. При открытии его программой CODESYS V3.5 SP11 patch 5 пишет что не хватает библиотек. Подскажите где взять недостающие библиотеки. 419014190241903

Евгений Кислов
25.03.2019, 09:11
Скачал архив программы с СПК107. При открытии его программой CODESYS V3.5 SP11 patch 5 пишет что не хватает библиотек. Подскажите где взять недостающие библиотеки. 419014190241903

Добрый день.

1. Старые СПК107 (без Ethernet) рекомендуется программировать в CODESYS V3.5 SP5 Patch 5 (https://ftp.owen.ru/CoDeSys3/01_CODESYS/CODESYS_3.5_SP5_Patch5.zip).
2. Вам нужно установить архив репозитория (https://www.owen.ru/upl/PO/Codesys3/CODESYS_Repository_Archive_V3.5_SP4.zip).
3. На скриншоте вверху справа кнопка Загрузка отсутствующих библиотек - она тоже может помочь.

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

Vass0_81
25.03.2019, 10:44
Добрый день.

1. Старые СПК107 (без Ethernet) рекомендуется программировать в CODESYS V3.5 SP5 Patch 5 (https://ftp.owen.ru/CoDeSys3/01_CODESYS/CODESYS_3.5_SP5_Patch5.zip).
2. Вам нужно установить архив репозитория (https://www.owen.ru/upl/PO/Codesys3/CODESYS_Repository_Archive_V3.5_SP4.zip).
3. На скриншоте вверху справа кнопка Загрузка отсутствующих библиотек - она тоже может помочь.

CODESYS_Repository_Archive_V3.5_SP4 установил, не помогло.

Евгений Кислов
25.03.2019, 10:55
CODESYS_Repository_Archive_V3.5_SP4 установил, не помогло.

Тогда п. 3.

Vass0_81
25.03.2019, 11:35
Поделитесь у кого есть CODESYS V3.5 SP7 patch 4.

Евгений Кислов
25.03.2019, 11:42
Поделитесь у кого есть CODESYS V3.5 SP7 patch 4.

https://ftp.owen.ru/CoDeSys3/01_CODESYS/CODESYS_3.5_SP7_Patch4.zip

Vass0_81
25.03.2019, 11:43
https://ftp.owen.ru/CoDeSys3/01_CODESYS/CODESYS_3.5_SP7_Patch4.zip

Огромное спасибо.

Vass0_81
25.03.2019, 11:50
Тогда п. 3. При открытии проекта пишет, что проект был сделан в другой версии (см. вложение). Попробую установить codesys 3.5 sp7 patch 4 и в ней открыть программу. Может поможет. 41904

Евгений Кислов
25.03.2019, 11:51
Да, должно помочь.

Vass0_81
25.03.2019, 12:41
Да, должно помочь. Программа открылась, но опять куча ошибок. Как с этим бороться? В каком направлении двигаться? 41906

Евгений Кислов
25.03.2019, 12:47
Для начала таргет-файлы выбрать из установленных (ПКМ на UZV1 - Обновить устройство - выбрать нужный таргет).

Vass0_81
26.03.2019, 12:58
Для начала таргет-файлы выбрать из установленных (ПКМ на UZV1 - Обновить устройство - выбрать нужный таргет).

Обновил таргет, выбрал 3.5.4.26. Ошибок стало намного меньше. Дальше куда двигаться? 419194192041921

Евгений Кислов
26.03.2019, 13:07
Скриншот из Менеджера библиотек еще выложите, пожалуйста.

Vass0_81
26.03.2019, 14:23
Скрины менеджера библиотек https://cloud.mail.ru/public/9C6t/EAMoxMJS8

Евгений Кислов
26.03.2019, 14:25
Это не Менеджер библиотек, это панель компиляции.
Если есть возможность - напишите мне в Skype, так получится быстрее решить проблему.

Vass0_81
26.03.2019, 14:30
К сожалению Skype нет. Надо Репозиторий библиотек?

Евгений Кислов
26.03.2019, 14:51
Перевыложите первый скриншот из этого поста для текущего проекта:
https://www.owen.ru/forum/showthread.php?t=20069&p=301909&viewfull=1#post301909

Vass0_81
26.03.2019, 15:02
Вот https://cloud.mail.ru/public/DxiE/MzG64NWZY

Евгений Кислов
26.03.2019, 15:07
Вроде все нормально - попробуйте проект в контроллер загрузить.
Ошибки возможно сохранились от предыдущих компиляция - попробуйте в меню Компиляция выполнить команды Очистить все и Перекомпиляция.

Vass0_81
26.03.2019, 16:00
Спасибо за помощь. Проект буду грузить в контроллер в субботу или воскресенье. По результатам отпишусь. И еще один вопрос, если не был создан исходный код то программу нельзя выгрузить? Дело в том, что есть СПК107 и необходимо поправить мнемосхему (название насосов поменять, пару труб добавить и т.п). Не хочется из-за пару надписей и труб переписывать программу.

Евгений Кислов
26.03.2019, 16:42
Да, если исходники не были загружены специальной командой - то выгрузить их не получится.
Лучше связаться с автором проекта по этому поводу.

Vass0_81
27.03.2019, 09:52
Плохо. Нет возможности связаться с автором проекта. Координаты утеряны.

Forester83
28.03.2019, 12:51
Добрый день . Прошу помочь знающих. СПК 107. Нужно из программного кода включать/отключать обмен с Slave- устройствами на порту. протокол Modbus RTU. Вроде где-то на форуме это уже обсуждали, кто знает , подскажите куда смотреть . Спасибо.

Евгений Кислов
28.03.2019, 12:56
Добрый день . Прошу помочь знающих. СПК 107. Нужно из программного кода включать/отключать обмен с Slave- устройствами на порту. протокол Modbus RTU. Вроде где-то на форуме это уже обсуждали, кто знает , подскажите куда смотреть . Спасибо.

https://www.owen.ru/forum/showthread.php?t=23897&p=279220&viewfull=1#post279220

Forester83
28.03.2019, 13:00
Спасибо за оперативный ответ

flame
29.03.2019, 16:36
Как отслеживать выполнение программы в функциональных блоках, если их несколько? Интересует функция, только не знаю как правильно пишется, как-то так "ailprog". Как правильно её писать и как использовать?

Евгений Кислов
29.03.2019, 17:02
Как отслеживать выполнение программы в функциональных блоках, если их несколько? Интересует функция, только не знаю как правильно пишется, как-то так "ailprog". Как правильно её писать и как использовать?

Добрый день.
Пожалуйста, более подробно опишите, что именно вы имеете в виду.

flame
29.03.2019, 19:15
Чтобы при запуске программы я мог видеть значения рядом с переменными. Чтобы не в самом функциональном блоке, а в дополнительном окне.

Евгений Кислов
29.03.2019, 19:59
Если правильно понял вопрос: Вид - Просмотр - ввести имя экземпляра ФБ

flame
30.03.2019, 00:14
А как это сделать с помощью библиотеки? Я видел это делается, но не помню как. В объявлении писалось «***prog: ai**;» и потом в самом коде что-то. После этого что-то нажималось и появлялось окно где выбираешь какой экземляр функционального блока посмотреть. Может это была не библиотека, не могу сказать точнее. Это возможности самой программы, если и библиотека, то она не самодельная.

Евгений Кислов
30.03.2019, 07:43
"появлялось окно где выбираешь какой экземляр функционального блока посмотреть"

Для этого достаточно в процессе работы дважды нажать ЛКМ на имя ФБ в дереве проекта.

flame
30.03.2019, 12:56
А если фб несколько раз вызываешь и хочется посмотреть значения при первом вызове и при следующем?

ASo
30.03.2019, 13:07
Вам профилировщик нужен?

Евгений Кислов
30.03.2019, 13:26
Если ФБ в пределах цикла вызывается несколько раз - то, скорее всего, это алгоритмическая ошибка.
Исключение - если ФБ используется в роли функции с несколькими выходами, но тогда, как и обычные функции, он не будет доступен для мониторинга.

Vass0_81
30.03.2019, 20:19
Проект загрузил. Подскажи пожалуйста как выгрузить температуру из модуля МВ110-рН или где можно почитать про это. Датчик рабочий. 41993 И еще один вопрос, что может быть с модулем МВ110-2А. Подключаюсь к модулю, при помощи конфигуратора 110 все хорошо. Считывает и записывает данные. Хочу посмотреть что на входа приходит,41994 пишет отсутствует связь с АЦП.41994

Евгений Кислов
30.03.2019, 20:27
Насчет МВ110-рН - у вас значение выхода inpTemp никуда не записывается.
Насчет МВ110-2А - вам лучше написать на support@owen.ru по этому вопросу.

Vass0_81
30.03.2019, 23:37
inpTemp - это температурный вход модуля?

Евгений Кислов
31.03.2019, 08:07
inpTemp - это температурный вход модуля?

Да, inpTemp - это измеренное значение температуры.

Vass0_81
03.04.2019, 10:26
Да, inpTemp - это измеренное значение температуры.

А у модуля МВ110-2А аналоговые входа???

Евгений Кислов
03.04.2019, 11:26
Да, аналоговые.
https://www.owen.ru/product/moduli_analogovogo_vvoda_s_universal_nimi_vhodami_ s_interfejsom_rs_485/connection

При необходимости можно подключать сигналы от дискретных датчиков (сухой контакт).

Vass0_81
03.04.2019, 14:28
Да, аналоговые.
https://www.owen.ru/product/moduli_analogovogo_vvoda_s_universal_nimi_vhodami_ s_interfejsom_rs_485/connection

При необходимости можно подключать сигналы от дискретных датчиков (сухой контакт).

А какая команда на считывание входов?

Евгений Кислов
03.04.2019, 14:49
Вся информация есть в руководстве:
https://www.owen.ru/uploads/39/re_mv110-x.2a_m01__2628.pdf

42054

Vass0_81
04.04.2019, 07:12
При конвертировании выплыло предупреждение. На форуме почитал, там пишут что необходимо установить библиотеку, но ссылка на скачивание библиотеки не активна. 42064

Евгений Кислов
04.04.2019, 07:17
Установите репозиторий (ссылка в подписи).
И у вас переменная temp_water_te, видимо, не того типа (нужен REAL).

Vass0_81
04.04.2019, 08:33
Переменная temp_water_te: REAL; Установил CODESYS Repository Archive V3.5 SP4 не помогло.

Евгений Кислов
04.04.2019, 08:39
В skype мне напишите, пожалуйста.

Vass0_81
04.04.2019, 08:47
К сожалению Skype нет.

Евгений Кислов
04.04.2019, 08:48
К сожалению Skype нет.

Тогда установите TeamViewer (https://www.teamviewer.com/ru/) и пришлите на почту или в ЛС ID и пароль для подключения.

Vass0_81
04.04.2019, 09:04
Отправил по почте.

Gendos
04.04.2019, 18:16
Здравствуйте. Возник вопрос по управлению подсветкой СПК. Есть библиотека Touch_Activity , но у меня она почему-то работать не захотела.
Вот вопрос: где можно посмотреть адрес регистра, который отслеживает прикосновение к экрану?
железо: СПК107, последняя прошивка, CDS-3.5.7.4

Евгений Кислов
04.04.2019, 18:31
Здравствуйте. Возник вопрос по управлению подсветкой СПК. Есть библиотека Touch_Activity , но у меня она почему-то работать не захотела.
Вот вопрос: где можно посмотреть адрес регистра, который отслеживает прикосновение к экрану?
железо: СПК107, последняя прошивка, CDS-3.5.7.4

Используйте таргет-файл версии 3.5.4.26 - в нем есть узел Screen для работы с подсветкой:

https://ftp.owen.ru/CoDeSys3/03_Targets/Owen_Target_Install_3.5.4.26.zip
https://ftp.owen.ru/CoDeSys3/11_Documentation/01_SPK/SPK_Targets_v.1.3.pdf

Gendos
04.04.2019, 19:01
У меня таргет-файл версии 3.5.4.25, и в нем есть узел Screen, но нет переменной, через которую можно контролировать прикосновение к экрану.
И в этом случае использование в проекте переменной CURRENTVISU бесполезно.42087

Евгений Кислов
04.04.2019, 19:53
Там вся логика управления подсветкой уже реализована внутри, отслеживать касание вручную - не нужно.

Gendos
04.04.2019, 22:12
Это понятно, но там не совсем тот функционал, который мне нужен. Например, мне нужно чтоб по событию на экране поменялась визуализация и подсветка работала необходимое время - допустим 10 минут, а в обычном режиме она работает 1 минуту.
Если использовать средства из таргета блок Screen, то переключение визуализаций работает не очень хорошо.
А именно нужный экран надо "удерживать" постоянно в переменной CurrentVisu, в противном случае визуализация возвращается к той, которая была запущена ранее.
А если применить блок по работой с яркостью, то даже если работает штатная логика по работе с подсветкой, то после использования хоть раз штатная отключается и в дальнейшем СПК слушается только сам fb Brightness.

Евгений Кислов
05.04.2019, 06:25
Это понятно, но там не совсем тот функционал, который мне нужен. Например, мне нужно чтоб по событию на экране поменялась визуализация и подсветка работала необходимое время - допустим 10 минут, а в обычном режиме она работает 1 минуту.
Если использовать средства из таргета блок Screen, то переключение визуализаций работает не очень хорошо.
А именно нужный экран надо "удерживать" постоянно в переменной CurrentVisu, в противном случае визуализация возвращается к той, которая была запущена ранее.
А если применить блок по работой с яркостью, то даже если работает штатная логика по работе с подсветкой, то после использования хоть раз штатная отключается и в дальнейшем СПК слушается только сам fb Brightness.

Можно сделать так:

1. Использовать старую версию таргета без узла Screen:
https://ftp.owen.ru/CoDeSys3/03_Targets/Owen_Target_Install_3.5.4.20_v24.zip

2. Использовать библиотеку SysTargetVisu23 для обработки курсора. См. здесь п. 11.4.3:
https://ftp.owen.ru/CoDeSys3/11_Documentation/01_SPK/SPK_Visu_v.1.2.pdf

Dmitro
06.04.2019, 21:49
Есть СПК207 master на CDS3.5, который теряет связь со своими слейвами.
Как можно протоколировать (сохранять на флешку) его средствами ошибки связи? Какие переменные с отказами сохранять/анализировать?

На CDS2.3 все просто и понятно (lastaddress, lasterror), а на CDS3.5?
И уже заодно, если он будет допустим, сам слейвом, какие переменные анализировать?
Заранее спасибо

Евгений Кислов
06.04.2019, 21:53
Есть СПК207 master на CDS3.5, который теряет связь со своими слейвами.
Как можно протоколировать (сохранять на флешку) его средствами ошибки связи? Какие переменные с отказами сохранять/анализировать?

На CDS2.3 все просто и понятно (lastaddress, lasterror), а на CDS3.5?
И уже заодно, если он будет допустим, сам слейвом, какие переменные анализировать?
Заранее спасибо

См. тут п. 4.5:
https://ftp.owen.ru/CoDeSys3/11_Documentation/01_SPK/SPK_Modbus_v.1.1.pdf

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

Dmitro
07.04.2019, 12:23
См. тут п. 4.5:
https://ftp.owen.ru/CoDeSys3/11_Documentation/01_SPK/SPK_Modbus_v.1.1.pdf

Скажите пожалуйста, если я на низком уровне введу контроль четности и например 2 стоповых бита, а не один - это улучшит контроль ошибок?
А на Модбасе выберу например Modbus-ASCII вместо Modbus-RTU тоже теоретически должен стать лучше, т.к. отбрасываются все не ASCII-символы?
Заранее спасибо

Евгений Кислов
07.04.2019, 13:57
Сомневаюсь, что это что-то изменит.
Modbus ASCII - в SP5 Patch5 не поддержан через конфигурацию, только через библиотеку.
CRC, кстати, в Modbus ASCII один байт (вместо двух в RTU).

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

Dmitro
07.04.2019, 19:00
Чем лучше отлавливать ошибки связи и записывать их статистику? Только разбираюсь.

1 Средствами самого мастера шины (СПК207.03.WEB), тут плюс, что "от первого лица" - именно то,что видит непосредственно мастер.
1.1 Пакет OwenArchiver, но там частота записи - не чаще раза в 5 секунд(?), а обрыв связи может быть доли секунды.
1.2 Библиотеки ArchiverSPK.
2 С помощью ноутбука с адаптером RS485 и сниффером пакетов. Но там сгенерятся файлы на много сотен мегабайт с которыми будет тяжело работать, если оставить например на сутки.
И если можно, посоветуйте лучшую (желательно бесплатную) программу.

И еще, на форуме есть мнение, что снизив скорость обмена до 9600 можно на порядок улучшить ситуацию с помехами. Может сразу сделать такую скорость? Сейчас 115200.

Vass0_81
08.04.2019, 06:43
Помогите разобраться с температурой. Подключаюсь конфигуратором к модулю МВ110-ph. В режиме ОВП температура 21.416,42115 подключаюсь к панельке СПК107 смотрю что там 42116 там здоровое число. В модуле меняю режим ОВП на ph42117 температура 21.193 (нормальное число) подключаюся к панельке СПК107 42118 там опять здоровое число. В чем может быть проблема?

KyJIeP
11.04.2019, 08:33
Добрый день.
Как организовать изменение значения переменной в текстовом поле после ввода пароля?

Евгений Кислов
11.04.2019, 09:28
Добрый день.
Как организовать изменение значения переменной в текстовом поле после ввода пароля?

Добрый день.
Вы используете Управление пользователями в визуализации для задания паролей?

жекон
11.04.2019, 11:53
Если менять надпись, то через список текстов

Newcomer
11.04.2019, 12:47
Добрый день.

В CoDeSys V2.3 есть такая полезная штука (см. картинку). Есть ли что-то подобное в CoDeSys V3.5.

kot.shrodingera
11.04.2019, 13:06
Помогите настроить CoDeSys 3.5. Раньше работал только с 2.3. Установил 3.5SP5, Скачал таргет-файлы для СПК207, также скачал CODESYS Repository Archive V3.5 SP4. Всё установил, создаю стандартный проект на ST. При компиляции пишет


------ Компиляция : Приложение: Device.Application -------
типизировать код...
[WARNING] Test: C0200: Отсутствует разрешение для заполнителя CmpCodeMeter
[ERROR] spk_tools, 3.5.9.5 (production association owen): Keys: C0077: Неизвестный тип: 'sysExecute2'
[ERROR] spk_tools, 3.5.9.5 (production association owen): GetSwitcherState: C0077: Неизвестный тип: 'SysExecute2'
[ERROR] spk_tools, 3.5.9.5 (production association owen): Volume: C0077: Неизвестный тип: 'SysExecute2'
[ERROR] spk_tools, 3.5.9.5 (production association owen): GetNetworkInfo: C0077: Неизвестный тип: 'CmpSysExec.sysExecute2'
[ERROR] spk_tools, 3.5.9.5 (production association owen): SoundPlayer: C0077: Неизвестный тип: 'CmpSysExec.sysExecute2'
[ERROR] spk_tools, 3.5.9.5 (production association owen): SPK_DriveInfo: C0077: Неизвестный тип: 'sysExecute2'
[ERROR] spk_tools, 3.5.9.5 (production association owen): SPK_DriveInfo: C0077: Неизвестный тип: 'CmpSysExec.sysExecute2'
[ERROR] spk_tools, 3.5.9.5 (production association owen): FileHandles: C0077: Неизвестный тип: 'CmpSysExec.sysExecute2'
[ERROR] spk_tools, 3.5.9.5 (production association owen): GetProcessIdByName: C0077: Неизвестный тип: 'CmpSysExec.sysExecute2'
[ERROR] spk_tools, 3.5.9.5 (production association owen): RAMStatistic: C0077: Неизвестный тип: 'CmpSysExec.sysExecute2'
[ERROR] spk_tools, 3.5.9.5 (production association owen): GetProcessorInfo: C0077: Неизвестный тип: 'CmpSysExec.sysExecute2'
[ERROR] spk_tools, 3.5.9.5 (production association owen): GetSwitcherState: C0018: 'fb_SysExec.cmd' is no valid assignment target
[ERROR] spk_tools, 3.5.9.5 (production association owen): GetSwitcherState: C0035: Вместо 'fb_SysExec' требуется имя программы или экземпляр функционального блока
[ERROR] spk_tools, 3.5.9.5 (production association owen): GetSwitcherState: C0231: Здесь требуется выражение типа 'BOOL'
[ERROR] spk_tools, 3.5.9.5 (production association owen): GetSwitcherState: C0018: 'fb_SysExec.cmd' is no valid assignment target
[ERROR] spk_tools, 3.5.9.5 (production association owen): GetSwitcherState: C0035: Вместо 'fb_SysExec' требуется имя программы или экземпляр функционального блока
[ERROR] spk_tools, 3.5.9.5 (production association owen): GetSwitcherState: C0231: Здесь требуется выражение типа 'BOOL'
[ERROR] spk_tools, 3.5.9.5 (production association owen): Volume: C0018: 'fb_SysExec.cmd' is no valid assignment target
[ERROR] spk_tools, 3.5.9.5 (production association owen): Volume: C0035: Вместо 'fb_SysExec' требуется имя программы или экземпляр функционального блока
[ERROR] spk_tools, 3.5.9.5 (production association owen): Volume: C0231: Здесь требуется выражение типа 'BOOL'
[ERROR] spk_tools, 3.5.9.5 (production association owen): prv_ExecuteCommand [GetNetworkInfo]: C0231: Здесь требуется выражение типа 'BOOL'
[ERROR] spk_tools, 3.5.9.5 (production association owen): prv_ExecuteCommand [GetNetworkInfo]: C0018: '_fb_sysExec.cmd' is no valid assignment target
[ERROR] spk_tools, 3.5.9.5 (production association owen): prv_ExecuteCommand [GetNetworkInfo]: C0035: Вместо '_fb_sysExec' требуется имя программы или экземпляр функционального блока
[ERROR] spk_tools, 3.5.9.5 (production association owen): prv_ExecuteCommand [GetNetworkInfo]: C0231: Здесь требуется выражение типа 'BOOL'
[ERROR] spk_tools, 3.5.9.5 (production association owen): prv_ExecuteCommand [GetNetworkInfo]: C0077: Неизвестный тип: '_fb_sysExec.output_string'
[ERROR] spk_tools, 3.5.9.5 (production association owen): prv_ExecuteCommand [GetNetworkInfo]: C0032: Невозможно конвертировать тип 'Неизвестный тип: '_fb_sysExec.output_string'' в тип 'STRING(255)'
[ERROR] spk_tools, 3.5.9.5 (production association owen): prv_ExecuteCommand [GetNetworkInfo]: C0231: Здесь требуется выражение типа 'BOOL'
[ERROR] spk_tools, 3.5.9.5 (production association owen): prv_ExecuteCommand [GetNetworkInfo]: C0077: Неизвестный тип: '_fb_sysExec.output_string'
[ERROR] spk_tools, 3.5.9.5 (production association owen): prv_ExecuteCommand [GetNetworkInfo]: C0032: Невозможно конвертировать тип 'Неизвестный тип: '_fb_sysExec.output_string'' в тип 'STRING(255)'
[ERROR] spk_tools, 3.5.9.5 (production association owen): prv_ExecuteCommand [GetNetworkInfo]: C0032: Невозможно конвертировать тип 'Неизвестный тип: '_fb_sysExec.complete'' в тип 'BOOL'
[ERROR] spk_tools, 3.5.9.5 (production association owen): SoundPlayer: C0018: 'fb_SysExec.cmd' is no valid assignment target
[ERROR] spk_tools, 3.5.9.5 (production association owen): SoundPlayer: C0018: 'fb_SysExec.cmd' is no valid assignment target
[ERROR] spk_tools, 3.5.9.5 (production association owen): SoundPlayer: C0046: Идентификатор 'SysExecute' не задан
[ERROR] spk_tools, 3.5.9.5 (production association owen): SoundPlayer: C0035: Вместо 'SysExecute' требуется имя программы или экземпляр функционального блока
[ERROR] spk_tools, 3.5.9.5 (production association owen): SoundPlayer: C0035: Вместо 'fb_SysExec' требуется имя программы или экземпляр функционального блока
[ERROR] spk_tools, 3.5.9.5 (production association owen): SPK_DriveInfo: C0035: Вместо 'fb_sysexecWork' требуется имя программы или экземпляр функционального блока
[ERROR] spk_tools, 3.5.9.5 (production association owen): SPK_DriveInfo: C0231: Здесь требуется выражение типа 'BOOL'
[ERROR] spk_tools, 3.5.9.5 (production association owen): SPK_DriveInfo: C0035: Вместо 'fb_sysexecWork' требуется имя программы или экземпляр функционального блока
[ERROR] spk_tools, 3.5.9.5 (production association owen): SPK_DriveInfo: C0231: Здесь требуется выражение типа 'BOOL'
[ERROR] spk_tools, 3.5.9.5 (production association owen): SPK_DriveInfo: C0035: Вместо 'fb_sysexecWork' требуется имя программы или экземпляр функционального блока
[ERROR] spk_tools, 3.5.9.5 (production association owen): SPK_DriveInfo: C0231: Здесь требуется выражение типа 'BOOL'
[ERROR] spk_tools, 3.5.9.5 (production association owen): SPK_DriveInfo: C0035: Вместо 'fb_sysexecWork' требуется имя программы или экземпляр функционального блока
[ERROR] spk_tools, 3.5.9.5 (production association owen): SPK_DriveInfo: C0231: Здесь требуется выражение типа 'BOOL'
[ERROR] spk_tools, 3.5.9.5 (production association owen): prv_ExecuteCommand [SPK_DriveInfo]: C0231: Здесь требуется выражение типа 'BOOL'
[ERROR] spk_tools, 3.5.9.5 (production association owen): prv_ExecuteCommand [SPK_DriveInfo]: C0018: '_fb_sysExec.cmd' is no valid assignment target
[ERROR] spk_tools, 3.5.9.5 (production association owen): prv_ExecuteCommand [SPK_DriveInfo]: C0035: Вместо '_fb_sysExec' требуется имя программы или экземпляр функционального блока
[ERROR] spk_tools, 3.5.9.5 (production association owen): prv_ExecuteCommand [SPK_DriveInfo]: C0231: Здесь требуется выражение типа 'BOOL'
[ERROR] spk_tools, 3.5.9.5 (production association owen): prv_ExecuteCommand [SPK_DriveInfo]: C0077: Неизвестный тип: '_fb_sysExec.output_string'
[ERROR] spk_tools, 3.5.9.5 (production association owen): prv_ExecuteCommand [SPK_DriveInfo]: C0032: Невозможно конвертировать тип 'Неизвестный тип: '_fb_sysExec.output_string'' в тип 'STRING(255)'
[ERROR] spk_tools, 3.5.9.5 (production association owen): prv_ExecuteCommand [SPK_DriveInfo]: C0231: Здесь требуется выражение типа 'BOOL'
[ERROR] spk_tools, 3.5.9.5 (production association owen): prv_ExecuteCommand [SPK_DriveInfo]: C0077: Неизвестный тип: '_fb_sysExec.output_string'
[ERROR] spk_tools, 3.5.9.5 (production association owen): prv_ExecuteCommand [SPK_DriveInfo]: C0032: Невозможно конвертировать тип 'Неизвестный тип: '_fb_sysExec.output_string'' в тип 'STRING(255)'
[ERROR] spk_tools, 3.5.9.5 (production association owen): prv_ExecuteCommand [SPK_DriveInfo]: C0032: Невозможно конвертировать тип 'Неизвестный тип: '_fb_sysExec.complete'' в тип 'BOOL'
[ERROR] spk_tools, 3.5.9.5 (production association owen): FileHandles: C0018: 'm_fb_SysExec.cmd' is no valid assignment target
[ERROR] spk_tools, 3.5.9.5 (production association owen): FileHandles: C0035: Вместо 'm_fb_SysExec' требуется имя программы или экземпляр функционального блока
[ERROR] spk_tools, 3.5.9.5 (production association owen): FileHandles: C0231: Здесь требуется выражение типа 'BOOL'
[ERROR] spk_tools, 3.5.9.5 (production association owen): FileHandles: C0077: Неизвестный тип: 'm_fb_SysExec.output_string'
[ERROR] spk_tools, 3.5.9.5 (production association owen): FileHandles: C0231: Здесь требуется выражение типа 'BOOL'
[ERROR] spk_tools, 3.5.9.5 (production association owen): GetProcessIdByName: C0018: 'm_fb_SysExec.cmd' is no valid assignment target
[ERROR] spk_tools, 3.5.9.5 (production association owen): GetProcessIdByName: C0035: Вместо 'm_fb_SysExec' требуется имя программы или экземпляр функционального блока
[ERROR] spk_tools, 3.5.9.5 (production association owen): GetProcessIdByName: C0032: Невозможно конвертировать тип 'Неизвестный тип: '(m_fb_SysExec.output_string <> '')'' в тип 'BOOL'
[ERROR] spk_tools, 3.5.9.5 (production association owen): GetProcessIdByName: C0077: Неизвестный тип: 'm_fb_SysExec.output_string'
[ERROR] spk_tools, 3.5.9.5 (production association owen): GetProcessIdByName: C0032: Невозможно конвертировать тип 'Неизвестный тип: 'm_fb_SysExec.output_string'' в тип 'STRING'
[ERROR] spk_tools, 3.5.9.5 (production association owen): GetProcessIdByName: C0231: Здесь требуется выражение типа 'BOOL'
[ERROR] spk_tools, 3.5.9.5 (production association owen): RAMStatistic: C0018: 'm_fb_sysExec.cmd' is no valid assignment target
[ERROR] spk_tools, 3.5.9.5 (production association owen): RAMStatistic: C0035: Вместо 'm_fb_sysExec' требуется имя программы или экземпляр функционального блока
[ERROR] spk_tools, 3.5.9.5 (production association owen): RAMStatistic: C0231: Здесь требуется выражение типа 'BOOL'
[ERROR] spk_tools, 3.5.9.5 (production association owen): RAMStatistic: C0077: Неизвестный тип: 'm_fb_sysExec.output_string'
[ERROR] spk_tools, 3.5.9.5 (production association owen): RAMStatistic: C0231: Здесь требуется выражение типа 'BOOL'
[ERROR] spk_tools, 3.5.9.5 (production association owen): GetProcessorInfo: C0018: 'm_fb_sysExec.cmd' is no valid assignment target
[ERROR] spk_tools, 3.5.9.5 (production association owen): GetProcessorInfo: C0035: Вместо 'm_fb_sysExec' требуется имя программы или экземпляр функционального блока
[ERROR] spk_tools, 3.5.9.5 (production association owen): GetProcessorInfo: C0231: Здесь требуется выражение типа 'BOOL'
[ERROR] spk_tools, 3.5.9.5 (production association owen): GetProcessorInfo: C0077: Неизвестный тип: 'm_fb_sysExec.output_string'
[ERROR] spk_tools, 3.5.9.5 (production association owen): GetProcessorInfo: C0231: Здесь требуется выражение типа 'BOOL'
[ERROR] spk_tools, 3.5.9.5 (production association owen): GetProcessorInfo: C0018: 'm_fb_sysExec.cmd' is no valid assignment target
[ERROR] spk_tools, 3.5.9.5 (production association owen): GetProcessorInfo: C0035: Вместо 'm_fb_sysExec' требуется имя программы или экземпляр функционального блока
[ERROR] spk_tools, 3.5.9.5 (production association owen): GetProcessorInfo: C0231: Здесь требуется выражение типа 'BOOL'
[ERROR] spk_tools, 3.5.9.5 (production association owen): GetProcessorInfo: C0077: Неизвестный тип: 'm_fb_sysExec.output_string'
[ERROR] spk_tools, 3.5.9.5 (production association owen): GetProcessorInfo: C0231: Здесь требуется выражение типа 'BOOL'
Компиляция завершена -- 79 ошибок, 1 предупреждений

Что нужно ещё сделать?
Кстати, CODESYS Repository Archive скачал из подписи Евгения Кислова. На сайте Овен нигде это не выложено? Это как-то странно, если это обязательно. Или можно как-то обойтись без установки CODESYS Repository Archive?

kot.shrodingera
11.04.2019, 13:09
Добрый день.

В CoDeSys V2.3 есть такая полезная штука (см. картинку). Есть ли что-то подобное в CoDeSys V3.5.

Ctrl+F? Ну или Правка -> Поиск и замена -> Найти

Piper_SPB
11.04.2019, 13:39
Имеем:
IF <условие1>
OR <условие2>
...
OR <условиеN> THEN
...;
ESLE
...;
END_IF
Вопрос: Если условие1 выполняется, будет ли СПК107 (codesys 3.5) проверять последующие условия?

Евгений Кислов
11.04.2019, 13:45
Помогите настроить CoDeSys 3.5. Раньше работал только с 2.3. Установил 3.5SP5, Скачал таргет-файлы для СПК207, также скачал CODESYS Repository Archive V3.5 SP4. Всё установил, создаю стандартный проект на ST. При компиляции пишет


------ Компиляция : Приложение: Device.Application -------
типизировать код...
[WARNING] Test: C0200: Отсутствует разрешение для заполнителя CmpCodeMeter
[ERROR] spk_tools, 3.5.9.5 (production association owen): Keys: C0077: Неизвестный тип: 'sysExecute2'
[ERROR] spk_tools, 3.5.9.5 (production association owen): GetSwitcherState: C0077: Неизвестный тип: 'SysExecute2'
[ERROR] spk_tools, 3.5.9.5 (production association owen): Volume: C0077: Неизвестный тип: 'SysExecute2'
[ERROR] spk_tools, 3.5.9.5 (production association owen): GetNetworkInfo: C0077: Неизвестный тип: 'CmpSysExec.sysExecute2'
[ERROR] spk_tools, 3.5.9.5 (production association owen): SoundPlayer: C0077: Неизвестный тип: 'CmpSysExec.sysExecute2'
[ERROR] spk_tools, 3.5.9.5 (production association owen): SPK_DriveInfo: C0077: Неизвестный тип: 'sysExecute2'
[ERROR] spk_tools, 3.5.9.5 (production association owen): SPK_DriveInfo: C0077: Неизвестный тип: 'CmpSysExec.sysExecute2'
[ERROR] spk_tools, 3.5.9.5 (production association owen): FileHandles: C0077: Неизвестный тип: 'CmpSysExec.sysExecute2'
[ERROR] spk_tools, 3.5.9.5 (production association owen): GetProcessIdByName: C0077: Неизвестный тип: 'CmpSysExec.sysExecute2'
[ERROR] spk_tools, 3.5.9.5 (production association owen): RAMStatistic: C0077: Неизвестный тип: 'CmpSysExec.sysExecute2'
[ERROR] spk_tools, 3.5.9.5 (production association owen): GetProcessorInfo: C0077: Неизвестный тип: 'CmpSysExec.sysExecute2'
[ERROR] spk_tools, 3.5.9.5 (production association owen): GetSwitcherState: C0018: 'fb_SysExec.cmd' is no valid assignment target
[ERROR] spk_tools, 3.5.9.5 (production association owen): GetSwitcherState: C0035: Вместо 'fb_SysExec' требуется имя программы или экземпляр функционального блока
[ERROR] spk_tools, 3.5.9.5 (production association owen): GetSwitcherState: C0231: Здесь требуется выражение типа 'BOOL'
[ERROR] spk_tools, 3.5.9.5 (production association owen): GetSwitcherState: C0018: 'fb_SysExec.cmd' is no valid assignment target
[ERROR] spk_tools, 3.5.9.5 (production association owen): GetSwitcherState: C0035: Вместо 'fb_SysExec' требуется имя программы или экземпляр функционального блока
[ERROR] spk_tools, 3.5.9.5 (production association owen): GetSwitcherState: C0231: Здесь требуется выражение типа 'BOOL'
[ERROR] spk_tools, 3.5.9.5 (production association owen): Volume: C0018: 'fb_SysExec.cmd' is no valid assignment target
[ERROR] spk_tools, 3.5.9.5 (production association owen): Volume: C0035: Вместо 'fb_SysExec' требуется имя программы или экземпляр функционального блока
[ERROR] spk_tools, 3.5.9.5 (production association owen): Volume: C0231: Здесь требуется выражение типа 'BOOL'
[ERROR] spk_tools, 3.5.9.5 (production association owen): prv_ExecuteCommand [GetNetworkInfo]: C0231: Здесь требуется выражение типа 'BOOL'
[ERROR] spk_tools, 3.5.9.5 (production association owen): prv_ExecuteCommand [GetNetworkInfo]: C0018: '_fb_sysExec.cmd' is no valid assignment target
[ERROR] spk_tools, 3.5.9.5 (production association owen): prv_ExecuteCommand [GetNetworkInfo]: C0035: Вместо '_fb_sysExec' требуется имя программы или экземпляр функционального блока
[ERROR] spk_tools, 3.5.9.5 (production association owen): prv_ExecuteCommand [GetNetworkInfo]: C0231: Здесь требуется выражение типа 'BOOL'
[ERROR] spk_tools, 3.5.9.5 (production association owen): prv_ExecuteCommand [GetNetworkInfo]: C0077: Неизвестный тип: '_fb_sysExec.output_string'
[ERROR] spk_tools, 3.5.9.5 (production association owen): prv_ExecuteCommand [GetNetworkInfo]: C0032: Невозможно конвертировать тип 'Неизвестный тип: '_fb_sysExec.output_string'' в тип 'STRING(255)'
[ERROR] spk_tools, 3.5.9.5 (production association owen): prv_ExecuteCommand [GetNetworkInfo]: C0231: Здесь требуется выражение типа 'BOOL'
[ERROR] spk_tools, 3.5.9.5 (production association owen): prv_ExecuteCommand [GetNetworkInfo]: C0077: Неизвестный тип: '_fb_sysExec.output_string'
[ERROR] spk_tools, 3.5.9.5 (production association owen): prv_ExecuteCommand [GetNetworkInfo]: C0032: Невозможно конвертировать тип 'Неизвестный тип: '_fb_sysExec.output_string'' в тип 'STRING(255)'
[ERROR] spk_tools, 3.5.9.5 (production association owen): prv_ExecuteCommand [GetNetworkInfo]: C0032: Невозможно конвертировать тип 'Неизвестный тип: '_fb_sysExec.complete'' в тип 'BOOL'
[ERROR] spk_tools, 3.5.9.5 (production association owen): SoundPlayer: C0018: 'fb_SysExec.cmd' is no valid assignment target
[ERROR] spk_tools, 3.5.9.5 (production association owen): SoundPlayer: C0018: 'fb_SysExec.cmd' is no valid assignment target
[ERROR] spk_tools, 3.5.9.5 (production association owen): SoundPlayer: C0046: Идентификатор 'SysExecute' не задан
[ERROR] spk_tools, 3.5.9.5 (production association owen): SoundPlayer: C0035: Вместо 'SysExecute' требуется имя программы или экземпляр функционального блока
[ERROR] spk_tools, 3.5.9.5 (production association owen): SoundPlayer: C0035: Вместо 'fb_SysExec' требуется имя программы или экземпляр функционального блока
[ERROR] spk_tools, 3.5.9.5 (production association owen): SPK_DriveInfo: C0035: Вместо 'fb_sysexecWork' требуется имя программы или экземпляр функционального блока
[ERROR] spk_tools, 3.5.9.5 (production association owen): SPK_DriveInfo: C0231: Здесь требуется выражение типа 'BOOL'
[ERROR] spk_tools, 3.5.9.5 (production association owen): SPK_DriveInfo: C0035: Вместо 'fb_sysexecWork' требуется имя программы или экземпляр функционального блока
[ERROR] spk_tools, 3.5.9.5 (production association owen): SPK_DriveInfo: C0231: Здесь требуется выражение типа 'BOOL'
[ERROR] spk_tools, 3.5.9.5 (production association owen): SPK_DriveInfo: C0035: Вместо 'fb_sysexecWork' требуется имя программы или экземпляр функционального блока
[ERROR] spk_tools, 3.5.9.5 (production association owen): SPK_DriveInfo: C0231: Здесь требуется выражение типа 'BOOL'
[ERROR] spk_tools, 3.5.9.5 (production association owen): SPK_DriveInfo: C0035: Вместо 'fb_sysexecWork' требуется имя программы или экземпляр функционального блока
[ERROR] spk_tools, 3.5.9.5 (production association owen): SPK_DriveInfo: C0231: Здесь требуется выражение типа 'BOOL'
[ERROR] spk_tools, 3.5.9.5 (production association owen): prv_ExecuteCommand [SPK_DriveInfo]: C0231: Здесь требуется выражение типа 'BOOL'
[ERROR] spk_tools, 3.5.9.5 (production association owen): prv_ExecuteCommand [SPK_DriveInfo]: C0018: '_fb_sysExec.cmd' is no valid assignment target
[ERROR] spk_tools, 3.5.9.5 (production association owen): prv_ExecuteCommand [SPK_DriveInfo]: C0035: Вместо '_fb_sysExec' требуется имя программы или экземпляр функционального блока
[ERROR] spk_tools, 3.5.9.5 (production association owen): prv_ExecuteCommand [SPK_DriveInfo]: C0231: Здесь требуется выражение типа 'BOOL'
[ERROR] spk_tools, 3.5.9.5 (production association owen): prv_ExecuteCommand [SPK_DriveInfo]: C0077: Неизвестный тип: '_fb_sysExec.output_string'
[ERROR] spk_tools, 3.5.9.5 (production association owen): prv_ExecuteCommand [SPK_DriveInfo]: C0032: Невозможно конвертировать тип 'Неизвестный тип: '_fb_sysExec.output_string'' в тип 'STRING(255)'
[ERROR] spk_tools, 3.5.9.5 (production association owen): prv_ExecuteCommand [SPK_DriveInfo]: C0231: Здесь требуется выражение типа 'BOOL'
[ERROR] spk_tools, 3.5.9.5 (production association owen): prv_ExecuteCommand [SPK_DriveInfo]: C0077: Неизвестный тип: '_fb_sysExec.output_string'
[ERROR] spk_tools, 3.5.9.5 (production association owen): prv_ExecuteCommand [SPK_DriveInfo]: C0032: Невозможно конвертировать тип 'Неизвестный тип: '_fb_sysExec.output_string'' в тип 'STRING(255)'
[ERROR] spk_tools, 3.5.9.5 (production association owen): prv_ExecuteCommand [SPK_DriveInfo]: C0032: Невозможно конвертировать тип 'Неизвестный тип: '_fb_sysExec.complete'' в тип 'BOOL'
[ERROR] spk_tools, 3.5.9.5 (production association owen): FileHandles: C0018: 'm_fb_SysExec.cmd' is no valid assignment target
[ERROR] spk_tools, 3.5.9.5 (production association owen): FileHandles: C0035: Вместо 'm_fb_SysExec' требуется имя программы или экземпляр функционального блока
[ERROR] spk_tools, 3.5.9.5 (production association owen): FileHandles: C0231: Здесь требуется выражение типа 'BOOL'
[ERROR] spk_tools, 3.5.9.5 (production association owen): FileHandles: C0077: Неизвестный тип: 'm_fb_SysExec.output_string'
[ERROR] spk_tools, 3.5.9.5 (production association owen): FileHandles: C0231: Здесь требуется выражение типа 'BOOL'
[ERROR] spk_tools, 3.5.9.5 (production association owen): GetProcessIdByName: C0018: 'm_fb_SysExec.cmd' is no valid assignment target
[ERROR] spk_tools, 3.5.9.5 (production association owen): GetProcessIdByName: C0035: Вместо 'm_fb_SysExec' требуется имя программы или экземпляр функционального блока
[ERROR] spk_tools, 3.5.9.5 (production association owen): GetProcessIdByName: C0032: Невозможно конвертировать тип 'Неизвестный тип: '(m_fb_SysExec.output_string <> '')'' в тип 'BOOL'
[ERROR] spk_tools, 3.5.9.5 (production association owen): GetProcessIdByName: C0077: Неизвестный тип: 'm_fb_SysExec.output_string'
[ERROR] spk_tools, 3.5.9.5 (production association owen): GetProcessIdByName: C0032: Невозможно конвертировать тип 'Неизвестный тип: 'm_fb_SysExec.output_string'' в тип 'STRING'
[ERROR] spk_tools, 3.5.9.5 (production association owen): GetProcessIdByName: C0231: Здесь требуется выражение типа 'BOOL'
[ERROR] spk_tools, 3.5.9.5 (production association owen): RAMStatistic: C0018: 'm_fb_sysExec.cmd' is no valid assignment target
[ERROR] spk_tools, 3.5.9.5 (production association owen): RAMStatistic: C0035: Вместо 'm_fb_sysExec' требуется имя программы или экземпляр функционального блока
[ERROR] spk_tools, 3.5.9.5 (production association owen): RAMStatistic: C0231: Здесь требуется выражение типа 'BOOL'
[ERROR] spk_tools, 3.5.9.5 (production association owen): RAMStatistic: C0077: Неизвестный тип: 'm_fb_sysExec.output_string'
[ERROR] spk_tools, 3.5.9.5 (production association owen): RAMStatistic: C0231: Здесь требуется выражение типа 'BOOL'
[ERROR] spk_tools, 3.5.9.5 (production association owen): GetProcessorInfo: C0018: 'm_fb_sysExec.cmd' is no valid assignment target
[ERROR] spk_tools, 3.5.9.5 (production association owen): GetProcessorInfo: C0035: Вместо 'm_fb_sysExec' требуется имя программы или экземпляр функционального блока
[ERROR] spk_tools, 3.5.9.5 (production association owen): GetProcessorInfo: C0231: Здесь требуется выражение типа 'BOOL'
[ERROR] spk_tools, 3.5.9.5 (production association owen): GetProcessorInfo: C0077: Неизвестный тип: 'm_fb_sysExec.output_string'
[ERROR] spk_tools, 3.5.9.5 (production association owen): GetProcessorInfo: C0231: Здесь требуется выражение типа 'BOOL'
[ERROR] spk_tools, 3.5.9.5 (production association owen): GetProcessorInfo: C0018: 'm_fb_sysExec.cmd' is no valid assignment target
[ERROR] spk_tools, 3.5.9.5 (production association owen): GetProcessorInfo: C0035: Вместо 'm_fb_sysExec' требуется имя программы или экземпляр функционального блока
[ERROR] spk_tools, 3.5.9.5 (production association owen): GetProcessorInfo: C0231: Здесь требуется выражение типа 'BOOL'
[ERROR] spk_tools, 3.5.9.5 (production association owen): GetProcessorInfo: C0077: Неизвестный тип: 'm_fb_sysExec.output_string'
[ERROR] spk_tools, 3.5.9.5 (production association owen): GetProcessorInfo: C0231: Здесь требуется выражение типа 'BOOL'
Компиляция завершена -- 79 ошибок, 1 предупреждений

Что нужно ещё сделать?
Кстати, CODESYS Repository Archive скачал из подписи Евгения Кислова. На сайте Овен нигде это не выложено? Это как-то странно, если это обязательно. Или можно как-то обойтись без установки CODESYS Repository Archive?

Репозиторий выложен здесь:
https://www.owen.ru/product/codesys_v3/sreda_programirovaniay

Вам надо установить эту библиотеку:
https://ftp.owen.ru/CoDeSys3/04_Library/02_Manual_installation/07_CmpSysExec/1.0.0.2/CmpSysExec_1.0.0.2.compiled-library

Евгений Кислов
11.04.2019, 13:53
Имеем:
IF <условие1>
OR <условие2>
...
OR <условиеN> THEN
...;
ESLE
...;
END_IF
Вопрос: Если условие1 выполняется, будет ли СПК107 (codesys 3.5) проверять последующие условия?

Будет проверять.
Есть спец. операторы, если проверять не надо:
https://help.codesys.com/webapp/_cds_operator_and_then;product=codesys;version=3.5 .10.0
https://help.codesys.com/webapp/_cds_operator_or_else;product=codesys;version=3.5. 10.0

KyJIeP
11.04.2019, 14:31
Добрый день.
Вы используете Управление пользователями в визуализации для задания паролей?

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

Евгений Кислов
11.04.2019, 14:44
Нет не использую. у меня нет необходимости авторизовываться в качестве администратора, оператора.... мне необходимо подтверждать паролем каждое изменение значения текстового поля. Программа написана на CFC.

Т.е. по нажатию на текстовое поле должно появляться окно ввода пароля, если введен верный пароль - то появляется окно с полем ввода нового значения?
Или, например, можно прямо в окне ввода пароля при корректном пароле делать видимым поле ввода значения?

KyJIeP
11.04.2019, 14:49
Т.е. по нажатию на текстовое поле должно появляться окно ввода пароля, если введен верный пароль - то появляется окно с полем ввода нового значения?
Или, например, можно прямо в окне ввода пароля при корректном пароле делать видимым поле ввода значения?

Да, именнно так: по нажатию на текстовое поле должно появляться окно ввода пароля, если введен верный пароль - то появляется окно с полем ввода нового значения

Евгений Кислов
11.04.2019, 14:53
Да, именнно так: по нажатию на текстовое поле должно появляться окно ввода пароля, если введен верный пароль - то появляется окно с полем ввода нового значения

А в какой версии CODESYS вы работаете?

KyJIeP
11.04.2019, 14:57
А в какой версии CODESYS вы работаете?

CODESYS V3.5 SP5 Patch 5

Евгений Кислов
11.04.2019, 15:17
CODESYS V3.5 SP5 Patch 5

Я завтра подготовлю пример на озвученную тему.

KyJIeP
11.04.2019, 15:20
Я завтра подготовлю пример на озвученную тему.

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

жекон
12.04.2019, 05:31
Будет проверять.
Есть спец. операторы, если проверять не надо:
https://help.codesys.com/webapp/_cds_operator_and_then;product=codesys;version=3.5 .10.0
https://help.codesys.com/webapp/_cds_operator_or_else;product=codesys;version=3.5. 10.0
Эти операторы только в КДС3.5 работают?

Евгений Кислов
12.04.2019, 06:23
Эти операторы только в КДС3.5 работают?

Да, в 2.3 их не было (если вопрос об этом).

Евгений Кислов
12.04.2019, 07:29
Заранее спасибо)

Прикладываю пример.
В нем таргет от виртуального контроллера (на нем удобнее было проверять), по поводу его запуска см. тут:
https://www.owen.ru/forum/showthread.php?t=28167&page=5&p=296706&viewfull=1#post296706

Для загрузки в СПК нужно изменить таргет - ПКМ на Device - Обновить устройство - выбрать нужное.

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

Newcomer
13.04.2019, 11:55
Добрый день.

Создал глобальную переменную в GVL, пытаюсь работать с ней в PLC_PRG, но компилятор выдает ошибку - Идентификатор не задан. Как это понимать ?

Евгений Кислов
13.04.2019, 12:18
Добрый день.

Создал глобальную переменную в GVL, пытаюсь работать с ней в PLC_PRG, но компилятор выдает ошибку - Идентификатор не задан. Как это понимать ?

Добрый день.
По умолчанию надо указывать префикс списка - в стиле


GVL.iValue := 10;

Newcomer
13.04.2019, 12:46
Добрый день.
По умолчанию надо указывать префикс списка - в стиле


GVL.iValue := 10;

Спасибо, но это лишняя работа, в CoDeSys V2.3 такого не было.

Евгений Кислов
13.04.2019, 13:01
Да, в 2.3 такого не было. Поэтому пользователи объявляли глобальную переменную, потом забывали об этом и объявляли в PLC_PRG переменную с тем же названием.
Потом пробовали с ней что-то делать и удивлялись, почему "контроллер не работает".

Если по каким-то причинам повышение читабельности кода является лишней работой, то можно и в 3.5 реализовать такое поведение - достаточно из GVL удалить строку Attribute ‘qualified_only’

kot.shrodingera
15.04.2019, 08:09
При попытке использовании функции ROR/ROL пишет "Обнаружен недопустимый символ ROR/ROL". Почему так?

Евгений Кислов
15.04.2019, 08:12
При попытке использовании функции ROR/ROL пишет "Обнаружен недопустимый символ ROR/ROL". Почему так?

Покажите, пожалуйста, как вы пытаетесь использовать эту функцию.

kot.shrodingera
15.04.2019, 08:17
VAR_INPUT
data : ARRAY [0..1] OF WORD;
...
END_VAR
...
ROR(data[0], 8);

Евгений Кислов
15.04.2019, 08:27
Результат куда-то надо вернуть. Хотя бы так:



IF <какое-то событие> THEN
data[0] := ROR(data[0], 8);
END_IF

kot.shrodingera
15.04.2019, 08:30
Точно. Спасибо. Я думал, что функция модифицирует входные данные

kot.shrodingera
15.04.2019, 12:56
Можно как-то в визуализации копировать параметры одного элемента на другие? Например у меня есть много линеек, к которым привязаны разные переменные, и я хочу ко всем ним добавить цветовую область. Если выделяю несколько сразу, то добавляется только область к первой линейке

Евгений Кислов
15.04.2019, 13:01
Можно как-то в визуализации копировать параметры одного элемента на другие? Например у меня есть много линеек, к которым привязаны разные переменные, и я хочу ко всем ним добавить цветовую область. Если выделяю несколько сразу, то добавляется только область к первой линейке

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

kot.shrodingera
15.04.2019, 13:15
Ко всем линейкам должны быть привязаны одни и те же переменные цветовых областей?

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

Евгений Кислов
15.04.2019, 13:22
Да. Сейчас методом тыка пришёл к тому, что можно вручную добавить области (с параметрами по умолчанию), а потом выделить все линейки и тогда изменения параметров этой области будет применяться ко всем линейкам. Но если области ещё не добавлены, то только по отдельности добавляются. Это баг или как-то можно обойти?

Там действительно какой-то странный баг.
У меня это выглядит так:

1. Добавляю несколько линеек.
2. Выделяю их все.
3. Создаю цветовые области.
4. Проверяю линейки по отдельности - цветовые области создались только у первой из выделенных.
5. Удаляю любую из линеек без цветовых областей.
6. После этого у всех выделенных в п. 2 линеек появляются цветовые области, за исключением линейки из п.5.

kot.shrodingera
15.04.2019, 13:28
Действительно странно. Ещё получается если выделить линейки без областей и добавить область, визуально она появляется на всех линейках (шкала заполняется до максимума), хотя в параметрах область не появляется. В общем если линеек не много, проще добавить области вручную а потом скопом менять границы/цвет. Если очень много, то можно будет попробовать ваш способ. Спасибо

Newcomer
15.04.2019, 13:32
Добрый день.

Все было при компиляции нормально и вдруг вылезло (см. картинки). Не пойму что вдруг компилятору разонравилось.

Евгений Кислов
15.04.2019, 13:39
Добрый день.
У вас с одной стороны переменные объявлены прямо в каналах (это видно по картинке), а с другой - в них указан полный путь к PLC_PRG.
Проверьте, у вас в PLC_PRG точно есть переменные с такими названиями и типами?
Если да - то привяжите их к каналу еще раз, удалив текущие привязки.

Newcomer
15.04.2019, 13:43
Если адреса перечеркнуты, то компилируется без ошибок. Что это значит ?

Newcomer
15.04.2019, 13:48
Для чего нужна эта штучка ? Щелкаешь по ней и адреса перечеркиваются, еще раз щелкаешь и адреса становятся не перечеркнутыми.

Евгений Кислов
15.04.2019, 13:54
Есть два варианта привязка переменной к каналу:

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

У вас каким-то образом оба способа смешались, и начались ошибки.

Newcomer
15.04.2019, 13:56
Есть два варианта привязка переменной к каналу:

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

У вас каким-то образом оба способа смешались, и начались ошибки.

У меня все переменные заранее созданы.

Newcomer
15.04.2019, 14:05
А чем Триггер (Передний фронт) отличается от Триггер (Цикл) ?

Евгений Кислов
15.04.2019, 14:21
В первом случае опрос канала происходит по переднему фронту заданной логической переменной, во втором - циклически.

Newcomer
15.04.2019, 14:33
В первом случае опрос канала происходит по переднему фронту заданной логической переменной, во втором - циклически.

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

Евгений Кислов
15.04.2019, 14:35
О какой заданной логической переменной идет речь. Мне надо обнулить счетчик в модуле ввода, т.е в регистр с определенным адресом надо послать переменную со значением 0. Какой режим тут надо выбрать ?

По переднему фронту - иначе счетчик будет циклически обнуляться и не сможет ничего насчитать.

Newcomer
15.04.2019, 14:45
В РЭ на модуль ввода написано: Для принудительного обнуления счетчика следует записать значение 0 в регистр сброса значения входа в дополнительном режиме. Обнуление счетчика будет произведено в течение 10 мс после записи значения 0.

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

Newcomer
15.04.2019, 16:35
Евгений, я корректно все задал ? Что можете посоветовать по ускорению работы СПК ? К СПК по Ethernet подключены модуль ввода и два модуля вывода. Надо максимизировать скорость обмена с модулями и минимизировать время цикла программы СПК.

Евгений Кислов
15.04.2019, 16:58
У вас разумные настройки.
Фронт надо создать в триггерной переменной канала - она не имеет отношения к значению канала.
Это две разных переменных - одна является командой записи, а вторая - записываемым значением (в вашем случае - нулем).
Это отчасти похоже на режим By Command в CoDeSys 2.3.

Newcomer
15.04.2019, 17:05
У вас разумные настройки.

Вы это про две последние картинки ?

Ранее Задача цикла шины стояло - Не задано (поставил - Main Task).

Тип -> Циклическое стояло 20 мс (поставил 10 мс).

После того как я "оптимизировал" все стало много хуже.

Евгений Кислов
15.04.2019, 17:10
Не задано - означает "использовать задачу с наименьшим временем цикла". Я думаю, в вашем случае разницы на самом деле нет.
Если после уменьшения времени цикла с 20 мс до 10 мс "все стало хуже" - то единственной разумной версией является то, что сложность проекта не позволяет выдерживать заданные тайминги.
Я не уверен, что у вас именно такая ситуация.
Ну и "хуже/лучше" - это субъективная оценка, какие параметры изменились и в каких пределах?

Newcomer
15.04.2019, 17:19
Не задано - означает "использовать задачу с наименьшим временем цикла". Я думаю, в вашем случае разницы на самом деле нет.
Если после уменьшения времени цикла с 20 мс до 10 мс "все стало хуже" - то единственной разумной версией является то, что сложность проекта не позволяет выдерживать заданные тайминги.
Я не уверен, что у вас именно такая ситуация.
Ну и "хуже/лучше" - это субъективная оценка, какие параметры изменились и в каких пределах?

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

Евгений Кислов
15.04.2019, 17:29
Обмен не тормозит основную программу.
Это не второй кодесис - тут вытесняющая многозадачность и time-slicing.

Newcomer
15.04.2019, 17:32
Обмен не тормозит основную программу.
Это не второй кодесис - тут вытесняющая многозадачность и time-slicing.

Пытаемся позиционироваться по энкодеру, плохо получается. При одном и том же задании на перемещение получаем разное фактическое расстояние, на которое перемещается механизм.

Евгений Кислов
15.04.2019, 17:41
А кто формирует задание энкодеру? СПК?
Вас не затруднит подробно описать:


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

Newcomer
15.04.2019, 17:46
А кто формирует задание энкодеру? СПК?
Вас не затруднит подробно описать:


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


Задание на перемещение формируется в визуализации, т.е. задается конкретное число импульсов, которое должен отсчитать энкодер. При одном и том же задании энкодер отсчитывает разное число импульсов.

Newcomer
15.04.2019, 19:44
А кто формирует задание энкодеру? СПК?
Вас не затруднит подробно описать:


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


Евгений, а за какое время СПК может произвести обмен с тремя модулями ввода/вывода по Ethernet, если организовано 12 каналов ?

kot.shrodingera
16.04.2019, 04:53
Укажите на документацию по использованию кнопок на панели (SYS, F1-F5)
И если можно сразу подсказать, как поменять экран визуализации по нажатию одной из этих кнопок?

Евгений Кислов
16.04.2019, 06:23
Укажите на документацию по использованию кнопок на панели (SYS, F1-F5)
И если можно сразу подсказать, как поменять экран визуализации по нажатию одной из этих кнопок?

В последних релизных таргет-файлах в дереве проекта доступен узел Keyboard.
В нем к каждой кнопке можно привязать переменную типа BOOL, которая будет характеризовать ее состояние:

42302

Переключать экраны из кода можно, например, с помощью системной переменной CurrentVisu.
См. здесь п. 8.8/2:
https://ftp.owen.ru/CoDeSys3/11_Documentation/01_SPK/SPK_FAQ_v.1.3.pdf

kot.shrodingera
16.04.2019, 07:13
Спасибо большое. А тренды работают на СПК207? Если да, то можно пример?

Евгений Кислов
16.04.2019, 07:21
Спасибо большое. А тренды работают на СПК207? Если да, то можно пример?

Не работают.

жекон
16.04.2019, 10:01
Есть возможность отформатировать флешку/СД из программы или стереть информацию?

Евгений Кислов
16.04.2019, 10:07
Есть возможность отформатировать флешку/СД из программы или стереть информацию?

Можно, см. библиотеку CmpSysExec и описание нужных команд для Linux.

Dmitro
25.04.2019, 10:21
Наверное этот вопрос задавали десятки раз...
Добавляю компонент AlarmGroup и сразу же десятки ошибок.

42454

Евгений Кислов
25.04.2019, 10:36
Выложите архив проекта, пожалуйста.

жекон
26.04.2019, 07:31
Можно, см. библиотеку CmpSysExec и описание нужных команд для Linux.

То есть если я сделаю так 42470 удалится архив тревог?

Евгений Кислов
26.04.2019, 07:41
Нет, если вы сделаете так, то ничего не произойдет - у вас неправильный синтаксис команды.
И SysExecute нельзя вызывать в цикле, нужно делать это однократно (например, через вход EN).

Сработало бы например rm -rf /etc, но я не рекомендую пробовать так делать - в той папке не должно быть ваших файлов.

Узнайте путь к интересующему вас файлу через WinSCP и удаляйте конкретный файл.

жекон
26.04.2019, 07:50
Тогда в каком файле хранится архив тревог?42471

Евгений Кислов
26.04.2019, 07:51
А какой у вас контроллер?

жекон
26.04.2019, 09:04
СПК110 первой модификации

Евгений Кислов
26.04.2019, 09:56
Если речь о старом СПК110 (без Ethernet), то в вашем случае путь будет такой:

/mnt/ufs/root/CoDeSysSP_wrk/etc

жекон
26.04.2019, 10:16
Спасибо большое

жекон
26.04.2019, 10:26
Прописал 'rm -rf/mnt/ufs/root/CoDeSysSP_wrk/etc' завел переменную через EN, и ни чего не произошло история аварий осталась не тронутой

Евгений Кислов
26.04.2019, 10:29
Вы пробел после rf забыли.

жекон
26.04.2019, 11:42
С пробелом ни чего не изменилось42481

Евгений Кислов
26.04.2019, 11:44
Вы WinSCP подключались, проверяли, что по указанному пути существовала нужная папка и что с ней случилось после выполнения команды?
И даже если бы все прошло успешно - вряд ли информация из журнала пропала бы "на лету" - потребовалось бы перезагрузить контроллер.