首页 欧姆龙(OM. 正文

回复

欧姆龙 SysmacStudio 关于模块化编程 数据类型联合体的应用技巧

欧姆龙(OMRON)PLC 浏览:712 回复:4 收藏

冲出枪林弹雨  2022-10-27 22:32

**欧姆龙SysmacStudio中的联合体的使用核心就是利用联合体的特点,它是由基础数据类型派生出的数据类型,可以帮助我们简化数据类型的转换代码。**


**所谓联合体,可以理解为一个变量使用时可以用多种数据类型,当然了也不是全部的数据类型,如下图所示,只能使用的类型是Bool、Byte、Word、Dword、Lword 以及组成的数组类型,且成员类型也只能有4个**

![在这里插入图片描述](https://img-blog.csdnimg.cn/dde4180f8f5f46f683d9541485dd2779.png)

![在这里插入图片描述](https://img-blog.csdnimg.cn/5b6ac3c366eb44d8bdea0f1941f22c17.png)

# 以下分享联合体的使用技巧


 ### 1.新建联合体

 在数据类型中选择联合体,在空白处右击点击选择新建数据类型添加联合体,之后点击新建成员;

 下方图中,新建了一些常用的联合体,供大家参考;

![在这里插入图片描述](https://img-blog.csdnimg.cn/e256409fef7340b7a73a0d23c368db61.png)


  ### 2.联合体使用


简化数据类型转换的代码!简化数据类型转换的代码!简化数据类型转换的代码!

#### 使用场景1:外部硬件的变量使用

![在这里插入图片描述](https://img-blog.csdnimg.cn/67bf609b717f42b5af65a0f0db7d34c9.png)

例如我们外部PLC上各有一个输入输出模块,并命名了对应的变量,一个模块对应两路通道,是字类型,内部有16个bit,就可以使用上图参考类型中  " uDwToBool "这个联合体,它的成员有三个对应:双字,单字,和32位布尔量数组;使用下图中的编程方式就省去了在数据类型间转换的麻烦;

![在这里插入图片描述](https://img-blog.csdnimg.cn/7cf11e817a4e49e699579b0723dae1c7.png)

#### 使用场景2:报警下使用

在编写大型设备产线时,电机和气缸数量特别多时,报警条件相对也比较多,这时我们可以将报警条件做归纳,分类,然后根据类型分配;例如下方的将64个轴的故障,使用 " uLwToBool "这个联合体,它的成员有两个对应:长字,和64位布尔量数组;做一个FOR循环提取,这只需判断这个长字是否为0就能判断64个轴有没有报错,非常的简单方便;

![在这里插入图片描述](https://img-blog.csdnimg.cn/4d26989a118745f093fa6c08718a2df0.png)

 **还有其他的一些应用场景,不再赘述,使用的核心理念就是简化数据类型的转换过程;**




## 联合体使用限制

![在这里插入图片描述](https://img-blog.csdnimg.cn/17b880a0d780402e8469d11cc6e601cc.png)

![在这里插入图片描述](https://img-blog.csdnimg.cn/c577aaecc3b84d1683eb9937731f17a6.png)




**上次讲到欧姆龙SysmacStudio 全局变量和数据类型命名空间的使用技巧,需要了解的可以复制链接查看

https://blog.csdn.net/q18335189155/article/details/127394811?spm=1001.2014.3001.5502**


我知道了