大家好,今天我们介绍面向对象至输送带控制功能块,这也是对对象进行分装。
这次封装的对象是输送带,在我们这个系统里面我们只有一个正转,我们对这样的对象进行封装的时候,我们将正转和反转这样的接口需求都封装到这样的一个功能块里面。只用正转的时候,我们反转接口可以不接。
下面我们看一下这样的对象它的一个UDT数据类型。UDT是我们PLC的数据类型,它的本质是结构变量。这边我们建了一个皮带UDT。下面我们看一下它的一个成员属性。
当需要调用多个输送带时我们可以做多个映射:此时我们做了六个数组映射,方便后期调用
皮带输送的功能块:
变量生命表:
功能块代码:
功能块调用:
多个输送带调用时,可以使用For循环进行批量操作
完整代码:
//皮带控制功能块REGION 报警输出IF #bFault THEN#bAlarm := TRUE;#staFault := TRUE;END_IF;END_REGIONREGION 复位IF #bReset THEN#bAlarm := FALSE;#staFault := FALSE;END_IF;END_REGIONREGION 自动IF #bAuto_Mode THENIF #bAuto_For AND NOT #bAuto_Rev AND #bEstop AND NOT #staFault THEN#bOut_For := TRUE;ELSE#bOut_For := FALSE;END_IF;IF #bAuto_Rev AND NOT #bAuto_For AND #bEstop AND NOT #staFault THEN#bOut_Rev := TRUE;ELSE#bOut_Rev := FALSE;END_IF;END_IF;END_REGIONREGION 手动IF NOT #bAuto_Mode THENIF #bHmi_JogFor AND NOT #bHmi_JogRev AND #bEstop AND NOT #staFault THEN#bOut_For := TRUE;ELSE#bOut_For := FALSE;END_IF;IF #bHmi_JogRev AND NOT #bHmi_JogFor AND #bEstop AND NOT #staFault THEN#bOut_Rev := true;ELSE#bOut_Rev := FALSE;END_IF;END_IF;END_REGION
加入知识星球智能制造与自动化,加入会员可下载此公众号发布文章中的相关资料(行业报告、MES、数字化技术方案、自动化教程、自动化行业标准化资料VASSSICAR戴姆勒等、C#上位机开发、node-red开发、人工智能教程等)。
阅读全文
1053