Страница 1 из 5 123 ... ПоследняяПоследняя
Показано с 1 по 10 из 48

Тема: Дозатор муки. Нужна помощь в подборе оборудования. ПЛК+АЦП+ЧМИ

  1. #1

    По умолчанию Дозатор муки. Нужна помощь в подборе оборудования. ПЛК+АЦП+ЧМИ

    Добрый день!
    .
    Предыстория:
    Имел несколько лет назад опыт с ПЛК от фирмы Kinco, Панель от фирмы Weintek и АЦП тензодатчиков от ОВЕН МВ110-4ТД, которые соединил вместе по модбас, где ЧМИ брал значение веса (float) от АЦП МВ110-4ТД, а Панель, в свою очередь передавала, это значение каждые 0,1сек (по внутреннему таймеру) в ПЛК в известную ячейку памяти, которую позже использовал в логике ПЛК (сравнение и пр.).
    .
    Процесс был такой => ехал ящик по конвейерным весам, где посредине была планкой на тензодатчике, которая поднимала ящик с весом 5.5кг, при помощи пневмоцилиндра во время остановки конвейера в положении "ящик над планкой". Шло сравнение веса ящика с заданием (и учетом погрешности в 50грамм), и если всё нормально = конвейер ехал дальше, а ящик забирали и клеили на нём "Вес верен!". Калибровку АЦП проводил при помощи ноутбука с программой Конфигуратор М110, т.к. в техподдержке в июле 2020г мне ответили, что по Модбас юстировка/калибровка/тарировка работает некорректно (это было Обращение № :##322444##). Вот тогда, эта связка расплодилась до 5 экземпляров и успешно трудится по сей день... с тех пор к ОВЕН (плк, чми) не притрагивался...
    .
    На днях выкатили задание: "Организовать выгрузку из огромного бункера в малый бункер (подвешенный на одном тензодатчике) заданную порцию муки при помощи "транспорта в виде шнеков". Есть тензодатчик KELI DEE N8E2055 500кг S-образный на котором висит малый бункер -> в него и требуется засыпать муку. Скорость засыпки примерно 400-500грамм в секунду. Засыпать в малый бункер нужно в пределах 40-60кг, а потом опустошать малый бункер. Оператор регулирует кол-во муки, которое нужно набрать в малый бункер, и потом по команде с кнопки "Сброс в тару" - бункер будет опустошаться, а команде с кнопки "Набор" - набираться соответственно.
    .
    Вопросы по подбору и общая тема:
    1. Верно ли я сделал выбор оборудования? (может есть тонкости какие-то) ПЛК110-24.32.К.М, Панель СП307-Б, АЦП МВ110-1ТД.
    2. С программой для ЧМИ СП300 знаком поверхностно, но не вижу там ничего сложного,- по видеоурокам можно понять за несколько дней... - но есть некоторые вопросы по передаче данных в АЦП для калибровки датчика, тарировки и обнуления.
    3. С программой для ПЛК не сталкивался никогда, но знаком с ТвидоСьюит для TwidoPLC, знаком SoMachine 4 для Модикон М238, так же знаком немного со Step7 для Сименса - понимание есть т.е. /// для ПЛК110 - Codesys 2.3 (буду знакомится в ближайшее время, в частности с LAD и ФБД, т.к. он максимально наглядный.
    .
    И вопросы:
    1. Есть ли смысл организовывать такую связку >> "Панель(master) берёт данные (значение веса) из АЦП и передаёт в ПЛК; Панель посылает значение в регистры АЦП для юстировки/тарировки; ПЛК, получая значение веса от Панели, выполняет сравнение значения веса с уставкой, и управляет механизмами.
    2. Такая связка будет корректной? >> "Панель(мастер) + ПЛК-слэйв и АЦП-слэйв". >> и тут вопрос: Можно ли, используя байтовые/битовые кнопки на Панели, передавать значение в ПЛК, который будет уметь передавать значение в АЦП для юстировки/тарировки тензодатчика? Нужно обнулять значение веса малого бункера, т.к. иной раз происходит налипание муки, на которое допускается не обращать внимание... Нужно иногда заново юстировать АЦП, т.к. довольно часто выходит из строя сбросной механизм малого бункера, и его замена происходит на иной (другого веса)...
    3. и пока не полез знакомится в Кодесис 2.3, возможно вы направите и расскажите, что есть макрос или что-то подобное, которое добавляется в логику ПЛК, для облегчения общения ПЛК с АЦП. в ПО от Шнайдер(Твидо, МОдикон) были модули-макросы для общения с ПЧ той же фирмы и не нужно было что-то посылать,чтоб что-то получить, а были готовые адреса в которых хранились и ток и напряжение звена пост.тока и частота вращения и всё что нужно для диагностики самого ПЧ, а так же БИТ на который нужно было подать сигнал для запуска вращения вперед или реверс. (выглядело в виде готового функционального блока,- очень удобно)
    4. Возможно есть у кого-то проект под Панель и ПЛК с такой логикой (весовой дозатор) и он может поделиться?
    Последний раз редактировалось goldenlife; 14.01.2025 в 11:40. Причина: запятые, точки, абзацы =)

  2. #2

    По умолчанию

    А зачем чесать правое ухо левой рукой? свяжите ПЛК и МВ-110 по одному интерфейсу, а с панелью - по другому интерфейсу, и делайте всю логику работы в ПЛК, а панель используйте только для взаимодействия с оператором.
    И еще, возможно , что какой- нибудь готовый весовой контроллер, например от Тензо-М, уже умеет решать вашу задачу.

  3. #3

    По умолчанию

    Цитата Сообщение от YuriBel Посмотреть сообщение
    А зачем чесать правое ухо левой рукой? свяжите ПЛК и МВ-110 по одному интерфейсу, а с панелью - по другому интерфейсу, и делайте всю логику работы в ПЛК, а панель используйте только для взаимодействия с оператором.
    И еще, возможно , что какой- нибудь готовый весовой контроллер, например от Тензо-М, уже умеет решать вашу задачу.
    Имеете в виду ПЛК с АЦП по протоколу ОВЕН, а Панель с ПЛК по модбас? - ото так верно будет? В таком случае Панели придется передавать в ПЛК значение веса, взятого у АЦП, по тому же таймеру. Корректно ли? НО такой расклад (в прошлом) не очень понравился! Или это самый верный простой и рабочий путь? В прошлом (2020г) случае, иногда панель зависала (а это Веинтек с процессором 600Мгц) - и помогало лишь "выкл-вкл сеть".

  4. #4

    По умолчанию

    А каков бюджет проекта?

    Год назад такого же типа дозаторы внедрили на металлургическом комбинате: ПЛК210 (мастер для входов-выходов и весового прибора по ТСР, слейв для СП315Р). Но там вибропитатели, тут со шнеком то проще точности добиться.

  5. #5

    По умолчанию

    Интересуют более подробные подробности.
    Возможно будет проще (пока не понимаю как) прикрутить АЦП к ПЛК (для юстировки, тарировки, обнуления и передачи значения веса), а к ПЛК подключить Панель (мастер-слейв) и накидывать логику. Но, пока тот ПК с нужным софтом чуть дальше чем хотелось, то прошу информацию у знатоков (желательно поподробней)...
    Первым делом нужно взять оборудование (купят для начала реализации задачи), а на ходу буду соображать. Так что -> выбор правильный?
    .
    На тот момент (2020г) чтоб провести юстировку АЦП нужно было выполнить странные действия (или то мне так показалось тогда),- отправлять много информации (и байты и биты с разными значениями) в АЦП, и делать это в определенной последовательности (но это и понятно)... короче не всё так просто было. Возможно сейчас имеет место "упращеный" вариант этого действия? (юстировка/тарировка/обнуление).
    .
    Надеюсь на ваше понимание! Как только мне станет что-то ясней, то я расскажу о "победах" и буду сам помогать нуждающимся. А сейчас увы, сижу на стуле для нуждающихся =))) как бы это не звучало странно.
    .
    Миниатюры Миниатюры Нажмите на изображение для увеличения. 

Название:	photo_2025-01-14_12-09-28.jpg 
Просмотров:	45 
Размер:	216.2 Кб 
ID:	81295   Нажмите на изображение для увеличения. 

Название:	photo_2025-01-14_12-09-46.jpg 
Просмотров:	28 
Размер:	231.5 Кб 
ID:	81296  

  6. #6

    По умолчанию

    Цитата Сообщение от МихаилГл Посмотреть сообщение
    А каков бюджет проекта?

    Год назад такого же типа дозаторы внедрили на металлургическом комбинате: ПЛК210 (мастер для входов-выходов и весового прибора по ТСР, слейв для СП315Р). Но там вибропитатели, тут со шнеком то проще точности добиться.
    ПЛК, АЦП, Панель = как есть так и есть, цену какую скажут поставщики.
    Остальное - механизмы и пр, типо "готово" и работает но плохо и на ручном управлении (старый дырявый пульт самопальный и рядом паяльник лежит для ремонта)... кнопки, ручные задвижки и пр. неинтересные приспособления.
    .
    Задача простая =) -> "Включить шнеки, набрать в малый бункер заданный вес, остановится, ждать команды сброса. И конечно же уметь юстировать, тарировать, калибровать".
    .
    Желание сделать только на ОВЕН. Чтоб можно было при помощи одного ноутбука разрешить ворпос с диагностикой и корректировкой всего и всея.

  7. #7

    По умолчанию

    Цитата Сообщение от goldenlife Посмотреть сообщение
    ПЛК, АЦП, Панель = как есть так и есть, цену какую скажут поставщики.
    Остальное - механизмы и пр, типо "готово" и работает но плохо и на ручном управлении (старый дырявый пульт самопальный и рядом паяльник лежит для ремонта)... кнопки, ручные задвижки и пр. неинтересные приспособления.
    .
    Задача простая =) -> "Включить шнеки, набрать в малый бункер заданный вес, остановится, ждать команды сброса. И конечно же уметь юстировать, тарировать, калибровать".
    .
    Желание сделать только на ОВЕН. Чтоб можно было при помощи одного ноутбука разрешить ворпос с диагностикой и корректировкой всего и всея.
    Да это понятно... Могу вам алгоритм дозировки свой выслать. Там основной бункер на тензодатчике, и вес измеряется по его убыванию в нижний. Но расшифровывать и комментировать уже присутствующие комментарии на буду. Там не сильно все запутано, 3 весовых бункера с компонентами и 1 нижний (весы на нем тоже есть, но я их в расчетах не использовал). Все как вам надо, задаете дозу, запускаете, после того, как система отдозирует - выпускаете нижний бункер куда надо, и по новой... Написано на кодесисе 3.5, легко переносится на кодесис 2.3...

    Если не разберетесь, пишите в личку. Подскажу.

    Код:
    PROGRAM POU_Dos
    VAR
    	First_Scan:	BOOL;
    	A:			ARRAY [1..5, 0..9] OF BOOL;
    	Wf:			ARRAY [1..5] OF REAL;
    	Wt:			ARRAY [1..5] OF REAL;
    	Wo:			ARRAY [1..5] OF REAL;
    	Wz:			ARRAY [1..5] OF REAL;
    	STOP:		ARRAY [1..5] OF BOOL;
    	q1:			ARRAY [1..5] OF R_TRIG;
    	q2:			ARRAY [1..5] OF F_TRIG;
    	CMD_OF:		ARRAY [1..5] OF BOOL;
    	CMD_CR:		ARRAY [1..5] OF BOOL;
    	No_Dos:		ARRAY [1..5] OF BOOL;
    	dW:			ARRAY [1..5] OF REAL:= [0, 0, 0, 0, 100];
    	res_bit:	R_TRIG;
    END_VAR
    VAR_INPUT
    	BTN_Res:	ARRAY [1..5] OF BOOL;
    	BTN_Dos:	ARRAY [1..5] OF BOOL;
    	BTN_Sta:	ARRAY [1..5] OF BOOL;
    	BTN_Sto:	ARRAY [1..5] OF BOOL;
    END_VAR
    Код:
    IF NOT First_Scan THEN First_Scan:= TRUE; ResFromMSSQL:= TRUE; END_IF
    
    FOR j:= 1 TO 5 DO
    	//Вес в бункере (текущий), кг
    	Wt[j]:= PW24_1D[j].U_RealInProgramm;
    	//Вес в плавке (требуемый), кг
    	Wz[j]:= PW24_2D[j].U_RealInProgramm;
    END_FOR
    
    MK210_312_O[2]:= FALSE;
    IF (Wz[5]> Wt[5]) AND MEC[5].INP_SQ_C THEN
    	MK210_312_O[2]:= TRUE;
    END_IF
    res_bit(CLK:= MEC[5].INP_SQ_C);			//Автоматический сброс задания коксика
    IF res_bit.Q THEN
    	Wz[5]:= 0;
    END_IF
    
    FOR j:= 1 TO 5 DO
    
    	IF j= 4 THEN j:= j + 1; END_IF
    
    	IF j< 4 THEN
    		IF B_INP[96 + (j - 1) * 32] THEN B_INP[96 + (j - 1) * 32]:= FALSE; BTN_Sta[j]:= TRUE; END_IF										//Запустить
    		IF B_INP[97 + (j - 1) * 32] THEN B_INP[97 + (j - 1) * 32]:= FALSE; BTN_Sto[j]:= TRUE; END_IF										//Остановить
    		IF B_INP[98 + (j - 1) * 32] THEN B_INP[98 + (j - 1) * 32]:= FALSE; BTN_Dos[j]:= TRUE; END_IF										//Отдозировать
    	END_IF
    	IF B_INP[99 + (j - 1) * 32] OR ResFromMSSQL THEN B_INP[99 + (j - 1) * 32]:= FALSE; BTN_Res[j]:= TRUE; END_IF						//Сбросить вес	ResFromMSSQL:= FALSE;
    
    	//Сбросить все биты при первом запуске
    	IF A[j, 0]= 0 THEN
    		FOR i:= 1 TO 9 DO
    			A[j, i]:= 0;
    		END_FOR
    		A[j, 0]:= 1;
    	END_IF
    	//Сбросить все биты при первом запуске
    
    	//Сброс
    	IF BTN_Res[j] AND NOT MEC[j].EXT_BLO AND NOT MEC[j].STA_ALA THEN
    		IF NOT A[j, 1] THEN
    			FOR i:= 2 TO 9 DO
    				A[j, i]:= 0;
    			END_FOR
    			Wo[j]:= 0;
    			STOP[j]:= 0;
    		END_IF
    	END_IF
    	BTN_Res[j]:= 0;
    	//Сброс
    
    	//Некорректное задание дозирования
    	No_Dos[j]:= NOT A[j, 2] AND ((Wz[j]<= 0) OR (Wz[j]>= Wt[j]));
    	//Некорректное задание дозирования
    
    	//Дозирование
    	IF BTN_Dos[j] AND NOT MEC[j].EXT_BLO AND NOT MEC[j].STA_ALA THEN
    		IF NOT A[j, 3] AND NOT A[j, 4] AND NOT No_Dos[j] THEN
    			IF NOT A[j, 2] THEN
    				A[j, 2]:= 1;		//Повторный запуск дозирования или выгрузки
    				Wf[j]:= Wt[j];
    			END_IF
    			A[j, 1]:= 1;			//Запрет сброса
    			A[j, 3]:= 1;			//Начало дозирования
    			A[j, 4]:= 0;			//Начало выгрузки
    			A[j, 5]:= 1;			//Онлайн показания
    		END_IF
    	END_IF
    	BTN_Dos[j]:= 0;
    	//Дозирование
    
    	//Выгрузка
    	IF BTN_Sta[j] AND NOT MEC[j].EXT_BLO AND NOT MEC[j].STA_ALA THEN
    		IF NOT A[j, 3] AND NOT A[j, 4] THEN
    			IF NOT A[j, 2] THEN
    				A[j, 2]:= 1;		//Повторный запуск дозирования или выгрузки
    				Wf[j]:= Wt[j];
    			END_IF
    			A[j, 1]:= 1;			//Запрет сброса
    			A[j, 3]:= 0;			//Начало дозирования
    			A[j, 4]:= 1;			//Начало выгрузки
    			A[j, 5]:= 1;			//Онлайн показания
    		END_IF
    	END_IF
    	BTN_Sta[j]:= 0;
    	//Выгрузка
    
    	//Онлайн показания
    	IF A[j, 5] THEN
    		Wo[j]:= Wf[j] - Wt[j];
    //		STOP[j]:= (Wo[j]>= Wz[j]);
    		STOP[j]:= ((Wo[j] + dW[j])>= Wz[j]);
    	END_IF
    	//Онлайн показания
    
    	//Отдозировано
    	IF A[j, 3] AND STOP[j] THEN
    		BTN_Sto[j]:= 1;
    	END_IF
    	//Отдозировано
    
    	//Остановка
    	IF BTN_Sto[j] OR MEC[j].EXT_BLO OR MEC[j].STA_ALA THEN
    		A[j, 1]:= 0;				//Запрет сброса
    		A[j, 3]:= 0;				//Начало дозирования
    		A[j, 4]:= 0;				//Начало выгрузки
    	END_IF
    	BTN_Sto[j]:= 0;
    	//Остановка
    
    	q1[j](CLK := A[j, 3] OR A[j, 4]);
    	IF q1[j].Q THEN CMD_OF[j]:= TRUE; END_IF
    	q2[j](CLK := A[j, 3] OR A[j, 4]);
    	IF q2[j].Q THEN CMD_CR[j]:= TRUE; END_IF
    
    	IF j< 4 THEN
    		IF CMD_OF[j] THEN CMD_OF[j]:= FALSE; MEC[j].COM_OF:= TRUE; END_IF			//Запустить
    		IF CMD_CR[j] THEN CMD_CR[j]:= FALSE; MEC[j].COM_STO:= TRUE; END_IF			//Остановить
    	END_IF
    	IF j= 5 THEN
    		IF CMD_OF[j] THEN CMD_OF[j]:= FALSE; END_IF									//Запустить
    		IF CMD_CR[j] THEN CMD_CR[j]:= FALSE; END_IF									//Остановить
    		//IF CMD_OF[j] THEN MEC[j].COM_OF:= TRUE; END_IF								//Запустить
    		//IF MEC[5].INP_SQ_O THEN CMD_OF[j]:= FALSE; END_IF							//Сброс команды Запустить
    		//IF CMD_CR[j] THEN MEC[j].COM_CR:= TRUE; END_IF								//Остановить
    		//IF MEC[5].INP_SQ_C THEN CMD_CR[j]:= FALSE; END_IF							//Сброс команды Остановить
    	END_IF
    
    END_FOR
    
    ResFromMSSQL:= FALSE;
    Нажмите на изображение для увеличения. 

