Ошибка шины codesys

0 / 0 / 0

Регистрация: 14.05.2015

Сообщений: 7

1

14.05.2015, 22:11. Показов 12836. Ответов 10


Студворк — интернет-сервис помощи студентам

Добрый день.
Подскажите плиз начинающему.
Установил Codesys 2.3
При попытке виртуального подключения к контроллеру выдает ошибку связи. (для запуска программы)
Может я что-то делаю не так?
Фактически я к нему и не подключаюсь — хочу потренироваться в режиме эмуляции.



0



91 / 86 / 12

Регистрация: 08.08.2013

Сообщений: 667

14.05.2015, 23:01

2

На вкладке «онлайн» галочка «Режим эмуляции» стоит?
Кидайте проект, гляну.



0



0 / 0 / 0

Регистрация: 14.05.2015

Сообщений: 7

14.05.2015, 23:31

 [ТС]

3

Спасибо, заработало!!

Добавлено через 13 минут
Поскажите режим запустился. Но выходной сигнал не меняется от входного. Схема тупо через реле времени.
Записываю в контроллер, нажимаю старт, меняю вход но ничего не проиходит…



0



0 / 0 / 0

Регистрация: 14.05.2015

Сообщений: 7

14.05.2015, 23:59

 [ТС]

4

Или просто вход А = выход В
вход меняю, выход не изменяется

Миниатюры

[CoDeSys] Эмуляция и отладка программы - нет связи с ПЛК
 



0



Почетный модератор

Эксперт по компьютерным сетямЭксперт Windows

28044 / 15777 / 982

Регистрация: 15.09.2009

Сообщений: 67,752

Записей в блоге: 78

15.05.2015, 08:29

5

онлайн — логин
онлайн — ран



0



0 / 0 / 0

Регистрация: 14.05.2015

Сообщений: 7

15.05.2015, 08:48

 [ТС]

6

Совершенно верно, уважаемый. Но как увидеть изменение значений выходов?
В Owen logic для прогр. реле все изменяется «в онлайне» — изменил состояние входа, видно изменение выхода. А здесь не пойму.. Нужно делать визуализацию переменных, чтобы отследить работу?



0



0 / 0 / 0

Регистрация: 14.05.2015

Сообщений: 7

15.05.2015, 08:55

 [ТС]

7

Вот

Миниатюры

[CoDeSys] Эмуляция и отладка программы - нет связи с ПЛК
 



0



0 / 0 / 0

Регистрация: 14.05.2015

Сообщений: 7

15.05.2015, 08:56

 [ТС]

8

Вход А изменяю, выход В не меняется…



0



Почетный модератор

Эксперт по компьютерным сетямЭксперт Windows

28044 / 15777 / 982

Регистрация: 15.09.2009

Сообщений: 67,752

Записей в блоге: 78

15.05.2015, 08:57

9

не нужно. двойной щелчок — ctrl+F7



1



0 / 0 / 0

Регистрация: 14.05.2015

Сообщений: 7

15.05.2015, 09:20

 [ТС]

10

O my god, заработалааа! Спасибо!

Добавлено через 12 минут
Еще маленький вопрос. В реальном времени отслеживать можно работу?
Имею ввиду задержки TON и TOF, как регулируются в режиме эмуляции?
Я вижу результат на выходе, но как это происходит можно увидеть?
Я выставляю время задержки последовательного пуска двигателей и мне это важно..



0



91 / 86 / 12

Регистрация: 08.08.2013

Сообщений: 667

15.05.2015, 10:06

11

сверху, там где объявляются переменные типа ton1:ton;
ПОСЛЕ того как запустите проект появится маленький плюсик, его надо раскрыть, тем самым вы увидите все внутренние переменные FB.
Если хотите менять время на TON или TOF, то вам необходима создать дополнительную переменную типа TIME и подсоединить её на вход таймера PT, тоесть переменную а не константу.
Пишется значение так «T#100ms» или «T#0,1s» и т.д.
Так же нажимаем F1 в codesys, переходим на вкладку ПОИСК и вбиваем туда интересующий нас блок, там все с примерами.



0



сodesys v.3.5Среда программирования CODESYS v3.5

Компания 3S-Smart Software Solutions GmbH выпустила новую версию среды программирования CODESYS v3, построенную по концептуально новому принципу: разработчики взяли за основу объектно-ориентированное программирование (ООП). В третьей версии появилась возможность создания программ процедурным методом либо на принципах стандартного ООП. Языки программирования дополнены новыми типами.

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

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

Создание нового проекта в среде CODESYS v3.5

В первую очередь обращаем внимание на особенности создания нового проекта. Для этих целей в среде CODESYS v2.3 использовалась вкладка Конфигурация ПЛК, в CODESYS v3.5 настройка осуществляется на вкладке Устройства (в английской версии соответственно Devices).

Контроллер, интерфейс, протокол, модуль с точки зрения CODESYS v3.5 являются программными устройствами (Devices). Любое устройство, созданное в CODESYS v3.5, имеет конкретную версию. При добавлении в проект устройств CODESYS по умолчанию использует самую старшую версию. ВЕРСИИ УСТРОЙСТВ, ИСПОЛЬЗУЮЩИЕСЯ В ПРОЕКТЕ, ДОЛЖНЫ СТРОГО СООТВЕТСТВОВАТЬ ВЕРСИИ TARGETФАЙЛА КОНТРОЛЛЕРА ИЛИ БЫТЬ МЛАДШЕ.

Рис. 1. Последовательность настройки интерфейсов

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

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

