[台达] PLC中结构体,枚举ST举例说明

[复制链接]
查看48943 | 回复0 | 2024-4-17 21:03:32 | 显示全部楼层 |阅读模式
在codesys使用说明中,对结构体,枚举做了详细介绍,但在新建数据类型时,如果不太清楚其用途,可能会增加我们的工作量,今天对二者做详细介绍,自己也在温顾一下。

在汇川InoProShop中,新建数据类型,点击AppLication——添加对象——UDT,打开页面如下:



添加UDT数据类型,结构,枚举,别名,联合四个选项,结构,枚举是我们日常中常用数据类型。



结构(struct)是由一系列具有相同类型或不同类型的数据构成的数据集合,也叫结构体。例如,一台电机通常都有其对应的信息,如产品型号(Product_ID)、生产厂家(Vendor)、额定电压(Nominal Voltage)、额定电流(Nominal Current)、极对数(Poles),是否带刹车(Brake)等信息。这些信息都和这台电机相关联,可以看出,如果将这些信息分别以独立的变量进行声明,很难反应出它们和电机的内在联系。

以一段ST语言写的结构体数据,以点击编号,功率,电压,电流,频率为例,调用结构体数据时,使用数组,简化多次定义数据:



VAR

ias_电机数组                        : ARRAY [0..8] OF 结构体;

END_VAR

ias_电机数组[0].STI_电机编号                            :=0;

ias_电机数组[0].STI_电机额定电流                                    :=        2.89;

ias_电机数组[0].STI_电机额定电压                                    :=        400;

ias_电机数组[0].STI_电机功率                    :=        2;

ias_电机数组[0].STI_电机频率                            :=30;

如果一种变量有几种可能的值,可以定义为枚举类型。所谓“枚举”是将变量的值一一列举出来,变量的值只能在列举出来的值的范围内。例如,必须定义一个变量,该变量的值表示一周中的一天。该变量只能存储七个有意义的值。若要定义这些值,可以使用枚举类型。如一周内星期可能取值的集合为:{ Sun,Mon,Tue,Wed,Thu,Fri,Sat},一般枚举配合case语句使用,调用程序动作程序,具体ST举例如下:



使用case语句,在程序中建立相关动作,如果下图,可以理解为,今天星期一,调用A00()动作,今天星期二,调用A10()动作,按照日期,依次动作。

另外,在PLC写程序时,习惯使用流程步,也是使用case语句,执行完动作1,满足条件,跳过下一步,按照工艺流程依次执行,方便程序理解。



习惯使用结构体和枚举,会很高效的提高我们的写作效率。

以上知识是个人在书本学习或在实践中学习到的,为了后续查找,故此在公众号分享。喜欢此类知识分享的朋友可以关注,谢谢。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则