倍福TwinCAT3 OOP(面向对象)编程一 继承

       面向对象编程(OOP)是一种计算机编程模型,它围绕数据或对象而不是函数来组织软件设计以及逻辑。对象可以定义为具有唯一属性和行为的数据字段。OOP关注开发人员想要的对象操纵,而不是操纵它们所需的逻辑。这种编程方法非常适合大型、复杂和主动更新或维护。面向对象程序的组织也使该方法有利于协作开发,其中项目被分成小组。OOP的其他好处包括代码的可重用性、可伸缩性和效率。

面向对象编程基于以下原则:

1.继承

        对象之间的关系和子类可以被分配,允许开发人员在静止时重用公共逻辑维护一个独特的层次结构。OOP的这一特性强制进行更彻底的数据分析,减少开发时间并确保更高的安全性精确度。

下面做一个启停FB,简单示例一下继承的用法。

FUNCTION_BLOCK FB_StartStop
VAR
	Start               : BOOL;
	Stop                : BOOL;
	Running             : BOOL;
END_VAR


//

IF Start THEN
	M_Start();
END_IF

IF Stop THEN
	M_Stop();
END_IF
METHOD M_Start : BOOL

Running:=TRUE;
METHOD M_Stop : BOOL


Running := FALSE;

运行一下,把Start赋值True。

Start赋值False,Stop赋值True

这里起保停这个功能已经实现。

下面,我们给这个FB添加一些功能,采用继承的方式添加一些状态。

FUNCTION_BLOCK FB_StartStopExtend EXTENDS FB_StartStop

VAR
	RunFeedback     : BOOL;
	FeedbackTon     : TON;
	Clear           : BOOL;
	Status          : STRING;
	RunOK           : BOOL;
	RunError        : BOOL;   
END_VAR

//调用父类
SUPER^();
M_Status();
IF Clear THEN
	M_Clear();
END_IF
METHOD M_Clear : BOOL

FeedbackTon(IN:=FALSE,PT:=T#5S);
Status    :='Idle';        
RunOK     :=FALSE;
RunError  :=FALSE;
METHOD M_Status : BOOL

FeedbackTon(IN:=NOT RunFeedback AND Running,PT:=T#5S);
IF FeedbackTon.Q THEN
		Status :='Run Is NOK';        
	    RunOK  :=FALSE;
	    RunError  :=TRUE;
END_IF

IF RunFeedback AND Running AND NOT RunError THEN
		Status :='Run Is OK';        
	    RunOK  :=TRUE;
	    RunError  :=FALSE;
END_IF

仿真测试一下:

Start先赋值True,这时候RunFeedbackTon已经开始计时

RunFeedbackTon计时5s触发报警

这时候给RunFeedback赋值True

给Clear赋值True->False报警清除,状态改变

这里使用一个指针,Super^;SUPER指针指的是到创建此函数块的函数块实例。Super^();通俗来说就是调用父类。

还有一个指针,THIS^,THIS指针是指向它自己的实例,使用到的时候再做演示。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值