技术论坛

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

作者 主题
游侠

经验值: 546
发帖数: 55
精华帖: 0
主题:在SCL里连续的位变量怎么批量的赋值到数组内


只看楼主 楼主 2019-11-04 19:37:40

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





 
以下网友喜欢您的帖子:

  
重要声明:

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

帖子链接:https://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=1592060&b_id=66&s_id=0&num=16

至圣

经验值: 13749
发帖数: 2032
精华帖: 16
回复:在SCL里连续的位变量怎么批量的赋值到数组内
推荐帖


只看楼主 1楼 2019-11-04 20:34:00

数组A,数组B

B:=A;就行了


工控毁我青春!
以下网友喜欢您的帖子:

  
至圣

经验值: 20134
发帖数: 2780
精华帖: 23
回复:在SCL里连续的位变量怎么批量的赋值到数组内
推荐帖


只看楼主 2楼 2019-11-04 21:13:46

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


Less is more……
以下网友喜欢您的帖子:

  
游侠

经验值: 546
发帖数: 55
精华帖: 0
回复:在SCL里连续的位变量怎么批量的赋值到数组内
推荐帖


只看楼主 楼主 3楼 2019-11-05 07:32:59
以下是引用唐诗宋瓷在2019-11-04 21:13:46的发言 >2楼

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

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


 
以下网友喜欢您的帖子:

  
游侠

经验值: 546
发帖数: 55
精华帖: 0
回复:在SCL里连续的位变量怎么批量的赋值到数组内


只看楼主 楼主 4楼 2019-11-05 07:38:34
以下是引用周杰伦在2019-11-04 20:34:00的发言 >1楼

数组A,数组B

B:=A;就行了

A数组作为输入引脚不方便连接变量啊


 
以下网友喜欢您的帖子:

  
侠圣

经验值: 2230
发帖数: 222
精华帖: 5
回复:在SCL里连续的位变量怎么批量的赋值到数组内
推荐帖


只看楼主 6楼 2019-11-05 10:50:40

A[X]=B.XX

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


 
以下网友喜欢您的帖子:

  
至圣

经验值: 20134
发帖数: 2780
精华帖: 23
回复:在SCL里连续的位变量怎么批量的赋值到数组内
推荐帖


只看楼主 7楼 2019-11-05 11:41:24
以下是引用二无在2019-11-05 07:32:59的发言 >3楼

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

以下是引用唐诗宋瓷在2019-11-04 21:13:46的发言 >2楼:@二无 楼主你这么做...

引用2楼详细内容:

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

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


Less is more……
以下网友喜欢您的帖子:

  
侠士

经验值: 1370
发帖数: 126
精华帖: 4
回复:在SCL里连续的位变量怎么批量的赋值到数组内


只看楼主 8楼 2019-11-05 17:02:42
Pork_BLK指令了解一下
 
以下网友喜欢您的帖子:

  
游侠

经验值: 546
发帖数: 55
精华帖: 0
回复:在SCL里连续的位变量怎么批量的赋值到数组内


只看楼主 楼主 9楼 2019-11-06 18:41:36


FB内用Poke 恐怕不行吧


 
以下网友喜欢您的帖子:

  
奇侠

经验值: 8098
发帖数: 1308
精华帖: 6
回复:在SCL里连续的位变量怎么批量的赋值到数组内
推荐帖


只看楼主 10楼 2019-11-06 18:52:49

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


养活一团春意思,撑起两根穷骨头
以下网友喜欢您的帖子:

  
侠圣

经验值: 2841
发帖数: 276
精华帖: 3
回复:在SCL里连续的位变量怎么批量的赋值到数组内


只看楼主 11楼 2019-11-08 22:16:31

怎么都在说用  POKE_BLK  ,这个指令的所指的INPUT OUTPUT是I区和Q区的意思,并不是接口声明里的IUPUT OUTPUT啊。


你若安好便是晴天
以下网友喜欢您的帖子:

  
版主

经验值: 76240
发帖数: 19148
精华帖: 378
回复:在SCL里连续的位变量怎么批量的赋值到数组内
推荐帖


只看楼主 12楼 2019-11-10 10:18:51

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


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


Zane 注册自动化系统工程师 Always save before download
以下网友喜欢您的帖子:

  
至圣

经验值: 13749
发帖数: 2032
精华帖: 16
回复:在SCL里连续的位变量怎么批量的赋值到数组内


只看楼主 13楼 2019-11-10 10:27:31

input 用数组,在FB的外面赋值输入。

然后FB里面for循环,或者直接数组赋值。

别一根筋。


工控毁我青春!
以下网友喜欢您的帖子:

  
侠圣

经验值: 3726
发帖数: 149
精华帖: 0
回复:在SCL里连续的位变量怎么批量的赋值到数组内
推荐帖


只看楼主 14楼 2020-08-02 10:25:26

SCATTER(IN := #SourceWord,

 OUT => #DestinationArray);

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

   



 
以下网友喜欢您的帖子:

  
游民

经验值: 139
发帖数: 1
精华帖: 0
回复:在SCL里连续的位变量怎么批量的赋值到数组内


只看楼主 15楼 2020-08-09 16:15:21

   

PEEK_BOOL


 
以下网友喜欢您的帖子:

  
侠士

经验值: 1613
发帖数: 128
精华帖: 0
回复:在SCL里连续的位变量怎么批量的赋值到数组内


只看楼主 16楼 2020-08-12 07:55:02

博图有个序列指令


头顶一片天,脚踏一土地。
以下网友喜欢您的帖子:

  
侠客

经验值: 871
发帖数: 83
精华帖: 0
回复:在SCL里连续的位变量怎么批量的赋值到数组内


只看楼主 17楼 2020-09-04 15:35:31

先用poke在FC里映射到数组里,然后FB中用数组。


 
以下网友喜欢您的帖子:

  
  • 上一页
  • 1
  • 下一页
收起
在SCL里连续的位变量怎么批量的赋值到数组内
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。