• «
  • 1
  • 2
  • »
  • Pages: 1/2     Go
yuetianbing
级别: 略有小成
精华主题: 0
发帖数量: 172 个
工控威望: 314 点
下载积分: 864 分
在线时间: 332(小时)
注册时间: 2014-03-12
最后登录: 2024-04-23
查看yuetianbing的 主题 / 回贴
楼主  发表于: 2017-10-26 17:15

理论上来讲,D70在第二次循环后变化为1后值不变的呀!求解释,但是模拟的时候值一直在加一呀?
ymmfa
不想大江大河,不想浪起潮落,只愿一湾小湖,静待岁月安好。
级别: 管理员

精华主题: 8 篇
发帖数量: 9526 个
工控威望: 8410 点
下载积分: 16278 分
在线时间: 5293(小时)
注册时间: 2006-08-10
最后登录: 2024-04-24
查看ymmfa的 主题 / 回贴
1楼  发表于: 2017-10-26 17:24
INC每一个扫描周期都加一次
如果INCP就是条件成立后只加一次
特别提醒大家:
偶尔修改下自己的密码,以防被盗
不要在多个网站都用一样账号密码
偶尔还是要发发贴,回回贴,不要总潜水
qq317438652
工控小学生
级别: 工控侠客
精华主题: 0
发帖数量: 191 个
工控威望: 4379 点
下载积分: 1169 分
在线时间: 336(小时)
注册时间: 2015-10-07
最后登录: 2023-11-21
查看qq317438652的 主题 / 回贴
2楼  发表于: 2017-10-26 17:44
每个扫描周期d70=d70=0,d70=d70=1,d70=d70=2……所以每个扫描周期d70都会+1,不知道理解的对不对  把mov k0 z0  改成mov k1 z0应该可以变成楼主说的那样
[ 此帖被qq317438652在2017-10-26 18:04重新编辑 ]
菜鸟的工控人生
030403118
自动项目、PLC、视觉、通讯等工控软件开发QQ3515716
级别: 工控侠客

精华主题: 3 篇
发帖数量: 1971 个
工控威望: 2886 点
下载积分: 25121 分
在线时间: 1367(小时)
注册时间: 2014-01-05
最后登录: 2024-04-24
查看030403118的 主题 / 回贴
3楼  发表于: 2017-10-26 18:07
此程序的症结 MOV K0 Z0
不要说for循环  for循环是周期内的事情 我说的是一个个的周期
每次周期 Z0都=0 你说d70z0是不是就是D70? 是D70就加1很正常 Z0瞬间(周期内)就变成了43了
在单周期内 D70是不变的 下一个周期呢 在下一个呢
项目、视觉、通讯QQ3515716
yuetianbing
级别: 略有小成
精华主题: 0
发帖数量: 172 个
工控威望: 314 点
下载积分: 864 分
在线时间: 332(小时)
注册时间: 2014-03-12
最后登录: 2024-04-23
查看yuetianbing的 主题 / 回贴
4楼  发表于: 2017-10-26 21:36
谢谢大家的指正,这段程序,要么Z0=1要么就是D71Z0=D70时候在INC加一,同时更正下二楼管理员的回复,INCP是不行的!
w45062099
多做事,少说话!
级别: 略有小成
精华主题: 0
发帖数量: 337 个
工控威望: 446 点
下载积分: 1287 分
在线时间: 1032(小时)
注册时间: 2014-10-23
最后登录: 2023-10-08
查看w45062099的 主题 / 回贴
5楼  发表于: 2017-10-26 21:44
引用
引用第4楼yuetianbing于2017-10-26 21:36发表的  :
谢谢大家的指正,这段程序,要么Z0=1要么就是D71Z0=D70时候在INC加一,同时更正下二楼管理员的回复,INCP是不行的!

