引用“ tkggjfrqw9 ”网友在第51楼的问题:
“那Y4、Y7后面"权"如何分析?”
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
回复:
“ K4Y0 ”是表达一个以“Y0”为最低位,连续的16个“位元件”所组成的16bit字。
譬如,采用 8 进制给输出继电器编号的PLC上这个“K4Y0”字可以用下面这个表格来描述:
“K4Y0”字的各个bit | Y17 | Y16 | Y15 | Y14 | Y13 | Y12 | Y11 | Y10 | Y07 | Y06 | Y05 | Y04 | Y03 | Y02 | Y01 | Y00 |
各bit对应的“权” | 2^15 | 2^14 | 2^13 | 2^12 | 2^11 | 2^10 | 2^9 | 2^8 | 2^7 | 2^6 | 2^5 | 2^4 | 2^3 | 2^2 | 2^1 | 2^0 |
有了这个用表格来描述的各bit对应的“权”,我们就很好回答“ tkggjfrqw9 ”网友在第51楼的问题了:
① 、 Y4所对应的“权”为 2^4 即:16 ②、 Y7所对应的“权”为 2^7 即:128
如果是采用16进制给输出继电器编号的PLC,那么这个“K4Y0”字就该改用下面这个表格来描述:
“K4Y0”字的各个bit | Y0F | Y0E | Y0D | Y0C | Y0B | Y0A | Y09 | Y08 | Y07 | Y06 | Y05 | Y04 | Y03 | Y02 | Y01 | Y00 |
各bit对应的“权” | 2^15 | 2^14 | 2^13 | 2^12 | 2^11 | 2^10 | 2^9 | 2^8 | 2^7 | 2^6 | 2^5 | 2^4 | 2^3 | 2^2 | 2^1 | 2^0 |
请网友们务必注意:这个“字”中各个bit的顺序排列必须是“连续”的“位元件”!也就是说这个“字”中相邻的“位元件”其编号也必须是相邻的,不能故意抽掉、或者因不细心而疏漏了某些相邻编号的“位元件”。
引用“YSC1 ”网友在第70楼的内容:
谢谢wanggq 的 分析解说,对55楼的说的问题也不一定错误,因从图片上看55楼像是使用Q系列的PLC 。本人没有Q系列PLC .无法验证。而wanggq
使用的是FX系列的PLC ,可能两者有区别吧。请有条件的网友验证一下。使大家都明白。
回复:
FX系列与Q系列是有一些不同。但是,不论是什么系列的PLC,执行“MOV指令”的结果都是把“传送源”的内容照原样复制到“传送目标”,使“传送目标”的内容与“传送源”的内容一致!
指令“ MOV H050F K4Y0 ”的功能就是把十六进制的“ 50F ”(相当于十进制的“1295”)照原样复制到“K4Y0”字。总不可能有某种PLC在执行传送数据1295时,PLC自作主张的把数据先减去一个1024之后再传送到“K4Y0”字吧?!
“zhaohongcat ”网友已经认识到自己犯了一个“低级错误”感谢wanggq的指正。所以我本打算不再说“zhaohongcat ”在第55楼的错误了,却又冒出来一个“YSC1 ”网友说“第55楼的说法不一定是错误”!那么,我只针对“YSC1 ”的迷惑(不是针对“zhaohongcat ”网友),再给分析一下第55楼的图片:
我在楼上给“zhaohongcat ”网友的图片做出的批注中,有这样一句:“因为: 1295-271=1024 所以,我们能推断出‘K4Y0’字内肯定还有 1 位其‘权’为‘1024’ 的 bit 被这个程序片断给遗漏了!” 请网友们注意,我的意思是:根据“传送数据(1295 =15+256+1024)”能够推断:在“K4Y0”字内还有1个其“权”为:1024 (即:2^10)的 bit 的ON状态被“zhaohongcat ”网友遗漏了。
对于Q系列PLC,“K4Y0”字内被“zhaohongcat ”网友遗漏的 bit 共有 6 个,它们是:Y0A 、Y0B 、Y0C 、 Y0D 、Y0E 、Y0F 。