S7-300集成DP口与S7-200的DP主从通信(STEP&TIA)

STEP7 V5.x 中EM277 与S7-300的Profibus DP通讯

TIA 中EM277 与S7-300的Profibus DP通讯

通信指示灯都正常,但数据读取不到?

DP通信所需要传输的数据超过64字节怎么办?

EM277 作为一个特殊的PROFIBUS-DP从站模块,其相关参数(包括上述的数据一致性)是以GSD(或GSE)文件的形式保存的。在主站中配置EM277,需要安装相关的GSD文件。

EM 277 GSD 本地下载

S7-300与S7-200通过EM277 进行PROFIBUS DP通讯,需要在STEP7中进行S7-300站组态,在S7-200系统中不需要对通讯进行组态和编程,只需要将要进行通讯的数据整理存放在V存储区,并且S7-300组态EM277从站时设置正确的地址即可。


从站地址---EM277的从站地址通过硬件设置,在模块本身上的拨码设置分为X0(地址个位)和X10(地址十位);
波特率---EM277是波特率自适应的,DP网络的波特率取决于S7-300的组态。
通讯数据地址对应---假设DP主站已定义了16入/16出的一种I/O配置,V区偏移量为2000,则其对应关系如下:

图1 通过EM277 在S7-200 CPU本地的输入/输出缓冲区分配

在主站上容易分辨输入/输入缓冲区,而通过EM277在S7-200 CPU的V存储区的映射,是本地的输入缓冲区(也就是主站的输出缓冲区)在前(地址低),输出缓冲区(主站的输入缓冲区)在后面(地址高)。

STEP7 V5.x 中EM277 与S7-300的Profibus DP通讯

第一,在STEP 7项目里插入一个S7-300的站:

图2 S7-300组态

第二,选中STEP7的硬件组态窗口中的菜单 Option-Install new GSD( EM 277 GSD 下载) ,导入SIEM089D.GSD文件,安装EM277 从站配置文件,如图2:

图2 安装GSD

第三,点击Browse,添加GSD文件路径:

图3 加GSD路径

第四,导入GSD文件后,在右侧的设备选择列表中找到EM277 从站,PROFIBUS DP-Additional Field Device-PLC-SIMATIC-EM277,并且根据通讯字节数,选择一种配置(只能添加一组),本例选择8字节入/8字节出的方式,如图4:

图4 通信区域组态

第五,确定S7-300硬件组态中所设置EM277 的地址,如下图红框标注,为DP从站EM277 的站地址。

图5 组态DP通信地址

第六,组态完系统的硬件配置后,将编译下载到S7-300的PLC当中。


第七,在S7-200侧断电的情况下,将EM277 的拨位开关拨到与S7-300侧硬件组态的设定值一致。 在S7-200中编写程序将进行交换的数据存放在VB0-VB7,VB8-VB15,分别对应S7-300的PQB0-PQB7和PIB0-PIB7,打 开 STEP7中的变量表和STEP7 MicroWin的状态表进行监控,它们的数据交换结果如图6/图7所示:

图6 通信数据监控

图7 通信数据监控

 注意:VB0-VB7是S7-300写到S7-200的数据,VB8-VB15是S7-300从S7-200读取的值。EM277上拨位开关的位置一定要和S7-300中组态的地址值一致。如果使用的S7-200通信区域不从VB0开始,则需要设置地址偏移,在S7-300硬件组态中双击 EM277,修改数值0为实际使用的数值即可,如下图所示:

图8 地址区域偏移设置

TIA 中EM277 与S7-300的Profibus DP通讯

首先,在TIA STEP 7项目里插入一个S7-300的站,并添加DP主站:

图9 添加S7-300站点

打开TIA网络视图,选中菜单-选项-安装设备描述文件 GSD( EM 277 GSD 下载) ,导入SIEM089D.GSD文件,安装EM277 从站配置文件,见图10:

图10 安装GSD

弹出图11界面,选择EM277 GSD文件存放路径,并安装GSD文件,如图11:

图11 安装GSD

导入GSD文件后,如图12示步骤操作:

  1. 在右侧的硬件目录列表中找到EM277 从站,添加至网络视图
  2. 为EM277 分配主站系统
  3. 为EM277分配PROFIBUS DP 站地址

图12 添加EM277站点

选中EM277,切换为设备视图,

  1. 在右侧的硬件目录列表中根据通讯字节数,选择一种配置(只能添加一组),本例选择8字节入/8字节出的方式
  2. 添加至EM277空槽内
  3. 设置S7-200V区偏移量地址(如果使用的S7-200通信区域不从VB0开始,则需要设置地址偏移,修改数值0为实际使用的数值即可)

此例中:VB0-VB7是S7-300写到S7-200的数据,VB8-VB15是S7-300从S7-200读取的值。

图13 通讯区域组态

组态完,编译程序下载到S7-300的PLC当中。 在S7-200侧断电的情况下,将EM277 的拨位开关拨到与S7-300侧硬件组态的设定值一致。 在S7-200中编写程序将进行交换的数据存放在VB0-VB7,VB8-VB15,分别S7-300的QB0-QB7和IB0-IB7,打开 TIA中的监控STEP7 MicroWin的状态表进行监控。

 

常见问题:

通信指示灯都正常,但数据读取不到?

如果组态的io地址较大,则可能超过了300CPU默认的过程映像区。此时将IB,IW改为PIB,PIW读取。

DP通信所需要传输的数据超过64字节怎么办?

方法1:软件里固定的通讯长度最大64bytes out/64 bytes in, 可以选择图中的“通用模块”根据实际需求自由设置输入/输出区域,而EM277 最大的通讯字节数是64 word out/64 word in。

方法2:分时通讯。以64字节通信区为例,若超过最大配置。那么可以将通信区的第一个字节作为标志位,这样需要在S7-200中分时或条件判断,将数据放置或读取通信区域。同理,在S7-300中也需要判断标志位。

方法3:满足扩展要求的前提下,同一个200PLC可以扩展多个EM277,具体可以参考本文中最大I/O扩展能力的要求,那么在同一个S7-300的项目里可以组态多个PROFIBUS从站。

方法2可以增大通信的数据量,但由于通过标志位来分时分次传输的,所以通信数据的刷新会比方法3慢;方法3通过扩展DP从站或者200PLC的通信端口来实现数据扩展的,但增加了成本,且需要考虑是否满足扩展要求。