Показано с 1 по 10 из 4001

Тема: Панели оператора СП3xx. Вопросы и ответы

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    По умолчанию

    А зачем на панели это все делать... А контроллер какой?

  2. #2

    По умолчанию

    Цитата Сообщение от МихаилГл Посмотреть сообщение
    А зачем на панели это все делать... А контроллер какой?
    Овен ПЛК110

    А на чем это делать ?

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

  3. #3

    По умолчанию

    Цитата Сообщение от Sherverpupa Посмотреть сообщение
    Овен ПЛК110

    А на чем это делать ?

    Перевожу проект с Мастер Скады на панель.
    Спорить о целесообразности не хочется.
    Компьютер не устраивает по ряду причин.
    Я сторонник делать это все в контроллере, а любая скада, это трлько визуализация для меня. Захотите другую скаду или панель, опять все переделывать? И у всех свои реализации этого механизма...

  4. #4

    По умолчанию

    Цитата Сообщение от МихаилГл Посмотреть сообщение
    Я сторонник делать это все в контроллере, а любая скада, это трлько визуализация для меня. Захотите другую скаду или панель, опять все переделывать? И у всех свои реализации этого механизма...
    Именно из-за того что, захотели вместо скады - панель, я здесь
    Я только за - делать это в контроллере, может поделитесь примерчиком или хотя бы общей концепцией?

    Опишу задачу:
    ПЛК110-30.
    Рецептов - штук 200, желательно структурировать по категориям.
    В каждом - осмысленное название, символов 20 + переменных float - штук 15.
    Возможность с панели изменять и создавать новые рецепты и категории.

    Пока слабо представляю как организовать, что оператор подходит к панели, тычет пальцем кнопку "рецепт",
    появляется список осмысленных названий рецептов, он тычет в нужный и он принимается к работе.
    Ну и мастер иногда добавляет новые рецепты и сохраняет их.

    Буду благодарен за пример или наводку
    Последний раз редактировалось Sherverpupa; 24.10.2025 в 11:13.

  5. #5

    По умолчанию

    Цитата Сообщение от Sherverpupa Посмотреть сообщение
    Именно из-за того что, захотели вместо скады - панель, я здесь
    Я только за - делать это в контроллере, может поделитесь примерчиком или хотя бы общей концепцией?

    Опишу задачу:
    ПЛК110-30.
    Рецептов - штук 200, желательно структурировать по категориям.
    В каждом - осмысленное название, символов 20 + переменных float - штук 15.
    Возможность с панели изменять и создавать новые рецепты и категории.

    Пока слабо представляю как организовать, что оператор подходит к панели, тычет пальцем кнопку "рецепт",
    появляется список осмысленных названий рецептов, он тычет в нужный и он принимается к работе.
    Ну и мастер иногда добавляет новые рецепты и сохраняет их.

    Буду благодарен за пример или наводку
    11111.png

    Был когда-то Заказчик, родился концепт, но до выполнения не дошло, сдулся на спецификации оборудования (по ценам из открытых источников, заметьте... ничего не накручивалось, все было по минимуму).
    Имеем: установка дозирования строительных смесей (до 10 компонентов с разной очередностью подачи, с разным временем и весом пересыпа после остановки дозаторов, компоненты могут участвовать в приготовлении смеси, могут отсутствовать - 7*10*10 параметров, что-то флоатами, наименования строками (это самое негативное для передачи по модбас)). Тут 10 рецептов, все хранится в массиве (можно и до 1000 расширить, но надо тогда придумать навигацию по строкам массива). Передавать можно в регистрах модбас, например (тут плк 210, своя визуализация, поэтому механизм не разрабатывался, но концепция такая: активный рецепт вверху пишется, его можем редактировать, параметры подачи и участия компонентов задаем, если что поменяли, то активный рецепт можем сохранить. ну а если нас этот рецепт устраивает, жмякаем "загрузить рецепт", и он тупо копируется в задания для оборудования и алгоритма дозирования). И все это сводится к редактированию массива разных параметров например на 1000 элементов. Да, самый минус это навигация, а так что проще...?

  6. #6

    По умолчанию

    У меня примерно такая же задача.

    Цитата Сообщение от МихаилГл Посмотреть сообщение
    11111.png
    все хранится в массиве (можно и до 1000 расширить, но надо тогда придумать навигацию по строкам массива). Передавать можно в регистрах модбас, например (тут плк 210, своя визуализация, поэтому механизм не разрабатывался, но концепция такая: активный рецепт вверху пишется, его можем редактировать, параметры подачи и участия компонентов задаем, если что поменяли, то активный рецепт можем сохранить. ну а если нас этот рецепт устраивает, жмякаем "загрузить рецепт", и он тупо копируется в задания для оборудования и алгоритма дозирования). И все это сводится к редактированию массива разных параметров например на 1000 элементов. Да, самый минус это навигация, а так что проще...?
    А сам массив где хранится ? В энергонезависимой памяти ПЛК ? Это FLash disk ПЛК ? Который 6 МВ ?

  7. #7
    Пользователь Аватар для petera
    Регистрация
    06.05.2011
    Адрес
    Минск
    Сообщений
    4,108

    По умолчанию

    Цитата Сообщение от Sherverpupa Посмотреть сообщение
    Именно из-за того что, захотели вместо скады - панель, я здесь
    Я только за - делать это в контроллере, может поделитесь примерчиком или хотя бы общей концепцией?

    Опишу задачу:
    ПЛК110-30.
    Рецептов - штук 200, желательно структурировать по категориям.
    В каждом - осмысленное название, символов 20 + переменных float - штук 15.
    Возможность с панели изменять и создавать новые рецепты и категории.

    Пока слабо представляю как организовать, что оператор подходит к панели, тычет пальцем кнопку "рецепт",
    появляется список осмысленных названий рецептов, он тычет в нужный и он принимается к работе.
    Ну и мастер иногда добавляет новые рецепты и сохраняет их.

    Буду благодарен за пример или наводку
    Немного теории о работе с рецептами
    Давным давно делал пример с картинками
    Захват-8.png
    И так,
    Рецепты хранятся в выделенной пользователем памяти PFW в виде непрерывной области регистров
    (1-ый параметр 1-ого рецепта)
    (2-ой параметр 1-ого рецепта)
    ......................................
    (N-ый параметр 1-ого рецепта)
    ========================
    (1-ый параметр 2-ого рецепта)
    (2-ой параметр 2-ого рецепта)
    ......................................
    (N-ый параметр 2-ого рецепта);
    ========================
    ...........................................
    ...........................................
    (1-ый параметр K-ого рецепта)
    (2-ой параметр K-ого рецепта)
    ......................................
    (N-ый параметр K-ого рецепта);

    А в слейве ПЛК нужны только N регистров (содержимое одного рецепта)

    Есть системный регистр PSW40, с помощью которого можно выбирать нужный рецепт, а дальше с помощью двух кнопок или аналогичных функций в ф.области или ф. кнопке можно записать набор параметров выбранного рецепта в сетевые регистры ПЛК или прочитать из сетевых регистров ПЛК набор параметров в выбранный рецепт

    Вот простая реализация описанного выше
    Захват-11.png
    Вложения Вложения
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Мой канал на РУТУБЕ
    https://rutube.ru/channel/23641433/
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  8. #8
    Пользователь Аватар для petera
    Регистрация
    06.05.2011
    Адрес
    Минск
    Сообщений
    4,108

    По умолчанию

    Цитата Сообщение от Sherverpupa Посмотреть сообщение
    Именно из-за того что, захотели вместо скады - панель, я здесь


    Пока слабо представляю как организовать, что оператор подходит к панели, тычет пальцем кнопку "рецепт",
    появляется список осмысленных названий рецептов, он тычет в нужный и он принимается к работе.
    У меня на канале на РУТУБЕ и на ютубе есть видео из трех частей "Рецепты списком для СП307 СП310", в примере рецепт всего из одного параметра, но это не принципиально, главное принцип - "как организовать, что оператор подходит к панели, тычет пальцем кнопку "рецепт",
    появляется список осмысленных названий рецептов, он тычет в нужный и он принимается к работе"
    Захват-11.png
    "и мастер иногда добавляет новые рецепты и сохраняет их"
    Захват-12.png
    Скрытый текст:
    Вложения Вложения
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Мой канал на РУТУБЕ
    https://rutube.ru/channel/23641433/
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  9. #9

    По умолчанию

    Спасибо, видео видел, по нему когда-то делал,
    правда не в список, а выводил в таблицу, но не суть важно.
    Но тогда рецептов и их параметров было мало.

    Сейчас, вижу что стандартной области PFW будет недостаточно и группировка рецептов была бы весьма нелишней.
    При большом количестве рецептов будет затруднительно искать нужный и новые добавляться будут в конец списка.
    Как запасной вариант, держу в уме расширить область PFW и сделать как в вашем посте выше, но может есть другие пути.
    Для облегчения поиска, наверное можно сделать макрос сортировки по названиям, все же облегчит поиск.

    Надо покурить хелп кодесис и обдумать вариант МихаилГл .
    У ПЛК110 вроде заявлено 6Мбайт(или Мбит?) памяти на диске.
    В кодесисе нет возможности писать на внутренний диск ПЛК файлы с разными именами?
    Никогда не пользовался там записью файлов.
    Тогда можно было бы по модбас гонять индекс и название одного рецепта, плюс регистр команды (считать/записать новый),
    а на стороне ПЛК уже сохранять или читать файл.

    В мастер-скаде у меня было - один рецепт=один файл csv.
    Разложение их по разным папкам - давали структурирование.
    А вот как сейчас сделать - пока в раздумьях.

    Буду рад любым советам.

  10. #10
    Пользователь Аватар для petera
    Регистрация
    06.05.2011
    Адрес
    Минск
    Сообщений
    4,108

    По умолчанию

    Цитата Сообщение от Sherverpupa Посмотреть сообщение
    Спасибо, видео видел, по нему когда-то делал,
    правда не в список, а выводил в таблицу, но не суть важно.
    Но тогда рецептов и их параметров было мало.

    Сейчас, вижу что стандартной области PFW будет недостаточно и группировка рецептов была бы весьма нелишней.
    При большом количестве рецептов будет затруднительно искать нужный и новые добавляться будут в конец списка.
    Как запасной вариант, держу в уме расширить область PFW и сделать как в вашем посте выше, но может есть другие пути.
    Для облегчения поиска, наверное можно сделать макрос сортировки по названиям, все же облегчит поиск.

    Надо покурить хелп кодесис и обдумать вариант МихаилГл .
    У ПЛК110 вроде заявлено 6Мбайт(или Мбит?) памяти на диске.
    В кодесисе нет возможности писать на внутренний диск ПЛК файлы с разными именами?
    Никогда не пользовался там записью файлов.
    Тогда можно было бы по модбас гонять индекс и название одного рецепта, плюс регистр команды (считать/записать новый),
    а на стороне ПЛК уже сохранять или читать файл.

    В мастер-скаде у меня было - один рецепт=один файл csv.
    Разложение их по разным папкам - давали структурирование.
    А вот как сейчас сделать - пока в раздумьях.

    Буду рад любым советам.
    Вот когда-то 2015 делал https://owen.ru/forum/showthread.php...l=1#post383715
    там рецепты хранятся в файле ПЛК
    Список рецептов - массиве структур, например
    Код:
    TYPE Reciple :
    STRUCT
    	Name:STRING(20);	(*Название рецепта*)
    	Param1:INT;
    	Param2:INT;
    	Param3:REAL;
    END_STRUCT
    END_TYPE
    Чтение и запись рецептов из/в файл после редактиорвания выполняет такой ФБ
    Код:
    FUNCTION_BLOCK FileReciple
    VAR_INPUT
    	FileName: STRING(15);	(*Имя файла с рецептами*)
    	pt:	POINTER	TO ARRAY [0..32000] OF Reciple;	(*Указатель на массив с рецептами*)
    	size:UINT;	(*Размер массива рецептов*)
    	Restore: BOOL;	(*Загрузить рецепты из файла*)
    	Save: BOOL;	(*Сохранить рецепты в файл*)
    END_VAR
    VAR
    	StatusOfFile: INT:=100;	(*Это значение нужно для правильной инициализации ФБ*)
    	f: DWORD;	(*Дескриптор файла*)
    	statusf: DWORD;
    	NULL:Reciple;	(*Пустая запись в массиве рецептов*)
    	i: INT;
    	R_TRIG1: R_TRIG;
    	R_TRIG2: R_TRIG;
    END_VAR
    Код:
    CASE StatusOfFile OF
    0:
    	R_TRIG1(CLK:=Restore);
    	R_TRIG2(CLK:=Save);
    	IF	R_TRIG1.Q	THEN
    		StatusOfFile:=100;	(*Восстановить рецепты из файла*)
    	END_IF
    	IF	R_TRIG2.Q	THEN
    		StatusOfFile:=10;	(*Записать рецепты в файл*)
    	END_IF
    10:	(*сохранить предыдущую версию файла*)
    	statusf:=SysFileCopy(CONCAT(FileName, '.bak'), FileName);StatusOfFile:=11;
    11:	(*открыть файл на запись*)
    	f:=SysFileOpen(FileName, 'w');StatusOfFile:=12;
    12:	(*записать буфер в файл*)
    	statusf:=SysFileWrite(f, pt, size);StatusOfFile:=102;
    
    (*Эта часть выполняется однократно после старта ПЛК*)
    100: (*Открыть файл на чтение*)
    	f:=SysFileOpen(FileName, 'r');
    	IF f=0 THEN
    		StatusOfFile:=200; (*Нет такого файла*)
    	ELSE
    		StatusOfFile:=101;	(*ОК, файл существует*)
    	END_IF
    101: (*Прочитать файл в буфер*)
    	statusf:=SysFileRead(f, pt, size);StatusOfFile:=102;
    102: (*Закрываем файл*)
    	SysFileClose(f);StatusOfFile:=103;
    103:	(*Конец инициализации после включения ПЛК*)
    		StatusOfFile:=0;
    200: (*Если файла нет, то попробовать его восстановить*)
    	statusf:=SysFileCopy(FileName, CONCAT(FileName, '.bak'));StatusOfFile:=201;
    201:
    	IF statusf=0 THEN (*старой версии файла нет, создать новый*)
    		FOR i:=0	TO size/SIZEOF(NULL)-1	DO
    			NULL.Name:=CONCAT('Набор_', INT_TO_STRING(i+1));
    			pt^[i]:=NULL;
    		END_FOR
    		StatusOfFile:=11; (*Записать новый файл*)
    	ELSE
    		StatusOfFile:=100;
    	END_IF
    END_CASE
    Имена файлом могут быть любыми

    Пример работы с ФБ
    Код:
    PROGRAM PLC_PRG
    VAR
    	Reciples:	ARRAY [0..9] OF	Reciple;	(*Собственно массив рецептов для программы*)
    	FileRec: FileReciple;	(*ФБ для записи/чтения файла с рецептами*)
    
    	n: UINT:=1;		(*Текущий номер рецепта*)
    	Dlina: INT;		(*Переменная для использования Param1 из текущего рецепта*)
    	Glubina: INT;		(*Переменная для использования Param2 из текущего рецепта*)
    	Temperatura: REAL;		(*Переменная для использования Param3 из текущего рецепта*)
    	selX:INT;	(*Используется в визуализации (в таблице)*)
    	selY:INT;	(*Используется в визуализации (в таблице)*)
    END_VAR
    Код:
    FileRec(FileName:='Rec_1.dat' , pt:=ADR(Reciples) , size:=SIZEOF(Reciples) );
    
    Dlina:=Reciples[n-1].Param1;
    Glubina:=Reciples[n-1].Param2;
    Temperatura:=Reciples[n-1].Param3;
    В примере по ссылке команды на чтение рецепта из файла, редактирование рецептов и сохранение результатов в файл реализовано в визуализации проекта кодесис
    Захват-11.png Захват-12.png
    Вложения Вложения
    Последний раз редактировалось petera; 24.10.2025 в 14:39.
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Мой канал на РУТУБЕ
    https://rutube.ru/channel/23641433/
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

Похожие темы

  1. Экспорт CSV в панели СП3xx и порядок квитирования событий
    от theoretician в разделе Панели оператора (HMI)
    Ответов: 30
    Последнее сообщение: 24.08.2021, 16:17
  2. Индикатор ИП120 , вопросы- ответы
    от rovki в разделе Программируемые реле
    Ответов: 56
    Последнее сообщение: 03.11.2017, 15:58
  3. Сенсорные панели оператора ОВЕН СП3ХХ
    от Боднар Олег Миколайович в разделе Подбор Оборудования
    Ответов: 7
    Последнее сообщение: 17.12.2015, 09:09
  4. СПК 107 в качестве панели оператора
    от Леонид в разделе СПК1xx (архив)
    Ответов: 15
    Последнее сообщение: 20.11.2015, 08:17

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •