谈谈西门子PLC中的字位变换

在西门子PLC的过程中,经常会遇到通讯变量为字通讯,但是需要单独的对其中的位进行控制,除了直接对字变量进行赋值外,其实也可以对其进行字位变换,以方便调用

方式一:使用AT变量来实现字位转换

方式二:使用直接使用变量的位.%X

方式三:使用SCATTER(将位序列解析为单个位)

SCATTER指令支持将数据类型BYTE/WORD/DWORD/LWORD的变量解析为单个位,并保存在Array of BOOL、匿名STRUCT或包含BOOL元素的PLC数据类型中

SCATTER的引脚参数说明:

SCATTER说明

下面我们还是案例说明,我们以读取G120的状态字作为案例说明

状态字结构如下:

状态字ZSW1

对此PLC建立对应的结构体变量,如下

ZSW1对应的结构变量

方式1实现方式,直接对应生成AT变量;

AT变量转换

方式2实现,将AD_I整型变量进行分解,然后赋值给Struct变量;

.%X

方式3,使用Scatter指令转换生成Bool数组

Scatter指令

以上三种方式,我一般个人倾向使用前两种,做标签对应,便于直接控制,阅读也比较方便,但是由于西门子的大端存储,AT转换实际会出现高低互换的情况,实际映射的时候可以转换一下;.%X转换倒是小端存储,可以直接映射,Scatter指令倒是可以实现转换,但是各Bool量存储都是数组名,不便于阅读;

仿真画面如下,大家可以参阅一下

仿真结构说明

展开阅读全文

页面更新:2024-04-01

标签:大端   赋值   个位   变量   指令   数据类型   状态   案例   结构   方式

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top