您现在所在的是:

欧姆龙OMRON

回帖:16个,阅读:6072 [上一页] [1] [2] [下一页]
20901
bnnyygy
文章数:5988
年度积分:1567
历史总积分:20901
注册时间:2012/3/15
发站内信
2018论坛分享达人
发表于:2018/11/24 21:42:12
#0楼
程序目的:一个工位有很多种参数需要切换,保存。(配方用起来估计很麻烦了,因为有很多个工位)

例如:D100-D110为当前设置使用参数(10个字),1#工位,工件1号保存到E0_1000-E0_1009.工件2号保存到E0_1010-E0_1019

此图为设备原始程序:很傻瓜的,一组数据16个字,保存50组数据用了50行。。。。。。

附件 1.jpg

最近没事学习看到变址的应用自己编写,发现变址太好用了,也可以不用DR IR 专用寄存器。

附件 2.jpg

PS:
想做成功能块多,但是功能科里面好像不能【@寄存器地址】这样的变址寻址(应该功能块默认没有分配绝对地址吧)?
[此贴子已经被jint于2018/11/27 9:05:59编辑过]
22922
gk_0 版主
文章数:7735
年度积分:703
历史总积分:22922
注册时间:2013/9/9
发站内信
2018论坛贡献奖
2017论坛贡献奖
2017国庆活动(二)
2016论坛贡献奖
2016国庆活动(三)
英威腾变频器(一)
S7-200 SMART(一)
寻找英威腾(三)
英威腾PLC体验(一)
2015春节活动
2013辞旧迎新
2013辞旧迎新
2013国庆活动
发表于:2018/11/25 8:18:10
#1楼
反复看了几遍没能看懂意思,OMRON就用过几次,不熟的原因吧
37231
cvlsam 版主
文章数:12401
年度积分:1583
历史总积分:37231
注册时间:2001/12/22
发站内信
2018论坛贡献奖
2017论坛贡献奖
2016论坛贡献奖
2015论坛贡献奖
2013论坛贡献奖
2012论坛贡献奖
2011论坛贡献奖
2011国庆活动
2010论坛杰出贡献奖
发表于:2018/11/25 9:11:35
#2楼
以下是引用gk_02018/11/25 8:18:10的发言:
反复看了几遍没能看懂意思,OMRON就用过几次,不熟的原因吧

使用了@来进行数据区的变址,其实MOVR全地址变址才是精髓。

Good Luck~
7968
蜀中之首
文章数:5230
年度积分:50
历史总积分:7968
注册时间:2018/5/27
发站内信
发表于:2018/11/26 0:24:20
#3楼
可能不是指令没看懂
是与原程序对应不上
附件 untitled1.jpg
[此贴子已经被作者于2018/11/26 1:24:08编辑过]
20901
bnnyygy
文章数:5988
年度积分:1567
历史总积分:20901
注册时间:2012/3/15
发站内信
2018论坛分享达人
发表于:2018/11/26 8:12:48
#4楼
以下是引用蜀中之首2018/11/26 0:24:20的发言:
可能不是指令没看懂
是与原程序对应不上
附件 untitled1.jpg

欧姆龙这个寻址还是很有意思,比如,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编辑过]
20901
bnnyygy
文章数:5988
年度积分:1567
历史总积分:20901
注册时间:2012/3/15
发站内信
2018论坛分享达人
发表于:2018/11/26 8:32:14
#5楼
回复 #3楼 蜀中之首
这个应该OK了,客厅电脑 不是太好用。。。

模拟通过,把D680开始的16个字传送到E2_4000中的区域,每一组占用16个字

附件 QQ图片20181126083048.jpg
23509
mengx9806
文章数:10974
年度积分:1248
历史总积分:23509
注册时间:2011/5/16
发站内信
2018论坛热心网友
2018春节活动(三)
工控人谈电商
发表于:2018/11/26 8:52:37
#6楼
理论是都有了,但是实际怎么应用,我觉得自己还不行,这方面要向楼主学习
20901
bnnyygy
文章数:5988
年度积分:1567
历史总积分:20901
注册时间:2012/3/15
发站内信
2018论坛分享达人
发表于:2018/11/26 9:41:05
#7楼
回复 #6楼 mengx9806
我也是看设备带过来的程序,想想可以优化不,小工程,触摸屏的配方也可以干
2279
771804222
文章数:131
年度积分:423
历史总积分:2279
注册时间:2016/7/23
发站内信
发表于:2018/11/26 10:20:41
#8楼
这个功能是很好用的,我们一直在这样间接寻址,感觉比配方要好
7968
蜀中之首
文章数:5230
年度积分:50
历史总积分:7968
注册时间:2018/5/27
发站内信
发表于:2018/11/26 21:31:44
#9楼
你在开始的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编辑过]

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2024 Gkong.com, All Rights Reserved

93.6006