S7-200和S7-300之间的MPI通信

S7-200 PLC与S7-300 PLC之间采用MPI通讯方式时,S7-200 PLC中不需要编写任何与通讯有关的程序,只需要将要交换的数据整理到一个连续的V 存储区当中即可,而S7-300 PLC中需要在组织块OB1(或是定时中断组织块OB35)当中调用系统功能X_GET(SFC67)和X_PUT(SFC68),以实现S7-200 PLC与S7-300 PLC之间的通讯。调用SFC67和SFC68时VAR_ADDR参数填写S7-200的数据地址区,由于S7-200的数据区为v区,这里需填写 P#DB1.DBX×× BYTE n 对应的就是S7200 V存储区当中VB××到VB(××+n)的数据区。例如交换的数据存在S7-200中VB50到VB59这10个字节当中,VAR_ADDR参数应为 P#DB1.DBX50.0 BYTE 10.
首先根据S7-300的硬件配置,在STEP7当中组态S7-300站并且,注意S7-200和S7-300出厂默认的MPI地址都是2,所以必须修改其中一个PLC的站地址,例子程序当中将S7-300 MPI地址设定为2,S7-200地址设定3,另外要分别将S7-300和S7-200的通讯速率设定一致,可设为9.6K,19.2K,187.5K三 种波特率,例子程序当中选用了19.2K的速率。

S7-200 PLC中通过系统块定义自身的MPI地址和波特率,参考下图:

图1 S7-200 设置MPI地址

S7-300 PLC修改MPI地址可以参考下图: 

图2 S7-300 设置MPI地址

例子程序在OB1当中调用数据读写功能块:SFC67和SFC68,如下图: 

图3 程序编写

分别在STEP7 MicroWin32 和STEP7当中监视S7-200和S7-300 PLC当中的数据,数据监视界面如下:

图4 S7-200监控结果


图5 S7-300监控结果

通过CP5611,STEP7 MicroWin32, Set PG/PC Interface可以读取S7200和S7300的站地址,如下图:


图6 CP5611诊断结果(站地址0为进行编程的计算机)


图7 使用STEP7 MicroWin32诊断结果

注意事项

1 虽然MPI的波特率可以达到12M,但是受到S7-200通信能力的限制,所以可设为9.6K,19.2K,187.5K三 种波特率。
2 如果PPI或者MPI的通信距离超过50m,需要加中继器;如果中继器之间没有任何站点的情况下,远距离可为1000米。
3 MPI不能与作为PPI主站的S7-200PLC通信。