Я тоже ничего не понял.
В более новой версии шаблона поправили опечатку в описании.
По-моему, это не должно вызывать удивления.
Вид для печати
Я тоже ничего не понял.
В более новой версии шаблона поправили опечатку в описании.
По-моему, это не должно вызывать удивления.
А это?
Вложение 54770
Вложение 54771
В новой версии шаблона добавился новый функционал.
По-моему, это не должно вызывать удивления.
https://owen.ru/forum/showthread.php...l=1#post338390
Что-то у меня с этой библиотекой совсем ничего не получается:
В "Соотнесение входов/выходов"->"Настройки"->"Запись", в "Записать настройки" требуется переменная "BIT" - соотношу с битом - предупреждает, что будет использоваться байт.
Даю байт - ошибка :(
Вложение 54783
Вложение 54784
По идее флаг чтения и записи должны автоматом сбрасываться после выполнения соответствующей операции?
Поправил.
IP модуля изменил на свой для теста - вам нужно будет поменять его обратно.
Вложение 54791
Немного не то. Мне нужно чтоб я сам в коде программы мог считать и записать настройки МВ210.
Хорошо, допустим нет визуализации. Я хочу в коде программы изменить настройку канала.
Этот код не работает:
Как это исправить?Код:TargetVars.MB210_101_GO_ReadNastr1 := TRUE; // команда чтения из МВ210-10
TargetVars.MB210_101_ValueEditH1 := TargetVars.MB210_101_ReadNastr1.rUpperLimit; // считали данные, но не считались - 0.0 :(
// теперь пишем
TargetVars.MB210_101_WriteNastr1.rUpperLimit := 1234; // установили новое значение настройки
TargetVars.MB210_101_GO_WriteNastr1 := TRUE; // команда записи в MB210-101
// по идее на этой строчке настройка должна сохраниться в МВ210-101
В выложенном мной примере ваш код работает корректно.
https://dropmefiles.com/4O8Qk
Естественно, вместо констант TRUE надо использовать переменные и генерировать в них импульсы в нужные моменты времени.
Ну вот, а с этим как бороться?
Вложение 54797
Ноут и маршрутизатор перезагружал. В проекте делал "Очистить все" и "Перекомпиляция" - не помогло. Контроллер пока не трогаю - жду ответа...
Добрый день.
В СПК необходимо делать загрузочное приложение при каждой загрузке проекта. Как сделать этот процесс более удобным описано Евгением здесь.
Чтобы ошибка прошла, перезагрузите контроллер.
Добрый день. Не сработало:
Вложение 54798
Под отладчиком пошагово он работает, а вот если дать фрагмент выполнить, то не работает:
Вложение 54800
Я так понимаю, что тут нужен контроль окончания записи и чтения
Потому что этот фрагмент написан некорректно.
Запись в канал произойдет только после выполнения цикла - так что в пределах цикла нет смысла менять значение переменной несколько раз.
Вам нужно по событию генерировать единичный импульс - см. в библиотеке Standard блок R_TRIG, например.
Вообще, я бы рекомендовал вам посетить курсы нашего учебного центра - они хорошо умеют объяснять такие базовые вещи тем, кто только начинает работать с ПЛК.
https://owen.ru/plk2xxbazovykurs
Это ответ на совет от Зинько Владислава, чтоб окно не выскакивало: установил галки, но не помогло!
А проект я всегда полностью загружаю - жаль, что нет возможности по умолчанию второй пункт использовать и не выводить это окно.
Вот к чему я и подводил!
Как сгенерировать, если он сгенерируется только после выполнения цикла?
Ведь мне нужно по нажатию на кнопку выполнить чтение настройки и вывести страничку настроек.
А между чтением настройки и выводом странички никакой паузы для библиотеки работы с МВ210 быть не может, т.к. нужно окончание цикла чтоб эта библиотека сработала и считала настройку!
Хорошо, попробую разбить на фрагменты через CASE
Считываемое и записываемое значение параметра - это два разных канала.
Переменных всегда будет две.
С помощью логики это можно попробовать свести к одному визуальному элементу - но гораздо проще просто сделать два поля: текущее значение и записываемое.
Особенно если нет самоцели специально переусложнить себе задачу.
В визуальных компонентах в свойствах есть выполнение действий например по нажатию мыши.
Вопрос: если на это событие повесить несколько обработчиков, например по порядку: ввод переменной(через клавиатуру), выполнение кода и может еще что, как выполняются эти обработчики, по порядку как выстроены в дереве при конфигурации и пока не выполнится одно не запускается следующее или.... А если одно из них с вводом с клавиатуры, затормозится цепочка обработчиков?
Нет, не затормозится.
Ввод переменной - это просто вызов диалогового окна.
Сразу после его открытия (и независимо от того, будет ли что-то введено и т.д.) произойдет последовательный вызов остальных "обработчиков".
Есть событие OnDialogClosed, чтобы сделать что-то после закрытия диалога, открытого из элемента.
Декартовый график: можно в нем программно отображать в виде точки на графике или хотя бы вертикального маркера текущую позицию по Х. Главный маркер написано в инструкции из ПО не управляется.
Добрый день, есть вопрос по диалогам:
есть необходимость ввода временных интервалов. Eсть возможность ввода с помощью двоеточия, но некоторые тяжело воспринимают ввод таким способом.
Чтобы ввести один час надо набрать 01:00:00. Иногда пытаются просто "1" ввести или вводят без двоеточий и т.д.
Есть идея сделать следующее диалоговое окно:
ввод каждого разряда отдельно, т.е. копки "больше"-"меньше" для каждого разряда времени формата ЧЧ:ММ
Вложение 55231
Соответственно, необходимо реализовать проверки формата при нажатии (например, макс. значение минут 59, т.е. для второго разряда минут макс. значение "5" и т.д. + проверка на МИН и МАКС)
Вопрос, собственно, в следующем:
- как реализовать соотвествующие проверки непосредственно в самом диалоге?
- функции и функц. блоки - как они вызываются и инициализируются при вызове диалога?
В библиотеке множество функций, и, судя по их именам, часть из них как раз отвечает за проверку значения при вводе. Но по cross reference показывает только объявления, вызовов нет.
Вложение 55232
Есть ли описание/мануалы/информация по тому, как это всё устроено.
Буду признателен любой информации.
Добрый день.
Посмотрите эту библиотеку:
https://owen.ru/forum/showthread.php?t=34327
По-моему, вы можете взять за основу диалог DateTimeSetOwen из этой библиотеки и на его основе сделать диалог для ввода только часов-минут (библиотека доступна в исходниках).
А как после закрытия диалога numpad в последующем обработчике OnClose отловить нажатие клавиш cancel, esc, ok?