广东湘恒智能科技有限公司
主营产品: 西门子PLC,西门子模块,西门子触摸屏,西门子变频器,西门子伺服电机驱动,电缆,西门子全系列
西门子中国(授权)一级代理 湖南代理商PLC

本期内容使用1台s7-1500与Modbus Poll仿真软件进行Modbus TCP通讯,s7-1500作为服务端(提供数据的一侧,可以理解为从站)

软件测试环境:

TIA Portal V17Modbus Poll V10.9.0(文末附下载链接)

硬件测试环境:

CPU 1515-2 PN

注:Modbus TCP需要使用真实PLC或 PLCsim advance仿真(不支持1200)进行测试,小编手头没有1200用1500替代,两种PLC配置及调试方式一致

MB_Server配置步骤如下:

打开TIA Portal项目,新建FC块,并将MB_SERVER功能块拖入程序中,需要为该块指定背景数据块;

图片image-20240605164523869

MB_SERVER指令参数如下:

参数

声明

数据类型

说明

DISCONNECT

Input

BOOL

“MB_SERVER”指令建立与一个伙伴模块的被动连接。服务器会响应在 CONNECT 参数的 SDT“TCON_IP_v4”中输入的 IP 地址的连接请求。

接受一个连接请求后,可以使用该参数进行控制:

MB_HOLD_REG

InOut

VARIANT

指向“MB_SERVER”指令中 Modbus 保持性寄存器的指针

MB_HOLD_REG 引用的存储区必须大于两个字节。

保持性寄存器中包含 Modbus 客户端通过 Modbus 功能 3(读取)、6(写入)、16(多次写入)和 23(在一个作业中读写)可访问的值。

作为保持性寄存器,可以使用具有优化访问权限的全局数据块,也可以使用位存储器的存储区。

CONNECT

InOut

VARIANT

指向连接描述结构的指针

可以使用下列结构 (SDT):

对于 V4.2 以上指令版本的 MB_SERVER,TCP 的以下连接描述也可用:

NDR

Output

BOOL

“New Data Ready”:

DR

Output

BOOL

“Data Read”:

ERROR

Output

BOOL

如果在调用“MB_SERVER”指令过程中出错,则将 ERROR 参数的输出设置为“1”。有关错误原因的详细信息,将由 STATUS 参数指定。

STATUS

Output

WORD

指令的详细状态信息。

0:未读取数据

1:从 Modbus 客户端读取的数据

0:无新数据

1:从 Modbus 客户端写入的新数据

TCON_IP_V4_SEC(S7-1200 CPU 固件版本 V4.3 及以上版本,或 S7-1500 CPU 固件版本 V2.5 及以上版本)

TCON_QDN(S7-1200 CPU 固件版本 V4.4 及以上版本,或 S7-1500 CPU 固件版本 V2.5 及以上版本)

TCON_QDN_SEC(S7-1200 CPU 固件版本 V4.4 及以上版本,或 S7-1500 CPU 固件版本 V2.5 及以上版本)

TCON_IP_v4:包括建立指定连接时所需的所有地址参数。默认地址为 0.0.0.0(任何 IP 地址),但也可输入具体 IP 地址,以便服务器仅响应来自该地址的请求。使用 TCON_IP_v4 时,可通过调用指令“MB_SERVER”建立连接。

TCON_Configured:包括所组态连接的地址参数。使用 TCON_Configured 时,会在下载硬件配置后由 CPU 建立连接。

0:在无通信连接时建立被动连接。

1:终止连接初始化。如果已置位该输入,那么不会执行其它操作。成功终止连接后,STATUS 参数将输出值 0003。

为MB_Server配置参数,注意CONNECT参数需要使用“TCON_IP_v4”类型数据;(按照小编习惯,通常先不管参数意义是什么,现在DB块中将接口参数建好,保证程序可以下载)

图片image-20240605165943907

为MB_SERVER指定保持寄存器数据区域,以指针的形式体现,建议使用非优化DB块;

图片image-20240605170139174

MB_SERVER配置完成,可对程序进行下载;由于CONNECT参数需要设置,因此MB_SERVER会产生错误代码;

图片image-20240605170400284

对CONNECT参数进行配置,CONNECT参数说明,及配置说明如下:

字节

参数

数据类型

起始值

说明

0 … 1

InterfaceID

HW_ANY

-

本地接口的硬件标识符

2 … 3

ID

CONN_OUC

-

引用该连接(取值范围:1 到 4095)。

该参数将唯一确定 CPU 中的连接。指令“MB_SERVER”的每个实例必须使用唯一的 ID。该 ID 还不得被不同通信类型的其他指令同时使用。

注:对于固件版本为 V2.9 或更高版本的 S7-1500 CPU 和固件版本为 V4.5 或更高版本的 S7-1200 CPU,ID 也可能由指令“TCONSettings”提供。

4

ConnectionType

BYTE

11

连接类型

对于 TCP,选择 11(十进制)。不允许使用其它连接类型。如果使用了其它连接类型(如 UDP),该指令的 STATUS 参数将输出相应的错误消息。

5

ActiveEstablished

BOOL

FALSE

建立连接的方式所对应的 ID

对于被动连接建立,应选择 FALSE。

6 … 9

RemoteAddress

ARRAY [1..4] of BYTE

0.0.0.0

连接伙伴的 IP 地址,例如,192.168.0.1:

如果指令“MB_SERVER”要接受来自任何连接伙伴的连接请求,应将“0.0.0.0”用作 IP 地址。

10 … 11

RemotePort

UINT

0

远程连接伙伴的端口号(取值范围:1 - 49151)。

如果指令“MB_SERVER”要接受来自远程伙伴任何端口的连接请求,应将“0”用作端口号。

12 … 13

LocalPort

UINT

502

本地连接伙伴的端口号(取值范围:1 - 49151)。

此 IP 端口号定义 Modbus 客户端连接请求中要监视的 IP 端口。

默认值为 502。

注:InterfaceID,ID,ConnectionType,LocalPort参数必须设置,其它可以保持默认。

interfaceID通过硬件组态查看:

图片image-20240605172055991

配置完成如下:

图片image-20240605172232237

addr[1] = 192

addr[2] = 168

addr[3] = 0

addr[4] = 1

打开Mobdu Pol,设置连接参数,建立通讯连接

图片image-20240605172409611

新建一个Modbus测试窗口(默认10个数据,功能码03)

图片image-20240605172502851

监控数据如下:

图片image-20240605190610142

MB_SERVER配置完成;


展开全文
相关产品
拨打电话 微信咨询 发送询价