登录
首页 PLC论坛 三菱Mitsubishi
回帖 发帖
正文

主题:三菱做不到

点击:692 回复:5

三菱GX-WORKS3编程,有一个设备用以太网通讯,读写各是128个实数(第一个其实不是实数,是32个控制位或状态位,其它都是实数),现在将其读入一个128的单精度数组中标签中,怎样才能将控制位或状态位按位寻址?(因为是写FB块,所以不使用PLC的寄存器,如果用寄存器就简单了 EMOV ReadBuffer[0] D1000,MOV D1000 ControlWord[0],Mov D1001 ControlWord[1],寻址直接就可以用CONTROL[0].0----Control[1].F了)
23-08-26 17:05
我觉得是问题没说清楚
“有一个设备用以太网通讯,读写各是128个实数”
~谁读--PLC吗?
~读谁--也是PLC吗?
按位or按状态,不也要先确定是哪的字or数组的位or状态吗?
23-08-28 17:24

引用 知道一点 在 2023/8/28 17:24:57 发言【内容省略】

有一个设备用以太网通讯
估计是视觉或者机器人之类的
反馈回来的是32bit单精度浮点标签,现在是想用其中的bit位,不能用:var.0,var.1这样使用;
没用过GX WORKS3,我装上玩玩。
其实折中没办法就EMOV D1000这样,用D1000.0~F呗,
23-08-28 21:32
楼主,我来给个折中的办法
附件 【【MGW56~DRJN0IZYF【(WKGN.jpg
测试没问题
FB程序如下:
VD_temp是D1000的缓存,为了使用缓存D1000的值,这个FB用完以后还要把值还回去,也就是即使使用了D1000,也不影响FB外面的D1000
FOR循环32次,32个bit,
DTEST是位测试,欧姆龙用过,还行。
附件 MQGMSVA55【T2858%N)@J$CP.jpg
我翻了半天也没找到,折中只有这办法了,即使多次调用,也不会影响最后结果以及D区的使用。
23-08-28 22:33
4楼
该帖内容不符合相关规定!
23-09-14 17:29
5楼
该帖内容不符合相关规定!
23-09-14 17:30

工控新闻

更多新闻资讯