剃齿机【YN4232C】【YP4250】

codesys平台PLC改造案例:

剃齿机【YN4232C】【YP4250】

 

 

X:

X24        B限位        Y17        A移

X26        A限位        Y16        B移 

X00     启动        400
X01     急退        401
X02     左右停,右停(面板)    402
X03     自动,手自动    403
X04     A移正剃         404    正剃,正逆剃
X05     2次,循环        405
X06     4次,循环        406
X07     刀正转    407

X10     刀反转    408
X11     顶尖松,面板    411【手动】
X12     刻度盘下正    412
X13     刻度盘上反    413
X14     工作台往返,面板    500【手动】先右
X15     冷却泵开,面板    501
X16     保护,液力      502
X17     保护,过载      503

X20     顶尖紧(工作台)    504【自动】
X21     保护顶尖(工作台)    505
X22     刻度盘起点            506
 X23      点行程【上行程开关】    507
X24     B限位【工作台】        510
 X25      点光程【上行程开关】    511
X26     A限位【工作台】        512
X27     安全门                513

Y:

刻度盘:刀全压0.5s后可动

Y00 
Y01 
Y02 
Y03 
Y04     排屑电机    434
Y05     冷却电机    435
Y06     刀正转          436
Y07     刀反转          437

Y10     全压启动       530
Y11     刻度盘正转下     531
Y12     刻度盘反转上     532
Y13     刻度盘刹车        533
Y14     阀,顶尖松        534
Y15     阀,光程【慢速】        535
Y16     阀,B移    536    【X24B限位】
Y17     阀,A移    537    【X26A限位】

M:

M100        启动

M101        自动A移

M102        自动B移

M103        点行程

M105        刻盘下

M116        A移

M117        B移

T:

T000~T199        100ms 

T40:        自动运行,坚持2.5s,等待点行程释放

T41:        平台移动0.2s后,刻度盘可以下

T42:        刻度盘刹车1.3s

T43:        A移0.3s后,刀正

T44:        A移0.3s后,刀反

T45:        刀动,0.8s后,全压

T46:        急退0.6s后,加0.3s

T47:        1s

T50:        急退保持0.6s

T51:        刀动,0.1s后,可AB移

T53:        手动0.5s后

T54:        全压0.5s后,刻度盘可下

T55:        停止1s后,失效光程

声明

FUNCTION_BLOCK FByn4232c
VAR_INPUT
    x00启动:BOOL;    //启动
    x01急退:BOOL;    //急退
    x02停车位置A:BOOL;    //右停
    x03自动:BOOL;    //自动
    x04A移正剃:BOOL;    //顺逆剃
    x05循环2次:BOOL;    //循环2次
    x06循环4次:BOOL;    //循环4次
    x07刀正:BOOL;    //刀正
    
    x10刀反:BOOL;    //刀反
    x11顶尖松:BOOL;    //顶尖松
    x12刻盘下:BOOL;    //刻盘下
    x13刻盘上:BOOL;    //刻盘上
    x14AB移:BOOL;    //工作台【A移】
    x15冷却泵:BOOL;    //冷却泵
    x16保护液力:BOOL;    //保护,液力
    x17保护过载:BOOL;    //保护,过载
    
    x20顶尖紧:BOOL;    //顶尖紧
    x21保护顶尖:BOOL;    //保护顶尖
    x22刻盘起点:BOOL;    //刻盘起点
    x23点行程:BOOL;    //点行程
    x24B限位:BOOL;    //B限位
    x25慢移:BOOL;    //点光程
    x26A限位:BOOL;    //A限位
    x27保护门:BOOL;    //保护门
END_VAR
VAR_OUTPUT
    y04排屑:BOOL;    //排屑
    y05冷却:BOOL;    //冷却
    y06刀正:BOOL;    //刀正
    y07刀反:BOOL;    //刀反
    
    y10全压:BOOL;    //全压
    y11刻盘下:BOOL;    //刻盘下
    y12刻盘上:BOOL;    //刻盘上
    y13刻盘刹车:BOOL;    //刻盘刹车
    y14顶尖松:BOOL;    //顶尖松
    y15慢移:BOOL;    //慢移
    y16B移:BOOL;    //B移
    y17A移:BOOL;    //A移
