S7-200 PLC与S7-300 PLC之间采用MPI通讯方式时,S7-200 PLC中不需要编写任何与通讯有关的程序,只需要将要交换的数据整理到一个连续的V存储区当中即可;
S7-300 PLC中需要在组织块OB1(或是定时中断组织块OB35)当中调用系统功能X_GET(SFC67)和X_PUT(SFC68)。
调用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三 种波特率。
S7-200 PLC修改MPI地址可以参考下图:
图1 S7-200 设置MPI地址
S7-300 PLC修改MPI地址可以参考下图
图2 S7-300 设置MPI地址<例子程序在OB1当中调用数据读写功能块:SFC67和SFC68,如下图:
图3 程序编写
S7-300侧程序编写,也可参看:通过系统功能(SFC)实现基于MPI的S7通信
分别在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通信。