Название:	й1.png 
Просмотров:	25 
Размер:	31.7 Кб 
ID:	81297

  8. #8

    По умолчанию

    А какие тут могут быть подробности? Вполне логично, что на ПЛК проще реализовать всю работу с модулем МВ110, включая постоянный опрос веса в режиме дозирования, да и неверное вспомогательные операции тоже. Какой протокол для этого лучше подходит - Овен или Modbus, не знаю, но и тот, и другой на ПЛК можно использовать без проблем. Панель связать с ПЛК по другому интерфейсу, скорее всего по Modbus, кто там будет мастером, а кто слейвом -это на любителя. и в панели будут только кнопки и индикаторы, никакого опроса модуля со стороны панели не нужно. Зачем вы несколько лет назад организовали такой странный обмен, который описаль, мне, честно говоря, не понятно. Впрочем, "учить ученого-только портить".

  9. #9

    По умолчанию

    Еще вдогонку, посмотрите разницу между ПЛ110-32 и ПЛК110-30. У второго на два выхода меньше, зато на один RS485 больше. Подумайте, что лучше иметь в запасе, если задача будет усложняться?

  10. #10

    По умолчанию

    Цитата Сообщение от YuriBel Посмотреть сообщение
    Еще вдогонку, посмотрите разницу между ПЛ110-32 и ПЛК110-30. У второго на два выхода меньше, зато на один RS485 больше. Подумайте, что лучше иметь в запасе, если задача будет усложняться?
    А еще ПЛК-210 гляньте. Там встроенная визуализация есть, можно ПК подцепить и мышкой управлять. И не надо с обменом по модбас заморачиваться. Но ПК нужен. Хотя можно СПК с модулями ввода/вывода, там встроенная сенсорная панель. Вариантов даже на ОВЕН много. Главное то, на что вы готовы пойти...

Страница 1 из 5 123 ... ПоследняяПоследняя

Похожие темы

  1. Ответов: 3
    Последнее сообщение: 09.01.2020, 12:32
  2. Ответов: 0
    Последнее сообщение: 27.12.2019, 14:43
  3. Нужна помощь в подборе оборудования и написании программы
    от Дмитрий_Ш в разделе Подбор Оборудования
    Ответов: 15
    Последнее сообщение: 06.02.2018, 17:17
  4. Ответов: 6
    Последнее сообщение: 08.01.2014, 19:19
  5. Помощь в подборе оборудования
    от игорь223 в разделе Подбор Оборудования
    Ответов: 6
    Последнее сообщение: 07.04.2009, 13:17

Ваши права

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