欧姆龙 SysmacStudio 关于模块化编程 数据类型联合体的应用技巧 点击:841 | 回复:4



冲出枪林弹雨

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:7帖 | 62回
  • 年度积分:438
  • 历史总积分:1059
  • 注册:2015年9月04日
发表于:2022-10-27 22:09: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**




楼主最近还看过



冲出枪林弹雨

  • 精华:0帖
  • 求助:0帖
  • 帖子:7帖 | 62回
  • 年度积分:438
  • 历史总积分:1059
  • 注册:2015年9月04日
发表于:2022-10-28 11:35:34
1楼

欧姆龙SysmacStudio中的联合体的使用核心就是利用联合体的特点,它是由基础数据类型派生出的数据类型,可以帮

助我们简化数据类型的转换代码。


所谓联合体,可以理解为一个变量使用时可以用多种数据类型,当然了也不是全部的数据类型,如下图所示,只能

使用的类型是Bool、Byte、Word、Dword、Lword 以及组成的数组类型,且成员类型也只能有4个




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

1.新建联合体

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

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



2.联合体使用

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


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


例如我们外部PLC上各有一个输入输出模块,并命名了对应的变量,一个模块对应两路通道,是字类型,内部

有16个bit,就可以使用上图参考类型中 " uDwToBool "这个联合体,它的成员有三个对应:双字,单字,

和32位布尔量数组;使用下图中的编程方式就省去了在数据类型间转换的麻烦;



使用场景2:报警下使用

在编写大型设备产线时,电机和气缸数量特别多时,报警条件相对也比较多,这时我们可以将报警条件做归纳,

分类,然后根据类型分配;例如下方的将64个轴的故障,使用 " uLwToBool "这个联合体,

它的成员有两个对应:长字,和64位布尔量数组;做一个FOR循环提取,这只需判断这个长字是否为0就

能判断64个轴有没有报错,非常的简单方便;


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


联合体使用限制




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

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

————————————————

版权声明:本文为CSDN博主「工业控制X」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出

处链接及本声明。

原文链接:https://blog.csdn.net/q18335189155/article/details/127331485


冲出枪林弹雨

  • 精华:0帖
  • 求助:0帖
  • 帖子:7帖 | 62回
  • 年度积分:438
  • 历史总积分:1059
  • 注册:2015年9月04日
发表于:2022-10-28 11:36:29
2楼

复制过来有些文字被遮挡,修改了一下,看图可以点链接查看

生活所迫1

  • 精华:0帖
  • 求助:1帖
  • 帖子:4帖 | 80回
  • 年度积分:1174
  • 历史总积分:1411
  • 注册:2021年12月17日
发表于:2022-11-03 10:08:09
3楼

CX_Protocol协议宏软件中Abort(中止)与END(结束)的区别,你知道吗?


冲出枪林弹雨

  • 精华:0帖
  • 求助:0帖
  • 帖子:7帖 | 62回
  • 年度积分:438
  • 历史总积分:1059
  • 注册:2015年9月04日
发表于:2022-11-03 22:02:03
4楼

"生活所迫1" 的回复,发表在3楼
        对内容: 【CX_Protocol协议宏软件中Abort(中止)与END(结束)的区别,你知道吗?...】进行回复:

        -----------------------------------------------------------------

这个是在协议序列中设置的下一步动作内容,都是停止结束序列;区别是Abort  中止,它是未执行完协议序列的;意思就是这条序列未操作完就不执行了;END 结束是执行完序列的后结束;通常最后一步设置为END就行。

image.png


热门招聘
相关主题

官方公众号

智造工程师