END_VAR

VAR
	R_TRIGs: ARRAY[0..200] OF R_TRIG;	//【手动】上升沿
	F_TRIGs: ARRAY[0..200] OF F_TRIG;	//【手动】
	T40: TON;//自动坚持2.5s
	T41: TON;//平台移动0.2s后
	T42: TP;//刹车1.3s
	T43: TON;//A移0.3s,刀正
	T44: TON;//A移0.3s,刀反
	T45: TON;//0.8s,全压
	T46: TON;//急退0.6s+0.3s
	T47: TON;//1s
	
	T50: TON;//急退保持0.6s
	T51: TON;//刀动0.1s后,可AB移
	
	T53: TON;//手动0.5s后
	T54: TON;//全压0.5s后,刻度盘可下
	T55: TON;//停止1s后,失效光程
	
	M100自动: BOOL;//自动运行
	M141换件:BOOL;
	M260手动安全: BOOL;//手动安全
	M420程序记: INT;
	M401急退: BOOL;
	M406程序结束: BOOL;
	
	// 自动刀正
	M110自动刀正: BOOL;
	// A移
	M101A移: BOOL;
	// 正剃
	M214正剃: BOOL;
	// 自动刀反
	M111自动刀反: BOOL;
	M102B移: BOOL;
	M215反剃: BOOL;
	M214正逆剃: BOOL;
	M210停车位置A: BOOL;
	
	M421光程次数: INT;
	
	
	
	
END_VAR

手动

24.7.15

//24.7.15
//【开关沿】
R_TRIGs[00](CLK:=x00启动 , Q=> );
R_TRIGs[01](CLK:=x01急退 , Q=> );
R_TRIGs[02](CLK:=x02停车位置A , Q=> );
R_TRIGs[03](CLK:=x03自动 , Q=> );
R_TRIGs[04](CLK:=x04A移正剃 , Q=> );
R_TRIGs[05](CLK:=x05循环2次 , Q=> );
R_TRIGs[06](CLK:=x06循环4次 , Q=> );
R_TRIGs[07](CLK:=x07刀正 , Q=> );

R_TRIGs[10](CLK:=x10刀反 , Q=> );
R_TRIGs[11](CLK:=x11顶尖松 , Q=> );
R_TRIGs[12](CLK:=x12刻盘下 , Q=> );
R_TRIGs[13](CLK:=x13刻盘上 , Q=> );
R_TRIGs[14](CLK:=x14AB移 , Q=> );
R_TRIGs[15](CLK:=x15冷却泵 , Q=> );
R_TRIGs[16](CLK:=x16保护液力 , Q=> );
R_TRIGs[17](CLK:=x17保护过载 , Q=> );

R_TRIGs[20](CLK:=x20顶尖紧 , Q=> );
R_TRIGs[21](CLK:=x21保护顶尖 , Q=> );
R_TRIGs[22](CLK:=x22刻盘起点 , Q=> );
R_TRIGs[23](CLK:=x23点行程 , Q=> );
R_TRIGs[24](CLK:=x24B限位 , Q=> );
R_TRIGs[25](CLK:=x25慢移 , Q=> );
R_TRIGs[26](CLK:=x26A限位 , Q=> );
R_TRIGs[27](CLK:=x27保护门 , Q=> );
//==================================
F_TRIGs[00](CLK:=x00启动 , Q=> );
F_TRIGs[01](CLK:=x01急退 , Q=> );
F_TRIGs[02](CLK:=x02停车位置A , Q=> );
F_TRIGs[03](CLK:=x03自动 , Q=> );
F_TRIGs[04](CLK:=x04A移正剃 , Q=> );
F_TRIGs[05](CLK:=x05循环2次 , Q=> );
F_TRIGs[06](CLK:=x06循环4次 , Q=> );
F_TRIGs[07](CLK:=x07刀正 , Q=> );

