plc 位 字节 字 双子关系
时间:2025-04-20
时间:2025-04-20
B是西门子的内存管理基本单位,可以分为,例如VB10等于vb10.0_vb10.7,就是I区、Q区、M区都是如此;
字是正常16位运算的基本单位,例如VW100,包含VB100、VB101,也就是VB100.0——VB101.7;
双字是32位数据格式单位,例如VD100,包含VW100、VW102,含VB100、VB101、VB102、VB103;也就是VB100.0——VB103.7;
需要注意的是:西门子是方脑袋的德国人搞出来的,数据格式与正常不一样,例如98765432数据以BCD存储在VD100,那么字VW100内部是9876,字VW102是5432,同理:VB100是98,VB101是76,VB102是54,VB103是32 而亚洲的日系则不一样,例如32位数据D100,实际包含D100、D101,其中D101内部数据是9876,D100内部数据是5432,
位:最小的存储单位,非0则1,表达两个状态。但是如果要表达更多状态怎么办?用字节。
字节:每8个位组成一个字节。这样一个字节可以表达2的8次方(256)个状态,大于256个状态怎么表示?那就用字。
字:2个字节组成一个字,有16个位。这样一个字可以表达2的16次方(65536)个状态,大于65536个状态怎么表示?那就用双字。
双字:2个字组成一个双字,有32个位。这样一个双字可以表达2的32次方(4294967296)个状态。
西门子表达比较特殊,就是低位高字节。例如一个32位组成的双字,其0-31位共32位用VD10表示的话,那么要表达0-15位组成的字,就是VW12;要表达16-31位组成的字,就是VW10;要表达0-7位组成的字节,就是VB13;要表达8-15位组成的字节,就是VB12;要表达16-23位组成的字节,就是VB11;要表达24-31位组成的字节,就是VB10。
一个字节 (BYTE)=8个位(BIT)
一个字=2个字节
双字=2个字
正文快照:以前一直用PCS7编程,也一直习惯于CFC编程,其中用到一个最基本的知识点,那就是双字、字、字节、位之间的关系。在PCS7的CFC中,
以前一直用PCS7编程,也一直习惯于CFC编程,其中用到一个最基本的知识点,那就是双字、字、字节、位之间的关系。
在PCS7的CFC中,有一个W_BO和一个DW_BO的功能块,十分方便,直接输入连接的状态字,输出便会列出bit0——bit15的值,这在做DP通讯时经常用过,比如控制变频器,它的状态常常是在一个字取某位,如运行信号、备妥信号等。
今天在一个老CPU中,也用到DP了通讯,要在一个双字中取某位显示状态,不支持用CFC编程,所以无法傻瓜式的取到了,只能手工指定其中的bit
位了。这时竟然字中高字节与低字节的对应关系,自己把自己晕了半天,
后来回顾了下,终于搞明白了,看来傻瓜的编程方式是把自己弄得更傻瓜!呵呵
直接上两个图吧,是关于双字、字、字节、位之间的关系的,看看便明白了! 一定要注意高8位与低8位与字的对应关系!
图1:字、字节、位之间的关系
图2:双字、字、字节、位之间的关系
上一篇:提高网络空间安全意识
下一篇:李阳疯狂英语励志格言