Среда программирования CODESYS v3.5 и Target-файлы находятся на сайте: http://www.owen.ru/catalog/25605006 в свободном доступе.

Режимы работы в CODESYS v3.5 по протоколу Modbus

Если сравнивать режимы, которые реализованы в CODESYS v2.3 и v3.5, то в новой версии имеется ряд ограничений, которые ввела компания 3S Software. CODESYS v3.5 поддерживает режимы Modbus Master RTU/TCP и Slave RTU/ TCP, но не поддерживает Modbus ASCII. Режим ASCII реализован в библиотеке Modbus ОВЕН.

Поддерживаемые скорости обмена в CODESYS v3.5:

  • 4800
  • 9600
  • 19200
  • 38400
  • 57600
  • 115200

Не поддерживаемые скорости обмена[1] в CODESYS v3.5:

  • 1200
  • 2400
  • 14400
  • 28800

Нумерация портов в CODESYS v3.5

При настройке интерфейсов RS-232/485 необходимо указывать номера портов. Номер порта в CODESYS v3.5 не соответствует номеру, указанному на корпусе прибора. Соотношение номеров портов на корпусе и в CODESYS v3.5 находятся в руководстве по эксплуатации, входящем в комплект поставки оборудования. В табл. 1 приведены номера портов для панельных контроллеров серии СПК.

Номер порта на корпусе прибора

Нумерация портов в среде программирования CODESYS

СПК105[2]

СПК107

СПК110

СПК207

СПК210

COM1

2 (RS-232)

3 (RS-485)

2

COM2

3

COM3

4

Общая методика конфигурирования интерфейсов в CODESYS v3.5

Контроллеры ОВЕН оснащены универсальными интерфейсами RS-232/485. Настройка интерфейсов в CODESYS v3.5 имеет строго определенную последовательность (рис. 1).

Во-первых, необходимо выбрать интерфейс (232 или 485) и установить режим работы порта – Master или Slave. Если порт настраивается для режима Slave, то достаточно указать перечень регистров, которые будут участвовать в обмене; если в режиме Master, то необходимо описать опрашиваемые устройства и указать регистры каждого из них.

Настройка интерфейсов

Для добавления в проект интерфейса необходимо перейти на вкладку Устройства (рис. 2). В дереве объектов выбрать настраиваемый контроллер, например, СПК107 с Target-файлом 3.5.2.0. Правой кнопкой выбрать пункт и в открывшемся меню – пункт Добавить устройство (рис. 2).

Откроется диалоговое окно (рис. 3) с перечнем устройств, поддерживаемых CODESYS. Чтобы выбрать необходимую версию устройства, нужно выставить флаг на пункте . Для добавления COM-порта нужно нажать на «+» возле пункта Modbus. В меню (рис. 4) следует выделить пункт (версия 3.4.0.0 меньше версии Target-файла 3.5.2.0) и добавить устройство, в данном случае – Modbus COM. Дерево объектов имеет вид, показанный на рис. 5.

Зададим настройки COM-порта. Если дважды нажать на , откроются его настройки (рис. 5). На вкладке Конфигурация последовательного порта Modbus следует указать номер порта, скорость передачи данных и другие параметры. Для контроллеров серии СПК2хх обмен можно реализовать через Ethernet. Он добавляется аналогично COM-порту: выбирается устройство , в открывшемся меню из списка Ethernet-адаптер добавляется устройство Ethernet (рис. 6). В контроллерах СПК207-03-CS-WEB использовался Target-файл версии 3.5.0.40. Вкладка порта Ethernet не имеет активных настроек, так как используются системные настройки.

Настройка мастера сети

После добавления интерфейсов необходимо установить режимы работы устройств (Master или Slave). Настройка режимов Modbus Master или Modbus Slave для разных интерфейсов практически одинакова. Сначала следует выбрать соответствующий интерфейс (например, Ethernet, рис. 7), правой кнопкой мыши вызвать окно Добавить устройство.

Диалоговое окно порта Ethernet показано на рис. 8. Диалоговое окно COM-порта показано на рис. 9. В зависимости от выбранного порта настраивается режим мастера сети. В данном примере используется ОВЕН СПК207 версии 3.5.0.40, поэтому версию мастера для COM-порта и Ethernet можно выбрать 3.4.3.х или 3.5.0.0.

Для порта Ethernet:

Для порта COM:

После добавления режима Master (RTU, TCP) необходимо его настроить. Для этого в дереве объектов нужно дважды выбрать добавленного мастера. Откроется окно настроек, где необходимо открыть вкладку . На рис. 10 показаны настройки для Ethernet: Таймаут ответа – время ожидания мастером ответа от Slave-устройства. Если за установленное время Slave не отвечает, Master начинает опрос следующего Slave-модуля. Выбранное значение (1000, рис. 10) будет по умолчанию использоваться для всех Slave-устройств. Для каждого модуля можно задавать свое время ожидания на вкладке Конфигурация Slave. Таймаут сокета – максимальное время ожидания мастером входящих пакетов TCP/IP.

Настройка для COM-порта аналогична Ethernet, только вместо таймаут сокета используется параметр: время между фреймами – интервал между ответом (или окончанием ожидания) и следующим запросом. Этот параметр может использоваться для увеличения скорости передачи.

Настройка Slave-устройств

После добавления мастера необходимо добавить Slaveустройства. Для этого на вкладке Устройства выбирается мастер и правой кнопкой добавляются Slave-устройства (рис. 11).

В данном примере используется СПК207 с Target-файлом 3.5.0.40.

