技术论坛

 在SCL里连续的位变量怎么批量的赋值到数组内

返回主题列表
作者 主题
二无
游侠

经验值: 546
发帖数: 55
精华帖: 0
楼主    2019-11-04 19:37:40
主题:在SCL里连续的位变量怎么批量的赋值到数组内

如题:在函数内,输入(Input)为32个连续的Bool数据类型,根据编程需要,想把这32个位状态复制到一个32位的位数组内。目前用的最笨的办法,一个一个赋值,写了32行。想请教大家有没有相关的指令能方便操作。




周杰伦
至圣

经验值: 13737
发帖数: 2031
精华帖: 16
1楼    2019-11-04 20:34:00
主题:回复:在SCL里连续的位变量怎么批量的赋值到数组内

数组A,数组B

B:=A;就行了

工控毁我青春!
'Razor
至圣

经验值: 20027
发帖数: 2761
精华帖: 22
2楼    2019-11-04 21:13:46
主题:回复:在SCL里连续的位变量怎么批量的赋值到数组内

@二无 楼主你这么做的目的是什么?

Less is more……
二无
游侠

经验值: 546
发帖数: 55
精华帖: 0
3楼    2019-11-05 07:32:59
主题:回复:在SCL里连续的位变量怎么批量的赋值到数组内

输入引脚连接的多个不连续的开关量,对于这些开关量要在函数内部做for循环运算,所以要将这些开关量复制到数组内

刘工TIA
侠圣

经验值: 2227
发帖数: 222
精华帖: 5
6楼    2019-11-05 10:50:40
主题:回复:在SCL里连续的位变量怎么批量的赋值到数组内

A[X]=B.XX

B是一个双字,B.X是其的位,最后一个X就是与前面一样的变量,FOR循环让其为0-31

'Razor
至圣

经验值: 20027
发帖数: 2761
精华帖: 22
7楼    2019-11-05 11:41:24
主题:回复:在SCL里连续的位变量怎么批量的赋值到数组内

复制到数组内是为方便要进行for循环操作?你用for循环是检测什么东西?说的详细一些,可能有比使用for循环更简洁的方法。

Less is more……
贤贤易色
奇侠

经验值: 8060
发帖数: 1305
精华帖: 6
10楼    2019-11-06 18:52:49
主题:回复:在SCL里连续的位变量怎么批量的赋值到数组内

来围观 目前我知道的就是for             Pork_BLK  看看还有没有更好的方法。

养活一团春意思,撑起两根穷骨头
Zane
至圣

经验值: 75765
发帖数: 19245
精华帖: 376
12楼    2019-11-10 10:18:51
主题:回复:在SCL里连续的位变量怎么批量的赋值到数组内

PEEK/POKE并非只针对于IO地址。


对于连续地址变量的处理方法有很多种,对于不连续无规律的地址只能是逐个赋值

Zane 注册自动化系统工程师 Always save before download
f1968
侠圣

经验值: 3688
发帖数: 148
精华帖: 0
14楼    2020-08-02 10:25:26
主题:回复:在SCL里连续的位变量怎么批量的赋值到数组内

SCATTER(IN := #SourceWord,

 OUT => #DestinationArray);

指令“将位序列解析为单个位”用于将数据类型为 BYTE、WORD、DWORD 或 LWORD 的变量解析为单个位,并保存在 ARRAY of BOOL、匿名 STRUCT 或仅包含有布尔型元素的 PLC 数据类型中。

   


您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。