搞笑,自己没明白什么问题,说2楼不对,自己云里雾里,程序写得就不行!再回去看书面壁思过吧!
每天只要小小一步都是在进步!
wsqjs
充耳不闻
级别: 略有小成
精华主题: 0
发帖数量: 148 个
工控威望: 224 点
下载积分: 1843 分
在线时间: 23(小时)
注册时间: 2008-10-26
最后登录: 2023-11-05
查看wsqjs的 主题 / 回贴
6楼  发表于: 2017-10-26 22:22
楼主对Plc 循环扫描工作方式不熟啊。
Inc z0后,
回到上面Mov k0 z0,
这样Z0永远是0,
D70Z0不就还是D70
充耳不闻
咗臉ヅ微笑ぺ
非吾所愿,奈何已离去……
级别: 工控侠客
精华主题: 0
发帖数量: 471 个
工控威望: 2130 点
下载积分: 29832 分
在线时间: 588(小时)
注册时间: 2017-04-08
最后登录: 2023-07-25
查看咗臉ヅ微笑ぺ的 主题 / 回贴
7楼  发表于: 2017-10-27 08:53
呃,总感觉有问题
ヅ微笑面对每一天,即使生活并不美好ヅ
枫落云端
施主,脚抬一下
级别: 略有小成

精华主题: 0
发帖数量: 341 个
工控威望: 465 点
下载积分: 1590 分
在线时间: 408(小时)
注册时间: 2017-10-10
最后登录: 2024-04-22
查看枫落云端的 主题 / 回贴
8楼  发表于: 2017-10-27 09:10
先说第一个扫描周期,第一行Z0为0,执行到第二行,进行43次循环,第0次循环时,执行到第三行,此时由于Z0为0,所以条件= D70Z0 D70其实就是= D70 D70,显然条件是成立的,所以INC D70就会加1,也就是 D70为1,之后执行第四行,Z0自加为1(Z0为1),,接着执行到第五行NEXT,但是由于没有达到43次,所以再循环到第三行,(Z0=1)条件= D70Z0 D70其实就是=D71 D70,由于D70为1,D71为0(如果程序没有对D71赋值),显然条件不成立,不执行INC D70,D70还是1;之后执行第四行,Z0自加为1(Z0为2),接着执行到第五行NEXT,但是由于没有达到43次,所以再循环到第三行,、、、、、、、、、之后都是不成立,等到执行完循环43次后;D0还是为1,Z0为43,程序执行完NEXT结束一个扫描周期
之后到第二个扫描周期,第一行还是Z0为0,跟第一个扫描周期类似,由于进入循环的第0次时,Z0为0,所以必定=D70Z0 D70条件成立,D70自加1,也就是变成2;其后周期同理会加1;模拟器的扫描周期为100ms,所以一秒加十次。
枫落云端
施主,脚抬一下
级别: 略有小成

精华主题: 0
发帖数量: 341 个
工控威望: 465 点
下载积分: 1590 分
在线时间: 408(小时)
注册时间: 2017-10-10
最后登录: 2024-04-22
查看枫落云端的 主题 / 回贴
9楼  发表于: 2017-10-27 09:21
图片:
其实这个程序Z0和循环的作用基本上算是多余。由于D70等于本身,所以Z0=0时,加1,Z0不等于0时,D71-D112里的值不等于D70里的值,可以把程序简单化简为上图
yuetianbing
级别: 略有小成
精华主题: 0
发帖数量: 172 个
工控威望: 314 点
下载积分: 864 分
在线时间: 332(小时)
注册时间: 2014-03-12
最后登录: 2024-04-23
查看yuetianbing的 主题 / 回贴
10楼  发表于: 2017-10-27 09:21
引用
引用第5楼w45062099于2017-10-26 21:44发表的  :

搞笑,自己没明白什么问题,说2楼不对,自己云里雾里,程序写得就不行!再回去看书面壁思过吧!


大神,我是小弟呀,我只想告诉你我这样模拟对吗?莫非三菱的软件有问题呀?求解释???
枫落云端
施主,脚抬一下
级别: 略有小成

精华主题: 0
发帖数量: 341 个
工控威望: 465 点
下载积分: 1590 分
在线时间: 408(小时)
注册时间: 2017-10-10
最后登录: 2024-04-22
查看枫落云端的 主题 / 回贴
11楼  发表于: 2017-10-27 09:25
由于一个扫描周期内,都会存在INC D70条件成立,所以首先D70自加,之后INC D70条件不成立,不自加,这样一个周期内INC条件会有OFF编程ON又变成OFF;所以即使INC D70变为INCP 70,还是会每个周期加1
  • «
  • 1
  • 2
  • »
  • Pages: 1/2     Go