S7-300 / 400和S7-200通过 MPI的S7基本通信是如何实现数据通信工作的?

描述:
S7-300 / 400使用X_PUT / X_GET通过MPI可以访问不同的S7-200 CPU 。在这种情况下,S7-300 / 400 是主站,S7-200 是从站。S7-300 / 400和S7-200通过 MPI的S7基本通信是如何实现数据通信工作的?
图. 01n

对于CPU22x系列的S7-200 CPU,可以在19,2 kBd187,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 312C2
CPU 3134
CPU 313C, CPU 313C-2DP, CPU 313C-2PtP4
CPU 3148
CPU 314C-2DP, CPU 314C-2PtP8
CPU 3158
CPU 315-2DP, CPU 315F-2DP12
CPU 315-2PN/DP, CPU 315F-2PN/DP14
CPU 3168
CPU 316-2DP8
CPU 317-2DP, CPU 317F-2DP30
CPU 317-2PN/DP, CPU 317F-2PN/DP30
CPU 318-2DP30
CPU 319-3PN/DP, CPU 319F-3PN/DP30
CPU 6148

下表给出了 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: 传输完成后清除连接
CONT=1: 传输完成后保持连接

DEST_IDW#16#4S7-200 CPU的MPI地址
VAR_ADDRP#DB1.DBX 10.0 BYTE 10参考伙伴CPU要读入的数据区域。
从S7-200的变量区 (VB)从地址10开始读出10个字节。

下表列出了系统功能SFC67 "X_GET"的输出参数概览。

输出参数 变量 描述
RET_VAL MW 2 在处理功能时如果出现一个错误,返回值将返回相应的错误代码。 n

如果没有错误产生,RET_VAL包含拷贝到接受区域RD的数据长度,单位字节。

BUSYM12.1BUSY=1: 接收过程没有完成.
BUSY=0: 接收过程已经完成或者没有激活接收过程.
RDP#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: 传输完成后清除连接
CONT=1: 传输完成后保持连接

DEST_ID

W#16#4

S7-200 CPU的MPI地址

VAR_ADDR

P#DB1.DBX 20.0 BYTE 10

参考伙伴CPU要写入的数据区域。
从S7-200的变量区 (VB)从地址20开始写入10个字节。

n

下表列出了系统功能SFC68 "X_PUT"的输出参数概览。n

输出参数

变量

描述
SDP#DB10.DBX 20.0 BYTE 10

参考本CPU的发送数据区.
允许下列数据类型:
BOOL, BYTE, WORD, DWORD, 以及除了BOOL这些数据类型的队列.
SD必须与读通讯伙伴的区域VAR_ADDR长度一致.
另外,SD和VAR_ADDR的数据类型必须匹配.

RET_VALMW102在处理功能时如果出现一个错误,返回值将返回相应的错误代码。
BUSYM112.1BUSY=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-300 / 400和S7-200通过 MPI的S7基本通信是如何实现数据通信工作的? 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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年11月5日 下午12:03
下一篇 2021年4月12日 上午12:00

相关推荐

发表回复

登录后才能评论