西门子PLC指令大小端模式--Profibus-DP通信指令的释疑

西门子PLC指令大小端模式--Profibus-DP通信指令的释疑
西门子PLC指令大小端模式--Profibus-DP通信指令的释疑

基于Profibus-DP总线的S7-300PLC与安川变频器的通信

1.大端模式和小端模式(Endianness)

首先得了解在计算机存储领域字节byte、字word在内存中存储方式,方便理解。什么是大端和小端?Big-Endian和Little-Endian的定义如下:

1)Little-Endian就是低位字节排放在内存的低地址端,高位字节排放在内存的高

地址端。

2)Big-Endian就是高位字节排放在内存的低地址端,低位字节排放在内存的高

地址端。

下面是两个具体例子:

16bit宽的数0x1234在Little-endian模式(以及Big-endian模式)CPU内存中的存放方式(假设从地址0x4000开始存放)为:

32bit宽的数0x12345678在Little-endian模式以及Big-endian模式)CPU内存中的存放方式(假设从地址0x4000开始存放)为:

西门子指令大小端模式 (653087638).p Basic concepts on Endianness.pdf endianness05.pdf

2.西门子的存储方式

S7-300指令系统采用大端模式,而S7-200采用小端模式!

在160T龙门式起重机PLC程序中,各个变频器DP站通过Profibus-DP总线与S7-300 PLC通信(CPU 314C-2DP),分别为5#、7#、9#及11#站。各个站点的输出启动地址(Output:PLC Profibus-DP主站→变频器从站,Master Device→Drvie)分别为:Q50、Q60、Q70及Q80,长度3个字word;

输入启动地址(Input:变频器从站→PLC Profibus-DP主站;Drive→Master Device)分别为:I50、I60、I70及I80,长度3个字word。(输入在本程序中未使用)

起先,一直无法读懂程序中控制9#站变频器FC6功能块,因为输出只从Q71开始,不是从Q70开始。主站组态通信数据长度为Basic Data,6个字节长,该地址映射见下表(Basic Data Register Map Detail):SI-P1卡

具体的运行操作指令见下表(Operation Command):

既然9#站输出启动地址为Q70,通常,PLC程序中应该控制该变频器的正转、反转输出线圈应该为Q70.0、Q70.1,实际却为Q71.0、Q71.1。该如何理解呢

其实是忽略了地址映射表中“高位字节/地位字节”的信息及不了解S7-300指令系统数据存储格式为大端模式。应该如下图理解这两张表

按下表理解

相关主题
相关文档
最新文档