Добрый день.
Такой вопрос: можно ли в методе функционального блока обращаться к var_in_out переменным этого блока?
Оно у меня ругается предупреждением, но работает.
Можно так делать?Вложение 85805
Вид для печати
Добрый день.
Такой вопрос: можно ли в методе функционального блока обращаться к var_in_out переменным этого блока?
Оно у меня ругается предупреждением, но работает.
Можно так делать?Вложение 85805
Добрый день.
Можно.
Отображение этого предупреждения - просто не очень удачная реализация.
Вложение 85806
Добрый день, подскажите пожалуйста.
Если какое то устройство в ветке RS1-485 или RS2-485 отваливается(откинуть связь от него , сменить адрес) , то все устройства начинают гнать, устройства начинают очень плохо работать по модбасу(обмен становится кривой), зависать , очень долго обрабатывать команды или вообще не работать.
Ладно , если сейчас в процессе сборки шкафа и отладки ПО, а если в будущем какое-то устройство выйдет из строй и тогда ничего работать не будет...
Вложение 85925
Это минус модбаса или можно программное решить данную проблему?
Это минус последовательного интерфейса. Нужно уменьшать время таймаута и количество перезапросов.
Добрый день.
Сложно оценить, что вы вкладываете в понятия "гнать", "очень плохо работать", "обмен становится кривой" и "зависать".
То, что будет "очень долго обрабатывать команды" - это действительно так, потому что при попытке опроса отключенного устройства будут срабатывать таймауты.
Вы можете снизить значения таймаутов в соответствии с особенностями вашей задачи.
Технически можно в коде определить факт отключения slave-устройства и опрашивать его реже вплоть до восстановления с ним связи - но это потребует отказа от стандартных компонентов Modbus из дерева проекта и организации обмена через библиотеку.
Добрый день. А в ST работает Принцип Инверсии Зависимостей?
У меня есть интерфейс sensor и две его реализации, Температурный Датчик и Датчик Давления. И у FB AlertHandler есть метод HandleSensors, где на входе он принимает массив переменной длины ARRAY[*] OF sensor (интерфейс). И оно не компилируется (на скриншоте). Или тут в другом ошибка?
Вложение 85959Вложение 85960Вложение 85961Вложение 85963
UPD: поменял скриншот с ошибками на актуальный
UPD2: Получается, не работает этот принцип, не может метод зависеть от интерфейса, объект ему подавай. Заменил в методе в объявлении архива sensor на TempSensor, и оно компилируется.
И такой еще вопрос. Такая же проблема, как была с визуализацией: на выход ПЛК не привязывается свойство ФБ, выдает похожую ошибку:
Вложение 85965Вложение 85966Вложение 85967
Как интересно: если сделать метод, который обрабатывает один датчик, то можно ему указать интерфейс, и всё компилируется. Интересно, почему это с массивами не работает... Вложение 85968Вложение 85969
Массив переменной длины это ARRAY[1..nam] OF sensor, но никак не со звёздочкой (ARRAY[*] OF sensor )
Добрый день. Подскажите, пожалуйста, позволяет ли OWEN Archiver проводить архивацию следующим образом?
На панели оператора есть кнопка "Запись лога". При её нажатии ("с фиксацией") начинается архивация, запись идёт в файл с названием, допустим, 01.csv. После отжатия кнопки запись заканчивается.
При следующем нажатии архивация начинается в файл с названием 02.csv и так далее. Сброс нумерации - при перезапуске ПЛК.
Я попробовал реализовать это так: поставил галочку "Имя архива - переменная". По фронту кнопки "Запись лога" значение этой переменной увеличивается на 1, она конвертируется в BYTE и передается в соответствующий вход OwenArchiver. В моём понимании изменение заданного имени архива заставит начать писать новый файл. Но ожидаемым образом это не работает: каждая последующая попытка записи лога просто перезаписывает предыдущий, название лога при этом не меняется (в качестве названия остается текущая дата, хотя на соответствующем входе OwenArchiver переменная меняется). Пока тестировал на виртуальном контроллере.
Также интересует следующий вопрос: в создаваемый файл нужно записывать информацию о работе 16 устройств (устройство работает - в соответствующий столбик лога пишем 1, иначе - 0).
Как я понял, архивация переменных типа BOOL через Owen Archiver невозможна, поэтому собираю 16 переменных BOOL в одну переменную WORD, которую и записываю. Есть ли возможность записывать эту переменную в лог в двоичном виде?
То есть в логе хотелось бы видеть строчку из 16 нулей и единиц, а не десятичное число.
Добрый день.
Если я правильно понял требования - то можно.Цитата:
Подскажите, пожалуйста, позволяет ли OWEN Archiver проводить архивацию следующим образом?
Не очень понятно, о какой переменной типа BYTE идет речь.Цитата:
По фронту кнопки "Запись лога" значение этой переменной увеличивается на 1, она конвертируется в BYTE и передается в соответствующий вход OwenArchiver. В моём понимании изменение заданного имени архива заставит начать писать новый файл
Канал "Имя архива" имеет тип STRING(80).
Для применения нового имени - нужно остановить архиватор хотя бы на один цикл задачи и затем запустить его.
Уточните - у вас в узле CSVFormat какой тип архива выбран? В вашем случае должен быть "Непрерывный архив".Цитата:
в качестве названия остается текущая дата
Можно добавить 16 каналов типа BYTE и привязать к каждому из них переменную, полученную в результате конверсии BOOL_TO_BYTE.Цитата:
поэтому собираю 16 переменных BOOL в одну переменную WORD, которую и записываю. Есть ли возможность записывать эту переменную в лог в двоичном виде?
Спасибо, всё получилось.
Господа, добрый день
Установили Codesys 3.5 sp17 patch 3 32 bit
В меню инструменты отсутствует вкладка Codesys installer.
Как с этим бороться? У кого какой опыт есть?
Вероятно установили не правильно, переустановите как на видео https://www.youtube.com/watch?v=3KcJWZEVXCg
или тут:
https://oscat.ru/wp-content/Video/Co...wToInstall.mp4
переустановили появилось ):
спасибо большое
Добрый день! Столкнулся с проблемой при чтение из архива, почему-то не получается это сделать
архивация проходит успешно, по фронту записываются данные в файл, надо чтоб при перезагрузки контроллера прочитать последнюю запись (строчку)
вроде и на ютубе смотрю видео от Евгения и мануал читаю, не могу разобратся
сам ФБ открытия файла на показывает что он его открыл
Вложение 86191
А я просто и так и так пробовал, возможно путь не правильно указываю, хотя пробовал уже разные варианты
Вложение 86194
Всем здравствуйте. Помогите пожалуйста. уже что только не перепробовал с установкой CODESYS 3.5.17.30... всегда одна и та же ошибка.Вложение 86451 и папку темп менял, и права все выдавал. Антивирус вырублен, брандмауэр тоже. Делаю всё в точности как на видео... а ошибка всё равно есть. уже удалил и почистил все хвосты. Всё равно ошибка остается
Сам установщик? Я скачал архив с сайта. Его распаковал в папку. Запускаю файл CODESYS 3.5.17.30.exeВложение 86452
Так там вроде 2 файла exe. Тут всё по этой инструкции устанавливают. Что за виндовс?...
Windows 10. Вот что в архиве скачанном с сайта. Вложение 86453
В ошибке явно написано невозможна установка из указанной папки. У вашего пользователя с правами на этом компе как? Попробуйте админских прав дать на время установки.
У меня Data1.cab так и остался нераспакованным и всё установилось, уже раз семь, Вложение 86467
на разных Виндах от 7 до 10. Установка от админа, хоть админ сам у себя.
Устанавливал по видео https://oscat.ru/wp-content/Video/Co...wToInstall.mp4
или тут https://www.youtube.com/watch?v=3KcJWZEVXCg
Короче, скачал по новой пакет CODESYS_3.5_SP17_Patch3 в сайта Овен. Распаковал в папку на рабочем столе, Вложение 86474 запустил CODESYS 3.5.17.30.exe Вложение 86470 Чтобы не удалять уже установленный CODESYS 3.5.17.3, включил вместо установки, восстановление программы. Вложение 86471 После примерно 20 мин всё установилось на 10 винду.
Даже все ранее установленные пакеты остались. Все работает нормально, в эмуляции проверил Вложение 86473
Добрый день!
Есть ли методика вычисления циклического времени измерения для датчика (производства не Овен), подключаемого к СПК210 по RS-485? Для ПИД-регулятора.
Там ничего не вычисляется, а тупо идёт счёт времени как целое число, делённое на 10 (кратное 10 мс).
Счёт идёт от 0 до 65535 и сначала. Можно сделать самому, поставив таймер и счётчик https://owen.ru/forum/showthread.php...l=1#post474223
или написать на ST
Код:Pv_Time:= TO_WORD(TO_DWORD(TIME())/10);
Добрый день! Подскажите пожалуйста.
На объекте установлен ПЛК210. Был передан проект (не архив). При открытии проекта Codesys ругается на MV210-101, хотя все шаблоны установлены. Подскажите, в чем может быть проблема? Спасибо!