Добавление Slave-устройства для мастера Ethernet-порта: . Добавление Slave-устройства для мастера COM-порта: . После проведенных операций дерево объектов имеет вид, показанный на рис. 12. Для удобства порты можно переименовывать, на рис. 12 показано, что порт Modbus COM переименован в COM1.

Конфигурирование Slave-устройств

После добавления Slave-устройств переходим к их конфигурированию. Для этого в дереве объектов следует выбрать Slave-устройство и двойным кликом открыть окно настроек. Slave-устройство, подключенное к мастеру Ethernet-порта (рис. 13), имеет следующие настройки: IP Адрес Slave – IP адрес устройства, которое опрашивает мастер сети.

Unit — ID – сетевой адрес устройства, который может принимать значения от 1 до 247, и используется для идентификации узла в сети.

Таймаут ответа устанавливается для каждого Slave-модуля и имеет приоритет по отношению к соответствующему параметру Master.

Порт – номер порта для Slave-модуля. Slave-устройство, подключенное к мастеру COM-порта, имеет аналогичные настройки.

Добавление каналов

Дальнейшая настройка независимо от типа интерфейса сводится к заданию канало[3]в (одного или нескольких регистров) и указанию режима работы канала – чтение или запись с последующей привязкой к переменным конфигурации.

Для добавления каналов следует перейти на вкладку Канал Modbus Slave соответствующего Slave-устройства и нажать на кнопку Добавить канал (рис. 14). Откроется диалоговое окно (рис. 15) с параметрами, приведенными в табл. 2.

После того как Slave-устройству будут заданы каналы и режимы работы, следует выполнить привязку читаемых или задаваемых регистров к переменным проекта на вкладке Соотнесение входов/выходов. Для этого необходимо выбрать канал, два раза кликнув по полю с названием «Переменная» (рис. 16). После этого поле станет

Таблица 2. Параметры каналов

Группа параметров «Канал»

Имя

Название канала

Тип доступа

Чтение регистра хранения (код функции 03) Чтение входных регистров (код 04) Запись в один регистр (код 06) Запись в несколько регистров (код 16) Запись/чтение регистров (код 23)

Триггер

CYCLIC: запрос выполняется периодически RISING_EDGE: запрос выполняется по переднему фронту логической переменной (для запуска сервисов Modbus из приложения в любое время необходимо установить триггер в RISING_EDGE)

Время цикла

Если триггер имеет значение CYCLIC: интервал между опросами в мс (должен быть равен или кратным времени цикла приложения)

Комментарий

Краткое описание реального смысла данных

Группа параметров «Регистр READ»

Сдвиг

Номер регистра для чтения (0-65535)

Длина

Количество регистров (=слов), которые будут прочитаны

Обработка ошибок

Обработка данных в случае возникновения ошибок соединения: «Set to ZERO» устанавливает все значения в 0. Keep last Value сохраняет предыдущее значение.

Группа параметров «Регистр WRITE»

Сдвиг

Номер регистра для записи (0-65535)

Длина

Количество регистров (=слов), которые будут записаны

активным для редактирования, и появится кнопка . Если на нее нажать, то произойдет вызов диалога «Ассистент ввода», с помощью которого можно связать регистр с переменной проекта (рис. 17).

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

Если мастер сети опрашивает несколько устройств в сети, то по описанной выше методике добавляются и настраиваются очередные Slave-устройства. На рис. 18 приведен пример дерева объектов с задействованным портом Ethernet и двумя serial-портами. Все три порта настроены в режиме Master, и каждый из них опрашивает по четыре Slave-устройства.

У Slave-устройства есть вкладка Modbus Slave Init, которая предназначена для предварительной инициализации данных, например, если перед началом обмена устройству необходимо задать настройки (например, указать тип датчика). Методика добавления регистров для инициализации аналогична методике добавления каналов, есть только еще один пункт – значение инициализации.

Настройка устройства в режиме Slave

Если устройство нужно настроить на работу в режиме Slave, то после добавления интерфейсов необходимо добавить Slave-устройства. Для этого на вкладке Устройства выбирается интерфейс и правой кнопкой добавляется режим Slave: для порта Ethernet (рис. 19), для COM-порта (рис. 20).

После настройки режима Slave необходимо задать основные настройки устройств для Modbus Slave TCP (рис. 21), для Modbus Slave RTU (рис. 22).

Таймаут: время ожидания (мс) кратное 500 мс.

Slave-порт: номер порта для Slave-модуля.

ID элемента: сетевой адрес устройства Modbus.

Регистры временного хранения: число регистров, доступных только для чтения функцией 04. Входные регистры: число регистров, доступных для чтения функцией 03 и записи функцией 16.

После задания основных настроек регистры можно связать с переменными программы на вкладке «Соотнесение входов/выходов».

На рис. 23 показан пример дерева объектов для СПК207, порт Ethernet и порты COM2 и COM3 настроены на режим работы Slave.

После выполнения описанных операций необходимо подключить настраиваемое оборудование к СПК и убедиться в корректности обмена. Таким образом, настройка СПК по протоколу Modbus завершена.


[1] На этих скоростях контроллеры ОВЕН поддерживают работу в ОС Linux, но возможность работы непосредственно в среде программирования отсутствует.

[2] В СПК105 интерфейсы RS-485 и RS-232 выведены на один порт COM1, что обеспечивает возможность одновременной работы и по RS-485, и по RS-232 в отличие от остальных контроллеров серии СПК.

