张诺言
级别: 略有小成
精华主题: 0
发帖数量: 129 个
工控威望: 250 点
下载积分: 672 分
在线时间: 218(小时)
注册时间: 2008-12-24
最后登录: 2024-10-13
查看张诺言的 主题 / 回贴
楼主  发表于: 2009-08-11 07:55
家园的朋友,大家好!我是一个新手,一个初学者,有许多的问题需要朋友们无私的帮助,在这儿没有什么直接的表示,只能发自肺腑的说声:谢谢!
最近公司要改造一台淬火机床,我用欧姆龙CPM2A-40CDR编了一个小程序,机床的机械部分还没有改装到位,自己编的程序模拟了一下,不是很放
心,所以我把程序传上来请各位师傅们帮我鉴定一下有没有错误,程序中自动3,4用到了INC指令是否合理,还有MOV,CPM指令程序有错误吗?再一
个请求:还有其他的指令能简化一下我的程序吗?特别是自动3与自动4的程序,就说这些吧,敬候各位师傅的回音及建议,谢谢。
附件: 淬火机床.rar (11 K) 下载次数:51
网站提示: 请不要用迅雷下载附件,容易出错
meng2008
级别: 家园常客
精华主题: 0
发帖数量: 222 个
工控威望: 505 点
下载积分: 860 分
在线时间: 75(小时)
注册时间: 2008-08-04
最后登录: 2023-10-07
查看meng2008的 主题 / 回贴
1楼  发表于: 2009-08-11 23:14
  
请问 1.用了DIFU214.00/211.00后,为什么还要@INC指令?
     2.CMP指令也可以与常数比较,可以省去MOV的步骤。
  以上为个人看法~
张诺言
级别: 略有小成
精华主题: 0
发帖数量: 129 个
工控威望: 250 点
下载积分: 672 分
在线时间: 218(小时)
注册时间: 2008-12-24
最后登录: 2024-10-13
查看张诺言的 主题 / 回贴
2楼  发表于: 2009-08-12 07:55
谢谢1楼朋友的指点,用了DIFU214.00,211.00就没必要用@INC,应该写INC是吗?当时我对指令不是很熟悉,害怕检测到的信号误动作,觉得那样保险,哈哈...
CMP指令中直接与数字比较是刚刚跟您学的,再次的感谢1楼的朋友!
hlq_0815
人生的成功不在于拿到一副好牌,而是怎样将坏牌打好。
级别: 论坛版主

精华主题: 2 篇
发帖数量: 1842 个
工控威望: 4490 点
下载积分: 7581 分
在线时间: 1321(小时)
注册时间: 2008-07-03
最后登录: 2024-11-25
查看hlq_0815的 主题 / 回贴
3楼  发表于: 2009-08-12 10:55
       不知道你机器的工艺,很难指出动作的......
在编程方面除了1楼提出的之外再提两点:
1、“运行”条件的断开应加点延时,可以预防机械震动或开关瞬时接触不良而误停机(还找不到原因);
2、*层与*次的比较可以用表比较TCMP(85),一个指令代替所有层、一个指令代替所有次,简洁方便。
人生的成功不在于拿到一副好牌,而是怎样将坏牌打好。
张诺言
级别: 略有小成
精华主题: 0
发帖数量: 129 个
工控威望: 250 点
下载积分: 672 分
在线时间: 218(小时)
注册时间: 2008-12-24
最后登录: 2024-10-13
查看张诺言的 主题 / 回贴
4楼  发表于: 2009-08-12 14:04
谢谢3楼的朋友,虽然我有点不明白TCMP指令的用法,但是我会去查资料好好学习一下,在这儿我很想请教各位师傅们一些这方面的一些疑惑,只因为自己水平太低,有问题却提不出问题,很明显自己的基础不行,还需再用功学习了。感谢家园为我们初学者提供了如此好的场地和机会,谢谢大家...
张诺言
级别: 略有小成
精华主题: 0
发帖数量: 129 个
工控威望: 250 点
下载积分: 672 分
在线时间: 218(小时)
注册时间: 2008-12-24
最后登录: 2024-10-13
查看张诺言的 主题 / 回贴
5楼  发表于: 2009-08-13 18:52
图片:
贴还没有被删除之前,再占用各位师傅们点时间请教一下,发个贴图,图里面的MOV #1 DM2;CMP DM1 DM2;AND 255.06  OUT 214.01;  能不能改成:MOV #1 214; 因为#1
能写为:0010,当#1传到214这个通道号时,那么通道里的214.01为1就变为ON了...这样说对吗?如果能行是不是简短了扫描时间呢?扫描时间的太长时,在工程实际运行
中有停滞现象吗?谢谢
hlq_0815
人生的成功不在于拿到一副好牌,而是怎样将坏牌打好。
级别: 论坛版主

精华主题: 2 篇
发帖数量: 1842 个
工控威望: 4490 点
下载积分: 7581 分
在线时间: 1321(小时)
注册时间: 2008-07-03
最后登录: 2024-11-25
查看hlq_0815的 主题 / 回贴
6楼  发表于: 2009-08-13 20:13
用数字传送–MOVD(83)可以办得到。



奉LZ不要再折腾那些复杂又烦锁的程序了,下面这程序就可以满足你24条和50条的所有程序:


这样的话你原程序的DIFU 214.00和DIFU 211.00 要改用别的地址,214.00~214.15和211.00~211.15已被两TCMP(85)占用;
递增指令暂存改为DM0和DM20;
将D1~D16(D21~D36)分别赋值0~15,当D0=0时214.00置位,以此类推当D0=15时214.15置位。D20与211.00~211.15亦同理。
[ 此帖被hlq_0815在2009-08-13 20:57重新编辑 ]
人生的成功不在于拿到一副好牌,而是怎样将坏牌打好。
张诺言
级别: 略有小成
精华主题: 0
发帖数量: 129 个
工控威望: 250 点
下载积分: 672 分
在线时间: 218(小时)
注册时间: 2008-12-24
最后登录: 2024-10-13
查看张诺言的 主题 / 回贴
7楼  发表于: 2009-08-13 21:10
谢谢楼上的朋友的指点,向你致敬