优秀的编程知识分享平台

网站首页 > 技术文章 正文

如何用枚举快速提高编程效率,数据元素快速对应,小枚举大作用

nanyue 2025-01-02 18:10:46 技术文章 6 ℃

在编程中我们为了提高效率,我们经常需要编写FOR循环程序利用数组快速编写程序。 效率提高了,但是也面临一个问题,使用时如何区分具体哪个实物?

下面分享枚举实现我们快速编程的方法,2步快速实现。以汇川AC系列PLC为例,用枚举实现区分数组中的元素:

新建枚举

右击枚举体---"添加对象"---"DUT",在弹窗中选择枚举,填入名称。

{attribute 'qualified_only'}
{attribute 'strict'}
TYPE 气缸 :
(
	气缸1 := 1,
	气缸2 := 2,
	气缸3 := 3
	
);
END_TYPE

程序运用

编写循环程序

IF EStop THEN
   FOR i:=1 TO 100 BY 1 DO 
Cylinder_BOX[i](
	   	EN:= TRUE, 
	   	Inp_Home:= Cylinder[i].Inp_Home,             //气缸去原位
	   	Inp_Work:= Cylinder[i].Inp_Work,             //气缸去动位
	   	SE_Home:= Cylinder[i].SE_Home,               //气缸原位感应
	   	SE_Work:= Cylinder[i].SE_Work,               //气缸动位感应
	   	H_Shield:= HMI_Cyl_H_Shield[i],              //气缸原位屏蔽
	   	W_Shield:= HMI_Cyl_W_Shield[i],              //气缸动位屏蔽
	   	Home_Delay:= HMI_Cyl_H_Delay[i],             //气缸原位延时
	   	Work_Delay:= HMI_Cyl_W_Delay[i],             //气缸动位延时
	   	Err_Delay:= HMI_Cyl_Err_Delay[i],            //气缸异常延时
	   	Hold:= TRUE, 
	   	Reset:= Reset, 
	   	EStop:= EStop, 
	   	ENO=> , 
	   	Outp_Home=> Cylinder[i].Out_Home,            //原位输出
	   	Outp_Work=> Cylinder[i].Out_Work,            //动位输出
	   	Pos_Home=> Cylinder[i].Pos_Home,             //在原位
	   	Pos_Work=> Cylinder[i].Pos_Work,             //在动位
	   	InHoming=> Cylinder[i].InHoming,             //原位动作中
	   	InWorking=> Cylinder[i].InWorking,           //动位动作中
	   	Homeing_time=> Cylinder[i].Homeing_time,     //原位动作时间
	   	Working_time=> Cylinder[i].Working_time,     //动位动作时间
	   	HomeSE_Err=> Cylinder[i].HomeSE_Err,         //原位异常
	   	WorkSE_Err=> Cylinder[i].WorkSE_Err);        //动位异常	
	   
   END_FOR
END_IF

程序调用

//气缸
Y11106:=Cylinder[气缸.气缸1].Out_Home;
Y11107:=Cylinder[气缸.气缸2].Out_Home;
Y11108:=Cylinder[气缸.气缸3].Out_Home

总结

以上是用枚举来快速识别数组中的对应气缸元素,编程起来不容易搞错,且可以提高编程效率。

欢迎大家关注涵景在苏州分享交流工控技术!

电气技术追梦人。

电气项目专业设计与开发调试。

电气项目设计调试经验分享。

最近发表
标签列表