[3] Канал – это группа адресов, расположенных последовательно друг за другом и опрашиваемых одной функцией.

  • 3 Апр 2015

Подключился сегодня к ПЛК на одной из установок и слил с него все файлы что были доступны, а потом залил их в такой же ПЛК находящийся у меня на столе. Счастья не случилось — ПЛК успел вякнуть в debug порт что то про ошибку в загруженном проекте, после чего отказался общаться по всем UART(даже который через USB), не помогала даже комбинация кнопок «Стоп»+»Сброс». В конце концов подключиться удалось через ethernet и записать в контроллер демонстрационный проект, который перестал вешать контроллер.

  • 4 Апр 2015

Тадаммм!!!

hello_world__110.jpg

  • 10 Апр 2015

Тема медленно но верно перетекает с реверса чужого софта в разработку своего. Сегодня наткнулся на забавные грабли при связи ПЛК и панели СП270. Панель master, ПЛК slave. При передаче float панель отображала его некорректно — абсолютно левые значения без явной закономерности . Читал доки, смотрел примеры, так и не понял в чём дело. Начал рыть инет, в первую очередь форум OWEN. Оказалось разрабы перепутали порядок передачи байтов в DWORD, для исправления проблемы существует абсолютно не очевидная галочка в настройках проекта. За одно обнаружил что для того чтобы отобразить число со знаками после запятой можно передать в панель int, а потом переместить запятую форматом отображения(причём это рекомендованный метод).

  • 2 Май 2015

Продолжаем тренироваться на «кошечках»

imag0973__478.jpg

sh1_133.jpg

  • 14 Май 2015

И так, сегодня состоялся первый пуск большой железяки под управлением моей программы. Ничего не взорвалось, но и работой это назвать сложно: как только значение ШИМ для нагревателя становилось меньше 100%(то есть появлялась импульсная помеха) сразу же начинали фиксироваться ложные срабатывания различных датчиков подключённых на дискретные входы. Сейчас посмотрел — время фильтрации входных сигналов по умолчанию выставлено 1 мс, подозреваю что надо поднять хотя бы до 200мс.

  • 15 Май 2015

Paidj сказал(а):

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

Вчера я припёрся на объект только с потрохами шкафа и отвёрткой, без ноута. Сегодня посмотрел по какой ошибке происходила остановка работы на самом деле: оказалось дело было в кратковременных сбоях связи между ПЛК и МВА, что конечно ни есть хорошо, но может случаться и программа не должна реагировать на это событие так параноидально.
А ещё выяснилось что я забыл дать команду на включение вентилятора охлаждения на симисторной сборке, обошлось без последствий.

  • 16 Июн 2015

У коллег нашёлся ПЛК-100 очень давно снятый с какой то установки из за нестабильной работы. Проблема оказалась в дохлом кондёре во внутреннем питальнике. Попутно удалось рассмотреть конструкцию. В качестве основного проца используется Atmel at91rm9200. Пользовательская программа живёт очевидно в AT45DB321D. Где живёт retain память пока не понятно(на CPU модуле DA7 — стабилизатор, DA2 — трансивер RS-485, больше ничего похожего на память нету). На плате I/O и плате индикации живёт ещё по одному PIC16F689.

imag1029_147.jpg

imag1028__201.jpg

  • 8 Авг 2015

Недавно пришлось разбираться как работает Retain память ПЛК100 (сохраняет значение некоторых переменных при отключении питания). Оказалось работает это так: аккумулятор который виден на картинке в предыдущем посте способен поддерживать работу устройства при отключённом питании до 10 мин, при этом тухнет только индикация и отладочный USB, все остальные интерфейсы(даже ethernet) продолжают работать. Когда заряд АКБ почти исчерпан Retain переменные копируются из ОЗУ в специальный файл во внутренней файловой системе контроллера.
Финт в том что теперь надо будет ещё добавить в свою программулю проверку на то от какого источника питания работает ПЛК, потому что кратковременное отключение основного питания воспринималось как отказ всей периферии и исполнительных устройств с соответствующими сообщениями об ошибках.

  • 14 Май 2018

Опять меня постигли приключения с ПЛК-100, и опять с Retain памятью. Сохранения новых значений в Retain происходит не часто, поэтому о том что оно не работает я узнаю только когда технологи производства сообщают что внесённые в настройки изменения откатились до предыдущих после отключения питания. Дело в том что если скорость разряда АКБ достигает какого то придельного значения то сохранение данных не происходит(слава богу что хоть старые данные не портит). В прошлом году, на одном из ПЛК-100, проблема решилась приклёпыванием внешнего АКБ. Сейчас проблемы начались уже на двух экземплярах — и с внешним АКБ и с тем в котором был исправный родной АКБ.
Мой внешний АКБ умер полностью, скорее всего где то внутри обрыв.
В том экземпляре что был 2015 года выпуска родной АКБ просаживается с 4.18в до 2.6в меньше чем за секунду.
Буду готовить две новые внешние банки, но на этот раз обрамлю их платками защиты от телефонных АКБ чтобы не допускать разряда ниже 2.5в.

Штатной команды принудительного сохранения Retain не оказалось. На форумах нашёлся следующий лайвхак: при необходимости принудительно сохранить Retain, отрубается внешнее питание и пока контроллер пашет от АКБ исполняемая программа загоняется в бесконечный цикл, из за этого срабатывает соответствующий вотчдог, среда исполнения делает попытку перезапуска, но обнаруживает что контроллер на батарейном питании и завершает работу с сохранением Retain. Соответственно надо чтоб АКБ тянул нормальную работу контроллера хотя бы пару секунд.

imag0123__121.jpg

  • 19 Мар 2019

Продолжаем изучать чудный мир ПЛК ОВЕН. И снова ПЛК 100 с умирающим АКБ, но на этот раз всё значительно хуже. При осмотре неработающей установки выяснилось что на ПЛК не загорается индикатор «Работа», ПЛК реагирует только на reset и питание. Зато лог загрузки в Debug порт выводится и на первый взгляд ничего страшного там нет. С помощью plc_io удалось прочитать все файлы лежащие в открытой части файловой системы контроллера, в том числе DEFAULT.PRG и DEFAULT.CHK, в теории это всё что нужно что бы перенести прогу на другой экземпляр контроллера, но по факту ранее этого не разу не получилось. Я посчитал что я предпринял уже все меры и пора переходить к шитью. Попытался применить утилиту обновления ПО, на ту же версию что якобы уже зашита. Прошивка удалась раза с 3 или 4. Закинул на место DEFAULT.PRG и DEFAULT.CHK, индикатор «работа» так и не поджигается.
Попытался проверить а пашит ли контроллер вообще — сконфигурировал связь ПЛК и среды разработки, та контроллер увидела, но при выборе любого варианта конфигурации платформы ПЛК, среда разработки заявляла что выбранная конфигурация не совместима с контроллером. В ходе раскуривания этой ошибки наткнулся на чей то лог с Debug порта, и при сравнении его с моим выяснилось нечто интересное: при старте ядро контроллера пытается нащупать I2C Inter-Integrated Circuit; Последовательная асимметричная шина для связи между интегральными схемами. Использует линии связи (SDA и SCL) устройства по некоторому списку фиксированных адресов, у меня по всем адресам Fail, а в чужом логе нашлось аж 3 устройства. Сразу пришла идея подкинуть в контроллер другие платы периферии. Замена верхней платы(где индикация, акб, итд…) сразу же дала результат — контроллер стал вести себя полностью как должен — в логе так же находились 3 i2c устройства, контроллер начал реагировать на нажатие кнопки «Старт/Стоп» изменением состояния индикатора «работа», среда разработки без проблем заливает в ОЗУ контроллера тестовую программу. После отключения/подключения АКБ родная верхняя плата тоже ожила.
Ещё из признаков такого вида проблемы было замечено что в информации о конфигурации контроллера написано что «PIC upper version 0», а должна быть 07, лицензия с ограничением на длину программы 360байт(что туда вообще впихнуть можно?), а должна была быть «unlimited», в файле log.txt и debug.txt дата даже не 2000г, а 0/0/0.
Контроллер как бы ожил, индикатор «работа» начал загораться как положено, но закидывание на место DEFAULT.PRG и DEFAULT.CHK по прежнему ничего хорошего не давало — более того после закидывания файлов переставали обрабатываться состояния встроенных дискретных входов(даже индикаторы переставали поджигаться). Раскопки на ОВЕНовском форуме открыли для меня страшную тайну — по сети блуждают две версии утилиты plc_io — в одной неправильно работает чтение, в другой запись в контроллер. Какая версия была у меня я понятия не имел, но мне оставалось только взять с овеновского форума тулзу состоящую из обоих версий и скрипта запускающего нужную для записи/чтения и записать с помощью неё файлы что были считаны ранее. И о чудо!!!! Программа нормально втянулась и начала исполнятся — мне дико повезло что изначально у меня была версия утилиты в которой работает чтение!!!
Конечно мне повезло бы ещё больше если бы я сразу догадался сдёрнуть полудохлый АКБ, но тогда я бы не узнал для себя столько нового :cry:

  • 19 Мар 2019

Теоретик65 сказал(а):

В былые советские годы, которые почему то все хают,

Ты еще водку по 2,87 вспомни.
Дурних нэ маэ !
Все хотят денежку и после на обслуживании получать.
А кто не хочет н— тот лох.

  • 19 Мар 2019

igor.gm сказал(а):

А кто не хочет н— тот лох.

Даже не знаю что вам на это ответить. Я всегда наблюдал за «процессом» со стороны заказчика работ и выглядело это всегда соревнованием кто кого первым кинет. И честно никогда не считал этот расклад правильным, даже когда моему начальству удавалось сделать свой коварный ход первыми.

  • 21 Мар 2019

Paidj сказал(а):

DEFAULT.PRG и DEFAULT.CHK, в теории это всё что нужно что бы перенести прогу на другой экземпляр контроллера

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

  • 6 Май 2020

Пришлось вернуться к этой теме и начать освоение новой железки и среды разработки для неё. Если конкретно речь пойдёт об Овен СПК107 и среде разработки CoDeSys 3.5 . К самому контроллеру пока претензий особых нет, а вот ПО это нечто….
Главная особенность ПО от Овен это то что никто не контролирует версии компонентов из которых собирается проект, но при этом успешно он соберётся только если версии всех компонентов(версия прошивки, версия таргет файлов, версия среды разработки, версии библиотек) соответствуют друг другу. Так как CoDeSys 3.5 продолжает обновляться, в доступности есть куча версий компонентов которые вызывают несовместимость с чем либо из уже установленного ПО.
При первой попытке собрать пример из документации я получил 502 ошибки, а попытка сборки просто пустого проекта дала всего 39 ошибок. Причины этих нестыковок я постепенно нашёл, но вот сегодня я 5 часов пытался добавить в проект модуль modbus master и это вызывало ошибку access violation внутри среды исполнения в контроллере. Однако после очередного перезапуска CoDeSys 3.5 проект собрался и залился в контроллер, но на этот раз не вызывая ни каких ошибок. Как всё починилось Х/З.
И подобные глюки выплывают при добавлении почти каждого значимого компонента.

Вот честно: CoDeSys 2.3 была куда стабильней(хоть и не безгрешной), но к сожалению она не совместима с Овен СПК107.

IMAG0828_.jpg

  • 8 Май 2020

Ну что же, естественно мистически исчезнувший access violation не преминул вернутся, и я весь вечер потратил на выяснение что же его всё таки вызывает. Путём неисчислимого количества пересборок с перезаливкой проекта выяснилось что вызвано сие явление одновременным использованием компонентов Modbus Master на порту RS485 №2 и компонента визуализации «Вкладки». Как это может быть взаимосвязано я даже боюсь представить. В самом худшем случае дело в количестве использованной памяти, но есть очень жирное НО: авторы документашки «Первые шаги с CODESYS V3» формируя демонстрационный пример в упор игнорируют существование компонента «Вкладки», упорно повторяя его логику работы из более простых компонентов, сдаётся мне это не с проста.
Поживём увидим, продолжение следует….

  • 3 Авг 2020

Сегодня был первый день моего отпуска на основной работе, и видимо каким то богам удобно было что бы один из подопечных объектов начал косячить. Виной всему оказался Овен ПЛК110-60 прослуживший 8 лет. Попёрло кондёры во встроенном БП. Под замену все кроме входного.
И да, затея с СПК107 движется, правда медленнее чем этого хотели бы заказчики. Глюки озвученные в предыдущем посте пропали. В определённый момент времени мне потребовалось продемонстрировать заказчику хоть что то работающее и я попытался записать в контроллер загрузочный проект, а он не сохранялся от слова совсем. За несколько часов до передачи устройства железячникам я бороздил инет в поисках ответов на возникшие вопросы, пока не наткнулся на текстовый комментарий к актуальной прошивке — если устройство косячит сим замысловатым способом значит вы что то сделали не так, перепрошейтесь ещё раз. И внезапно всё заработало…
Зы: на влажность не смотрите, в психрометре «мокрый» датчик отсутствуетIMAG0884_.jpg
ЗЫ:ЗЫ: Авторы OwenPidRegs_v2.0 — злодеи, управление установкой имеющей и холодильник и нагреватель нифига не работает(не запускается холодильник), хотя на автонастройке все исполнительные механизмы отрабатывают.

  • 4 Май 2021

В очередном проекте автоматизации были использованы два частотника ОВЕН. Я заметил что другие авторы проектов предпочитают управлять частотниками не через RS-485, а через дискретные сигналы команд и установку задания по аналоговому интерфейсу 0..10в.
Не найдя объяснения почему сделано именно так, я заложил в проект подключение обоих частотников по RS-485, за пару дней разобрался что такое командное слово куда записывать задание и где смотреть флаги статуса.
Когда дело дошло до реального шкафа управления, в котором были оба частотника, началась хренотень: опрос устройств происходил не стабильно, а один из частотников стабильно отваливался, более того его коммуникационные параметры каждый раз слетали.
Проблема озадачила всех аж на пару дней, люди физически собиравшие шкаф попытались переложить межблочные провода 485 интерфейса, это не помогло.
В ходе одного из тестов я поменял адреса частотников местами, и о чудо — отваливаться начал другой, тот которому был записан более старший адрес. Надо заметить что для всех интерфейсных модулей Овен, опрашиваемых по RS-485 рекомендуется при назначении адресов делать между ними промежутки хотя бы в 16 адресов, сделано это потому что во время использования фирменного протокола ОВЕН прибор занимает не один адрес, а некоторую последовательность адресов.
Я увеличил промежуток между адресами частотников с 16 до 48 и всё заработало!!! При том что частотник официально поддерживает только Modbus RTU, однако возможно что протокол ОВЕН используется для конфигурирования устройства. Может где то в мануалах это и было описано, но видимо я это пропустил.

Click here follow the steps to fix Codesys Error 3611 and related errors.

Instructions

 

To Fix (Codesys Error 3611) error you need to
follow the steps below:

Step 1:

 
Download
(Codesys Error 3611) Repair Tool
   

Step 2:

 
Click the «Scan» button
   

Step 3:

 
Click ‘Fix All‘ and you’re done!
 

Compatibility:
Windows 7, 8, Vista, XP

Download Size: 6MB
Requirements: 300 MHz Processor, 256 MB Ram, 22 MB HDD

Limitations:
This download is a free evaluation version. To unlock all features and tools, a purchase is required.

Codesys Error 3611 Error Codes are caused in one way or another by misconfigured system files
in your windows operating system.

If you have Codesys Error 3611 errors then we strongly recommend that you

Download (Codesys Error 3611) Repair Tool.

This article contains information that shows you how to fix
Codesys Error 3611
both
(manually) and (automatically) , In addition, this article will help you troubleshoot some common error messages related to Codesys Error 3611 error code that you may receive.

Note:
This article was updated on 2023-10-13 and previously published under WIKI_Q210794

Contents

  •   1. What is Codesys Error 3611 error?
  •   2. What causes Codesys Error 3611 error?
  •   3. How to easily fix Codesys Error 3611 errors

What is Codesys Error 3611 error?

The Codesys Error 3611 error is the Hexadecimal format of the error caused. This is common error code format used by windows and other windows compatible software and driver vendors.

This code is used by the vendor to identify the error caused. This Codesys Error 3611 error code has a numeric error number and a technical description. In some cases the error may have more parameters in Codesys Error 3611 format .This additional hexadecimal code are the address of the memory locations where the instruction(s) was loaded at the time of the error.

What causes Codesys Error 3611 error?

The Codesys Error 3611 error may be caused by windows system files damage. The corrupted system files entries can be a real threat to the well being of your computer.

There can be many events which may have resulted in the system files errors. An incomplete installation, an incomplete uninstall, improper deletion of applications or hardware. It can also be caused if your computer is recovered from a virus or adware/spyware
attack or by an improper shutdown of the computer. All the above actives
may result in the deletion or corruption of the entries in the windows
system files. This corrupted system file will lead to the missing and wrongly
linked information and files needed for the proper working of the
application.

How to easily fix Codesys Error 3611 error?

There are two (2) ways to fix Codesys Error 3611 Error:

Advanced Computer User Solution (manual update):

1) Start your computer and log on as an administrator.

2) Click the Start button then select All Programs, Accessories, System Tools, and then click System Restore.

3) In the new window, select «Restore my computer to an earlier time» option and then click Next.

4) Select the most recent system restore point from the «On this list, click a restore point» list, and then click Next.

5) Click Next on the confirmation window.

6) Restarts the computer when the restoration is finished.

Novice Computer User Solution (completely automated):

1) Download (Codesys Error 3611) repair utility.

2) Install program and click Scan button.

3) Click the Fix Errors button when scan is completed.

4) Restart your computer.

How does it work?

This tool will scan and diagnose, then repairs, your PC with patent
pending technology that fix your windows operating system registry
structure.
basic features: (repairs system freezing and rebooting issues , start-up customization , browser helper object management , program removal management , live updates , windows structure repair.)

Если это не поможет, свяжитесь с изготовителем ПЛКCoDeSys V2.310-123Приложение J: Ошибки и предупреждения компилятора3601″<name> is a reserved variable name»Имя данной переменной зарезервировано генератором кода, измените его.3610″ ‘<Name>’ is not supported»Данное свойство не поддерживается в установленной целевой системе.3611″The given compile directory ‘<name>’ is invalid»В ‚Project’ ‚Options’ ‚Directories’ задана несуществующая директория для файлов компилятора.3612″Maximum number of POUs (<number>) exceeded! Compile is aborted.»В проекте используется слишком много POU.

Измените максимум POU в Target Settings / MemoryLayout.3613″Build canceled»Компиляция прервана пользователем.3614″Project must contain a POU named ‘<name>’ (main routine) or a taskconfiguration»Создайте главный POU (т.е. PLC_PRG) или задайте конфигурацию задач.3615″<Name> (main routine) must be of type program»Главный POU (т.е. PLC_PRG) должен иметь тип программа.3616″Programs musn’t be implemented in external libraries»Проект, который предполагается сохранить как внешнюю библиотеку? содержит программы.

Они небудут доступны в библиотеке.3617″Out of memory»Увеличьте размер виртуальной памяти вашего компьютера.CoDeSys V2.310-124Приложение J: Ошибки и предупреждения компилятора3618″BitAccess not supported in current code generator!»Битовый доступ не поддерживается генератором кода данной целевой системы.3619″Object file ‘<name>’ and library ‘<name>’ have different versions!»Убедитесь, что файлы *.lib и *.obj resp. *.hex соответствуют одной версии библиотеки.

Проверьте даты создания этих файлов.3620″The POU ‘<name>’ must not be present inside a library»Вы пытаетесь сохранить библиотеку в формате версии 2.1. В этой версии библиотека не может содержать PLC_PRG, удалите или переименуйте его.3621″Cannot write compile file ‘<name>'»Вероятнее всего, в директории, указанной для файлов компилятора, уже имеется файл с таким именем, имеющий атрибут «Только чтение «. Удалите данный файл либо измените ему права доступа.3622″The symbol file ‘<name>’ could not be created»Вероятнее всего, в директории, указанной для символьных файлов (обычно это директория проекта),уже имеется файл с таким именем, имеющий атрибут «Только чтение «.

Удалите данный файл либоизмените ему права доступа.3623″Cannot write boot project file ‘<name>'»Вероятнее всего, в директории, указанной для загрузочных файлов (специфичных для целевой платформы), уже имеется файл с таким именем, имеющий атрибут «Только чтение «. Удалите данный файллибо измените ему права доступа.3624″Target setting <targetsetting1>=<set value> not compatible with <targetsetting2>=<set value>»Проверьте и исправьте данные установки в диалоге Targetsettings dialogs (вкладка Resources). Если онинедоступны для редактирования, то обратитесь к изготовителю контроллера.3700» POU with name ‘<name>’ is already in library ‘<name>'»Имя POU проекта уже использовано в библиотеке, измените его.CoDeSys V2.310-125Приложение J: Ошибки и предупреждения компилятора3701″Name used in interface is not identical with POU Name»Используйте команду ‘Project’ ‘Rename object’ для изменения памяти POU в организаторе объектовлибо измените имя в окне объявления POU.

