codesys 之 SFC探索

本文探讨了Codesys编程中顺序功能图(SFC)的使用,包括测试不同动作的执行顺序、隐式变量的理解,以及如何进行模拟。作者还分享了关于关联动作、SFC标志的学习计划,并提出完善状态机模板代码的目标。
摘要由CSDN通过智能技术生成

Codesys代码代写,程序开发,软件定制,bug修改,问题咨询:个人主页

1 测试

在initing状态中测试(entry)进入动作,(exit)出去动作,内部动作,外部动作 四种类型的执行做了如图所示的测试;
获得结论:

1:即使initing的跳转条件一直是true,也会执行initing的入口动作,内部动作,外部动作;
2:第一次扫描得知initing的跳转条件为true,第二次扫描的时候只会执行外部动作,出去动作;
3:initing的动作执行顺序是,先执行内部动作,后执行外部动作;
4: 如果在initing 内部动作中在嵌套子状态sfc,父状态转移会执行父的exit动作,子状态如果是因为父状态转移而不执行,子状态的exit动作不会执行,类似history历史状态,下次进入子状态会继续紧接着执行;

在这里插入图片描述

2 隐式的变量

在创建sfc中的步和动作(内部动作,不是关联动作)的时候,隐式的创建如下类型,在对应的库中可以查看类型;
常用的是 ._x:强制下一个周期的激活状态(测试发现是改变当前周期的激活状态)。用来定义历史状态和初始状态;

隐式变量声明的语法:
:SFCStepType;
_:SFCActionType;
在这里插入图片描述
在这里插入图片描述

3 模拟

用codesys 模拟 sfc的入口 出口 内部动作,并行选择分支,用sfc也是为了满足状态机的设计需求;理解了为什么UML让选择,信号同步等叫做虚拟状态;

考虑到并行的情况:有时同时处于多个状态,所有用字的每一个表示一个状态。在跳出状态的时候,要把当前状态位置为0;

*状态的枚举类型*)
TYPE StetaMachine :
(

 eMainStateInit:= 16#00000001,
 eMainState1  := 16#00000001,
 eMainState2  := 16#00000002
 );
END_TYPE
*变量定义*)
iMainState       : StetaMachine := eMainState1 ;
iMainStateFollow : StetaMachine := eMainStateInit;
bMainStateExit   : BOOL:= FALSE;
{
   一、状态名称}
IF (iMainState OR eMainState1) <</
CoDeSys 是一种功能强大的PLC软件编程工具,它支持IEC61131-3标准IL 、ST、 FBD 、LD、 CFC、 SFC 六种PLC编程语言,用户可以在同一项目中选择不同的语言编辑子程序,功能模块等。 CoDeSys是可编程逻辑控制PLC的完整开发环境(CoDeSys是Controlled Developement System的缩写),在PLC程序员编程时,CoDeSys为强大的IEC语言提供了一个简单的方法,系统的编辑器和调试器的功能是建立在高级编程语言的基础上(如Visual C++)。 现在国内PLC用户使用的版本多为CoDeSys V2.3, 最新的版本是CoDeSys V3。V3 在软件架构上有了很大的改善,朝安全软件的方向发展,目前正在申请TUV关于EN 61508的SIL认证。 CoDeSys软件还可以编辑显示器界面(Visualization),具有很多的控制模块(Motion),可以放置图片等强大的功能,典型的用户有ifm等。 CoDeSys功能总览:如何构建一个工程、怎么样构建一个工程、怎么样测试工程、调试、附加联机功能。CoDeSys的附加功能、工具等。 ABB Bachmann,IFM易福门,EPEC派芬,HOLLYSYS和利时,intercontrol的PROSYD1131,赫思曼公司iFlex 系列、力士乐的RC系列,TT control 公司TTC系列[1] 控制器等PLC厂家都是使用Codesys平台开发自己的编程软件的。 国内首家采用codesys平台的国产PLC 和声 HSC C3系列控制器也已大批量产业应用。 同时,也有运动控制厂家如:Scheider Electric, Banchman, GoogolTech在在使用Codesys平台开发自己的编程软件。 CoDeSys 软件商是德国Smart software solution GmbH,该公司位于德国巴伐利亚州肯普腾市。 这个是CoDeSys的编程手册,中文版的。希望大家享用。
CodeSys CNC是一种用于数控系统的编程软件,它提供了一个灵活可靠的平台,用于开发和控制数控机床。CodeSys CNC支持标准的PLC编程语言,如IEC 61131-3标准,包括LD、FBD、IL、ST、SFC等。它还提供了专门用于数控应用的函数和功能模块,使开发者能够高效地编写数控程序。 CodeSys CNC具有以下特点和优势: 1. 平台综合性:CodeSys CNC适用于不同类型和规模的数控机床,包括铣床、车床、钻床等。它可以在不同的硬件平台上运行,例如PC、PLC等。 2. 灵活性和易用性:CodeSys CNC提供了一个直观的编程界面和丰富的函数库,使用户能够轻松开发和修改数控程序。它还支持模块化开发,可以根据需要添加和删除功能模块。 3. 可靠性和稳定性:CodeSys CNC经过严格的测试和验证,具有高度的可靠性和稳定性。它可以处理实时的数控控制任务,确保机床运行的精度和准确性。 4. 可扩展性和兼容性:CodeSys CNC支持多种通信接口和网络协议,可以方便地与其他设备进行通信和集成。它还支持多种操作系统,如Windows、Linux等。 5. 开放性和标准化:CodeSys CNC基于开放的标准,如IEC 61131-3,使开发者能够自由选择硬件和软件供应商。它还提供了丰富的文档和培训资源,帮助开发者快速上手和深入理解。 总之,CodeSys CNC是一种先进的数控编程软件,它为数控机床的开发和控制提供了强大的支持。使用CodeSys CNC,开发者可以方便地编写、修改和管理数控程序,实现高效、准确和稳定的机床运行。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值