您的位置首页百科知识

西门子S7-1500与远程IO模块实现Modbus TCP通信

西门子S7-1500与远程IO模块实现Modbus TCP通信

的有关信息介绍如下:

西门子S7-1500与远程IO模块实现Modbus TCP通信

本文介绍西门子PLC与基于modbus TCP协议的远程IO模块通信网络的组建方法;

硬件连接框图及实际连接状态

设置正确的IP地址、子网掩码;

PLC通过TIA V14进行设置;模块默认子网掩码为:255.255.255.0;IP地址为192.168.IP3.IP4; IP3与IP4通过旋转拨码设置,详细说明见模块的说明书。如图下位置:

CHMT-IM16-0001 设置如下:

IP3 16X: 1 ; IP3 1X: 0; IP4 16X: 0 ; IP4 1X: 5;

CHMT-OM24-0001 设置如下:

IP3 16X: 1 ; IP3 1X: 0; IP4 16X: 0 ; IP4 1X: 6;

在博途中新建工程,选择使用CPU型号,本例子为1511-1 PN;本例中1511-PN作为客户端(client),ModbusTCP模块作为服务器(server);所以在程序块中需要调用“MB_CLIENT_DB”。连接两个server,则需要调用两个“MB_CLIENT_DB;如下图:

先设置CHMT-IM16-0001;

其中参数说明如下:

REQ应该连接一个具有频率输出的点,此引脚检测上升沿变化后才发送指令,本例子接Q1.3,Q1.3由定时器产生一个2ms的方波;如下图:

根据ModbusTCP模块的说明书:功能码为0x04 寄存器地址为0;数据长度为1;

再查看PLC的手册,modbus 功能表,如下图;确定MB_MODE 为0;MB_DATA_ADDR为30001;MB_DATA_LEN为1;

注意:MB_DATA_ADDR,由于PLC程序块定义起始地址是30001而不是30000所以此参数为30001,但是对于其他厂家的plc,例如LSPLC 他们的起始地址是30000所以在LSplc中就要设置为30000;

MB_DATA_PTR指向写入或者读取的数据变量;注意此变量的长度必须和MB_DATA_LEN匹配否则无法正常通信;本例输入模块为16位,设置变量read_data为UInt类型;

CONNECT需指向“TCON_IP_V4”类型的变量;定义的数据块如下:其中在建立TCON变量时直接在数据类型中输入TCON_IP_V4即可;

DONE,BUSY,ERROR,STATUS用来查看通信状态,指向所需变量即可。详细信息如后面贴出的“MB_CLIENT_DB各项参数说明”。

CHMT-OM24-0001的设置类似;

确定MB_MODE 为2;MB_DATA_ADDR为40001;MB_DATA_LEN为2;

MB_CLIENT_DB各项参数说明如下:

之后将博途中的程序下载到PLC即可;建立通信后的状态如下: