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

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

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

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

    По умолчанию

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

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

  2. #2

    По умолчанию

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

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

  3. #3

    По умолчанию

    Цитата Сообщение от 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 
Просмотров:	38 
Размер:	31.7 Кб 
ID:	81297

  4. #4

    По умолчанию

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

  5. #5

    По умолчанию

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

  6. #6

    По умолчанию

    Цитата Сообщение от МихаилГл Посмотреть сообщение
    А еще ПЛК-210 гляньте. Там встроенная визуализация есть, можно ПК подцепить и мышкой управлять. И не надо с обменом по модбас заморачиваться. Но ПК нужен. Хотя можно СПК с модулями ввода/вывода, там встроенная сенсорная панель. Вариантов даже на ОВЕН много. Главное то, на что вы готовы пойти...
    Сделаем по человечески, бюджет позволят. Сенсорная панель цветная 7'' как раз + ПЛК + АЦП и красивый дорогой ящик с дорогими релюшками... =-)))
    Всё равно будут брутальные кнопки нажимные для запуска процесса - шоб не тыкали грязными большими пальцами в экран панельки.

  7. #7

    По умолчанию

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

Похожие темы

  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

Ваши права

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