您现在所在的是:

PLC论坛

回帖:11个,阅读:999 [上一页] [1] [2] [下一页]
* 帖子主题:

仿真的问题

1832
gfy4003
文章数:236
年度积分:50
历史总积分:1832
注册时间:2004/6/15
发站内信
发表于:2014/5/9 23:37:46
#0楼
smov D10 k4 K2 D20 k3 这条指令,没执行前,设定D10为H1234,D20为H5678,怎么一执行,就出现错误,都是BCD码,又不是非法BCD码,怎么也出错,是不是仿真有问题。先谢谢了。
附件 IMG_20140516_002840-picsay.jpg
[此贴子已经被作者于2014/5/16 0:48:33编辑过]
此帖发自手机工控论坛
24574
mjinbao
文章数:13934
年度积分:50
历史总积分:24574
注册时间:2013/1/12
发站内信
2018春节活动(三)
2017春节活动(三)
2016国庆活动(三)
发表于:2014/5/10 1:34:34
#1楼
前者已有同类主题,问题还没解决吗?
http://bbs.gkong.com/archive.aspx?id=384454

16位寄存器(二进制),BCD码能表示的最大十进制数是K9999,K9999对应的十六进制数是H270F;
H5678,大于H270F。

在上一帖中,已隐含提示,需先理解BCD码。
[此贴子已经被作者于2014/5/10 1:54:28编辑过]
1832
gfy4003
文章数:236
年度积分:50
历史总积分:1832
注册时间:2004/6/15
发站内信
发表于:2014/5/10 10:45:17
#2楼
你好,谢谢回复,你的意思就是H5678这个十六进制数是非法BCD,所以传送会出错。
此帖发自手机工控论坛
1832
gfy4003
文章数:236
年度积分:50
历史总积分:1832
注册时间:2004/6/15
发站内信
发表于:2014/5/10 11:18:21
#3楼
我查了相关资料,BCD码是用4位二进制码表示的0到9的十进制数,那K9999十进制数用BCD码表示就是1001100110011001,等于H9999.
此帖发自手机工控论坛
24574
mjinbao
文章数:13934
年度积分:50
历史总积分:24574
注册时间:2013/1/12
发站内信
2018春节活动(三)
2017春节活动(三)
2016国庆活动(三)
发表于:2014/5/10 11:38:47
#4楼
我没有“非法BCD”概念。

“K9999十进制数用BCD码表示就是1001100110011001”,而1001100110011001是BCD码,不是二进制数;
因此,这时1001100110011001对应的十进制数不是K39321(H9999),而是K9999(H270F);
或者说,寄存器中存放的BCD码,直接显示为十六进制数,是无效的。
24574
mjinbao
文章数:13934
年度积分:50
历史总积分:24574
注册时间:2013/1/12
发站内信
2018春节活动(三)
2017春节活动(三)
2016国庆活动(三)
发表于:2014/5/10 11:47:54
#5楼
另外,前一帖中,D20应当是目的寄存器,不需要预先赋值。
还有,BCD码直接显示为十进制数,也应当是不符合的。

补记:
还是上一贴,H1234,对应的十进制数是K4660,D20不赋值时,运行程序,可得结果K0460(此时是十进制数);
K0460用十六进制数表示是H01CC。
[此贴子已经被作者于2014/5/10 12:10:58编辑过]
1832
gfy4003
文章数:236
年度积分:50
历史总积分:1832
注册时间:2004/6/15
发站内信
发表于:2014/5/10 14:28:24
#6楼
你好,非常感谢,我没有用Plc试,是用仿真试的,真想用PLC试下,看这个结果是否和仿真的一样。
此帖发自手机工控论坛
1832
gfy4003
文章数:236
年度积分:50
历史总积分:1832
注册时间:2004/6/15
发站内信
发表于:2014/5/15 12:03:57
#7楼
今用plc试了下,前面H1234和H5678执行后结果不变,后面试H1234,D20不赋值,得十进制K460,这个结果怎么不符合书上讲的,应该得结果H0120才对。
此帖发自手机工控论坛
24574
mjinbao
文章数:13934
年度积分:50
历史总积分:24574
注册时间:2013/1/12
发站内信
2018春节活动(三)
2017春节活动(三)
2016国庆活动(三)
发表于:2014/5/15 18:56:50
#8楼
你是看的书还是编程手册(或操作手册)?
我也没用过这条指令,但查了台达PLC的操作手册,所述运算结果符合其说明,见5楼的“补记”——
我的理解是,BCD码表示的是十进制数,所以转移的位也是按十进制数位,而不是十六进制数。
1832
gfy4003
文章数:236
年度积分:50
历史总积分:1832
注册时间:2004/6/15
发站内信
发表于:2014/5/16 0:54:49
#9楼
谢谢,你说的是对的,我是看了书上的解释,有图在一楼。查看原图清楚些,怪不得,我说用PLC试也不对了,书上这条驱动了M8|68才成立,要不完全不对。
此帖发自手机工控论坛

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

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

62.4004