登录
首页 PLC论坛 欧姆龙OMRON
回帖 发帖
正文

主题:欧姆龙变址好处,变址不需要DR IR也可以搞~

点击:5965 回复:16

程序目的:一个工位有很多种参数需要切换,保存。(配方用起来估计很麻烦了,因为有很多个工位)
例如:D100-D110为当前设置使用参数(10个字),1#工位,工件1号保存到E0_1000-E0_1009.工件2号保存到E0_1010-E0_1019
此图为设备原始程序:很傻瓜的,一组数据16个字,保存50组数据用了50行。。。。。。
附件 1.jpg
最近没事学习看到变址的应用自己编写,发现变址太好用了,也可以不用DR IR 专用寄存器。
附件 2.jpg
PS:
想做成功能块多,但是功能科里面好像不能【@寄存器地址】这样的变址寻址(应该功能块默认没有分配绝对地址吧)?
最后修改:2018/11/27 9:05:59
18-11-24 21:42
反复看了几遍没能看懂意思,OMRON就用过几次,不熟的原因吧
18-11-25 08:18

引用 gk_0 在 2018/11/25 8:18:10 发言【内容省略】

使用了@来进行数据区的变址,其实MOVR全地址变址才是精髓。
Good Luck~
18-11-25 09:11
可能不是指令没看懂
是与原程序对应不上
附件 untitled1.jpg
最后修改:2018/11/26 1:24:08
18-11-26 00:24

引用 蜀中之首 在 2018/11/26 0:24:20 发言【内容省略】

欧姆龙这个寻址还是很有意思,比如,XFER &16 d680 @e2_0,传送16个字到 @E2_0里面,具体地址是E2_0里面的常数,比如是&16,就传送到E2_16,如果是&32就传到E2_32。
大楷就是这么个意思
#是16进制,存储区排列都是以十进制排的吧,比如D9-D10-D11,
最后,* @有区别的。为啥你都用BCD 减法,乘法呢。。。
附件 90e26332ae9051b8f12d9c7554b3f75e005320c6.jpg
最后修改:2018/11/26 8:17:54
18-11-26 08:12
这个应该OK了,客厅电脑 不是太好用。。。
模拟通过,把D680开始的16个字传送到E2_4000中的区域,每一组占用16个字
附件 QQ图片20181126083048.jpg
18-11-26 08:32
理论是都有了,但是实际怎么应用,我觉得自己还不行,这方面要向楼主学习
18-11-26 08:52
我也是看设备带过来的程序,想想可以优化不,小工程,触摸屏的配方也可以干
18-11-26 09:41
这个功能是很好用的,我们一直在这样间接寻址,感觉比配方要好
18-11-26 10:20
你在开始的W0.00 W0.01二个回路,及第二个回路的数据,初看产生误解,并没有简化,还挺复杂,细看是动了脑子。
再来回答你的疑问
omron数据排列是逢10进制1,不会出现ABCDEF
#在资料中确实代表16进,但-B,*B,+B不支持&,使用BCD指令就必须用#,而#又是我给定,同样不允许在#中出现ABCDEF.
这是其一
附件 untitled2.jpg
那为什么不用—,*,+即bin运算的指令?请看下面几个截图
附件 untitled3.jpg
附件 untitled4.jpg
附件 untitled5.jpg
图中D450赋值45(bcd),那为什么后二图是2D,简单,进制问题。
在一个工程中,会经常遇到不同进制,监控时,不及时切换监视条件,就可能会出现上图情况,
情急中,可能还吊在程序是不是错了,浪费宝贵时间,所以,习惯在类似地方用BCD指令,是其二。
但这二点都不是要使用BCD指令的主要原因
其三就是,D4500的赋值是由人机界面提供,不管是组态软件,还是触摸屏,赋值给D4500是0045还是002D?
所以,就用了BCD指令处理,间址前缀就要用*,而不能用@
最后修改:2018/11/26 21:35:48
18-11-26 21:31

上一页下一页

工控新闻

更多新闻资讯