F_TRIGs[10](CLK:=x10刀反 , Q=> );
F_TRIGs[11](CLK:=x11顶尖松 , Q=> );
F_TRIGs[12](CLK:=x12刻盘下 , Q=> );
F_TRIGs[13](CLK:=x13刻盘上 , Q=> );
F_TRIGs[14](CLK:=x14AB移 , Q=> );
F_TRIGs[15](CLK:=x15冷却泵 , Q=> );
F_TRIGs[16](CLK:=x16保护液力 , Q=> );
F_TRIGs[17](CLK:=x17保护过载 , Q=> );

F_TRIGs[20](CLK:=x20顶尖紧 , Q=> );
F_TRIGs[21](CLK:=x21保护顶尖 , Q=> );
F_TRIGs[22](CLK:=x22刻盘起点 , Q=> );
F_TRIGs[23](CLK:=x23点行程 , Q=> );
F_TRIGs[24](CLK:=x24B限位 , Q=> );
F_TRIGs[25](CLK:=x25慢移 , Q=> );
F_TRIGs[26](CLK:=x26A限位 , Q=> );
F_TRIGs[27](CLK:=x27保护门 , Q=> );
//==================================

//手动,下降沿
IF  F_TRIGs[3].Q		//【手动,沿】
	THEN	//
	y04排屑:=FALSE;
	y05冷却:=FALSE;
	y06刀正:=FALSE;
	y07刀反:=FALSE;
	y10全压:=FALSE;
	y11刻盘下:=FALSE;
	y12刻盘上:=FALSE;
	y13刻盘刹车:=FALSE;
	y14顶尖松:=FALSE;
	y15慢移:=FALSE;
	y16B移:=FALSE;
	y17A移:=FALSE;
	M100自动:=0;
	M141换件:=0;
	M420程序记:=0;
	END_IF
	
	
