• 正文
  • 相关推荐
申请入驻 产业图谱

博途SCL编程-面向对象之输送带控制功能块封装

07/14 09:55
1055
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

大家好,今天我们介绍面向对象至输送带控制功能块,这也是对对象进行分装。

这次封装的对象是输送带,在我们这个系统里面我们只有一个正转,我们对这样的对象进行封装的时候,我们将正转和反转这样的接口需求都封装到这样的一个功能块里面。只用正转的时候,我们反转接口可以不接。

下面我们看一下这样的对象它的一个UDT数据类型。UDT是我们PLC的数据类型,它的本质是结构变量。这边我们建了一个皮带UDT。下面我们看一下它的一个成员属性。

当需要调用多个输送带时我们可以做多个映射:此时我们做了六个数组映射,方便后期调用

皮带输送的功能块:

变量生命表:

功能块代码:

功能块调用:

多个输送带调用时,可以使用For循环进行批量操作

完整代码:

//皮带控制功能块 
REGION 报警输出
    IF #bFault THEN        #bAlarm := TRUE;        #staFault := TRUE;    END_IF;END_REGION
REGION 复位    IF #bReset THEN        #bAlarm := FALSE;        #staFault := FALSE;    END_IF;
END_REGION
REGION 自动    IF #bAuto_Mode THEN        IF #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_REGION
REGION 手动    IF NOT #bAuto_Mode THEN
        IF #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开发、人工智能教程等)。

相关推荐