双字和字之间的关系

西门子plc 发布于 2个月前 分类:S7-300/400

我想请问下,今天我在查程序时,在查到一个点:DB2.DBW12时,在往上一级查询是出现的是:DB2,DBD14  这个我很不明白,这个双字和字之间的关系不明白,还请大家帮忙下

2个回复

  • plc学习
    plc学习

    1、DB 2.DBX  1.2    表示调用DB2中字节1中的第3位(右数第一位为0,第二位为1,第三位为2): :即小数点前表示调用的字节,点后表示该字节的某一位.
    2、DB2.DBB X表示调用DB2中的字节,起始字节地址为X;一个字节。
    3、DB2.DBW  X表示调用DB2中的字,起始字节地址为X;共两个字节内的数据:X,X+1。
    4、DB2.DBD  X表示调用DB2中的双字,起始字节地址为X;共四个字节内的数据:X,X+1,X+2,X+3。

    数据存取需要注意:避免地址重叠,所以你的下一地址是DBD14

  • plc电工爱好者

    我认为西门子做的最差的的就是在字和双字的处理方面,因为我们在学校或者是其他编程方面掌握的知识都是这样:对一个字来说,高位字节是字的高位,低位字节是低位, 但西门子恰恰相反,即所谓反高低位 ,比如当MB0=10,MB1=55,MB2=34,MB3=67时,按照习惯我们将得到如下结论:MB=10,MW=5510,MD=67345510,
    但西门子却是MB=10,MW=1055,MD=10553467
    这一点是大家在使用西门子所必须注意的.比如大家在在用西门子 PROTOOL做报警处理就会遇到此类问题引起的麻烦,比如报警变量放在MW0中,那么你在写报警或事件信息时,应按照这个顺序写:
    M1.0,M1.1......M1.6,M1.7,M0.0,M0.1........M0.6,M07.
    我个人水平有限,认为西门子唯一不足之处就是这一点.