//手动	动作↑
T53(IN:=NOT x03自动 , PT:=T#0.5S , Q=> , ET=> );
//冷却泵
IF	R_TRIGs[15].Q AND T53.Q THEN
	y04排屑 :=TRUE;
	y05冷却 :=TRUE;
	END_IF
IF NOT x15冷却泵 AND NOT x03自动 THEN
	y04排屑 :=FALSE;
	y05冷却 :=FALSE;
	END_IF
	
	
//刀正
IF	R_TRIGs[7].Q AND T53.Q AND NOT y07刀反 AND M260手动安全
	THEN
	y06刀正 :=TRUE;
	END_IF
IF	NOT x07刀正 AND NOT x03自动 THEN
	y06刀正 :=FALSE;
	END_IF
//刀反
IF	R_TRIGs[10].Q AND T53.Q AND NOT y06刀正 AND M260手动安全
	THEN
	y07刀反 :=TRUE;
	END_IF
IF NOT x10刀反 AND NOT x03自动 THEN
	y07刀反 :=FALSE;
	END_IF
//全压,0.8s后
T45(IN:=y06刀正 OR y07刀反 , PT:=T#0.8S , Q=> , ET=> );
IF	T45.Q THEN
	y10全压:=TRUE;
	ELSE	
	y10全压:=FALSE;
	END_IF
	
	
//刻度盘【下】			//刻盘下hou刹车
IF	R_TRIGs[12].Q AND NOT x25慢移 AND T53.Q AND NOT x13刻盘上 AND NOT y13刻盘刹车  // AND M260手动安全
	THEN
	y12刻盘上 :=FALSE;
	y11刻盘下 :=TRUE;
	END_IF
IF  NOT x12刻盘下 AND NOT x03自动 THEN
	y11刻盘下 :=FALSE;
	END_IF
IF x25慢移 THEN
	y11刻盘下 :=FALSE;
	END_IF
//刻度盘【上】			//刻度盘上hou刹车
IF	R_TRIGs[13].Q AND NOT x22刻盘起点 AND T53.Q AND NOT x12刻盘下 AND NOT y13刻盘刹车  // AND M260手动安全
	THEN
	y11刻盘下 :=FALSE;
	y12刻盘上:=TRUE;
	END_IF
IF	R_TRIGs[01].Q AND NOT x22刻盘起点 AND T53.Q //x01急退【刻盘上】
	THEN
	y13刻盘刹车:=FALSE;
	y11刻盘下:=FALSE;
	y12刻盘上:=TRUE;
	END_IF
IF	NOT x13刻盘上 AND NOT x03自动 THEN
	y12刻盘上 :=FALSE;
	END_IF
IF	x22刻盘起点 THEN
	y12刻盘上 :=FALSE;
	END_IF
//刻度盘刹车1.3s【脉冲】
T42(IN:= NOT y11刻盘下 AND NOT y12刻盘上 , PT:=T#1.3S , Q=> , ET=> );//TP	脉冲
IF	T42.Q THEN
	y13刻盘刹车:=TRUE;
	ELSE
	y13刻盘刹车:=FALSE;
	END_IF
	
	
//顶尖松
IF	R_TRIGs[11].Q AND NOT y06刀正 AND NOT y07刀反 AND T53.Q	//刀动时,顶尖不能松
	THEN
	y14顶尖松 :=TRUE;
	END_IF
IF	NOT x11顶尖松 AND NOT x03自动 THEN
	y14顶尖松 :=FALSE;
	END_IF
	
	
//慢移
IF R_TRIGs[25].Q OR x25慢移 THEN
	y15慢移:=TRUE;
	END_IF
IF x22刻盘起点 THEN
	y15慢移:=FALSE;
	END_IF
	
	
//【AB移】
//A移
IF	R_TRIGs[14].Q AND NOT x26A限位 AND T53.Q 
	THEN
	y16B移 :=FALSE;
	y17A移 :=TRUE;
	END_IF
IF	y16B移 AND x24B限位 AND NOT x26A限位 AND x14AB移 AND T53.Q
	THEN
	y16B移 :=FALSE;
	y17A移 :=TRUE;
	END_IF
//B移
IF	R_TRIGs[14].Q AND x26A限位 AND NOT x24B限位 AND T53.Q
	THEN
	y17A移 :=FALSE;
	y16B移 :=TRUE;
	END_IF
IF	y17A移 AND x26A限位 AND NOT x24B限位 AND x14AB移 AND T53.Q
	THEN
	y17A移 :=FALSE;
	y16B移 :=TRUE;
	END_IF
//停
IF	NOT x14AB移 AND NOT x03自动 THEN
	y16B移 :=FALSE;
	y17A移 :=FALSE;
	END_IF
	
	
//手动安全M260
IF	NOT x03自动 AND NOT x11顶尖松 AND x16保护液力 AND x21保护顶尖 AND x27保护门
	AND NOT y14顶尖松
	THEN 
	M260手动安全:=TRUE;
	ELSE
	M260手动安全:=FALSE;
	END_IF
	
	
//【机械保护】
IF x24B限位 THEN y16B移:=FALSE;END_IF
IF x26A限位 THEN y17A移:=FALSE;END_IF
//==============================
//M260:=TRUE;//调试



自动

 24.7.15

//24.7.15
//自动开关量	M100
//	【0】 2 3 5 16 17 20 21 22 26 27
//===================================
//时序图
			//【0】【26A限】-----------------重置
//45
			//0.3s刀正
//45 6
			//0.8s全压
//456  10
			//0.5s刻盘下
//456  10  11
			//【x23点行,x26A限】-------------位移
//456  10	16
//===================================
			//【24B限位】
//45
			//0.3s刀正
//45 7
			//0.8s全压
//457  10
			//0.5s刻盘下
//457  10  11
			//【x23点行,x24B限】
//457  10	17
//=======
//25慢移
// 15
//====================================
 
//自动,沿
IF	R_TRIGs[03].Q OR F_TRIGs[03].Q 		//【自动,沿】
	THEN	//
	y04排屑:=FALSE;
	y05冷却:=FALSE;
	y06刀正:=FALSE;
	y07刀反:=FALSE;
	y10全压:=FALSE;
	y11刻盘下:=FALSE;
	y12刻盘上:=FALSE;
	y13刻盘刹车:=FALSE;
	y14顶尖松:=FALSE;
	y15慢移:=FALSE;
	y16B移:=FALSE;
	y17A移:=FALSE;
	M100自动:=0;
	M141换件:=0;
	M420程序记:=0;
	END_IF
	
	
//顶尖
IF	x20顶尖紧 AND x03自动 THEN
	y14顶尖松:=FALSE;//顶尖【紧】
	END_IF
IF	NOT x20顶尖紧 AND NOT y06刀正 AND NOT y07刀反 AND NOT M100自动 AND x03自动
	THEN
	y14顶尖松:=TRUE;//顶尖【松】
	END_IF
	
	
//【换工件】
IF	R_TRIGs[20].Q THEN
	M141换件:=1;
	END_IF
	
	
//启动【M100】
IF	R_TRIGs[00].Q AND x20顶尖紧 AND x03自动 AND NOT x01急退  
	AND M141换件 	//【新工件】
	AND x16保护液力 AND x17保护过载 AND x21保护顶尖 AND x27保护门 
	AND (x24B限位 OR x26A限位)
	THEN
	M100自动:=TRUE;
	M420程序记:=0;
	M214正剃:=x04A移正剃;//【正逆剃】
	M215反剃:= NOT M214正剃;//【正逆剃】
	M210停车位置A:=x02停车位置A;
	IF x05循环2次 THEN M421光程次数:=2;END_IF
	IF x06循环4次 THEN M421光程次数:=4;END_IF
	END_IF
	
	
//急退
IF	R_TRIGs[01].Q OR M401急退 AND x03自动
	THEN
	y04排屑:=FALSE;
	y05冷却:=FALSE;
	y06刀正:=FALSE;
	y07刀反:=FALSE;
	y10全压:=FALSE;
	y11刻盘下:=FALSE;
	
	y14顶尖松:=FALSE;
	y15慢移:=FALSE;
	y16B移:=FALSE;
	y17A移:=FALSE;
	M100自动:=FALSE;
	M141换件:=0;
	M420程序记:=0;
	M406程序结束:=0;
	//===============
	
	IF	NOT x22刻盘起点 AND NOT y13刻盘刹车 
		THEN 
		y12刻盘上:=TRUE;
		M401急退:=FALSE;
		END_IF
	IF	x22刻盘起点 THEN M401急退:=FALSE; END_IF
	END_IF
	
	
//【排屑,冷却泵】
IF M100自动 AND x03自动
	THEN
	y04排屑:=TRUE;
	y05冷却:=TRUE;
	END_IF
	
	
//====================================
//【左右限位】00000000000000000000000000000000000
R_TRIGs[124](CLK:= x24B限位 AND M100自动 , Q=> );
R_TRIGs[126](CLK:= x26A限位 AND M100自动 , Q=> );
IF R_TRIGs[124].Q OR R_TRIGs[126].Q
	THEN
	y06刀正:=FALSE;
	y07刀反:=FALSE;
	y10全压:=FALSE;
	y11刻盘下:=FALSE;
	y12刻盘上:=FALSE;
	
	y16B移:=FALSE;
	y17A移:=FALSE;
	END_IF
	
	
//【45】0.3s【正逆剃】1111111111111111111111111111
T43(IN:= x26A限位 AND M100自动 , PT:=T#0.3S , Q=> , ET=> );
T44(IN:= x24B限位 AND M100自动 , PT:=T#0.3S , Q=> , ET=> );
//【A移】 刀 【正反】
IF  x24B限位 AND M100自动 AND T44.Q THEN
	IF  M214正剃 THEN	// A移 正剃
		y07刀反:=FALSE;
		y06刀正:=TRUE;
	END_IF
	IF  NOT M214正剃 THEN
		y06刀正:=FALSE;
		y07刀反:=TRUE;
	END_IF
	END_IF
	
	
//【B移】 刀 【正反】
IF  x26A限位 AND M100自动 AND T43.Q THEN
	IF	M214正剃 THEN	// B移  反剃
		y06刀正:=FALSE;
		y07刀反:=TRUE;
	END_IF
	IF  NOT M214正剃 THEN
		y07刀反:=FALSE;
		y06刀正:=TRUE;
	END_IF
	END_IF
	
	
//456 10 【11】		
//【全压】0.5s【刻盘下】2222222222222222222222222222222
T54(IN:=y10全压 AND M100自动 , PT:= T#0.5S, Q=> , ET=> );
R_TRIGs[110](CLK:= T54.Q , Q=> );
IF	R_TRIGs[110].Q AND NOT y15慢移 AND NOT y12刻盘上 AND NOT y13刻盘刹车
	THEN
	y11刻盘下:=TRUE;
	END_IF
//=======================
//【程序计】
IF y15慢移 AND R_TRIGs[26].Q THEN M420程序记:=M420程序记+1; END_IF//【计光程—_2~4】
IF y15慢移 AND R_TRIGs[24].Q THEN M420程序记:=M420程序记+1; END_IF//【计光程—_2~4】
//=======================
//	刻盘结束
IF R_TRIGs[110].Q AND y15慢移 AND M420程序记=M421光程次数
	THEN//【全压】【慢移】【程序计】
	y12刻盘上:=TRUE;
	M406程序结束:=TRUE;
	END_IF
	
	
//456  10	16		
//【x23点行】>>>>AB移33333333333333333333333333333333333333
R_TRIGs[123](CLK:= x23点行程 AND M100自动 , Q=> );//【x23点行】
IF  R_TRIGs[123].Q	//x23点行程
	THEN 
	y11刻盘下:=FALSE;
	y12刻盘上:=FALSE;
	IF x24B限位 AND NOT x26A限位 THEN y17A移:=TRUE;END_IF	//【A移】y16B移:=FALSE;
	IF x26A限位 AND NOT x24B限位 THEN y16B移:=TRUE;END_IF	//【B移】y17A移:=FALSE;
	END_IF
	
	
//【光程】【全压0.5s后】4444444444444444444444444444444444444
IF y15慢移 AND T54.Q AND NOT M406程序结束
	THEN //全压后0.5s后
	IF x24B限位 AND NOT x26A限位 THEN y17A移:=TRUE;END_IF 	// AND T54.Q
	IF x26A限位 AND NOT x24B限位 THEN y16B移:=TRUE;END_IF 	// AND T54.Q
	END_IF
	
	
//【程序结束】
IF M210停车位置A AND M406程序结束 AND x26A限位 THEN M401急退:=TRUE; END_IF	//停车位A
IF NOT M210停车位置A AND M406程序结束 AND x24B限位 THEN M401急退:=TRUE; END_IF	//停车位B


//================
//【bug修复】
IF x24B限位 AND x26A限位 AND M100自动
	THEN
	M401急退:=TRUE;
	M406程序结束:=TRUE;
	END_IF
	
	
 //维修电工:祁成 qq750273008	2024-7-15

 
 //===================
 
 
 
 
 
 

启动条件:

输入:
      035【16】【17】【21】【22】【27】,24或者26

程序:448步

//手动    动作↑
T53(IN:=NOT  x03自动 , PT:=T#0.5S , Q=> , ET=> );
//冷却泵
R_TRIG_0(CLK:=x15冷却泵 , Q=> );
F_TRIG_0(CLK:=x15冷却泵 , Q=> );

IF    R_TRIG_0.Q AND  T53.Q THEN
    y04排屑 S=TRUE;
    y05冷却 :=TRUE;//跟置位效果一样的
END_IF

IF    F_TRIG_0.Q AND  T53.Q THEN
    y04排屑 :=FALSE;
    y05冷却 :=FALSE;
END_IF

//=========================

软件:

GX Developer

安装码:

570-986818410        或者998-598638072。

800ms后刀全压,100ms后,工作台才能左右。 

物料清单:

施耐德        LC1D32-M7C        97

                  LC1D25                 74

继电器        CAD50M7C          44

4P底座        RXZE1M4C        7.5

4P继电器        RXM4AB2BD        24

辅助触点        LADN40C        18

                        LADN02C        9

PLC:西门子200smart         ST60-0AA1                                650

PLC:禾川  HCQ0-1100-D                                                        625

明纬开关电源:NDR-240         DC24v-240w                        187.88

AC220漏电开关: IC65N 1P  C25                                        17.7

三相插座:EA9XN416                                                          21.64

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值