Имя POU следует за одним из ключевых слов: PROGRAM, FUNCTION или FUNCTIONBLOCK.3702″Overflow of identifier list»Не более 100 идентификаторов могут быть использованы при объявлении одной переменной.3703″Duplicate definition of identifier ‘<Name>'»Убедитесь, что только один идентификатор ‘<Name>’ присутствует в разделе объявлений POU.3704″data recursion: «<POU 0> -> <POU 1> -> .. -> <POU 0>»»Применен не допустимый вызов экземпляром функционального блока самого себя.3705″<Name>: VAR_IN_OUT in Top-Level-POU not allowed, if there is no Task-Configuration»Создайте конфигурацию задач или убедитесь, что переменные VAR_IN_OUT не используются вPLC_PRG.3720″Address expected after ‘AT'»После ключевого слова AT должен быть указан корректный адрес.3721″Only ‘VAR’ and ‘VAR_GLOBAL’ can be located to addresses»Поместите объявление в область VAR или VAR_GLOBAL.3722″Only ‘BOOL’ variables allowed on bit addresses»Только переменные типа BOOL могут адресовать биты.

Измените адрес или тип переменной.3726″Constants can not be laid on direct addresses»Константы нельзя располагать по прямым адресам.CoDeSys V2.310-126Приложение J: Ошибки и предупреждения компилятора3727″No array declaration allowed on this address»Объявление может быть произведено по указанному адресу. Измените адрес.3728″Invalid address: ‘<address>'»Указанный адрес не определен для заданной конфигурации ПЛК. Измените адрес или конфигурациюПЛК.3729″Invalid type ‘<name>’ at address: ‘<Name>’ «Переменная данного типа не может быть размещена по указанному адресу.

Например: адрес AT%IB1:WORD; не допустим, если включено выравнивание по четным адресам. Данная ошибка можетвозникнуть при попытке разместить массив по недопустимому прямому адресу.3740″Invalid type: ‘<Name>’ «Ошибка в типе данных объявления.3741″Expecting type specification»Ключевое слово или оператор использован вместо типа данных3742″Enumeration value expected»В определении перечисления пропущен идентификатор после скобки либо разделитель.3743″Integer number expected»Перечисления можно инициализировать только целыми значениями (INT).3744″Enum constant ‘<name>’ already defined»Проверьте соблюдение следующих правил при объявлении перечислений:•Все значения в одном перечислении должны быть уникальны.•Во всех глобальных перечислениях все значения должны быть уникальны.•Во всех локальных перечислениях все значения должны быть уникальны.CoDeSys V2.310-127Приложение J: Ошибки и предупреждения компилятора3745″Subranges are only allowed on Integers!»Переменные с ограниченным диапазоном образуются только на целочисленных типах.3746″Subrange ‘<name>’ is not compatible with Type ‘<name>'»Один из пределов диапазона выходит за область значений базового типа.3747″unknown string length: ‘<name>'»Для определения длины строки используется ошибочная константа.3748″More than three dimensions are not allowed for arrays»Нельзя использовать массивы с размерностью более трех.

Используйте ARRAY OF ARRAY при необходимости.3749″lower bound ‘<name>’ not defined»Не задана константа, определяющая нижнюю границу диапазона.3750″upper bound ‘<name>’ not defined»Не задана константа, определяющая верхнюю границу диапазона.3751″Invalid string length ‘<number of characters>'»Заданный размер строки превышает допустимый в данной целевой системе.3752“More than 9 dimensions are not allowed for nested arrays»Массив может быть 1- 2- или 3-мерный. Размерность можно еще увеличить путем вложений массивов(например, «arr: ARRAY [0..2,0..2,0..2] OF ARRAY [0..2,0..2,0..2] OF ARRAY [0..2,0..2,0..2, 0..2] OFDINT».

Максимальная размерность не должна превышать 9. Данная ошибка говорит о превышенииэтого ограничения. Уменьшите вложенность массивов.3760″Error in initial value»CoDeSys V2.310-128Приложение J: Ошибки и предупреждения компилятораИспользуйте для инициализации значение, совместимое с типом переменной. Изменяя объявление,воспользуйтесь диалогом объявлений переменных (Shift/F2 или ‘Edit»Autodeclare’).3761″‘VAR_IN_OUT’ variables must not have an initial value.»Удалите инициализацию в объявлении переменной VAR_IN_OUT.3780″‘VAR’, ‘VAR_INPUT’, ‘VAR_OUTPUT’ or ‘VAR_IN_OUT’ expected»В следующей за определением имени POU строке должно быть одно из перечисленных ключевыхслов.3781″‘END_VAR’ or identifier expected»Введите корректное определение END_VAR в данной строке окна объявлений.3782″Unexpected end»В разделе объявлений: добавьте ключевое слово END_VAR в конце раздела.В разделе кода: добавьте инструкцию, заканчивающую команду (например, END_IF).3783″END_STRUCT’ or identifier expected»Проверьте правильность окончания определения типа.3784″The current target doesn’t support attribute <attribute name>»Данная целевая система не поддерживает переменные такого типа (например, RETAIN, PERSISTENT)3800″The global variables need too much memory.

Increase the available memory in the project options.»Увеличьте число сегментов в опциях диалога Project’ ‚Options’ ‚Build’.3801″The variable ‘<Name>’ is too big. (<size> byte)»Переменная использует тип, занимающий более одного сегментаРазмер сегмента определяется настройкой целевой платформы. Если вы не нашли этого параметра вопциях памяти, свяжитесь с изготовителем ПЛК.CoDeSys V2.310-129Приложение J: Ошибки и предупреждения компилятора3802″Out of retain memory. Variable ‘<name>’, <number> bytes.»Израсходована вся память Retain переменных.

  • Ошибка шины astra linux
  • Ошибка что то пошло не так эвотор
  • Ошибка шевроле кобальт 128 что означает
  • Ошибка шифрования протокола
  • Ошибка чтения файла как исправить