描述:
S7-300 / 400使用X_PUT / X_GET通过MPI可以访问不同的S7-200 CPU 。在这种情况下,S7-300 / 400 是主站,S7-200 是从站。
图. 01n
对于CPU22x系列的S7-200 CPU,可以在19,2 kBd 和 187,5 kBd下工作。n
参考CPU的技术数据,相关MPI接口上S7-300 / S7-400 CPU所支持的传输速率。n
S7-300 CPU的技术数据手册参考条目ID: 12996906
S7-400 CPU的技术数据手册参考下列条目IDs:n
下表给出了 S7-300 CPU的S7基本通讯的最大连接数。
CPU |
S7 基本通讯的最大连接数 |
CPU 312, CPU 312C | 2 |
CPU 313 | 4 |
CPU 313C, CPU 313C-2DP, CPU 313C-2PtP | 4 |
CPU 314 | 8 |
CPU 314C-2DP, CPU 314C-2PtP | 8 |
CPU 315 | 8 |
CPU 315-2DP, CPU 315F-2DP | 12 |
CPU 315-2PN/DP, CPU 315F-2PN/DP | 14 |
CPU 316 | 8 |
CPU 316-2DP | 8 |
CPU 317-2DP, CPU 317F-2DP | 30 |
CPU 317-2PN/DP, CPU 317F-2PN/DP | 30 |
CPU 318-2DP | 30 |
CPU 319-3PN/DP, CPU 319F-3PN/DP | 30 |
CPU 614 | 8 |
下表给出了 S7-400 CPU的S7基本通讯的最大连接数。n
CPU | S7 基本通讯的最大连接数 |
CPU 412-1 < FW V5.0 | 14 |
CPU 412-1 from FW V5.0 | 30 |
CPU 412-2DP < FW V5.0 | 14 |
CPU 412-2DP from FW V5.0 | 30 |
CPU 413-1 | 14 |
CPU 413-2DP | 14 |
CPU 414-1 | 30 |
CPU 414-2DP | 30 |
CPU 414-3DP | 30 |
CPU 414-3PN/DP | 30 |
CPU 416-1 | 42 |
CPU 416-2DP, CPU 416F-2DP | 42 |
CPU 416-3DP | 42 |
CPU 416-3PN/DP, CPU 416F-3PN/DP | 42 |
CPU 417-4 | 42 |
要求S7-200 CPU的必备条件:
-
设置S7-200 CPU的地址。n
-
将要发送的数据放置在缓冲区中或者从缓冲区中获取已接收的数据。n
-
在STEP7 中当参数化系统功能SFC67 "X_PUT"和SFC68 "X_GET"时,定义发送和接收缓冲区。n
-
请参考S7-200 系统手册中有关CPU联网的信息,条目ID: 1109582.
使用系统功能SFC67 "X_GET"从S7-200 CPU 中读取数据
可以使用系统功能SFC67 "X_GET"从S7-200 CPU 中读取数据,它可以在S7-300 / 400 的OB1中调用。n
本例中,10个字节从S7-200 CPU的变量区的地址10读出。接收的10个字节的数据保存在S7-300/S7-400的起始地址为10的DB10中。n
下表列出了系统功能SFC67 "X_GET"的输入参数概览。
输入参数 | 变量 | 描述 |
REQ | M0.1 | 输入参数REQ (需要触发)是电平触发器控制的参数。S7-300 / S7-400的M0.1的正信号启动从S7-200中读数据。 |
CONT | FALSE | 输入参数CONT (连续)是一个控制参数,用于确定是否与通讯伙伴保持连接。 n
CONT=0: 传输完成后清除连接 |
DEST_ID | W#16#4 | S7-200 CPU的MPI地址 |
VAR_ADDR | P#DB1.DBX 10.0 BYTE 10 | 参考伙伴CPU要读入的数据区域。 从S7-200的变量区 (VB)从地址10开始读出10个字节。 |
下表列出了系统功能SFC67 "X_GET"的输出参数概览。
输出参数 | 变量 | 描述 |
RET_VAL | MW 2 | 在处理功能时如果出现一个错误,返回值将返回相应的错误代码。 n
如果没有错误产生,RET_VAL包含拷贝到接受区域RD的数据长度,单位字节。 |
BUSY | M12.1 | BUSY=1: 接收过程没有完成. BUSY=0: 接收过程已经完成或者没有激活接收过程. |
RD | P#DB10.DBX 10.0 BYTE 10 | 参考接收数据区. 允许下列数据类型: BOOL, BYTE, WORD, DWORD, 以及除了BOOL这些数据类型的队列. 接收区RD必须至少与读通讯伙伴的区域VAR_ADDR一样长. 另外,RD和VAR_ADDR的数据类型必须匹配. |
使用系统功能SFC68 "X_PUT"给S7-200 CPU 写入数据
可以使用系统功能SFC68 "X_PUT"给S7-200 CPU 写入数据,它可以在S7-300 / 400 的OB1中调用。n
例如, 10个字节写入从地址20开始的S7-200 CPU的变量区。发送的10个字节的数据保存在S7-300/S7-400的起始地址为20的DB10中。n
下表列出了系统功能SFC68 "X_PUT"的输入参数概览。n
输入参数 | 变量 | 描述 |
REQ | M100.1 | 输入参数REQ (需要触发)是电平触发器控制的参数。S7-300 / S7-400的M0.1的正信号启动写数据到S7-200中。 |
CONT | FALSE | 输入参数CONT (连续)是一个控制参数,用于确定是否与通讯伙伴保持连接。 n
CONT=0: 传输完成后清除连接 |
DEST_ID | W#16#4 | S7-200 CPU的MPI地址 |
VAR_ADDR | P#DB1.DBX 20.0 BYTE 10 | 参考伙伴CPU要写入的数据区域。 |
n
下表列出了系统功能SFC68 "X_PUT"的输出参数概览。n
输出参数 |
变量 | 描述 |
SD | P#DB10.DBX 20.0 BYTE 10 | 参考本CPU的发送数据区. |
RET_VAL | MW102 | 在处理功能时如果出现一个错误,返回值将返回相应的错误代码。 |
BUSY | M112.1 | BUSY=1: 发送过程没有完成. BUSY=0: 发送过程已经完成或者没有激活发送过程. |
更多关于系统功能SFC67 "X_GET"和SFC68 "X_PUT"的信息,参考条目ID: 1214574.
可以下载附上的系统功能SFC67 "X_GET"和SFC68 "X_PUT"的样例程序。
STEP 7项目的样例程序包括完整的硬件组态和S7-300站的用户程序。STEP 7项目作为ZIP文件进行下载。
解压"S7_basic_communication.zip"到一个目录中。STEP 7项目自动解开并包含它的所有子目录。接着使用SIMATIC Manager打开和处理解压的STEP 7项目。
S7_basic_communication.zip ( 412 KB )
注意:
在下载调用的系统功能SFC67 "X_GET" 和SFC68 "X_PUT"到控制器之前,应该将S7-300/400 设置"STOP"模式。这可以使初始化系统功能SFC67 "X_GET" 和SFC68 "X_PUT"并传输数据得到保证。
如果需要更快的数据传输,使用PROFIBUS DP代替MPI进行S7基本通讯. PROFIBUS DP不是基于连接的通讯。
如果使用PROFIBUS DP, 那么S7-200需要一个PROFIBUS扩展模块EM 277. 关于扩展模块EM 277的详细信息请参考S7-200系统手册,条目ID 1109582.
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc333932.html