您现在所在的是:

人机界面

回帖:5个,阅读:1817 [上一页] [1] [下一页]
1357
管杀不管填
文章数:145
年度积分:50
历史总积分:1357
注册时间:2006/1/25
发站内信
发表于:2019/9/18 23:35:47
#0楼
  ENCO查了资料是这个意思:ENCO指令的输入字是一个16位二进制数,ENCO的功能是将这个二进制数从0位到15位依次检查每一位的值,一旦遇到某一位的值为“1”,就将该位的位号写入输出中。比如输入为1001 0100 0100 0000,那么输出为“6”(见图),因为从低位向高位逐个检查,在二进制数的第6位出现了“1”。
我好像理解了,我试着用PLC实际模拟,上例中是对的,然后试了IN中试入10#4(0100);10#7(0111);按上面意思,1出现在第2位和第0位,PLC中模拟出来OUT是10#2和10#0,我PLC中模拟出来是对的。但为什么IN中输入10#12(00010010),IN中输入10#100(000100000000),模拟出来两个结果都是2,为什么结果不是1和8呢,倒着数过来(00010010)和(000100000000)中的1不是出现在第1位和第8位吗。
[此贴子已经被作者于2019/9/18 23:39:54编辑过]
7968
蜀中之首
文章数:5230
年度积分:50
历史总积分:7968
注册时间:2018/5/27
发站内信
发表于:2019/9/19 7:28:06
#1楼
以下是引用管杀不管填2019/9/18 23:35:47的发言:
  ENCO查了资料是这个意思:ENCO指令的输入字是一个16位二进制数,ENCO的功能是将这个二进制数从0位到15位依次检查每一位的值,一旦遇到某一位的值为“1”,就将该位的位号写入输出中。比如输入为1001 0100 0100 0000,那么输出为“6”(见图),因为从低位向高位逐个检查,在二进制数的第6位出现了“1”。
我好像理解了,我试着用PLC实际模拟,上例中是对的,然后试了IN中试入10#4(0100);10#7(0111);按上面意思,1出现在第2位和第0位,PLC中模拟出来OUT是10#2和10#0,我PLC中模拟出来是对的。但为什么IN中输入10#12(00010010),IN中输入10#100(000100000000),模拟出来两个结果都是2,为什么结果不是1和8呢,倒着数过来(00010010)和(000100000000)中的1不是出现在第1位和第8位吗。
[此贴子已经被作者于2019/9/18 23:39:54编辑过]

为什么?
1.ENCO是人机界面指令,还是PLC指令?
2.PLC,谁家PLC
3.按文字描述,IN中输入10#12(00010010),是不是应该这样 10#12(00001100),IN中输入10#100(000100000000),是不是应该这样10#100(01100100
1307
hwjtxf
文章数:521
年度积分:50
历史总积分:1307
注册时间:2018/3/29
发站内信
发表于:2019/9/19 10:48:08
#2楼
10#12(00001100)从右向左数  “1”出现在2位
10#100(01100100)从右向左数  “1”出现在2位
没毛病 你换算错误啦
1357
管杀不管填
文章数:145
年度积分:50
历史总积分:1357
注册时间:2006/1/25
发站内信
发表于:2019/9/19 22:07:08
#3楼
回复 #2楼 hwjtxf
谢谢指点
1357
管杀不管填
文章数:145
年度积分:50
历史总积分:1357
注册时间:2006/1/25
发站内信
发表于:2019/9/19 22:07:22
#4楼
回复 #1楼 蜀中之首
谢谢,换算错误了
2828
415150043
文章数:771
年度积分:119
历史总积分:2828
注册时间:2010/6/7
发站内信
2015【逛工博】(三)
发表于:2019/9/19 22:46:01
#5楼
三菱PLC的FX3U级以上有这指令,解码指令。简单的说就是源数据起始第一位bitON,操作数结果为1,第二位bitON,操作数结果为2,以此解码,源数据长度由关键字确定,长度=2的(关键字)次方。比如关检字是3,BIT长度就是连续的8位,特别注意的BIT位中始终要有一位有ON,要不然PLC会报错。看看这样说对你理解有帮助没?

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

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

46.8003