Поставьте размер 1024х600 и растяните всё под новый экран.
Можно всё сгруппировать, растянуть и разгруппировать. После уже поправить ручками)
Вид для печати
Получилось. Спасибо.
Доброе время суток всем!
Почему это не работает? В чём может быть причина, подскажите пожалуйста.
Вложение 82432
Спасибо! Это я заметил. Однако интересует механика процесса. Переменной VAR_TEMP нельзя присвоить значение ?
Если посмотреть пример
[Техническая документация PLCopen. Руководство по кодированию. версия 1.0, официальный релиз ] стр. 85,
то там переменная index: INT; из VAR_TEMP как раз используется как параметр цикла.
Можно. Но оно переинициализируется в конце цикла - в этом и суть VAR_TEMP - поэтому вы не увидите ничего интересного в онлайн-мониторинге.
Примерно по тем же причинам нельзя в мониторинге увидеть "текущие" значения локальных переменных функций - как и в случае VAR_TEMP, они размещаются в стеке.
Такой вопрос.
Почему система допускает такую декларацию?
VAR_TEMP CONSTANT
TAG_1: INT;
END_VAR
В справке дано такое описание для CONST:
<scope> CONSTANT
<identifier> : <data type> := <initial value> ;
END_VAR
<scope> : VAR | VAR_INPUT | VAR_STAT | VAR_GLOBAL
<data type>: <elementary data type> | <user defined data type> | <function block>
<initial value> : <literal value> | <identifier> | <expression>
Т.е. VAR_TEMP CONST не допускается. Но написать и скомпилировать так можно, и загрузить ...
Да.
В документации написано, как надо делать.Цитата:
Такой вопрос.
Почему система допускает такую декларацию?
VAR_TEMP CONSTANT
TAG_1: INT;
END_VAR
В справке дано такое описание для CONST:
<scope> CONSTANT
<identifier> : <data type> := <initial value> ;
END_VAR
<scope> : VAR | VAR_INPUT | VAR_STAT | VAR_GLOBAL
<data type>: <elementary data type> | <user defined data type> | <function block>
<initial value> : <literal value> | <identifier> | <expression>
Т.е. VAR_TEMP CONST не допускается. Но написать и скомпилировать так можно, и загрузить ...
Предусмотреть в компиляторе все возможные ситуации, в которых человек принципиально хочет выстрелить в себе в ногу, и проинформировать его предупреждением/ошибкой - довольно затруднительно.
СПК107 версия М01 2022 года выпуска, версия прошивки 2.4.0923.1000. При загрузке пустого проекта на этапе генерация кода... relocation pou зависает и выдает ошибку Неверный пакет результатов.
Проект загруженный ранее на СПК при этом доступен через веб-интерфейс.
Экран СПК черный, ничего не выводит.
В другой подобный СПК проект загружается без проблем.
Добрый день.
Напишите, пожалуйста, на support@owen.ru
Подготовьте доступ по AnyDesk.
Проблему решили через сброс в веб-интерфейсе.
Привет.
Подскажите как найти место ошибки в программе?
Я получаю ошибку:
И тут нет ссылки на место в коде.Цитата:
------ Компиляция : Приложение: Device.Application -------
типизировать код...
генерировать код...
генерировать глобальные инициализации ...
генерировать код инициализации...
генерация перемещений...
[ERROR] proj15: C0032: Невозможно конвертировать тип 'REFERENCE TO STRING' в тип 'REFERENCE TO STRING(20)'
[ERROR] proj15: C0032: Невозможно конвертировать тип 'REFERENCE TO STRING' в тип 'REFERENCE TO STRING(20)'
[ERROR] proj15: C0032: Невозможно конвертировать тип 'REFERENCE TO STRING' в тип 'REFERENCE TO STRING(20)'
[ERROR] proj15: C0032: Невозможно конвертировать тип 'REFERENCE TO STRING' в тип 'REFERENCE TO STRING(20)'
Компиляция завершена -- 4 ошибок, 63 предупреждений : загрузка невозможна
Как быть?
Как найти место с ошибкой?
Да. Я это пониманию.
Но двойной клин не ведет никуда. Ничего не происходит.
Место в коде не указано.
CoDeSys перезагружал - не помогло.
См. рисунок:
Вложение 82525
Традиционным способом:Цитата:
Как найти место с ошибкой?
Вложение 82526
[QUOTE=Евгений Кислов;459586]Традиционным способом:
Да. Видимо так и придется.
Но нет решения проще? Ведь в других случаях ИДЕ подсказывает место ошибки.
Добрый день. Создал проект для контроллера ПЛК210 - компилируется без ошибок. Скопировал этот контроллер и вставил его как второй в проекте. Без внесения изменений в программу второго контроллера при его компиляции выскочили следующие предупреждения:
C0373: Обращение по записи к переменной 'modbusAOBuf'! Значение будет перезаписано, поскольку переменная соотнесена с входным каналом.
[WARNING] Более 100 предупреждений: все последующие сообщения проигнорированы
Программы первого и второго контроллера полностью идентичны, но на первом этих предупреждений нет, почему? Как решить проблему?
...потому что включен контроль множественной записи выходов.
А код, значит, в переменную modbusAOBuf пишет из разных мест. А это неправильно.
А почему в первом контроллере нет предупреждений? Где проверить включение контроля записи?
Массив modbusAOBuf подвязан к регистрам временного хранения Modbus TCP Slave Device. В программе в него записываю данные. На первом контроллере все работает.
Скорее всего выключены. Они включаются в Установках проекта. У меня сейчас под рукой нет CodeSys, поэтмоу точно не скажу.
Ну вот в этом случае надо выключить это предупреждение.
Вот тогда не знаю. Я их везде включаю и стараюсь делать так, чтобы под них не попадаться.
Здравствуйте
Можно ли написать универсальный функциональный блок?
Попытаюсь объяснить, что я имею ввиду
Есть несколько структур расширенные друг другом:
PHP код:TYPE BlankDevice :
STRUCT
Name: WSTRING(30); // Название
byStatus: Status; // Статус узла
END_STRUCT
END_TYPE
PHP код:TYPE SimpleDevice EXTENDS BlankDevice :
STRUCT
xOutRun: REFERENCE TO BOOL REF= xOutRun; // Ссылка на значение Пуск
END_STRUCT
END_TYPE
PHP код:TYPE MediumDevice EXTENDS SimpleDevice :
STRUCT
xInRun: REFERENCE TO BOOL REF= xInRun; // Ссылка на значение В работе
END_STRUCT
END_TYPE
PHP код:TYPE ComplexDevice EXTENDS MediumDevice:
STRUCT
xInAlarm: REFERENCE TO BOOL REF= xInAlarm; // Ссылка на значение Авария
END_STRUCT
END_TYPE
Если я пишу функциональный блок для обработки структуры FrequencyDivicePHP код:TYPE FrequencyDivice EXTENDS ComplexDevice :
STRUCT
xOutResetAlarm: REFERENCE TO BOOL REF= xOutResetAlarm; // Ссылка на значение Сброс аварии
uiOutSpeed: REFERENCE TO UINT REF= uiOutSpeed; // Ссылка на значение Скорость
rInCurrent: REFERENCE TO REAL REF= rInCurrent; // Ссылка на значение Ток
END_STRUCT
END_TYPE
В этот функциональный блок я не могу отправить структуру ну например MediumDevice, компилятор выдаст ошибку.PHP код:FUNCTION_BLOCK FB_ FrequencyDivice
VAR_INPUT
stIn: REFERENCE TO FrequencyDivice;
END_VAR
Подскажите можно ли как-то это реализовать с возможностью знать из функционального блока с какой структурой к нему обратились.
Что-то не очень хочется для каждой структуры писать свой функциональный блок.
Подскажите люди добрые. Известная проблема с трендами когда отключаешь питание на СПК и звезды встали не так потом вылетает ошибка "Some kind of disk I/O error occurred. Check disk space".
Поменять все тренды на ОВеновские пока не могу. А вот если при выключении питания вручную или по событию дать предварительно команду "poweroff" через системную библиотеку, то все файлы корректно закроются и ошибка уйдет? Или?
По крайней мере, это серьезно уменьшит вероятность её проявления.Цитата:
А вот если при выключении питания вручную или по событию дать предварительно команду "poweroff" через системную библиотеку, то все файлы корректно закроются и ошибка уйдет? Или?
Цитата:
Подскажите можно ли как-то это реализовать с возможностью знать из функционального блока с какой структурой к нему обратились.
Код:FUNCTION_BLOCK FB_FrequencyDevice
VAR_INPUT
pstIn: POINTER TO BYTE; // указатель на любую структуру
eDeviceType: DEVICE_TYPE; // Тип структуры: DEVICE_TYPE.BLANK, DEVICE_TYPE.MEDIUM, DEVICE_TYPE.COMPLEX и т. д.
END_VAR
Спасибо
Изучаю Data Type: ANY, ANY_<type>
Данный тип вроде также с указателями работает
Добрый день! ПЛК210 и модули ВВ. Во всех модулях Флаг ошибки - TRUE. Ну и в каждом канале аналогового вода ошибка 241. В чем проблема установки флага?
Где найти Modbus 4.3.0.0? И стоит ли это делать? Может лучше отказаться от шаблонов?
Добрый день! А вообще допускается создание нескольких контроллеров ОВЕН в одном проекте CODESYS 3.5? У меня объект на контроллерах ПЛК210 (всего более 10 шт.), решил для удобства делать все в одном проекте, создал программу для первого контроллера - компиляция без ошибок, затем его скопировал и вставил в этом же проекте - сразу откомпилировал, появилось странное предупреждение "C0373: Обращение по записи к переменной...". Ладно, думаю, не страшно. Так сделал 4 контроллера, затем вернулся к первому, просто добавил через шаблон модуль МУ110 и все - при компиляции множество ошибок типа: "MU110_8R_K: Адрес %QW766 уже используется." В сохраненном проекте с одним контроллером любые модули добавляются без проблем.
Добрый день.
Допускается.
Чтобы разобраться в вашей конкретной ситуации - напишите, пожалуйста, на support@owen.ru или мне в телеграм (см. в подписи).
Добрый день. Подскажите почему в текстовых файлах два столбца ru/RU?
Добрый вечер. Пытаюсь подключить датчик давления ПД200-ДИ с выходным сигналом RS-485. Подключил к соответствующим выходам плк, но значение не снимает. На датчике самом все есть, и давление и тд, а в codesys нет. В чем может быть проблема?
artem287 Варианты (что надо проверить и нам показать):
* Правильность соединения A-A, B-B для RS-485
* Настройки связи (скорость, чётность, число стоп-бит)
* Настройки адреса для связи