Здравствуйте.
Есть 200 деталей. Для каждой детали есть 10 разных этапов проверки. В каждом этапе-15 параметров.
Подскажите, как лучше реализовать данную задачу?
Вид для печати
Здравствуйте.
Есть 200 деталей. Для каждой детали есть 10 разных этапов проверки. В каждом этапе-15 параметров.
Подскажите, как лучше реализовать данную задачу?
Мало данных, всё зависит от того, параметры разные или одни и те же. Этапы разные или одинаковые, детали разные или похожие.
Что общего есть в каждом этапе и в чём различие. Опишите как вы видите всё это.
Если всё разное, то это 30000 параметров, поэтому надо скомпоновать всё по типам и параметрам.
Детали разные, параметры в этапах одинаковые. Для разных деталей в этапах могут быть разный набор параметров.
Выбрали 1 деталь, выбрали первый этап, заполнили действия, которые будут проходить в нем, перешли во второй этап, заполнили его действия и т.д.
Я это вижу так.
Есть 200 деталей, для каждой детали есть набор из 10 этапов. Условия в этапах одинаковые. В одном этапе я использую 1 регистр для переменных типа BOOL и 2 регистра для типа WORD. Итого 30 регистров на 1 деталь.
В зависимости от выбранной детали, меняются значения в этих регистрах, которые я передаю ПЛК.
Плюс все эти рецепты нужно выгружать на флешку.
Если условия этапов одинаковые, то надо не 30 регистров, а 4.
1 регистр -номер этапа (от1 до 10),
2 регистр -переменная типа BOOL, меняются только биты
3 регистр - регистр типа WORD, меняется только число
4 регистр - регистр типа WORD, меняется только число
Или вы хотите сразу задать все биты и числа?
Я немножко по другому вижу.
Есть 200 деталей и 10 этапов. Итого 2000 вариантов. 2000 рецептов. Которые называется <номер детали>-<номер этапа>
Это если каждый этап для каждой детали уникален.
Если в основном, 10 этапов не сильно различаются от детали к детали, то, либо из программы учета заданий формируются все 10 этапов и загружаются в панель, либо создаются все возможные операции в виде рецептов (50-100 шт), а с деталью, на циркуляре, идет список техопераций и соответствующим номером рецепта.
Оператор последовательно выполняет необходимые тех-операции, в соответствии с циркуляром.
Но если честно, в мелкосерийке особенно, при переходе по технологии, настройка и тесты занимают больше времени, чем производство, поэтому, рецепты тут приведут просто к лишнему гемору.
Эти рецепты забиваются в панели сразу для каждой детали, плюс есть опция выгрузить их на флешку.
Параметры на каждом этапе и для каждой детали могут быть разными.
Я рецепты не освоил еще, может кто-нибудь в примере описать, как это сделать?
Спасибо.
Проблема в том , что у рецептов ограничена память. 30000 переменных никак не влезут. 4096-256=3840 регистров в ПЗУ. Обходным путём можно немного увеличить. Поэтому надо решить как их скомпоновать.
Пример есть тут, Работа с рецептами https://owen.ru/product/sp3xx/software
Либо идти другим путём. Создавать массивы переменных в ПЛК и выводить на панель.
1. у рецептов ограничена память 30000 переменных
Это Вы почему так решили? Кто запрещает иметь больше?
2. Что за магическая цифра 4096?
ЗЫ.
На сколько я понял из условий
1. В каждом этапе - задействованы 3 регистра - первый битовая маска для булевых переменных + два регистра WORD для цифровых значений. Итого 30 регистров для одной детали
2. Типов деталей - 200.
Значит нужно 200 х 30 = 600 регистров на все рецепты
Да, 3 регистра на деталь, 2 WORD, 1 BOOL.
6000 регистров получается.
Остался вопрос, как реализовать это все.
Никак не могу въехать в условия задачи..
1. "есть 10 разных этапов проверки. В каждом этапе-15 параметров"
15 параметров = 13 BOOL + 2 WORD? Т.е. в каждом этапе своя уникальная пара WORD ?
или 15 BOOL, а 2 WORDа различаются только по деталям, т.е. на каждую деталь одна уникальная пара WORD ?
Какой физический параметр в каждом WORD? Одинаковый или разный для каждого этапа?
2. "у каждой детали есть 10 этапов. В этапах одинаковый набор условий(включить полив, провести осмотр, выбор рода тока, способ контроля и др.).
Выбрали 1 деталь, выбрали первый этап, заполнили действия, которые будут проходить в нем, перешли во второй этап, заполнили его действия и т.д"
Ну это как бы и не рецепт, т.к. в моем понимании рецепт это когда для всех этапов заранее передопределены ВСЕ действия, оператор выбирает, например, из списка или перечня номер(название) детали и нажимает кнопку ПУСК.
конечно должна быть возможность редактирования рецепта, но это отдельное окно/экран например и довольно редкое явления.
3. " В работе с деталью не обязательно все 10 этапов проходить, какие-то просто остаются пустыми."
Это как? А как это отметить в рецепте? Как ПЛК узнает, что некоторые этапы нужно пропускать.
4."Словарь заполняется сразу, для каждой детали, плюс есть опция скинуть их на флешку."
Что такое словарь?
Вы бы на могли для примера просто написать, на бумажке или картинку сделать, состав этапов (значения BOOL и WORD) например для двух деталей.
Вот здесь есть пример работы с большими рецептами https://owen.ru/forum/showthread.php...l=1#post180265
10 программ из 15 параметров в каждой программе.
https://www.youtube.com/watch?v=M-kma_qNohU
Здесь развитие проекта - динамическое изменение (добавление или удаление) количества программ (до 15 шт.) https://owen.ru/forum/showthread.php...l=1#post180799
1. 15 параметров = 13 BOOL + 2 WORD? Т.е. в каждом этапе своя уникальная пара WORD ?
или 15 BOOL, а 2 WORDа различаются только по деталям, т.е. на каждую деталь одна уникальная пара WORD ?
Какой физический параметр в каждом WORD? Одинаковый или разный для каждого этапа?
В WORD передается число(в моем случаи сила тока). На каждом этапе значения могут быть разные.
2. Ну это как бы и не рецепт, т.к. в моем понимании рецепт это когда для всех этапов заранее передопределены ВСЕ действия, оператор выбирает, например, из списка или перечня номер(название) детали и нажимает кнопку ПУСК.
конечно должна быть возможность редактирования рецепта, но это отдельное окно/экран например и довольно редкое явления.
Перед вводом в эксплуатацию технолог завода прописывает все эти этапы для каждой детали. Оператор только выбирает нужную деталь, а дальше контроллер работает по тем параметрам, которые ему задали в панели. Т.К. деталей много, думал делать рецепты, которые были бы редактируемыми и хранились в панели, потому что нужна возможность выгрузить их на флешку. 200 деталей, 10 этапов, 30 регистров на деталь. В зависимости от выбранной детали, меняются значения в этих регистрах. Вижу так.
3. Это как? А как это отметить в рецепте? Как ПЛК узнает, что некоторые этапы нужно пропускать.
Для некоторых деталей не нужно проводить контроль по всем 10 этапам, достаточно например провести 4. Остальные этапы остаются не заполненными и контроллер просто их пропускает.
4. Что такое словарь?
Словарем я назвал как раз эту структуру из 200 деталей, 10 этапов, которую можно редактировать и в зависимости от номера детали передавать значения в контроллер, с возможностью скинуть его на флешку.
1. 15 параметров = 13 BOOL + 2 WORD? Т.е. в каждом этапе своя уникальная пара WORD ?
или 15 BOOL?
Вложение 59092
Вот так выглядит страница этапов.
13 BOOL + 2 WORD.
Ток циркулярный, ток продольный, предварительный полив, вращение при поливе, полив, вращение при намагничивании, способ контроля циркулярного(СОН/СПП),способ контроля продольного(СОН/СПП), размагничивание циркулярное, размагничивание продольное, род тока циркулярного, род тока продольного, осмотр - это переменные типа BOOL.
Сила тока циркулярного, сила тока продольного - это переменные типа WORD.
Такой набор параметров для всех этапов. В зависимости от детали, технолог отмечает, когда заполняет "словарь", что должно работать в конкретном этапе.
Я вложения не вижу.
Нет картинки вообще,
Вложение 59093
Нужно повторить
Вложение 59097
Отправляю еще раз.
Действия в одном этапе могут повторяться?
Вложение 59098
Или это просто для примера ?
Может так сделать? Нужна только 1 строка из которой и берётся рецепт. Стрингом 6+6+1+1+1=15. Взял ваш пример. Вложение 59105
Там действия разные. Относительно циркулярного тока и продольного. Просто названия одинаковые.
А как все-таки использовать всю память PFW для рецептов? Конфигуратор пишет, что конечный PFW должен быть меньше чем 4096.
Это в каком месте ?
Меню Файл, Создания рецептов?
А нафига Вам этот пункт?
Тем более, что НИКАКОГО ОТНОШЕНИЯ НЕПОСРЕДСТВЕННО К рецептам этот пункт не имеет.
И назначение у него совсем другое.
Вы что хотите 600 регистров вручную забить?
Без этого пункта рецепты прекрасно работают! До последнего доступного регистра PFW(4 000 000)
ЗЫ.
Магическая цифра 4096 - это граница между пользовательской областью регистров (номера меньше граничного значения) и областью авторазмещения таблиц, графиков, архивов. (номера больше граничного значения)
Во избежание конфликтов доступа к разным областям конфигуратор и выдаёт соответствующее предупреждение.
Да, в создании рецептов.
Понял. Спасибо. Продолжу разбираться.
Тупо, в лоб - редактируйте этот файл.
Вложение 59113
Но будет действовать только на ВСЕ НОВЫЕ проекты.
И на всегда, что не есть хорошо!
У меня так получилось, Вложение 59138может и по другому можно Вложение 59139
Вложение 59143
Вложение 59144
Немного теории о работе с рецептами
Давным давно делал пример с картинками
Вложение 59142
И так,
Рецепты хранятся в выделенной пользователем памяти PFW в виде непрерывной области регистров
(1-ый параметр 1-ого рецепта)
(2-ой параметр 1-ого рецепта)
......................................
(N-ый параметр 1-ого рецепта)
========================
(1-ый параметр 2-ого рецепта)
(2-ой параметр 2-ого рецепта)
......................................
(N-ый параметр 2-ого рецепта);
========================
...........................................
...........................................
(1-ый параметр K-ого рецепта)
(2-ой параметр K-ого рецепта)
......................................
(N-ый параметр K-ого рецепта);
А в слейве ПЛК нужны только N регистров (содержимое одного рецепта)
Есть системный регистр PSW40, с помощью которого можно выбирать нужный рецепт, а дальше с помощью двух кнопок или аналогичных функций в ф.области или ф. кнопке можно записать набор параметров выбранного рецепта в сетевые регистры ПЛК или прочитать из сетевых регистров ПЛК набор параметров в выбранный рецепт
Вложение 59147
petera, у меня ваша программа работает только до 126 детали, первая половина 1-5, параметры вводятся
со 126 детали, вторая половина 6-10, до 200 детали не работает ввод параметров.
Это я лихо подсчитал https://owen.ru/forum/attachment.php...4&d=1392750964
Правильное значение 200 х 30 = 6000
ЗЫ
Панели под рукой нет, а эмулятор после 126 рецепта натыкается на границу авторазмещения, которая 4096!
Переместил границу авторазмещения с 4096 на 6400 (256 х 25) и все заработало, в эмуляторе по крайней мере
Вложение 59159
Вложение 59160
Вложение 59161
Проект в посте #33 исправил
Прикол в том, что у меня граница уже была перемещена на 10240 и в моём проекте все работает.
В вашем первом не даёт переместить границу. Проект надо по новой создавать и копипастить.
А второй проект заработал сразу.