发表于: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位吗。
我好像理解了,我试着用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编辑过]