签到有奖
消息提醒
运维工程师专区
官方商城
扫码分享好友 任选多种周边
如题:在函数内,输入(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
数组A,数组B
B:=A;就行了
@二无 楼主你这么做的目的是什么?
输入引脚连接的多个不连续的开关量,对于这些开关量要在函数内部做for循环运算,所以要将这些开关量复制到数组内
A数组作为输入引脚不方便连接变量啊
A[X]=B.XX
B是一个双字,B.X是其的位,最后一个X就是与前面一样的变量,FOR循环让其为0-31
引用2楼详细内容:
复制到数组内是为方便要进行for循环操作?你用for循环是检测什么东西?说的详细一些,可能有比使用for循环更简洁的方法。
FB内用Poke 恐怕不行吧
来围观 目前我知道的就是for Pork_BLK 看看还有没有更好的方法。
怎么都在说用 POKE_BLK ,这个指令的所指的INPUT OUTPUT是I区和Q区的意思,并不是接口声明里的IUPUT OUTPUT啊。
PEEK/POKE并非只针对于IO地址。
对于连续地址变量的处理方法有很多种,对于不连续无规律的地址只能是逐个赋值
input 用数组,在FB的外面赋值输入。
然后FB里面for循环,或者直接数组赋值。
别一根筋。
SCATTER(IN := #SourceWord,
OUT => #DestinationArray);
指令“将位序列解析为单个位”用于将数据类型为 BYTE、WORD、DWORD 或 LWORD 的变量解析为单个位,并保存在 ARRAY of BOOL、匿名 STRUCT 或仅包含有布尔型元素的 PLC 数据类型中。
PEEK_BOOL
博图有个序列指令
先用poke在FC里映射到数组里,然后FB中用数组。
分享
扫码分享好友 任选多种好礼
收藏
有帮助
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!
密码至少8位,包含大、小写字母,数字和符号至少三种。
允许邮箱和手机接收来自支持中心网站的信息
我已同意《支持中心网站注册协议和隐私政策》
微信登录扫码一键登录
验证码登录
密码登录
二维码失效点击重试
打开微信扫一扫,快速登录/注册
未注册手机验证后自动登录,注册即代表同意《支持中心网站注册协议和隐私政策》
三日内免验证登录
短信登录
登录